package msg import ( "rocommon" "rocommon/util" "roserver/baseserver/model" model2 "roserver/game/model" "roserver/serverproto" ) func init() { serverproto.Handle_GAME_Default = func(ev rocommon.ProcEvent) { //todo... switch e := ev.Msg().(type) { case *serverproto.ClientClosedACK: //处理客户端断开连接操作 model2.RoleMag.KickFromGate(e.Id, e.ServiceId) //直接回复可以使用ServiceReplay,后续通过其他服务器处理的话需要调用接口ReplayGate //model.ServiceReplay(ev, ack) case *rocommon.SessionClosed: //服务器间断开连接 util.InfoF("rocommon.SessionClosed Server Closed msg=%v", e) //只处理gate端口操作 if e.CloseSId != "" { //model2.RoleMag.GateCloseKickRole(e.CloseSId) //添加了服务器之前的断线重连后,无法设置回在线状态,所以这边不做离线处理 } } } //获取当前已经开启的赛季ID(from db) serverproto.Handle_GAME_SSGetServerCompetitionAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSGetServerCompetitionAck) util.DebugF("receive SSGetServerCompetitionAck msg=%v", msg) model2.CompetitionMag.DoUpdateCompetitionInfoFromDB(msg) }) //social通知game当前在线的玩家数量 serverproto.Handle_GAME_SSPlayerOnlineNumNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) { msg := ev.Msg().(*serverproto.SSPlayerOnlineNumNtf) util.DebugF("receive SSPlayerOnlineNumNtf msg=%v", msg) model2.RoleMag.PlayerOnlineNumFromSocial(msg.OnlineNum) }) }