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);
    }
        public uint Execute(PacketDistributed ipacket)
        {
            GC_MOVE packet = (GC_MOVE )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Пример #3
0
    //根据服务器GC_MOVE包插入新的路经点
    public void InsertAutoMovePoint(GC_MOVE packet)
    {
        if (Cutscene.CutsceneManager.Instance.IsPlayingCutscene)
        {
            return;
        }

        //if (null == m_posList || null == m_BindObj)
        //{
        //    return;
        //}
        if (null == m_BindObj)
        {
            return;
        }

        //校验ServerID
        if (packet.Serverid != m_BindObj.ServerID)
        {
            return;
        }

        bool isChange = false;

        for (int i = 0; i < packet.posserialCount; ++i)
        {
            AutoMovePos pos = new AutoMovePos();
            pos.m_nPosSerial = packet.posserialList[i];
            pos.m_fDstPosX   = ((float)packet.posxList[i]) / 100;
            pos.m_fDstPosZ   = ((float)packet.poszList[i]) / 100;

            //措施,当发现堆积点过多的时候,清空一下,只插入头一个点
            //if (m_posList.Count >= 32)
            //{
            //    ResetAutoMove();
            //}
            //m_posList.Add(pos);

            if (IsRightPosSerial(pos.m_nPosSerial))
            {
                m_nCurPosSerial = pos.m_nPosSerial;
                m_AutoMovePos   = pos;
                isChange        = true;
            }
        }


        if (isChange && m_AutoMovePos.m_nPosSerial >= 0)
        {
            BeginMove(m_AutoMovePos);
        }
    }
Пример #4
0
        public uint Execute(PacketDistributed ipacket)
        {
            GC_MOVE packet = (GC_MOVE)ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }

            //临时代码,先返回,调试的时候打开
            //return (uint)PACKET_EXE.PACKET_EXE_CONTINUE;

            //判断ServerID
            if (packet.Serverid == GlobeVar.INVALID_ID)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }

            //查找该NPC
            Obj_Character obj = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(packet.Serverid);

            if (null == obj)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }

            //主玩家,消息包无效
            if (obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }

            //主玩家伙伴,消息包无效
            if (obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_FELLOW)
            {
                Obj_Fellow objFellow = obj as Obj_Fellow;
                if (objFellow.OwnerObjId == Singleton <ObjManager> .GetInstance().MainPlayer.ServerID)
                {
                    return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
                }
            }

            if (obj.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER)
            {
                Obj_OtherPlayer objOther = obj as Obj_OtherPlayer;
                if (null != objOther)
                {
                    if (objOther.QingGongState == true || objOther.IsLightState == true || objOther.BindParent > 0)
                    {
                        return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
                    }

                    if (objOther.AnimLogic != null && objOther.AnimLogic.CurAnimData != null)
                    {
                        if (objOther.AnimLogic.CurAnimData.AnimID == (int)CharacterDefine.CharacterAnimId.Hit)
                        {
                            objOther.AnimLogic.Stop();
                        }
                        else if (objOther.SkillCore != null && objOther.SkillCore.UsingSkillBaseInfo != null && objOther.SkillCore.UsingSkillBaseInfo.IsMove != 1)
                        {
                            int nAnimationId = objOther.SkillCore.UsingSkillStartAni;
                            while (nAnimationId != GlobeVar.INVALID_ID)
                            {
                                if (nAnimationId == objOther.AnimLogic.CurAnimData.AnimID)
                                {
                                    objOther.AnimLogic.Stop();
                                    break;
                                }

                                Tab_Animation tabAnimation = TableManager.GetAnimationByID(nAnimationId, 0);
                                if (tabAnimation == null)
                                {
                                    break;
                                }

                                nAnimationId = tabAnimation.NextAnimId;
                            }
                        }
                    }

                    if (objOther.SkillCore.UsingSkillStartAni != GlobeVar.INVALID_ID && objOther.SkillCore.UsingSkillBaseInfo == null)
                    {
                        objOther.SkillCore.UsingSkillStartAni = GlobeVar.INVALID_ID;
                    }
                }
            }

            //查找Obj是否绑定AutoMove组件
            AutoMove autoMove = obj.AutoMoveComponent;

            if (null != autoMove)
            {
                autoMove.InsertAutoMovePoint(packet);
            }

            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Пример #5
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);
    }
