增加场景奖励
This commit is contained in:
parent
f6838d7bb9
commit
9ffd430ae3
@ -94,6 +94,20 @@ func GetProgressReward(Scene, Lv int) []*item.Item {
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetDecoarteReward(Scene int) []*item.Item {
|
||||
value, err := gamedata.GetData(INDOOR_PROGRESS)
|
||||
if err != nil {
|
||||
log.Debug("IndoorProgress GetDecoarteReward not found")
|
||||
return nil
|
||||
}
|
||||
for _, v := range value {
|
||||
if gamedata.GetIntValue(v, "Scene") == Scene && gamedata.GetIntValue(v, "Lv") == 1 {
|
||||
return gamedata.GetItemList(v, "AreaReward")
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// 获取一键装饰的解锁等级
|
||||
func GetOneKeyDecorateUnlockLv() int {
|
||||
data, err := gamedata.GetDataByKey(DECORATE_CONST, "OneKey")
|
||||
|
||||
@ -664,6 +664,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
//装饰
|
||||
RegisterMsgProcessFunc("ReqDecorate", ReqDecorate) // 装饰
|
||||
RegisterMsgProcessFunc("ReqDecorateAll", ReqDecorateAll) // 装饰全部
|
||||
RegisterMsgProcessFunc("ReqDecorateReward", ReqDecorateReward) // 装饰全部
|
||||
//Gm命令
|
||||
RegisterMsgProcessFunc("ReqGmCommand", ReqGmCommand) // Gm命令
|
||||
|
||||
|
||||
@ -530,6 +530,38 @@ func ReqDecorateAll(player *Player, buf []byte) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqDecorateReward(player *Player, buf []byte) error {
|
||||
req := &msg.ReqDecorateReward{}
|
||||
proto.Unmarshal(buf, req)
|
||||
DecorateMod := player.PlayMod.getDecorateMod()
|
||||
Item, err := DecorateMod.GetDecorateReward(int(req.AreaId))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResDecorateReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err = player.HandleItem(Item, msg.ITEM_POP_LABEL_DecorateReward.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResDecorateReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.TeLog("scene_reward", map[string]interface{}{
|
||||
"deco_step_id": fmt.Sprintf("%d_%d", DecorateMod.AreaId, DecorateMod.Progress),
|
||||
"item_list": Item,
|
||||
})
|
||||
player.PushClientRes(&msg.ResDecorateReward{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PushClientRes(DecorateMod.BackData())
|
||||
player.PlayMod.save()
|
||||
return nil
|
||||
}
|
||||
|
||||
// -----------------------ChessApi----------------------
|
||||
// 更新棋盘信息
|
||||
func UpdatePlayerChessDataFunc(player *Player, buf []byte) error {
|
||||
|
||||
@ -14,6 +14,7 @@ type Decorate struct {
|
||||
FinishList map[int]struct{}
|
||||
Progress int
|
||||
DecorateNum int
|
||||
AreaReward []int
|
||||
}
|
||||
|
||||
func (d *Decorate) InitData() {
|
||||
@ -109,9 +110,18 @@ func (d *Decorate) BackData() *msg.ResDecorateInfo {
|
||||
return &msg.ResDecorateInfo{
|
||||
AreaId: int32(d.AreaId),
|
||||
MFinishList: GoUtil.MapIntToSlice(d.FinishList),
|
||||
RewardArea: GoUtil.IntToInt32(d.AreaReward),
|
||||
}
|
||||
}
|
||||
|
||||
func (d *Decorate) GetDecorateReward(areaId int) ([]*item.Item, error) {
|
||||
if GoUtil.InArray(areaId, d.AreaReward) {
|
||||
return nil, fmt.Errorf("areaId already rewarded")
|
||||
}
|
||||
d.AreaReward = append(d.AreaReward, areaId)
|
||||
return decorateCfg.GetDecoarteReward(areaId), nil
|
||||
}
|
||||
|
||||
func (d *Decorate) GetAreaId() int {
|
||||
return d.AreaId
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user