增加开启资源宝箱接口
This commit is contained in:
parent
eca7e36e47
commit
8d8750fd9b
@ -23,6 +23,15 @@ func Int32ToInt(d []int32) []int {
|
||||
return r
|
||||
}
|
||||
|
||||
func StringToInt(d []string) []int {
|
||||
r := make([]int, 0, len(d))
|
||||
for _, d := range d {
|
||||
n, _ := strconv.Atoi(d)
|
||||
r = append(r, n)
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
func RandPopSlice(slice []int) ([]int, int) {
|
||||
slen := len(slice)
|
||||
if slen == 0 {
|
||||
|
||||
@ -2,6 +2,8 @@ package mergeDataCfg
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"server/GoUtil"
|
||||
"server/game/mod/item"
|
||||
"server/gamedata"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"strconv"
|
||||
@ -267,3 +269,51 @@ func GetChessBagBugNum() int {
|
||||
func GetChessBagInitNum() int {
|
||||
return GetConstInt("chess_bag_init")
|
||||
}
|
||||
|
||||
func GetSourceChestItem() []*item.Item {
|
||||
data, err := gamedata.GetDataByKey(CONST_NAME, "source_chest_reward")
|
||||
if err != nil {
|
||||
log.Debug("GetSourceChestItem GetOne not found")
|
||||
return nil
|
||||
}
|
||||
Str := gamedata.ParseString(data["Value"])
|
||||
A1 := strings.Split(Str, "|")
|
||||
var r []*item.Item
|
||||
if len(A1) < 2 {
|
||||
return r
|
||||
}
|
||||
A2 := strings.Split(A1[0], "/")
|
||||
A3 := GoUtil.StringToInt(A2)
|
||||
A4 := GoUtil.RandSlice(A3)
|
||||
r = append(r, item.NewItem(item.ITEM_DIAMOND_ID, A4))
|
||||
|
||||
B2 := strings.Split(A1[1], "/")
|
||||
B3 := GoUtil.StringToInt(B2)
|
||||
B4 := GoUtil.RandSlice(B3)
|
||||
r = append(r, item.NewItem(item.ITEM_ENERGY_ID, B4))
|
||||
return r
|
||||
}
|
||||
|
||||
func GetHighSourceChestItem() []*item.Item {
|
||||
data, err := gamedata.GetDataByKey(CONST_NAME, "high_source_chest_reward")
|
||||
if err != nil {
|
||||
log.Debug("GetHighSourceChestItem GetOne not found")
|
||||
return nil
|
||||
}
|
||||
Str := gamedata.ParseString(data["Value"])
|
||||
A1 := strings.Split(Str, "|")
|
||||
var r []*item.Item
|
||||
if len(A1) < 2 {
|
||||
return r
|
||||
}
|
||||
A2 := strings.Split(A1[0], "/")
|
||||
A3 := GoUtil.StringToInt(A2)
|
||||
A4 := GoUtil.RandSlice(A3)
|
||||
r = append(r, item.NewItem(item.ITEM_DIAMOND_ID, A4))
|
||||
|
||||
B2 := strings.Split(A1[1], "/")
|
||||
B3 := GoUtil.StringToInt(B2)
|
||||
B4 := GoUtil.RandSlice(B3)
|
||||
r = append(r, item.NewItem(item.ITEM_ENERGY_ID, B4))
|
||||
return r
|
||||
}
|
||||
|
||||
@ -630,6 +630,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqPutChessInBag", ReqPutChessInBag) // 把棋子放入背包
|
||||
RegisterMsgProcessFunc("ReqTakeChessOutBag", ReqTakeChessOutBag) // 从背包中取出棋子
|
||||
RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子
|
||||
RegisterMsgProcessFunc("ReqSourceChest", ReqSourceChest) // 开宝箱
|
||||
|
||||
RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) //购买能量
|
||||
|
||||
|
||||
@ -655,6 +655,46 @@ func ReqChessEx(args []interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqSourceChest(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqSourceChest{}
|
||||
proto.Unmarshal(buf, req)
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
ChestId := int(req.ChestId)
|
||||
Items, err := ChessMod.SourceChest(ChestId)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResSourceChest{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_SourceChest.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResSourceChest{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResSourceChest{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
player.PushClientRes(&msg.ResSourceChest{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.UpdateUserInfo()
|
||||
return nil
|
||||
}
|
||||
|
||||
// ---------------------CardApi----------------------
|
||||
|
||||
func ReqCardInfo(args []interface{}) error {
|
||||
|
||||
@ -16,6 +16,8 @@ import (
|
||||
const (
|
||||
ModuleName = "chess"
|
||||
ChessBoradMaxNum = 63
|
||||
CHESS_SOURCE_CHEST = 705
|
||||
CHESS_HIGH_SOURCE_CHEST = 706
|
||||
)
|
||||
|
||||
type ChessBorad struct {
|
||||
@ -492,3 +494,18 @@ func (cb *ChessBorad) FinishRetire(EmitType string) error {
|
||||
cb.Retire[EmitType] = 3
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cb *ChessBorad) SourceChest(ChessId int) ([]*item.Item, error) {
|
||||
err := cb.RemoveChess(ChessId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if ChessId == CHESS_SOURCE_CHEST {
|
||||
return mergeDataCfg.GetSourceChestItem(), nil
|
||||
}
|
||||
if ChessId == CHESS_HIGH_SOURCE_CHEST {
|
||||
return mergeDataCfg.GetHighSourceChestItem(), nil
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user