From 07d6ec9ded2330f0681af0878fa063ae581467fa Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:45:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=80=8D=E6=95=B0highRoller?= =?UTF-8?q?=E5=88=B0=E6=9C=9F=E4=B8=8B=E8=B0=83=E5=80=8D=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/base/BaseCfg.go | 35 ++++++++++++++++++++++++++- src/server/game/LimitedTimeTrigger.go | 6 +++-- src/server/game/PlayerBaseMod.go | 5 ++-- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/src/server/conf/base/BaseCfg.go b/src/server/conf/base/BaseCfg.go index b3831962..9a64b72f 100644 --- a/src/server/conf/base/BaseCfg.go +++ b/src/server/conf/base/BaseCfg.go @@ -12,10 +12,12 @@ const ( const ( ENERGY_SHOP_MUL = "energy_shop_mul" + ENERGY_CFG = "BaseEnergy" ) func init() { gamedata.InitCfg(CFG_BASE) + gamedata.InitCfg(ENERGY_CFG) } func GetEnergyByMul(T int) float64 { @@ -35,5 +37,36 @@ func GetEnergyByMul(T int) float64 { } else { return 0 } - +} + +func GetMaxEnergyMul(Lv int) int { + Mul := 0 + for i := 0; i < 999; i++ { + data, err := gamedata.GetDataByIntKey(ENERGY_CFG, i) + if err != nil { + break + } + UnlockLv := gamedata.GetIntValue(data, "UnlockLv") + if Lv < UnlockLv { + break + } + Mul = i - 1 + } + return Mul +} + +func GetMaxEnergyMul2(Lv int, Energy int) int { + Mul := 0 + for i := 0; i < 999; i++ { + data, err := gamedata.GetDataByIntKey(ENERGY_CFG, i) + if err != nil { + break + } + UnlockLv := gamedata.GetIntValue(data, "UnlockLv") + if Lv < UnlockLv || Energy < gamedata.GetIntValue(data, "NeedEnergy") { + break + } + Mul = i - 1 + } + return Mul } diff --git a/src/server/game/LimitedTimeTrigger.go b/src/server/game/LimitedTimeTrigger.go index cea0d9f8..0899fe8e 100644 --- a/src/server/game/LimitedTimeTrigger.go +++ b/src/server/game/LimitedTimeTrigger.go @@ -4,6 +4,7 @@ import ( "fmt" "math" "server/GoUtil" + baseCfg "server/conf/base" userCfg "server/conf/user" "server/game/mod/card" "server/game/mod/item" @@ -38,8 +39,9 @@ func LimitedTimeEventTrigger(p *Player, AddEventId int) { }) switch v { case limitedTimeEvent.EVENT_TYPE_HIGH_ROLLER: - EnergyMul := p.PlayMod.getBaseMod().GetEnergyMul() - MaxEnergyMul := p.GetPlayerBaseMod().GetMaxEnergyMul(p) + BaseMod := p.PlayMod.getBaseMod() + EnergyMul := BaseMod.GetEnergyMul() + MaxEnergyMul := baseCfg.GetMaxEnergyMul2(BaseMod.GetLevel(), BaseMod.GetEnergy()) p.PlayMod.getBaseMod().ResetEnergyMul(MaxEnergyMul) NewEnergyMul := p.PlayMod.getBaseMod().GetEnergyMul() OrderMod := p.PlayMod.getOrderMod() diff --git a/src/server/game/PlayerBaseMod.go b/src/server/game/PlayerBaseMod.go index 30d55535..c3d8bb01 100644 --- a/src/server/game/PlayerBaseMod.go +++ b/src/server/game/PlayerBaseMod.go @@ -5,6 +5,7 @@ import ( "database/sql" "errors" "server/MergeConst" + baseCfg "server/conf/base" userCfg "server/conf/user" "server/db" "server/game/mod/item" @@ -148,9 +149,9 @@ func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool { func (p *PlayerBaseData) GetMaxEnergyMul(player *Player) int { BaseMod := player.PlayMod.getBaseMod() - MaxEnergyMul := userCfg.GetEnergyMulByLv(BaseMod.Level) + MaxEnergyMul := baseCfg.GetMaxEnergyMul(BaseMod.Level) if player.PlayMod.getLimitedTimeEventMod().CheckExist(limitedTimeEvent.EVENT_TYPE_HIGH_ROLLER) { - MaxEnergyMul = 10 + MaxEnergyMul = 11 } return MaxEnergyMul }