Ejemplo n.º 1
0
        public uint Execute(PacketDistributed ipacket)
        {
            CG_ENTER_SCENE_OK packet = (CG_ENTER_SCENE_OK )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Ejemplo n.º 2
0
        public static Obj_MainPlayer CreateMainPlayerObj()
        {
            Obj_MainPlayer mainPlayerObj;
            //所有的玩家都创建自固定的PlayerRoot的Prefab,具体模型在PlayerRoot下建立Model节点
            GameObject mainPlayer = ResourceManager.InstantiateResource("Prefab/Model/PlayerRoot", "MainPlayer") as GameObject;

            if (null == mainPlayer)
            {
                return(null);
            }
            //先加载逻辑
            mainPlayerObj = mainPlayer.AddComponent <Obj_MainPlayer>();

            //赋值玩家guid和职业
            mainPlayerObj.Profession = GameManager.gameManager.PlayerDataPool.EnterSceneCache.Profession;
            mainPlayerObj.GUID       = GameManager.gameManager.PlayerDataPool.EnterSceneCache.Guid;

            ///临时代码 写死玩家 装备
            if (GameManager.gameManager.RunningScene == (int)GameDefine_Globe.SCENE_DEFINE.SCENE_FB_CABALINTRO)
            {
                mainPlayerObj.InitYanMenGuanWaiVisual();
            }
            else
            {
                mainPlayerObj.ModelVisualID   = GameManager.gameManager.PlayerDataPool.EnterSceneCache.ModelVisualID;
                mainPlayerObj.CurWeaponDataID = GameManager.gameManager.PlayerDataPool.EnterSceneCache.WeaponDataID;
                mainPlayerObj.WeaponEffectGem = GameManager.gameManager.PlayerDataPool.EnterSceneCache.WeaponEffectGem;
            }

            Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(mainPlayerObj.ModelVisualID, 0);

            if (tabItemVisual == null)
            {
                tabItemVisual = TableManager.GetItemVisualByID(GlobeVar.DEFAULT_VISUAL_ID, 0);
                if (tabItemVisual == null)
                {
                    return(null);
                }
            }

            int nCharmodelID = mainPlayerObj.GetCharModelID(tabItemVisual, mainPlayerObj.Profession);

            Tab_CharModel charModel = TableManager.GetCharModelByID(nCharmodelID, 0);

            if (charModel == null)
            {
                return(null);
            }

            //初始化动作资源路径
            mainPlayerObj.AnimationFilePath = charModel.AnimPath;
            mainPlayerObj.ModelID           = nCharmodelID;
            //进行进场经处理
            mainPlayerObj.OnPlayerEnterScene();
            mainPlayerObj.ChangeHeadPic();

            ObjManager cachedManager = Singleton <ObjManager> .Instance;

            if (cachedManager == null)
            {
                return(null);
            }

            cachedManager.AddPoolObj(mainPlayerObj.ServerID.ToString(), mainPlayerObj);

            //ObjMainPlayer初始化完成
            mainPlayerObj.CanLogic             = true;
            mainPlayerObj.transform.localScale = Vector3.one;
            //朝向屏幕
            mainPlayerObj.FaceToScreen();

            //向服务器发送EnterSceneOK消息包
            CG_ENTER_SCENE_OK packet = (CG_ENTER_SCENE_OK)PacketDistributed.CreatePacket(MessageID.PACKET_CG_ENTER_SCENE_OK);

            packet.IsOK = 1;
            packet.SendPacket();

            //m_MainPlayer.MountID = GameManager.gameManager.PlayerDataPool.EnterSceneCache.EnterSceneMountID;
            if (mainPlayerObj.IsDie())
            {
                mainPlayerObj.OnCorpse();
            }

            mainPlayerObj.VipCost          = GameManager.gameManager.PlayerDataPool.VipCost;
            mainPlayerObj.OtherCombatValue = GameManager.gameManager.PlayerDataPool.PoolCombatValue;
            mainPlayerObj.PaoShangState    = GameManager.gameManager.PlayerDataPool.EnterSceneCache.PaoShangState;
            //如果主角已经创建,清理服务器数据,防止重复建立,并且准备下次切换场景使用
            GameManager.gameManager.PlayerDataPool.EnterSceneCache.ClearEnterSceneInfo();

            cachedManager.m_bBeginAsycCreateMainPlayer = true;

            mainPlayerObj.BindParent = GameManager.gameManager.PlayerDataPool.MainBindParent;
            mainPlayerObj.UpdateBindChildren(GameManager.gameManager.PlayerDataPool.MainBindChildren);

            LoadModelToRoot(nCharmodelID, EResourceType.CharacterModel,
                            LoadModelComplete, mainPlayer, charModel, false);

            return(mainPlayerObj);
        }
Ejemplo n.º 3
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);
    }