增加退役领取奖励接口

This commit is contained in:
hahwu 2025-11-10 15:07:19 +08:00
parent 2b816c3370
commit 8428678712
6 changed files with 2306 additions and 2105 deletions

View File

@ -1,6 +1,7 @@
package baseCfg
import (
"server/game/mod/item"
"server/gamedata"
"server/pkg/github.com/name5566/leaf/log"
"strconv"
@ -39,6 +40,15 @@ func GetEnergyByMul(T int) float64 {
}
}
func GetFriendReplyReward() []*item.Item {
data, err := gamedata.GetDataByKey(CFG_BASE, "friend_reply")
if err != nil {
log.Debug("GetFriendReplyReward err:%v", err)
return nil
}
return gamedata.GetItemList(data, "Value")
}
func GetMaxEnergyMul(Lv int, Energy int) int {
Mul := 0
for i := 1; i < 999; i++ {

View File

@ -392,6 +392,16 @@ func GetHighSourceChestItem() []*item.Item {
r = append(r, item.NewItem(item.ITEM_ENERGY_ID, B4))
return r
}
func GetRetireReward() []*item.Item {
data, err := gamedata.GetDataByKey(CONST_NAME, "retire_reward")
if err != nil {
log.Debug("GetRetireReward GetOne not found")
return nil
}
return gamedata.GetItemList(data, "Value")
}
func DynamicLevRev(Lv int, EmitId int, Color string) int {
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
if err != nil {

View File

@ -735,6 +735,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
RegisterMsgProcessFunc("ReqSeparateChess", ReqSeparateChess) // 分解棋子
RegisterMsgProcessFunc("ReqUpgradeChess", ReqUpgradeChess) // 升级棋子
RegisterMsgProcessFunc("ReqSellChessNum", ReqSellChessNum) //购买能量
RegisterMsgProcessFunc("ReqGetChessRetireReward", ReqGetChessRetireReward) //领取棋子退役奖励
//领取图鉴奖励
RegisterMsgProcessFunc("ReqGetHandbookReward", ReqGetHandbookReward) //领取图鉴奖励

View File

@ -6,6 +6,7 @@ import (
"math"
"server/GoUtil"
"server/conf"
baseCfg "server/conf/base"
cardCfg "server/conf/card"
champshipCfg "server/conf/champship"
collectCfg "server/conf/collect"
@ -5268,9 +5269,7 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
})
}
}
Items := []*item.Item{
item.NewItem(item.ITEM_ENERGY_ID, 5),
}
Items := baseCfg.GetFriendReplyReward()
err := player.HandleItem(Items, msg.ITEM_POP_LABEL_FriendReplyHandle.String())
if err != nil {
player.SendErrClienRes(&msg.ResFriendReplyHandle{
@ -5286,3 +5285,36 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error {
})
return nil
}
func ReqGetChessRetireReward(player *Player, buf []byte) error {
req := &msg.ReqGetChessRetireReward{}
proto.Unmarshal(buf, req)
ChessMod := player.PlayMod.getChessMod()
Items, err := ChessMod.GetRetireReward(req.Id)
if err != nil {
player.SendErrClienRes(&msg.ResGetChessRetireReward{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_GetChessRetireReward.String())
if err != nil {
player.SendErrClienRes(&msg.ResGetChessRetireReward{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
player.TeLog("get_chess_retire_reward", map[string]interface{}{
"EmitSerise": req.Id,
"Items": Items,
})
player.PushClientRes(ChessMod.BackData())
player.PlayMod.save()
player.PushClientRes(&msg.ResGetChessRetireReward{
Code: msg.RES_CODE_SUCCESS,
Id: req.Id,
})
return nil
}

View File

@ -44,6 +44,7 @@ type ChessBorad struct {
ChessMap map[string]int32
Honor map[int]int // 荣誉室
Retire map[string]int // 退役发射器系列
RetireReward map[string]bool
RetireChessMap map[string][]int
}
@ -96,6 +97,9 @@ func (cb *ChessBorad) ver() {
cb.ChessBag.List[i] = ChessBagGrid{}
}
}
if cb.RetireReward == nil {
cb.RetireReward = make(map[string]bool)
}
if cb.PartBag.List == nil {
cb.PartBag.List = make(map[int]PartBagGrid)
}
@ -418,11 +422,18 @@ func (cb *ChessBorad) BackData() *msg.ResPlayerChessInfo {
for k := range cb.Honor {
Ho = append(Ho, int32(k))
}
Rw := make([]string, 0)
for k, v := range cb.RetireReward {
if v == true {
Rw = append(Rw, k)
}
}
return &msg.ResPlayerChessInfo{
ChessList: GoUtil.SliceIntToInt32(cb.ChessList),
ChessBuff: GoUtil.SliceIntToInt32(cb.ChessBuff),
RetireEmit: Re,
Honor: Ho,
ChessList: GoUtil.SliceIntToInt32(cb.ChessList),
ChessBuff: GoUtil.SliceIntToInt32(cb.ChessBuff),
RetireEmit: Re,
RetireReward: Rw,
Honor: Ho,
ChessBag: &msg.ChessBag{
ChessBagGrids: ChessBagGrids,
ChessBuyCnt: int32(cb.ChessBag.Buy),
@ -671,3 +682,14 @@ func (cb *ChessBorad) GetPartBag() map[int]int {
}
return res
}
func (cb *ChessBorad) GetRetireReward(Id string) ([]*item.Item, error) {
if cb.RetireReward[Id] == true {
return nil, errors.New("emit retire reward has been get")
}
if cb.Retire[Id] != EMIT_RETIRE_END {
return nil, errors.New("emit not finish retire")
}
cb.RetireReward[Id] = true
return mergeDataCfg.GetRetireReward(), nil
}

File diff suppressed because it is too large Load Diff