增加playroom道具购买接口

This commit is contained in:
hahwu 2025-01-13 10:41:53 +08:00
parent a69ea709a3
commit fd96d805af
5 changed files with 470 additions and 307 deletions

View File

@ -125,3 +125,11 @@ func GetDecorateList() []int {
} }
return r return r
} }
func GetBuyItem(Id int) ([]*item.Item, []*item.Item) {
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_MOOD, Id)
if err != nil {
return nil, nil
}
return gamedata.GetItemList(data, "Cost2"), gamedata.GetItemList(data, "Buy")
}

View File

@ -775,6 +775,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始游戏 RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始游戏
RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 翻牌 RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 翻牌
RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏 RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏
RegisterMsgProcessFunc("ReqPlayroomBuyItem", ReqPlayroomBuyItem) // 购买playroom物品
RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志 RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志
RegisterMsgProcessFunc("ReqCreateOrderSn", ReqCreateOrderSn) // 创建订单号 RegisterMsgProcessFunc("ReqCreateOrderSn", ReqCreateOrderSn) // 创建订单号

View File

@ -3161,6 +3161,44 @@ func ReqPlayroomFlipReward(args []interface{}) error {
return nil return nil
} }
func ReqPlayroomBuyItem(args []interface{}) error {
_, player, buf := ParseArgs(args)
req := &msg.ReqPlayroomBuyItem{}
proto.Unmarshal(buf, req)
PlayroomMod := player.PlayMod.getPlayroomMod()
AddItems, CostItem := PlayroomMod.BuyItem(int(req.Id))
if CostItem == nil {
err := fmt.Errorf("can not buy item")
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
err := player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_PlayroomBuyItem.String())
if err != nil {
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
err = player.HandleItem(AddItems, msg.ITEM_POP_LABEL_PlayroomBuyItem.String())
if err != nil {
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
player.PlayMod.save()
// PlayroomBackData(player)
player.PushClientRes(&msg.ResPlayroomBuyItem{
Code: msg.RES_CODE_SUCCESS,
})
return nil
}
func ReqOfflineReconnectFunc(args []interface{}) error { func ReqOfflineReconnectFunc(args []interface{}) error {
a := args[0].(gate.Agent) a := args[0].(gate.Agent)

View File

@ -455,3 +455,7 @@ func (p *PlayroomMod) GetFlipReward() ([]*item.Item, error) {
} }
return Items, fmt.Errorf("GetFlipReward check is not 3") return Items, fmt.Errorf("GetFlipReward check is not 3")
} }
func (p *PlayroomMod) BuyItem(Id int) ([]*item.Item, []*item.Item) {
return playroomCfg.GetBuyItem(Id)
}

File diff suppressed because it is too large Load Diff