增加场景奖励
This commit is contained in:
parent
f6838d7bb9
commit
9ffd430ae3
@ -94,6 +94,20 @@ func GetProgressReward(Scene, Lv int) []*item.Item {
|
|||||||
return nil
|
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 {
|
func GetOneKeyDecorateUnlockLv() int {
|
||||||
data, err := gamedata.GetDataByKey(DECORATE_CONST, "OneKey")
|
data, err := gamedata.GetDataByKey(DECORATE_CONST, "OneKey")
|
||||||
|
|||||||
@ -662,8 +662,9 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
|||||||
RegisterMsgProcessFunc("ReqDelOrder", ReqDelOrder) // 删除订单
|
RegisterMsgProcessFunc("ReqDelOrder", ReqDelOrder) // 删除订单
|
||||||
|
|
||||||
//装饰
|
//装饰
|
||||||
RegisterMsgProcessFunc("ReqDecorate", ReqDecorate) // 装饰
|
RegisterMsgProcessFunc("ReqDecorate", ReqDecorate) // 装饰
|
||||||
RegisterMsgProcessFunc("ReqDecorateAll", ReqDecorateAll) // 装饰全部
|
RegisterMsgProcessFunc("ReqDecorateAll", ReqDecorateAll) // 装饰全部
|
||||||
|
RegisterMsgProcessFunc("ReqDecorateReward", ReqDecorateReward) // 装饰全部
|
||||||
//Gm命令
|
//Gm命令
|
||||||
RegisterMsgProcessFunc("ReqGmCommand", ReqGmCommand) // Gm命令
|
RegisterMsgProcessFunc("ReqGmCommand", ReqGmCommand) // Gm命令
|
||||||
|
|
||||||
|
|||||||
@ -530,6 +530,38 @@ func ReqDecorateAll(player *Player, buf []byte) error {
|
|||||||
return nil
|
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----------------------
|
// -----------------------ChessApi----------------------
|
||||||
// 更新棋盘信息
|
// 更新棋盘信息
|
||||||
func UpdatePlayerChessDataFunc(player *Player, buf []byte) error {
|
func UpdatePlayerChessDataFunc(player *Player, buf []byte) error {
|
||||||
|
|||||||
@ -14,6 +14,7 @@ type Decorate struct {
|
|||||||
FinishList map[int]struct{}
|
FinishList map[int]struct{}
|
||||||
Progress int
|
Progress int
|
||||||
DecorateNum int
|
DecorateNum int
|
||||||
|
AreaReward []int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Decorate) InitData() {
|
func (d *Decorate) InitData() {
|
||||||
@ -109,9 +110,18 @@ func (d *Decorate) BackData() *msg.ResDecorateInfo {
|
|||||||
return &msg.ResDecorateInfo{
|
return &msg.ResDecorateInfo{
|
||||||
AreaId: int32(d.AreaId),
|
AreaId: int32(d.AreaId),
|
||||||
MFinishList: GoUtil.MapIntToSlice(d.FinishList),
|
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 {
|
func (d *Decorate) GetAreaId() int {
|
||||||
return d.AreaId
|
return d.AreaId
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user