| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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.ErrorF("receive SSGetServerCompetitionAck msg=%v", msg)
- model2.CompetitionMag.DoUpdateCompetitionInfoFromDB(msg)
- if msg.TowerInfo != nil {
- if model2.TowerMag != nil {
- model2.TowerMag.DoUpdateTowerInfoFromDB(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)
- })
- }
|