go_dreamfactory/modules/pvp/api_incmd.go
2023-02-13 16:06:43 +08:00

51 lines
1.1 KiB
Go

package pvp
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/sys/timewheel"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) InCmdCheck(session comm.IUserSession, req *pb.PvpInCmdReq) (code pb.ErrorCode) {
return
}
///设置战斗阵型
func (this *apiComp) InCmd(session comm.IUserSession, req *pb.PvpInCmdReq) (code pb.ErrorCode, data proto.Message) {
var (
battle *BattleItem
side int32
ok bool
)
if code = this.InCmdCheck(session, req); code != pb.ErrorCode_Success {
return
}
this.module.lock.RLock()
battle, ok = this.module.battles[req.Battleid]
this.module.lock.RUnlock()
if ok {
if session.GetUserId() == battle.Red.Uid {
side = 1
} else {
side = 2
}
if code = this.module.battle.InCmdBattle(&pb.BattleInCmdReq{
Battleid: req.Battleid,
Side: side,
In: req.Cmd,
}); code != pb.ErrorCode_Success {
return
} else {
timewheel.Remove(battle.operatetimer)
}
} else {
code = pb.ErrorCode_BattleInCmdFailed
return
}
session.SendMsg(string(this.module.GetType()), "incmd", &pb.PvpInCmdResp{Battleid: req.Battleid, Cmd: req.Cmd})
return
}