Пример #6
0
    public static PacketDistributed CreatePacket(MessageID packetID)
    {
        PacketDistributed packet = null;

        switch (packetID)
        {
        case MessageID.PACKET_CG_ABANDONMISSION: { packet = new CG_ABANDONMISSION(); } break;

        case MessageID.PACKET_CG_ACCEPTMISSION: { packet = new CG_ACCEPTMISSION(); } break;

        case MessageID.PACKET_CG_ASK_SETCOMMONFLAG: { packet = new CG_ASK_SETCOMMONFLAG(); } break;

        case MessageID.PACKET_CG_COMPLETEMISSION: { packet = new CG_COMPLETEMISSION(); } 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_ENTER_SCENE_OK: { packet = new CG_ENTER_SCENE_OK(); } 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_PING: { packet = new CG_PING(); } break;

        case MessageID.PACKET_CG_REQ_CHANGE_SCENE: { packet = new CG_REQ_CHANGE_SCENE(); } break;

        case MessageID.PACKET_CG_REQ_RANDOMNAME: { packet = new CG_REQ_RANDOMNAME(); } break;

        case MessageID.PACKET_CG_SELECTROLE: { packet = new CG_SELECTROLE(); } break;

        case MessageID.PACKET_CG_SYNC_POS: { packet = new CG_SYNC_POS(); } break;

        case MessageID.PACKET_GC_ABANDONMISSION_RET: { packet = new GC_ABANDONMISSION_RET(); } break;

        case MessageID.PACKET_GC_ACCEPTMISSION_RET: { packet = new GC_ACCEPTMISSION_RET(); } break;

        case MessageID.PACKET_GC_ASK_COMMONFLAG_RET: { packet = new GC_ASK_COMMONFLAG_RET(); } break;

        case MessageID.PACKET_GC_BROADCAST_ATTR: { packet = new GC_BROADCAST_ATTR(); } break;

        case MessageID.PACKET_GC_COMPLETEMISSION_RET: { packet = new GC_COMPLETEMISSION_RET(); } 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_CREATE_PLAYER: { packet = new GC_CREATE_PLAYER(); } break;

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

        case MessageID.PACKET_GC_ENTER_SCENE: { packet = new GC_ENTER_SCENE(); } 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_MISSION_PARAM: { packet = new GC_MISSION_PARAM(); } break;

        case MessageID.PACKET_GC_MISSION_STATE: { packet = new GC_MISSION_STATE(); } break;

        case MessageID.PACKET_GC_MISSION_SYNC_MISSIONLIST: { packet = new GC_MISSION_SYNC_MISSIONLIST(); } break;

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

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

        case MessageID.PACKET_GC_RET_PING: { packet = new GC_RET_PING(); } break;

        case MessageID.PACKET_GC_RET_RANDOMNAME: { packet = new GC_RET_RANDOMNAME(); } break;

        case MessageID.PACKET_GC_SELECTROLE_RET: { packet = new GC_SELECTROLE_RET(); } break;

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

        case MessageID.PACKET_GC_SYNC_COMMONDATA: { packet = new GC_SYNC_COMMONDATA(); } break;

        case MessageID.PACKET_GC_SYNC_COMMONFLAG: { packet = new GC_SYNC_COMMONFLAG(); } break;

        case MessageID.PACKET_GC_SYNC_POS: { packet = new GC_SYNC_POS(); } break;

        case MessageID.PACKET_GC_SYN_ATTR: { packet = new GC_SYN_ATTR(); } break;
        }
        if (null != packet)
        {
            packet.packetID = packetID;
        }
        return(packet);
    }