/// <summary> /// 处理事件 /// </summary> /// <param name="eventObject"></param> public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; switch (eventType) { case (int)GlobalEventTypes.KuaFuNotifyEnterGame: { KuaFuNotifyEnterGameEvent e = eventObject as KuaFuNotifyEnterGameEvent; if (null != e) { KuaFuServerLoginData kuaFuServerLoginData = e.Arg as KuaFuServerLoginData; if (null != kuaFuServerLoginData) { lock (RuntimeData.Mutex) { RuntimeData.RoleIdKuaFuLoginDataDict[kuaFuServerLoginData.RoleId] = kuaFuServerLoginData; LogManager.WriteLog(LogTypes.Error, string.Format("通知角色ID={0}拥有进入跨服Boss资格,跨服GameID={1}", kuaFuServerLoginData.RoleId, kuaFuServerLoginData.GameId)); } } eventObject.Handled = true; } } break; } }
public void processEvent(EventObjectEx eventObject) { switch (eventObject.EventType) { case 24: { PreBangHuiRemoveMemberEventObject e = eventObject as PreBangHuiRemoveMemberEventObject; if (null != e) { eventObject.Handled = this.OnPreBangHuiRemoveMember(e); } break; } case 25: { PreBangHuiChangeZhiWuEventObject e2 = eventObject as PreBangHuiChangeZhiWuEventObject; if (null != e2) { eventObject.Handled = this.OnPreBangHuiChangeZhiWu(e2); } break; } } }
public bool fireEvent(EventObjectEx eventObj, int sceneType) { int eventType; if (null == eventObj || (eventType = eventObj.EventType) == -1) { return(eventObj.Result); } List <IEventListenerEx> copylistenerList = null; List <IEventListenerEx> listenerList = null; lock (Event2Scenelisteners) { Dictionary <int, List <IEventListenerEx> > dict; if (!Event2Scenelisteners.TryGetValue(eventType, out dict)) { return(eventObj.Result); } if (!dict.TryGetValue(sceneType, out listenerList)) { return(eventObj.Result); } copylistenerList = listenerList.GetRange(0, listenerList.Count); } dispatchEvent(eventObj, copylistenerList); return(eventObj.Result); }
public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; int num = eventType; if (num != 27) { if (num != 30) { if (num == 33) { PreMonsterInjureEventObject obj = eventObject as PreMonsterInjureEventObject; if (obj != null && obj.SceneType == 41) { Monster injureMonster = obj.Monster; if (injureMonster != null) { if (this.IsQiZhiExtensionID(injureMonster.MonsterInfo.ExtensionID)) { this.RuntimeData.KarenBattleDamage.TryGetValue(injureMonster.MonsterInfo.ExtensionID, out obj.Injure); eventObject.Handled = true; eventObject.Result = true; } } } } } else { OnCreateMonsterEventObject e = eventObject as OnCreateMonsterEventObject; if (null != e) { KarenBattleQiZhiConfig_West qiZhiConfig = e.Monster.Tag as KarenBattleQiZhiConfig_West; if (null != qiZhiConfig) { e.Monster.Camp = qiZhiConfig.BattleWhichSide; e.Result = true; e.Handled = true; } } } } else { ProcessClickOnNpcEventObject e2 = eventObject as ProcessClickOnNpcEventObject; if (null != e2) { if (null != e2.Npc) { int npcId = e2.Npc.NpcID; } if (this.OnSpriteClickOnNpc(e2.Client, e2.NpcId, e2.ExtensionID)) { e2.Result = false; e2.Handled = true; } } } }
/// <summary> /// 处理事件 /// </summary> /// <param name="eventObject"></param> public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; switch (eventType) { case (int)GlobalEventTypes.KuaFuRoleCountChange: { KuaFuFuBenRoleCountEvent e = eventObject as KuaFuFuBenRoleCountEvent; if (null != e) { GameClient client = GameManager.ClientMgr.FindClient(e.RoleId); if (null != client) { client.sendCmd((int)TCPGameServerCmds.CMD_SPR_HYSY_QUEUE_PLAYER_NUM, e.RoleCount); } eventObject.Handled = true; } } break; case (int)GlobalEventTypes.KuaFuNotifyEnterGame: { KuaFuNotifyEnterGameEvent e = eventObject as KuaFuNotifyEnterGameEvent; if (null != e) { KuaFuServerLoginData kuaFuServerLoginData = e.Arg as KuaFuServerLoginData; if (null != kuaFuServerLoginData) { GameClient client = GameManager.ClientMgr.FindClient(kuaFuServerLoginData.RoleId); if (null != client) { KuaFuServerLoginData clientKuaFuServerLoginData = Global.GetClientKuaFuServerLoginData(client); if (null != clientKuaFuServerLoginData) { clientKuaFuServerLoginData.RoleId = kuaFuServerLoginData.RoleId; clientKuaFuServerLoginData.GameId = kuaFuServerLoginData.GameId; clientKuaFuServerLoginData.GameType = kuaFuServerLoginData.GameType; clientKuaFuServerLoginData.EndTicks = kuaFuServerLoginData.EndTicks; clientKuaFuServerLoginData.ServerId = kuaFuServerLoginData.ServerId; clientKuaFuServerLoginData.ServerIp = kuaFuServerLoginData.ServerIp; clientKuaFuServerLoginData.ServerPort = kuaFuServerLoginData.ServerPort; clientKuaFuServerLoginData.FuBenSeqId = kuaFuServerLoginData.FuBenSeqId; client.sendCmd((int)TCPGameServerCmds.CMD_SPR_HYSY_ENTER_NOTIFY, clientKuaFuServerLoginData); } } } eventObject.Handled = true; } } break; } }
public void processEvent(EventObjectEx eventObject) { if (eventObject.EventType == 30) { OnCreateMonsterEventObject e = eventObject as OnCreateMonsterEventObject; if (null != e) { CreateMonsterTagInfo tagInfo = e.Monster.Tag as CreateMonsterTagInfo; if (null != tagInfo) { e.Monster.AllwaySearchEnemy = true; if (tagInfo.IsFort) { e.Monster.Camp = this._runtimeData.CampID; } e.Result = true; e.Handled = true; } } } if (eventObject.EventType == 33) { PreMonsterInjureEventObject obj = eventObject as PreMonsterInjureEventObject; if (obj != null && obj.SceneType == 34) { Monster attacker = obj.Attacker as Monster; Monster fortMonster = obj.Monster; if (attacker != null && fortMonster != null) { CreateMonsterTagInfo tagInfo = fortMonster.Tag as CreateMonsterTagInfo; if (tagInfo != null && tagInfo.IsFort) { int fubebSeqID = tagInfo.FuBenSeqId; if (fubebSeqID > 0) { CopyWolfSceneInfo scene = null; if (this._runtimeData.SceneDict.TryGetValue(fubebSeqID, out scene) && scene != null) { int injure = this._runtimeData.GetMonsterHurt(attacker.MonsterInfo.ExtensionID); int fortLife = (int)Math.Max(0.0, fortMonster.VLife - (double)injure); scene.ScoreData.FortLifeNow = fortLife; scene.ScoreData.FortLifeMax = (int)fortMonster.MonsterInfo.VLifeMax; GameManager.ClientMgr.BroadSpecialCopyMapMessage <CopyWolfScoreData>(1025, scene.ScoreData, scene.CopyMapInfo); obj.Injure = injure; eventObject.Handled = true; eventObject.Result = true; } } } } } } }
public void dispatchEvent(EventObjectEx eventObj, List <IEventListenerEx> listenerList) { foreach (IEventListenerEx listener in listenerList) { try { listener.processEvent(eventObj); if (eventObj.Handled) { break; } } catch (System.Exception ex) { LogManager.WriteLog(LogTypes.Error, string.Format("事件处理错误: {0},{1}", (EventTypes)eventObj.EventType, ex.ToString())); } } }
public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; int num = eventType; if (num == 10002) { CaiJiEventObject e = eventObject as CaiJiEventObject; if (null != e) { GameClient client = e.Source as GameClient; Monster monster = e.Target as Monster; this.OnCaiJiFinish(client, monster); eventObject.Handled = true; eventObject.Result = true; } } }
/// <summary> /// 处理事件 /// </summary> /// <param name="eventObject"></param> public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; switch (eventType) { case (int)GlobalEventTypes.KuaFuNotifyEnterGame: { KuaFuNotifyEnterGameEvent e = eventObject as KuaFuNotifyEnterGameEvent; if (null != e) { KuaFuServerLoginData kuaFuServerLoginData = e.Arg as KuaFuServerLoginData; if (null != kuaFuServerLoginData) { lock (RuntimeData.Mutex) { RuntimeData.RoleIdKuaFuLoginDataDict[kuaFuServerLoginData.RoleId] = kuaFuServerLoginData; LogManager.WriteLog(LogTypes.Error, string.Format("通知角色ID={0}拥有进入勇者战场资格,跨服GameID={1}", kuaFuServerLoginData.RoleId, kuaFuServerLoginData.GameId)); } } eventObject.Handled = true; } } break; case (int)GlobalEventTypes.PlayerCaiJi: { CaiJiEventObject e = eventObject as CaiJiEventObject; if (null != e) { GameClient client = e.Source as GameClient; Monster monster = e.Target as Monster; OnCaiJiFinish(client, monster); eventObject.Handled = true; eventObject.Result = true; } } break; } }
public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; int num = eventType; if (num == 10001) { KuaFuNotifyEnterGameEvent e = eventObject as KuaFuNotifyEnterGameEvent; if (null != e) { KuaFuServerLoginData kuaFuServerLoginData = e.Arg as KuaFuServerLoginData; if (null != kuaFuServerLoginData) { lock (this.RuntimeData.Mutex) { this.RuntimeData.RoleIdKuaFuLoginDataDict[kuaFuServerLoginData.RoleId] = kuaFuServerLoginData; LogManager.WriteLog(LogTypes.Error, string.Format("通知角色ID={0}拥有进入跨服Boss资格,跨服GameID={1}", kuaFuServerLoginData.RoleId, kuaFuServerLoginData.GameId), null, true); } } eventObject.Handled = true; } } }
public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; switch (eventType) { case (int)GlobalEventTypes.KFSpreadCount: { KFNotifySpreadCountGameEvent e = eventObject as KFNotifySpreadCountGameEvent; if (null != e) { GameClient client = GameManager.ClientMgr.FindClient(e.PRoleID); if (null != client) { initRoleSpreadData(client); } eventObject.Handled = true; } } break; } }
public void processEvent(EventObjectEx eventObject) { switch (eventObject.EventType) { case 10000: { KuaFuFuBenRoleCountEvent e = eventObject as KuaFuFuBenRoleCountEvent; if (null != e) { GameClient client = GameManager.ClientMgr.FindClient(e.RoleId); if (null != client) { client.sendCmd(1303, e.RoleCount.ToString(), false); } eventObject.Handled = true; } break; } case 10001: { KuaFuNotifyEnterGameEvent e2 = eventObject as KuaFuNotifyEnterGameEvent; if (null != e2) { KuaFuServerLoginData kuaFuServerLoginData = e2.Arg as KuaFuServerLoginData; if (null != kuaFuServerLoginData) { GameClient client = GameManager.ClientMgr.FindClient(kuaFuServerLoginData.RoleId); if (null != client) { KuaFuServerLoginData clientKuaFuServerLoginData = Global.GetClientKuaFuServerLoginData(client); if (null != clientKuaFuServerLoginData) { clientKuaFuServerLoginData.RoleId = kuaFuServerLoginData.RoleId; clientKuaFuServerLoginData.GameId = kuaFuServerLoginData.GameId; clientKuaFuServerLoginData.GameType = kuaFuServerLoginData.GameType; clientKuaFuServerLoginData.EndTicks = kuaFuServerLoginData.EndTicks; clientKuaFuServerLoginData.ServerId = kuaFuServerLoginData.ServerId; clientKuaFuServerLoginData.ServerIp = kuaFuServerLoginData.ServerIp; clientKuaFuServerLoginData.ServerPort = kuaFuServerLoginData.ServerPort; clientKuaFuServerLoginData.FuBenSeqId = kuaFuServerLoginData.FuBenSeqId; client.sendCmd(1304, string.Format("{0}:{1}", kuaFuServerLoginData.GameId, e2.TeamCombatAvg), false); } } } eventObject.Handled = true; } break; } case 10004: { KuaFuNotifyCopyCancelEvent e3 = eventObject as KuaFuNotifyCopyCancelEvent; GameClient client = GameManager.ClientMgr.FindClient(e3.RoleId); if (client != null) { client.sendCmd(1306, string.Format("{0}:{1}", e3.GameId, e3.Reason), false); client.ClientData.SignUpGameType = 0; } eventObject.Handled = true; break; } case 10005: { KuaFuNotifyRealEnterGameEvent e4 = eventObject as KuaFuNotifyRealEnterGameEvent; if (e4 != null) { GameClient client = GameManager.ClientMgr.FindClient(e4.RoleId); if (client != null) { GlobalNew.RecordSwitchKuaFuServerLog(client); client.sendCmd <KuaFuServerLoginData>(14000, Global.GetClientKuaFuServerLoginData(client), false); client.ClientData.SignUpGameType = 0; } } eventObject.Handled = true; break; } } }
public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; switch (eventType) { case (int)GlobalEventTypes.KFAllyStart: { int index = 0; GameClient client = null; while ((client = GameManager.ClientMgr.GetNextClient(ref index)) != null) { lock (AllyClient.getInstance()._Mutex) { client.ClientData.AllyList = null; UnionAllyInit(client); } } } break; case (int)GlobalEventTypes.Ally: { KFNotifyAllyGameEvent e = eventObject as KFNotifyAllyGameEvent; int unionID = (int)e.UnionID; List <AllyData> list = AllyClient.getInstance().HAllyDataList(unionID, EAllyDataType.Ally); int index = 0; GameClient client = null; while ((client = GameManager.ClientMgr.GetNextClient(ref index)) != null) { lock (AllyClient.getInstance()._Mutex) { if (client.ClientData.Faction != unionID) { continue; } client.ClientData.AllyList = list; } } } break; case (int)GlobalEventTypes.AllyLog: { KFNotifyAllyLogGameEvent e = eventObject as KFNotifyAllyLogGameEvent; if (null != e) { List <AllyLogData> list = (List <AllyLogData>)e.LogList; if (list != null && list.Count > 0) { foreach (var log in list) { DBAllyLogAdd(log, GameManager.LocalServerId); } } eventObject.Handled = true; } } break; case (int)GlobalEventTypes.AllyTip: { KFNotifyAllyTipGameEvent e = eventObject as KFNotifyAllyTipGameEvent; if (null != e) { int unionID = (int)e.UnionID; int tipID = (int)e.TipID; BangHuiDetailData unionData = Global.GetBangHuiDetailData(-1, unionID, GameManager.ServerId); if (unionData != null && IsAllyOpen(unionData.QiLevel)) { GameClient client = GameManager.ClientMgr.FindClient(unionData.BZRoleID); if (client == null) { return; } lock (AllyClient.getInstance()._Mutex) { if (tipID == (int)ActivityTipTypes.AllyAccept) { int countAlly = AllyClient.getInstance().AllyCount(unionID); if (countAlly > 0 && IsAllyMax(countAlly)) { return; } } client._IconStateMgr.AddFlushIconState((ushort)ActivityTipTypes.Ally, false); client._IconStateMgr.AddFlushIconState((ushort)tipID, false); client._IconStateMgr.SendIconStateToClient(client); client._IconStateMgr.AddFlushIconState((ushort)ActivityTipTypes.Ally, true); client._IconStateMgr.AddFlushIconState((ushort)tipID, true); client._IconStateMgr.SendIconStateToClient(client); switch (tipID) { case (int)ActivityTipTypes.AllyAccept: client.AllyTip[0] = 1; break; case (int)ActivityTipTypes.AllyMsg: client.AllyTip[1] = 1; break; } } } eventObject.Handled = true; } } break; } }
public void processEvent(EventObjectEx eventObject) { if (eventObject.EventType == (int)EventTypes.OnCreateMonster) { OnCreateMonsterEventObject e = eventObject as OnCreateMonsterEventObject; if (null != e) { CreateMonsterTagInfo tagInfo = e.Monster.Tag as CreateMonsterTagInfo; if (null != tagInfo) { e.Monster.AllwaySearchEnemy = true; if (tagInfo.IsFort) { e.Monster.Camp = _runtimeData.CampID; } e.Result = true; e.Handled = true; } } } if (eventObject.EventType == (int)EventTypes.PreMonsterInjure) { PreMonsterInjureEventObject obj = eventObject as PreMonsterInjureEventObject; if (obj != null && obj.SceneType == (int)SceneUIClasses.CopyWolf) { Monster attacker = obj.Attacker as Monster; Monster fortMonster = obj.Monster; if (attacker == null || fortMonster == null) { return; } CreateMonsterTagInfo tagInfo = fortMonster.Tag as CreateMonsterTagInfo; if (tagInfo != null) { int fubebSeqID = tagInfo.FuBenSeqId; //int.TryParse(fortMonster.Tag.ToString(), out fubebSeqID); if (fubebSeqID <= 0) { return; } CopyWolfSceneInfo scene = null; if (!_runtimeData.SceneDict.TryGetValue(fubebSeqID, out scene) || scene == null) { return; } //====Monsters=== //int injure = _runtimeData.GetMonsterHurt(attacker.MonsterInfo.ExtensionID); ////injure = 1; //int fortLife = (int)Math.Max(0, fortMonster.VLife - injure); //scene.ScoreData.FortLifeNow = fortLife; //scene.ScoreData.FortLifeMax = (int)fortMonster.MonsterInfo.VLifeMax; //GameManager.ClientMgr.BroadSpecialCopyMapMessage((int)TCPGameServerCmds.CMD_SPR_COPY_WOLF_SCORE_INFO, scene.ScoreData, scene.CopyMapInfo); // obj.Injure = injure; eventObject.Handled = true; eventObject.Result = true; } } } }
public void processEvent(EventObjectEx eventObject) { }
public void processEvent(EventObjectEx eventObject) { int eventType = eventObject.EventType; switch (eventType) { case (int)GlobalEventTypes.KuaFuRoleCountChange: { KuaFuFuBenRoleCountEvent e = eventObject as KuaFuFuBenRoleCountEvent; if (null != e) { GameClient client = GameManager.ClientMgr.FindClient(e.RoleId); if (null != client) { client.sendCmd((int)TCPGameServerCmds.CMD_MORI_NTF_ROLE_COUNT, e.RoleCount.ToString()); } eventObject.Handled = true; } } break; case (int)GlobalEventTypes.KuaFuNotifyEnterGame: { KuaFuNotifyEnterGameEvent e = eventObject as KuaFuNotifyEnterGameEvent; if (null != e) { KuaFuServerLoginData kuaFuServerLoginData = e.Arg as KuaFuServerLoginData; if (null != kuaFuServerLoginData) { GameClient client = GameManager.ClientMgr.FindClient(kuaFuServerLoginData.RoleId); if (null != client) { KuaFuServerLoginData clientKuaFuServerLoginData = Global.GetClientKuaFuServerLoginData(client); if (null != clientKuaFuServerLoginData) { clientKuaFuServerLoginData.RoleId = kuaFuServerLoginData.RoleId; clientKuaFuServerLoginData.GameId = kuaFuServerLoginData.GameId; clientKuaFuServerLoginData.GameType = kuaFuServerLoginData.GameType; clientKuaFuServerLoginData.EndTicks = kuaFuServerLoginData.EndTicks; clientKuaFuServerLoginData.ServerId = kuaFuServerLoginData.ServerId; clientKuaFuServerLoginData.ServerIp = kuaFuServerLoginData.ServerIp; clientKuaFuServerLoginData.ServerPort = kuaFuServerLoginData.ServerPort; clientKuaFuServerLoginData.FuBenSeqId = kuaFuServerLoginData.FuBenSeqId; client.sendCmd((int)TCPGameServerCmds.CMD_MORI_NTF_ENTER, string.Format("{0}:{1}", kuaFuServerLoginData.GameId, e.TeamCombatAvg)); } } } eventObject.Handled = true; } } break; case (int)GlobalEventTypes.KuaFuCopyCanceled: { KuaFuNotifyCopyCancelEvent e = eventObject as KuaFuNotifyCopyCancelEvent; GameClient client = GameManager.ClientMgr.FindClient(e.RoleId); if (client != null) { client.sendCmd((int)TCPGameServerCmds.CMD_NTF_MORI_COPY_CANCEL, string.Format("{0}:{1}", e.GameId, e.Reason)); client.ClientData.SignUpGameType = (int)GameTypes.None; } // MoRiJudgeClient.getInstance().ChangeRoleState(e.RoleId, KuaFuRoleStates.None); eventObject.Handled = true; } break; case (int)GlobalEventTypes.KuaFuNotifyRealEnterGame: { KuaFuNotifyRealEnterGameEvent e = eventObject as KuaFuNotifyRealEnterGameEvent; if (e != null) { GameClient client = GameManager.ClientMgr.FindClient(e.RoleId); if (client != null) { GlobalNew.RecordSwitchKuaFuServerLog(client); client.sendCmd((int)TCPGameServerCmds.CMD_SPR_KF_SWITCH_SERVER, Global.GetClientKuaFuServerLoginData(client)); client.ClientData.SignUpGameType = (int)GameTypes.None; } } eventObject.Handled = true; } break; } }
public void processEvent(EventObjectEx eventObject) { switch (eventObject.EventType) { case 10026: { KFNotifyAllyGameEvent e = eventObject as KFNotifyAllyGameEvent; int unionID = e.UnionID; List <AllyData> list = AllyClient.getInstance().HAllyDataList(unionID, EAllyDataType.Ally); int index = 0; GameClient client; while ((client = GameManager.ClientMgr.GetNextClient(ref index, false)) != null) { lock (AllyClient.getInstance()._Mutex) { if (client.ClientData.Faction == unionID) { client.ClientData.AllyList = list; } } } break; } case 10027: { KFNotifyAllyLogGameEvent e2 = eventObject as KFNotifyAllyLogGameEvent; if (null != e2) { List <AllyLogData> list2 = (List <AllyLogData>)e2.LogList; if (list2 != null && list2.Count > 0) { foreach (AllyLogData log in list2) { this.DBAllyLogAdd(log, 0); } } eventObject.Handled = true; } break; } case 10028: { KFNotifyAllyTipGameEvent e3 = eventObject as KFNotifyAllyTipGameEvent; if (null != e3) { int unionID = e3.UnionID; int tipID = e3.TipID; BangHuiDetailData unionData = Global.GetBangHuiDetailData(-1, unionID, GameManager.ServerId); if (unionData != null && this.IsAllyOpen(unionData.QiLevel)) { GameClient client = GameManager.ClientMgr.FindClient(unionData.BZRoleID); if (client == null) { break; } lock (AllyClient.getInstance()._Mutex) { if (tipID == 14112) { int countAlly = AllyClient.getInstance().AllyCount(unionID); if (countAlly > 0 && this.IsAllyMax(countAlly)) { break; } } client._IconStateMgr.AddFlushIconState(14111, false); client._IconStateMgr.AddFlushIconState((ushort)tipID, false); client._IconStateMgr.SendIconStateToClient(client); client._IconStateMgr.AddFlushIconState(14111, true); client._IconStateMgr.AddFlushIconState((ushort)tipID, true); client._IconStateMgr.SendIconStateToClient(client); switch (tipID) { case 14112: client.AllyTip[0] = 1; break; case 14113: client.AllyTip[1] = 1; break; } } } eventObject.Handled = true; } break; } case 10029: { int index = 0; GameClient client; while ((client = GameManager.ClientMgr.GetNextClient(ref index, false)) != null) { lock (AllyClient.getInstance()._Mutex) { client.ClientData.AllyList = null; this.UnionAllyInit(client); AllyClient.getInstance().HRankClear(); AllyClient.getInstance().HRankTopList(1); } } break; } } }