From aa7ee2a38156176ce6ce0f7a67cfba3cb61ce4a5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 5 Mar 2026 18:48:25 +0800 Subject: [PATCH] =?UTF-8?q?playroom=E7=BF=BB=E7=89=8C=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/decorate/Decorate.go | 13 +++++++++++++ src/server/game/register_network_func.go | 9 ++++++++- src/server/test/fix_test.go | 5 +++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/server/game/mod/decorate/Decorate.go b/src/server/game/mod/decorate/Decorate.go index b25c6492..430b66ae 100644 --- a/src/server/game/mod/decorate/Decorate.go +++ b/src/server/game/mod/decorate/Decorate.go @@ -5,6 +5,7 @@ import ( "math" decorateCfg "server/conf/decorate" limitedTimeEventCfg "server/conf/limited_time_event" + orderCfg "server/conf/order" "server/game/mod/item" GoUtil "server/game_util" "server/msg" @@ -119,6 +120,18 @@ func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int, DecorateOffIsExis return Items, PetExp, PartItemList } +func (d *Decorate) GetNextNeedStar() int { + DecorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId) + SubAlice := GoUtil.SubSlices(DecorateAll, GoUtil.MapIntToIntSlice(d.FinishList)) + orderFactor := orderCfg.GetOrderFactor(d.GetAreaId()) + sort.Ints(SubAlice) + if len(SubAlice) > 0 { + NeedStar := decorateCfg.GetStarCost(d.AreaId, SubAlice[0]) + return (NeedStar*orderFactor)/1000 + NeedStar + } + return 0 +} + // 一键装饰 func (d *Decorate) DecorateAll(Star int, DecorateOffIsExist bool) ([]*item.Item, []*item.Item, int, []int, []interface{}, int) { DecorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 46fb3fd7..6e523695 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -3407,7 +3407,14 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { } } else { PlayroomMod.SetGameId(playroom.GAME_TYPE_FILP) - PlayroomMod.SetGameRewardFlip(int(float64(PlayerData.Star)*0.03), int(float64(PlayerData.Star)*0.05), int(float64(PlayerData.Star)*0.1)) + DecorateMod := player.PlayMod.getDecorateMod() + needStar := DecorateMod.GetNextNeedStar() + highReward := int(float64(needStar) * 0.75) + if highReward < PlayerData.Star { + PlayroomMod.SetGameRewardFlip(max(int(float64(needStar)*0.1), 10), max(int(float64(needStar)*0.3), 10), max(int(float64(needStar)*0.75), 10)) + } else { + PlayroomMod.SetGameRewardFlip(max(10, int(float64(PlayerData.Star)*0.1)), max(10, int(float64(PlayerData.Star)*0.5)), max(PlayerData.Star, 10)) + } } player.PlayMod.save() player.PlayroomVisit(Targer) diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index 279440ab..91345722 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -92,8 +92,9 @@ func TestFixUserData(t *testing.T) { func TestRandInt(t *testing.T) { p1 := new(game.Player) p1.InitPlayer("3625212") - MailMod := p1.GetMailMod() - MailMod.BackData() + DecorateMod := p1.GetDecorateMod() + needStar := DecorateMod.GetNextNeedStar() + fmt.Printf("Next need star: %d\n", needStar) } func TestEndless(t *testing.T) {