diff --git a/src/server/conf/decorate/decorate_cfg.go b/src/server/conf/decorate/decorate_cfg.go index 557189f0..f767ad26 100644 --- a/src/server/conf/decorate/decorate_cfg.go +++ b/src/server/conf/decorate/decorate_cfg.go @@ -36,6 +36,21 @@ func GetStarCost(AreaId, SortId int) int { return 0 } +func GetStarCostByAreaId(AreaId int) int { + data, err := gamedata.GetData(DECORATE_COST) + if err != nil { + log.Debug("GetStarCost err:%v, AreaId=%d", err, AreaId) + return 0 + } + var total int + for _, v := range data { + if gamedata.GetIntValue(v, "AreaId") == AreaId { + total += gamedata.GetIntValue(v, "CostCount") + } + } + return total +} + func GetAreaId(id int) int { value, err := gamedata.GetDataByIntKey("DecorateCost", id) if err != nil { diff --git a/src/server/game/mod/decorate/Decorate.go b/src/server/game/mod/decorate/Decorate.go index 430b66ae..e7eead07 100644 --- a/src/server/game/mod/decorate/Decorate.go +++ b/src/server/game/mod/decorate/Decorate.go @@ -132,6 +132,10 @@ func (d *Decorate) GetNextNeedStar() int { return 0 } +func (d *Decorate) GetAreaCost() int { + return decorateCfg.GetStarCostByAreaId(d.AreaId) +} + // 一键装饰 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 072d0f14..a65efe67 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -3416,7 +3416,7 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { } else { PlayroomMod.SetGameId(playroom.GAME_TYPE_FILP) DecorateMod := player.PlayMod.getDecorateMod() - needStar := DecorateMod.GetNextNeedStar() + needStar := DecorateMod.GetAreaCost() 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)) diff --git a/src/server/test/playroom_test.go b/src/server/test/playroom_test.go new file mode 100644 index 00000000..56409d9b --- /dev/null +++ b/src/server/test/playroom_test.go @@ -0,0 +1,16 @@ +package test + +import ( + "fmt" + "server/game" + "testing" +) + +func TestPlayroomFlipGame(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayerByUid(100001) + DecorateMod := p1.GetDecorateMod() + needStar := DecorateMod.GetAreaCost() + highReward := int(float64(needStar) * 0.75) + fmt.Printf("needStar: %d, highReward: %d\n", needStar, highReward) +}