零件协议
This commit is contained in:
parent
9d44143c90
commit
d8e361ccc2
@ -690,6 +690,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqSetEnergyMul", RegSetEneryFunc) //设置能量倍数
|
||||
RegisterMsgProcessFunc("ReqChessEx", ReqChessEx) // 转换棋子
|
||||
RegisterMsgProcessFunc("ReqGetChessFromBuff", ReqGetChessFromBuff) // 从buff中获取棋子
|
||||
RegisterMsgProcessFunc("ReqPutPartInBag", ReqPutPartInBag) // 把零件放入背包
|
||||
RegisterMsgProcessFunc("ReqPutChessInBag", ReqPutChessInBag) // 把棋子放入背包
|
||||
RegisterMsgProcessFunc("ReqTakeChessOutBag", ReqTakeChessOutBag) // 从背包中取出棋子
|
||||
RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子
|
||||
|
||||
@ -640,6 +640,40 @@ func ReqGetChessFromBuff(player *Player, buf []byte) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 放置棋子进背包
|
||||
func ReqPutPartInBag(player *Player, buf []byte) error {
|
||||
req := &msg.ReqPutPartInBag{}
|
||||
proto.Unmarshal(buf, req)
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
err := ChessMod.PutPartInBag(int(req.ChessId))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPutPartInBag{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
data := &PlayerChessData{}
|
||||
err = data.UpdateChessData(player, req.MChessData)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPutPartInBag{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.TeLog("ReqPutPartInBag", map[string]interface{}{
|
||||
"chess_id": req.ChessId,
|
||||
})
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
player.PushClientRes(&msg.ResPutPartInBag{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.UpdateUserInfo()
|
||||
return nil
|
||||
}
|
||||
|
||||
// 放置棋子进背包
|
||||
func ReqPutChessInBag(player *Player, buf []byte) error {
|
||||
req := &msg.ReqPutChessInBag{}
|
||||
|
||||
@ -40,12 +40,16 @@ type ChessBorad struct {
|
||||
EmitList map[int]int
|
||||
ChessBuff []int
|
||||
ChessBag ChessBag
|
||||
PartBag PartBag
|
||||
ChessMap map[string]int32
|
||||
Honor map[int]int // 荣誉室
|
||||
Retire map[string]int // 退役发射器系列
|
||||
RetireChessMap map[string][]int
|
||||
}
|
||||
|
||||
type PartBag struct {
|
||||
List map[int]PartBagGrid // 零件背包
|
||||
}
|
||||
type ChessBag struct {
|
||||
List map[int]ChessBagGrid
|
||||
Buy int
|
||||
@ -57,6 +61,11 @@ type ChessBagGrid struct {
|
||||
EmitId int // 发射器id
|
||||
}
|
||||
|
||||
type PartBagGrid struct {
|
||||
PartId int // 零件id
|
||||
Num int // 零件数量
|
||||
}
|
||||
|
||||
func (cb *ChessBorad) IsEmpty() bool {
|
||||
cb.ver()
|
||||
return len(cb.ChessList) == 0
|
||||
@ -351,6 +360,13 @@ func (cb *ChessBorad) BackData() *msg.ResPlayerChessInfo {
|
||||
EmitId: int32(v.EmitId),
|
||||
})
|
||||
}
|
||||
var PartBagGrids []*msg.PartBagGrid
|
||||
for k, v := range cb.PartBag.List {
|
||||
PartBagGrids = append(PartBagGrids, &msg.PartBagGrid{
|
||||
PartId: int32(k),
|
||||
Count: int32(v.Num),
|
||||
})
|
||||
}
|
||||
Re := make([]string, 0)
|
||||
for k, v := range cb.Retire {
|
||||
if v == 3 {
|
||||
@ -371,6 +387,9 @@ func (cb *ChessBorad) BackData() *msg.ResPlayerChessInfo {
|
||||
ChessBuyCnt: int32(cb.ChessBag.Buy),
|
||||
ChessFreeCnt: int32(cb.ChessBag.Free),
|
||||
},
|
||||
PartBag: &msg.PartBag{
|
||||
PartBagGrids: PartBagGrids,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@ -435,6 +454,29 @@ func (cb *ChessBorad) PutChessInBag(Grid, ChessId, EmitId int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cb *ChessBorad) PutPartInBag(ChessId int) error {
|
||||
err := cb.RemoveChess(ChessId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
ChessLv := mergeDataCfg.GetLvById(ChessId)
|
||||
ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId)
|
||||
if ChessLv != ChessMaxLv { // 零件只能放入满级棋子
|
||||
return errors.New("part Lv is not max")
|
||||
}
|
||||
Num := 0
|
||||
v, ok := cb.PartBag.List[ChessId]
|
||||
if ok {
|
||||
Num = v.Num
|
||||
}
|
||||
|
||||
cb.PartBag.List[ChessId] = PartBagGrid{
|
||||
PartId: ChessId,
|
||||
Num: Num + 1,
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cb *ChessBorad) TakeChessOutBag(Grid int) (int, error) {
|
||||
if Grid < 0 {
|
||||
cb.RemoveHonor(-Grid)
|
||||
|
||||
@ -125,7 +125,7 @@ func (m *MailMod) Del(id int) error {
|
||||
return fmt.Errorf("mail id %d not exist", id)
|
||||
}
|
||||
if v.Status == MAIL_STATUS_DEL {
|
||||
return fmt.Errorf("mail have readed")
|
||||
return fmt.Errorf("mail have deleted")
|
||||
}
|
||||
v.Status = MAIL_STATUS_DEL
|
||||
v.Del = GoUtil.Now()
|
||||
|
||||
@ -397,6 +397,9 @@ func getEmitSeries(o *OrderMod, Emit []int) string {
|
||||
}
|
||||
Num := 1
|
||||
for {
|
||||
if len(o.EmitShuffle) == 1 {
|
||||
break
|
||||
}
|
||||
o.EmitShuffle = GoUtil.ShuffleStringArray(o.EmitShuffle)
|
||||
if o.EmitShuffle[0] != PopEmitId {
|
||||
break
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user