public static PacketDistributed CreatePacket(MessageID packetID)
    {
        PacketDistributed packet = null;

        switch (packetID)
        {
        case MessageID.PACKET_CG_CHAT: { packet = new CG_CHAT(); } break;

        case MessageID.PACKET_CG_CONNECTED_HEARTBEAT: { packet = new CG_CONNECTED_HEARTBEAT(); } break;

        case MessageID.PACKET_CG_FIGHT: { packet = new CG_FIGHT(); } break;

        case MessageID.PACKET_CG_LEAVE_COPYSCENE: { packet = new CG_LEAVE_COPYSCENE(); } break;

        case MessageID.PACKET_CG_LOGIN: { packet = new CG_LOGIN(); } break;

        case MessageID.PACKET_CG_MOVE: { packet = new CG_MOVE(); } break;

        case MessageID.PACKET_CG_REQ_NEAR_LIST: { packet = new CG_REQ_NEAR_LIST(); } break;

        case MessageID.PACKET_GC_ATTACKFLY: { packet = new GC_ATTACKFLY(); } break;

        case MessageID.PACKET_GC_CHAT: { packet = new GC_CHAT(); } break;

        case MessageID.PACKET_GC_CONNECTED_HEARTBEAT: { packet = new GC_CONNECTED_HEARTBEAT(); } break;

        case MessageID.PACKET_GC_DELETE_OBJ: { packet = new GC_DELETE_OBJ(); } break;

        case MessageID.PACKET_GC_FORCE_SETPOS: { packet = new GC_FORCE_SETPOS(); } break;

        case MessageID.PACKET_GC_LOGIN_RET: { packet = new GC_LOGIN_RET(); } break;

        case MessageID.PACKET_GC_MOVE: { packet = new GC_MOVE(); } break;

        case MessageID.PACKET_GC_NEAR_MARCHLIST: { packet = new GC_NEAR_MARCHLIST(); } break;

        case MessageID.PACKET_GC_NOTICE: { packet = new GC_NOTICE(); } break;

        case MessageID.PACKET_GC_PLAY_EFFECT: { packet = new GC_PLAY_EFFECT(); } break;

        case MessageID.PACKET_GC_REMOVEEFFECT: { packet = new GC_REMOVEEFFECT(); } break;

        case MessageID.PACKET_GC_RET_USE_SKILL: { packet = new GC_RET_USE_SKILL(); } break;

        case MessageID.PACKET_GC_STOP: { packet = new GC_STOP(); } break;

        case MessageID.PACKET_GC_TELEMOVE: { packet = new GC_TELEMOVE(); } break;

        case MessageID.PACKET_GC_UPDATE_ANIMATION_STATE: { packet = new GC_UPDATE_ANIMATION_STATE(); } break;

        case MessageID.PACKET_GC_UPDATE_NEEDIMPACTINFO: { packet = new GC_UPDATE_NEEDIMPACTINFO(); } break;

        case MessageID.PACKET_GC_UPDATE_SCENE_INSTACTIVATION: { packet = new GC_UPDATE_SCENE_INSTACTIVATION(); } break;
        }
        if (null != packet)
        {
            packet.packetID = packetID;
        }
        return(packet);
    }
