public bool destroy() { //向事件源删除监听器 GlobalEventSource.getInstance().removeListener((int)EventTypes.PlayerLeaveFuBen, CopyTeamEventListener.getInstance()); GlobalEventSource.getInstance().removeListener((int)EventTypes.PlayerLogout, CopyTeamEventListener.getInstance()); return(true); }
public bool initialize() { //注册指令处理器 TCPCmdDispatcher.getInstance().registerProcessor((int)TCPGameServerCmds.CMD_SPR_COPYTEAM, 5, CopyTeamCmdProcessor.getInstance(TCPGameServerCmds.CMD_SPR_COPYTEAM)); TCPCmdDispatcher.getInstance().registerProcessor((int)TCPGameServerCmds.CMD_SPR_REGEVENTNOTIFY, 4, CopyTeamCmdProcessor.getInstance(TCPGameServerCmds.CMD_SPR_REGEVENTNOTIFY)); TCPCmdDispatcher.getInstance().registerProcessor((int)TCPGameServerCmds.CMD_SPR_LISTCOPYTEAMS, 4, CopyTeamCmdProcessor.getInstance(TCPGameServerCmds.CMD_SPR_LISTCOPYTEAMS)); //向事件源注册监听器 GlobalEventSource.getInstance().registerListener((int)EventTypes.PlayerLeaveFuBen, CopyTeamEventListener.getInstance()); GlobalEventSource.getInstance().registerListener((int)EventTypes.PlayerLogout, CopyTeamEventListener.getInstance()); //初始化组队副本的列表 lock (SceneIndexRoleIDListDict) { lock (_SceneIndexDict) { foreach (var systemFuBenItem in GameManager.systemFuBenMgr.SystemXmlItemDict.Values) { int copyType = systemFuBenItem.GetIntValue("CopyType"); if (Global.ConstTeamCopyType == copyType) { int copyID = systemFuBenItem.GetIntValue("ID"); _SceneIndexDict.Add(copyID, copyID); SceneIndexRoleIDListDict.Add(copyID, new HashSet <int>()); } } } } //需要记录伤害排名的副本ID集合 RecordDamagesFuBenIDHashSet.Add(4000); return(true); }