playroom商店

This commit is contained in:
hahwu 2025-02-17 15:31:07 +08:00
parent 9f1187962e
commit 7b0d9be8c1
6 changed files with 3387 additions and 3187 deletions

View File

@ -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 {

View File

@ -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) // 创建订单号

View File

@ -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())

View File

@ -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
}

View File

@ -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