Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
        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;
            }
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 5
0
        /// <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;
            }
        }
Ejemplo n.º 6
0
 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;
                         }
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 7
0
 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()));
         }
     }
 }
Ejemplo n.º 8
0
        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;
                }
            }
        }
Ejemplo n.º 9
0
        /// <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;
            }
        }
Ejemplo n.º 10
0
        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;
                }
            }
        }
Ejemplo n.º 11
0
        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;
            }
        }
Ejemplo n.º 12
0
        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;
            }
            }
        }
Ejemplo n.º 13
0
        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;
            }
        }
Ejemplo n.º 14
0
        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;
                    }
                }
            }
        }
Ejemplo n.º 15
0
 public void processEvent(EventObjectEx eventObject)
 {
 }
Ejemplo n.º 16
0
        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;
            }
        }
Ejemplo n.º 17
0
        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;
            }
            }
        }