Ejemplo n.º 2
0
        public uint Execute(PacketDistributed ipacket)
        {
            GC_UPDATE_NEEDIMPACTINFO packet = (GC_UPDATE_NEEDIMPACTINFO )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Ejemplo n.º 3
0
    public static PacketDistributed CreatePacket(MessageID packetID)
    {
        PacketDistributed packet = null;

        switch (packetID)
        {
        case MessageID.PACKET_CG_ASSIGN_HERO: { packet = new CG_ASSIGN_HERO(); } break;

        case MessageID.PACKET_CG_BATTLEINFOR: { packet = new CG_BATTLEINFOR(); } break;

        case MessageID.PACKET_CG_BATTLEPREPARE: { packet = new CG_BATTLEPREPARE(); } break;

        case MessageID.PACKET_CG_BUILDING_LEVELUP: { packet = new CG_Building_LevelUp(); } break;

        case MessageID.PACKET_CG_CHAT: { packet = new CG_CHAT(); } break;

        case MessageID.PACKET_CG_CONNECTED_HEARTBEAT: { packet = new CG_CONNECTED_HEARTBEAT(); } break;

        case MessageID.PACKET_CG_CREATEROLE: { packet = new CG_CREATEROLE(); } break;

        case MessageID.PACKET_CG_FIGHT: { packet = new CG_FIGHT(); } break;

        case MessageID.PACKET_CG_LEAVE_COPYSCENE: { packet = new CG_LEAVE_COPYSCENE(); } break;

        case MessageID.PACKET_CG_LOGIN: { packet = new CG_LOGIN(); } break;

        case MessageID.PACKET_CG_MARCH_MOVE: { packet = new CG_MARCH_MOVE(); } break;

        case MessageID.PACKET_CG_MOVE: { packet = new CG_MOVE(); } break;

        case MessageID.PACKET_CG_OBJPOSLIST: { packet = new CG_OBJPOSLIST(); } break;

        case MessageID.PACKET_CG_REQ_NEAR_LIST: { packet = new CG_REQ_NEAR_LIST(); } break;

        case MessageID.PACKET_CG_ROBOT_OPEN: { packet = new CG_ROBOT_OPEN(); } break;

        case MessageID.PACKET_CG_SEND_MARCH: { packet = new CG_SEND_MARCH(); } break;

        case MessageID.PACKET_CG_SKILL_USE: { packet = new CG_SKILL_USE(); } break;

        case MessageID.PACKET_CG_TROOP_TRAIN: { packet = new CG_Troop_Train(); } break;

        case MessageID.PACKET_GC_ASSIGN_HERO: { packet = new GC_ASSIGN_HERO(); } break;

        case MessageID.PACKET_GC_ATTACKFLY: { packet = new GC_ATTACKFLY(); } break;

        case MessageID.PACKET_GC_BATTLEEND: { packet = new GC_BATTLEEND(); } break;

        case MessageID.PACKET_GC_BATTLEINFOR: { packet = new GC_BATTLEINFOR(); } break;

        case MessageID.PACKET_GC_BATTLEPREPARE: { packet = new GC_BATTLEPREPARE(); } break;

        case MessageID.PACKET_GC_BATTLESTART: { packet = new GC_BattleStart(); } break;

        case MessageID.PACKET_GC_BUILDING_LEVELUP: { packet = new GC_Building_LevelUp(); } break;

        case MessageID.PACKET_GC_CHAT: { packet = new GC_CHAT(); } break;

        case MessageID.PACKET_GC_CONNECTED_HEARTBEAT: { packet = new GC_CONNECTED_HEARTBEAT(); } break;

        case MessageID.PACKET_GC_CREATEROLE_RET: { packet = new GC_CREATEROLE_RET(); } break;

        case MessageID.PACKET_GC_DELETE_OBJ: { packet = new GC_DELETE_OBJ(); } break;

        case MessageID.PACKET_GC_FIGHT: { packet = new GC_FIGHT(); } break;

        case MessageID.PACKET_GC_FORCE_SETPOS: { packet = new GC_FORCE_SETPOS(); } break;

        case MessageID.PACKET_GC_LOGIN_QUEUE_STATUS: { packet = new GC_LOGIN_QUEUE_STATUS(); } break;

        case MessageID.PACKET_GC_LOGIN_RET: { packet = new GC_LOGIN_RET(); } break;

        case MessageID.PACKET_GC_MARCH_MOVE: { packet = new GC_MARCH_MOVE(); } break;

        case MessageID.PACKET_GC_MOVE: { packet = new GC_MOVE(); } break;

        case MessageID.PACKET_GC_NEAR_MARCHLIST: { packet = new GC_NEAR_MARCHLIST(); } break;

        case MessageID.PACKET_GC_NOTICE: { packet = new GC_NOTICE(); } break;

        case MessageID.PACKET_GC_OBJCOMMANDPURSUE: { packet = new GC_OBJCOMMANDPURSUE(); } break;

        case MessageID.PACKET_GC_OBJGETHURT: { packet = new GC_OBJGETHURT(); } break;

        case MessageID.PACKET_GC_OBJPOSLIST: { packet = new GC_OBJPOSLIST(); } break;

        case MessageID.PACKET_GC_OBJPREPAREFORATTACK: { packet = new GC_OBJPREPAREFORATTACK(); } break;

        case MessageID.PACKET_GC_PLAY_EFFECT: { packet = new GC_PLAY_EFFECT(); } break;

        case MessageID.PACKET_GC_REMOVEEFFECT: { packet = new GC_REMOVEEFFECT(); } break;

        case MessageID.PACKET_GC_RET_USE_SKILL: { packet = new GC_RET_USE_SKILL(); } break;

        case MessageID.PACKET_GC_ROBOT_OPEN: { packet = new GC_ROBOT_OPEN(); } break;

        case MessageID.PACKET_GC_SEND_MARCH: { packet = new GC_SEND_MARCH(); } break;

        case MessageID.PACKET_GC_STOP: { packet = new GC_STOP(); } break;

        case MessageID.PACKET_GC_TELEMOVE: { packet = new GC_TELEMOVE(); } break;

        case MessageID.PACKET_GC_TROOPTRAIN_OVER: { packet = new GC_TroopTrain_Over(); } break;

        case MessageID.PACKET_GC_TROOP_TRAIN: { packet = new GC_Troop_Train(); } break;

        case MessageID.PACKET_GC_UPDATE_ANIMATION_STATE: { packet = new GC_UPDATE_ANIMATION_STATE(); } break;

        case MessageID.PACKET_GC_UPDATE_MARCH: { packet = new GC_Update_March(); } break;

        case MessageID.PACKET_GC_UPDATE_NEEDIMPACTINFO: { packet = new GC_UPDATE_NEEDIMPACTINFO(); } break;

        case MessageID.PACKET_GC_UPDATE_SCENE_INSTACTIVATION: { packet = new GC_UPDATE_SCENE_INSTACTIVATION(); } break;
        }
        if (null != packet)
        {
            packet.packetID = packetID;
        }
        return(packet);
    }
        public uint Execute(PacketDistributed ipacket)
        {
            GC_UPDATE_NEEDIMPACTINFO packet = (GC_UPDATE_NEEDIMPACTINFO)ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            bool bHasRemoveOP = false;

            for (int nImpactIndex = 0; nImpactIndex < packet.impactIdCount; nImpactIndex++)
            {
                if (packet.GetImpactId(nImpactIndex) == -1)
                {
                    continue;
                }
                //添加
                if (nImpactIndex < packet.isAddCount && packet.GetIsAdd(nImpactIndex) == 1)
                {
                    ClientImpactInfo _impactInfo = new ClientImpactInfo();
                    _impactInfo.CleanUp();
                    _impactInfo.ImpactId = packet.GetImpactId(nImpactIndex);
                    if (nImpactIndex < packet.impactLogicIdCount)
                    {
                        _impactInfo.ImpactLogicId = packet.GetImpactLogicId(nImpactIndex);
                    }
                    if (nImpactIndex < packet.isForeverCount)
                    {
                        _impactInfo.IsForever = (packet.GetIsForever(nImpactIndex) == 1 ? true : false);
                    }
                    if (nImpactIndex < packet.remainTimeCount)
                    {
                        _impactInfo.RemainTime = packet.GetRemainTime(nImpactIndex) / 1.0f;
                    }
                    GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Add(_impactInfo);

                    if (_impactInfo.ImpactId == GlobeVar.MOUNTCRASH_IMPACTID)
                    {
                        if (BackCamerControll.Instance() != null)
                        {
                            BackCamerControll.Instance().PlaySceneEffect(434);
                        }
                    }
                }
                else //移除
                {
                    for (int i = 0; i < GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Count; i++)
                    {
                        if (GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].ImpactId == packet.GetImpactId(nImpactIndex))
                        {
                            if (GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].ImpactId == GlobeVar.MOUNTCRASH_IMPACTID)
                            {
                                if (BackCamerControll.Instance() != null)
                                {
                                    BackCamerControll.Instance().StopSceneEffect(434, false);
                                }
                            }

                            if (GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].ImpactId >= GlobeVar.XP_IMPACT_MIN_ID && GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].ImpactId <= GlobeVar.XP_IMPACT_MAX_ID)
                            {
                                bHasRemoveOP = true;
                            }
                            ClientImpactInfo _TmpInfo = new ClientImpactInfo();
                            _TmpInfo.CleanUp();
                            GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i] = _TmpInfo;
                        }
                    }
                }
            }
            //清除无效的
            List <ClientImpactInfo> impactList = new List <ClientImpactInfo>();

            for (int i = 0; i < GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Count; ++i)
            {
                if (GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i].IsVaild() == false)
                {
                    impactList.Add(GameManager.gameManager.PlayerDataPool.ClientImpactInfo[i]);
                }
            }

            for (int i = 0; i < impactList.Count; ++i)
            {
                GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Remove(impactList[i]);
            }
            //更新主角头像图标
            if (PlayerFrameLogic.Instance() != null)
            {
                PlayerFrameLogic.Instance().UpdateBuffIcon();
            }

            Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer;

            if (_mainPlayer != null && _mainPlayer.GetCurrentChangeState() != _mainPlayer.CurChangeState)
            {
                _mainPlayer.CurChangeState = _mainPlayer.GetCurrentChangeState();
                if (SkillBarLogic.Instance() != null)
                {
                    SkillBarLogic.Instance().OnClickXpClose();
                }

                if ((int)Games.GlobeDefine.GameDefine_Globe.ChangeModeState.CHANGE_2 == _mainPlayer.CurChangeState ||
                    (int)Games.GlobeDefine.GameDefine_Globe.ChangeModeState.CHANGE_1 == _mainPlayer.CurChangeState)
                {
                    Singleton <ObjManager> .GetInstance().ChangeMainPlayer();
                }
                else
                {
                    if ((int)Games.GlobeDefine.GameDefine_Globe.ChangeModeState.NORMAL == _mainPlayer.CurChangeState)
                    {
                        Singleton <ObjManager> .GetInstance().ChangeMainPlayerToNormal();
                    }
                }
                if (SkillBarLogic.Instance() != null)
                {
                    SkillBarLogic.Instance().CleanUpSkillBarInfo();
                    SkillBarLogic.Instance().UpdateSkillBarInfo();
                    SkillBarLogic.Instance().CleanUpAttackBarInfo();
                    SkillBarLogic.Instance().SetChangeModeAttackBtn();
                    SkillBarLogic.Instance().UpdateSkillActiveByChangeState(_mainPlayer.CurChangeState);
                }
            }
            //             //当移除了变身之后,需要恢复原先的技能
            //             if ( bHasRemoveOP && _mainPlayer != null && SkillBarLogic.Instance()
            //                  && _mainPlayer.CurChangeState == (int)Games.GlobeDefine.GameDefine_Globe.ChangeModeState.NORMAL)
            //             {
            //                 SkillBarLogic.Instance().ShowAfterChangeSkill(false);
            //                 SkillBarLogic.Instance().CleanUpSkillBarInfo();
            //                 SkillBarLogic.Instance().SaveNotChangeModeSkillBarInfo();
            //                 SkillBarLogic.Instance().OnClickXpClose();
            //             }

            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }