增加开启资源宝箱接口
This commit is contained in:
parent
eca7e36e47
commit
8d8750fd9b
@ -23,6 +23,15 @@ func Int32ToInt(d []int32) []int {
|
|||||||
return r
|
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) {
|
func RandPopSlice(slice []int) ([]int, int) {
|
||||||
slen := len(slice)
|
slen := len(slice)
|
||||||
if slen == 0 {
|
if slen == 0 {
|
||||||
|
|||||||
@ -2,6 +2,8 @@ package mergeDataCfg
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"server/GoUtil"
|
||||||
|
"server/game/mod/item"
|
||||||
"server/gamedata"
|
"server/gamedata"
|
||||||
"server/pkg/github.com/name5566/leaf/log"
|
"server/pkg/github.com/name5566/leaf/log"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -267,3 +269,51 @@ func GetChessBagBugNum() int {
|
|||||||
func GetChessBagInitNum() int {
|
func GetChessBagInitNum() int {
|
||||||
return GetConstInt("chess_bag_init")
|
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("ReqPutChessInBag", ReqPutChessInBag) // 把棋子放入背包
|
||||||
RegisterMsgProcessFunc("ReqTakeChessOutBag", ReqTakeChessOutBag) // 从背包中取出棋子
|
RegisterMsgProcessFunc("ReqTakeChessOutBag", ReqTakeChessOutBag) // 从背包中取出棋子
|
||||||
RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子
|
RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子
|
||||||
|
RegisterMsgProcessFunc("ReqSourceChest", ReqSourceChest) // 开宝箱
|
||||||
|
|
||||||
RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) //购买能量
|
RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) //购买能量
|
||||||
|
|
||||||
|
|||||||
@ -655,6 +655,46 @@ func ReqChessEx(args []interface{}) error {
|
|||||||
return nil
|
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----------------------
|
// ---------------------CardApi----------------------
|
||||||
|
|
||||||
func ReqCardInfo(args []interface{}) error {
|
func ReqCardInfo(args []interface{}) error {
|
||||||
|
|||||||
@ -14,8 +14,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ModuleName = "chess"
|
ModuleName = "chess"
|
||||||
ChessBoradMaxNum = 63
|
ChessBoradMaxNum = 63
|
||||||
|
CHESS_SOURCE_CHEST = 705
|
||||||
|
CHESS_HIGH_SOURCE_CHEST = 706
|
||||||
)
|
)
|
||||||
|
|
||||||
type ChessBorad struct {
|
type ChessBorad struct {
|
||||||
@ -492,3 +494,18 @@ func (cb *ChessBorad) FinishRetire(EmitType string) error {
|
|||||||
cb.Retire[EmitType] = 3
|
cb.Retire[EmitType] = 3
|
||||||
return nil
|
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