From 8a79ce2b64535f82e4b49ac8224d0f493f23a3b4 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 10 Mar 2026 12:07:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=A6=E6=A0=87=E8=B5=9B=EF=BC=8C=E6=8C=96?= =?UTF-8?q?=E7=9F=BF=E9=85=8D=E7=BD=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/champship/champship_cfg.go | 18 +++++++++++++----- src/server/conf/mining/mining_cfg.go | 8 ++++---- src/server/game/activity_func.go | 5 +++-- src/server/game/mod/champship/Champship.go | 4 ++-- src/server/game/mod/mining/mining.go | 4 ++-- src/server/game/register_network_func.go | 8 +++++--- 6 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/server/conf/champship/champship_cfg.go b/src/server/conf/champship/champship_cfg.go index f873fe07..b10be54c 100644 --- a/src/server/conf/champship/champship_cfg.go +++ b/src/server/conf/champship/champship_cfg.go @@ -47,7 +47,7 @@ func GetChessScore(ChessLv int) int { return gamedata.GetIntValue(data, "Score") } -func GetReward(Reward, Score, activityId int) (int, []*item.Item) { +func GetReward(Reward, Score, activityId, orderFactor int) (int, []*item.Item) { data, err := gamedata.GetData(CFG_CHAMPSHIP_JACKPOT) if err != nil { log.Debug("GetReward err:%v, Reward=%d, Score=%d", err, Reward, Score) @@ -64,10 +64,18 @@ func GetReward(Reward, Score, activityId int) (int, []*item.Item) { if Reward >= Id { continue } - if Score >= gamedata.GetIntValue(v, "Total") { - Items := item.ParseItem(gamedata.GetValue(v, "Items")) - r = item.Merge(r, Items) - NewReward = max(NewReward, Id) + if Score < gamedata.GetIntValue(v, "Total") { + continue + } + Items := item.ParseItem(gamedata.GetValue(v, "Items")) + r = item.Merge(r, Items) + NewReward = max(NewReward, Id) + starReward := gamedata.GetIntValue(v, "StarReward") + if starReward > 0 { + starnum := int((float64(starReward) * float64(orderFactor) / 500)) * 5 + if starnum > 0 { + r = append(r, item.NewItem(item.ITEM_STAR_ID, starnum)) + } } } return NewReward, r diff --git a/src/server/conf/mining/mining_cfg.go b/src/server/conf/mining/mining_cfg.go index 1d85c6e3..1a55ae83 100644 --- a/src/server/conf/mining/mining_cfg.go +++ b/src/server/conf/mining/mining_cfg.go @@ -96,7 +96,7 @@ func GetRandItem() []*item.Item { return gamedata.GetItemList(Info, "Items") } -func GetPassItem(Id int, needStar int) []*item.Item { +func GetPassItem(Id int, orderFactor int) []*item.Item { data, err := gamedata.GetDataByIntKey(CFG_MINING_PASS, Id) if err != nil { return nil @@ -105,7 +105,7 @@ func GetPassItem(Id int, needStar int) []*item.Item { starReward := gamedata.GetIntValue(data, "StarReward") var starnum int if starReward > 0 { - starnum = int(needStar * starReward / 100) + starnum = int((float64(starReward) * float64(orderFactor) / 500)) * 5 if starnum > 0 { items = append(items, &item.Item{ Id: item.ITEM_STAR_ID, @@ -116,7 +116,7 @@ func GetPassItem(Id int, needStar int) []*item.Item { return items } -func GetPassItemList(needStar int) map[int][]*item.Item { +func GetPassItemList(orderFactor int) map[int][]*item.Item { data, err := gamedata.GetData(CFG_MINING_PASS) if err != nil { return nil @@ -124,7 +124,7 @@ func GetPassItemList(needStar int) map[int][]*item.Item { result := make(map[int][]*item.Item) for k := range data { Id := GoUtil.Int(k) - result[Id] = GetPassItem(Id, needStar) + result[Id] = GetPassItem(Id, orderFactor) } return result } diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index 80d3f9c1..cfce0658 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -9,6 +9,7 @@ import ( guesscolorCfg "server/conf/guess_color" languageCfg "server/conf/language" miningCfg "server/conf/mining" + orderCfg "server/conf/order" passCfg "server/conf/pass" raceCfg "server/conf/race" "server/game/mod/activity" @@ -199,8 +200,8 @@ func (p *Player) MiningBackData() { Status := p.GetActivityStatus(activity.ACT_TYPE_MINING) Template := miningCfg.GetTemplate(ActivityInfo.Id) DecorateMod := p.PlayMod.getDecorateMod() - needStar := DecorateMod.GetNextNeedStar() - passRewardList := miningCfg.GetPassItemList(needStar) + orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) + passRewardList := miningCfg.GetPassItemList(orderFactor) resPassRewardList := make(map[int32]*msg.ItemList) for k, v := range passRewardList { resPassRewardList[int32(k)] = item.ItemListToMsg(v) diff --git a/src/server/game/mod/champship/Champship.go b/src/server/game/mod/champship/Champship.go index 827ccb6d..91154502 100644 --- a/src/server/game/mod/champship/Champship.go +++ b/src/server/game/mod/champship/Champship.go @@ -56,8 +56,8 @@ func (c *ChampshipMod) AddScore(Chess []int) { c.Score += score } -func (c *ChampshipMod) GetReward(activityId int) []*item.Item { - Reward, Items := champshipCfg.GetReward(c.Reward, c.Score, activityId) +func (c *ChampshipMod) GetReward(activityId, orderFactor int) []*item.Item { + Reward, Items := champshipCfg.GetReward(c.Reward, c.Score, activityId, orderFactor) c.Reward = Reward c.Max = max(c.Max, c.Reward) return Items diff --git a/src/server/game/mod/mining/mining.go b/src/server/game/mod/mining/mining.go index f31e552b..1d63c060 100644 --- a/src/server/game/mod/mining/mining.go +++ b/src/server/game/mod/mining/mining.go @@ -99,12 +99,12 @@ func (m *MiningMod) Take(Map map[int32]string, Gem int) ([]*item.Item, error) { return Items, nil } -func (m *MiningMod) GetReward(needStar int) ([]*item.Item, int, error) { +func (m *MiningMod) GetReward(orderFactor int) ([]*item.Item, int, error) { GemList := miningCfg.GetPassGem(m.Pass) if len(m.Gem) < len(GemList) { return nil, 0, fmt.Errorf("gem is not full") } - Items := miningCfg.GetPassItem(m.Pass, needStar) + Items := miningCfg.GetPassItem(m.Pass, orderFactor) m.Pass++ Ming := m.Mining m.Mining = 0 diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index d6599f98..b011a569 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -2738,8 +2738,10 @@ func ReqShippingOrder(player *Player, buf []byte) error { func ReqChampshipReward(player *Player, buf []byte) error { ChampshipMod := player.PlayMod.getChampshipMod() todayActivityId, _ := player.GetChampshipActivityId() + DecorateMod := player.PlayMod.getDecorateMod() + orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) RewardId := ChampshipMod.Reward - itemList := ChampshipMod.GetReward(todayActivityId) + itemList := ChampshipMod.GetReward(todayActivityId, orderFactor) err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_ChampshipReward.String()) if err != nil { player.SendErrClienRes(&msg.ResChampshipReward{ @@ -3164,8 +3166,8 @@ func ReqMiningReward(player *Player, buf []byte) error { return fmt.Errorf("activity not start") } DecorateMod := player.PlayMod.getDecorateMod() - needStar := DecorateMod.GetNextNeedStar() - itemList, Mining, err := MiningMod.GetReward(needStar) + orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) + itemList, Mining, err := MiningMod.GetReward(orderFactor) if err != nil { player.SendErrClienRes(&msg.ResMiningReward{ Code: msg.RES_CODE_FAIL,