playroom商店
This commit is contained in:
parent
9f1187962e
commit
7b0d9be8c1
@ -12,6 +12,7 @@ const (
|
||||
CFG_PLAYROOM_MOOD = "PlayroomMood"
|
||||
CFG_PLAYROOM_PHYSIOLOGY = "PlayroomPhysiology"
|
||||
CFG_PLAYROOM_PHYSIOLOGY_TYPE = "PlayroomPhysiologyType"
|
||||
CFG_PLAYROOM_SHOP = "PlayroomShop"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -20,6 +21,15 @@ func init() {
|
||||
gamedata.InitCfg(CFG_PLAYROOM_MOOD)
|
||||
gamedata.InitCfg(CFG_PLAYROOM_PHYSIOLOGY)
|
||||
gamedata.InitCfg(CFG_PLAYROOM_PHYSIOLOGY_TYPE)
|
||||
gamedata.InitCfg(CFG_PLAYROOM_SHOP)
|
||||
}
|
||||
|
||||
func GetShopItem(Id int) (int, []*item.Item) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_SHOP, Id)
|
||||
if err != nil {
|
||||
return 0, nil
|
||||
}
|
||||
return gamedata.GetIntValue(data, "ItemId"), gamedata.GetItemList(data, "Cost")
|
||||
}
|
||||
|
||||
func GetUnLockLv() int {
|
||||
|
||||
@ -810,13 +810,14 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqPlayroomChip", ReqPlayroomChip) // 消除碎片
|
||||
RegisterMsgProcessFunc("ReqPlayroomOutline", ReqPlayroomOutline) // 打工离线
|
||||
RegisterMsgProcessFunc("ReqPlayroomWrokOutline", ReqPlayroomWrokOutline) // 打工离线完成
|
||||
RegisterMsgProcessFunc("ReqPlayroomShop", ReqPlayroomShop) // playroom 商店
|
||||
RegisterMsgProcessFunc("ReqPlayroomBuyItem", ReqPlayroomBuyItem) // 购买playroom物品
|
||||
|
||||
// 宠物宝藏
|
||||
RegisterMsgProcessFunc("ReqFriendTreasure", ReqFriendTreasure) // 请求好友宝藏数据
|
||||
RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始游戏
|
||||
RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 翻牌
|
||||
RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏
|
||||
RegisterMsgProcessFunc("ReqPlayroomBuyItem", ReqPlayroomBuyItem) // 购买playroom物品
|
||||
|
||||
RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志
|
||||
RegisterMsgProcessFunc("ReqCreateOrderSn", ReqCreateOrderSn) // 创建订单号
|
||||
|
||||
@ -3428,6 +3428,43 @@ func ReqPlayroomWrokOutline(args []interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqPlayroomShop(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqPlayroomShop{}
|
||||
proto.Unmarshal(buf, req)
|
||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
||||
AddItems, LoseItem, err := PlayroomMod.ShopBuy(int(req.Id), int(req.Num))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomShop{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err = player.HandleLoseItem(LoseItem, msg.ITEM_POP_LABEL_PlayroomShop.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomShop{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err = player.HandleItem(AddItems, msg.ITEM_POP_LABEL_PlayroomShop.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomShop{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
PlayroomBackData(player)
|
||||
player.PushClientRes(&msg.ResPlayroomShop{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqFriendTreasure(args []interface{}) error {
|
||||
_, player, _ := ParseArgs(args)
|
||||
player.PushClientRes(player.PlayMod.getFriendTreasureMod().BackData())
|
||||
|
||||
@ -158,3 +158,17 @@ func Merge(Item1, Item2 []*Item) []*Item {
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func MutilItem(i []*Item, num int) []*Item {
|
||||
if i == nil {
|
||||
return nil
|
||||
}
|
||||
res := make([]*Item, 0)
|
||||
for _, v := range i {
|
||||
res = append(res, &Item{
|
||||
Id: v.Id,
|
||||
Num: v.Num * num,
|
||||
})
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
@ -519,3 +519,13 @@ func (p *PlayroomMod) UnLock(Lv int) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// shop
|
||||
func (p *PlayroomMod) ShopBuy(Id, Num int) ([]*item.Item, []*item.Item, error) {
|
||||
AddItemId, CostItem := playroomCfg.GetShopItem(Id)
|
||||
if AddItemId == 0 {
|
||||
return nil, nil, fmt.Errorf("ShopBuy AddItemId is 0")
|
||||
}
|
||||
NewCostItem := item.MutilItem(CostItem, Num)
|
||||
return []*item.Item{item.NewItem(AddItemId, Num)}, NewCostItem, nil
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user