Exemplo n.º 1
0
        void InitFashionFakeObj(GameObject Obj, int nModelVisualID, Tab_FakeObject FakeObjTable, int nProfession = -1)
        {
            // 重载模型
            Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(nModelVisualID, 0);

            if (tabItemVisual == null)
            {
                return;
            }

            int nCharModelID = -1;

            if (Singleton <ObjManager> .Instance != null && Singleton <ObjManager> .Instance.MainPlayer != null)
            {
                nCharModelID = Singleton <ObjManager> .Instance.MainPlayer.GetCharModelID(tabItemVisual);
            }
            else
            {
                nCharModelID = GetCharModelID(tabItemVisual, nProfession);
            }

            Tab_CharModel tabCharModel = TableManager.GetCharModelByID(nCharModelID, 0);

            if (tabCharModel == null)
            {
                return;
            }

            Singleton <ObjManager> .GetInstance().ReloadModel(Obj, tabCharModel.ResPath, Singleton <ObjManager> .GetInstance().AsycLoadFakeObjOver, FakeObjTable, this);
        }
Exemplo n.º 2
0
        public static void ChangeMainPLayerObjToNormal()
        {
            Obj_MainPlayer main = Singleton <ObjManager> .Instance.MainPlayer;

            if (main == null)
            {
                LogModule.ErrorLog("ReloadMainPLayerObj called burt Singleton<ObjManager>.Instance.MainPlayer is null!");
                return;
            }
            Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(main.ModelVisualID, 0);

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

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

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

            if (charModel == null)
            {
                return;
            }

            main.AnimationFilePath = charModel.AnimPath;
            main.ModelID           = nCharmodelID;
            LoadModelToRoot(nCharmodelID, EResourceType.CharacterModel,
                            LoadModelComplete, main.gameObject, charModel, false);
        }
Exemplo n.º 3
0
        public static void ChangeOtherPLayerObjToNormal(Obj_OtherPlayer otherPlayer)
        {
            Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(otherPlayer.ModelVisualID, 0);

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

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

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

            if (charModel == null)
            {
                return;
            }

            otherPlayer.AnimationFilePath = charModel.AnimPath;
            otherPlayer.ModelID           = nCharmodelID;
            LoadModelToRoot(nCharmodelID, EResourceType.CharacterModel,
                            LoadModelComplete, otherPlayer.gameObject, charModel, false);
        }
Exemplo n.º 4
0
        void InitFashionFakeObj(GameObject Obj, int nModelVisualID, Tab_FakeObject FakeObjTable)
        {
            if (Singleton <ObjManager> .Instance.MainPlayer == null)
            {
                return;
            }

            // 重载模型
            Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(nModelVisualID, 0);

            if (tabItemVisual == null)
            {
                return;
            }

            int nCharModelID = GetCharModelID(tabItemVisual, GameManager.gameManager.OtherPlayerData.Profession);

            Tab_CharModel tabCharModel = TableManager.GetCharModelByID(nCharModelID, 0);

            if (tabCharModel == null)
            {
                return;
            }

            Singleton <ObjManager> .GetInstance().ReloadModel(Obj, tabCharModel.ResPath, Singleton <ObjManager> .GetInstance().OtherView_AsycLoadFakeObjOver, FakeObjTable, this);
        }
Exemplo n.º 5
0
    void HandleFitOnFashion(int nGoodsId, int nFashionID)
    {
        m_FitOnVisual.FellowGoodsID = GlobeVar.INVALID_ID;
        m_FitOnVisual.MountGoodsID  = GlobeVar.INVALID_ID;

        m_FitOnVisual.FellowID = GlobeVar.INVALID_ID;
        m_FitOnVisual.MountID  = GlobeVar.INVALID_ID;

        Tab_FashionData tabFashionData = TableManager.GetFashionDataByID(nFashionID, 0);

        if (tabFashionData == null)
        {
            return;
        }

        Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(tabFashionData.ItemVisualID, 0);

        if (tabItemVisual == null)
        {
            return;
        }

        int nCharModelID = Singleton <ObjManager> .Instance.MainPlayer.GetCharModelID(tabItemVisual);

        Tab_CharModel tabCharModel = TableManager.GetCharModelByID(nCharModelID, 0);

        if (tabCharModel == null)
        {
            return;
        }

        Tab_FakeObject tabFakeObject = TableManager.GetFakeObjectByID(m_FakeObjID, 0);

        if (tabFakeObject == null)
        {
            return;
        }

        m_FitOnVisual.FashionGoodsID  = nFashionID;
        m_FitOnVisual.FashionID       = nFashionID;
        m_FitOnVisual.FashionDeadline = m_eDeadline;

        // 装备 时装 不同时预览
        m_FitOnVisual.ArmorGoodsID = GlobeVar.INVALID_ID;
        m_FitOnVisual.ArmorID      = GlobeVar.INVALID_ID;

        List <object> param = new List <object>();

        param.Add(tabFakeObject);
        param.Add(m_FitOnFakeObj);
        param.Add(m_FitOnVisual);

        Singleton <ObjManager> .GetInstance().ReloadModel(m_FitOnGameObject,
                                                          tabCharModel.ResPath,
                                                          Singleton <ObjManager> .GetInstance().AsycLoadFitOnObjOver,
                                                          param);
    }
Exemplo n.º 6
0
    public void UpdateFashionView()
    {
        if (null == Singleton <ObjManager> .Instance.MainPlayer)
        {
            return;
        }

        int            nModelVisualID  = Singleton <ObjManager> .Instance.MainPlayer.ModelVisualID;
        bool           isDefaultVisual = false;
        Tab_ItemVisual tabItemVisual   = null;

        tabItemVisual = TableManager.GetItemVisualByID(nModelVisualID, 0);
        if (tabItemVisual == null)
        {
            isDefaultVisual = true;
        }
        else
        {
            isDefaultVisual = false;
        }

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

        int nCharModelID = Singleton <ObjManager> .Instance.MainPlayer.GetCharModelID(tabItemVisual);

        Tab_CharModel tabCharModel = TableManager.GetCharModelByID(nCharModelID, 0);

        if (tabCharModel == null)
        {
            return;
        }

        Tab_FakeObject tabFakeObject = TableManager.GetFakeObjectByID(m_PlayerFakeObjID, 0);

        if (tabFakeObject == null)
        {
            return;
        }

        Singleton <ObjManager> .GetInstance().ReloadModel(m_FakeObjGameObject,
                                                          tabCharModel.ResPath,
                                                          Singleton <ObjManager> .GetInstance().AsycLoadFakeObjOver,
                                                          tabFakeObject,
                                                          m_PlayerFakeObj);
    }
Exemplo n.º 7
0
        /// <summary>
        /// 后期可以 看情况 跟OtherPlayer的创建 合并
        /// </summary>
        /// <param name="initData"></param>
        public static void CreateZombieUser(Obj_Init_Data initData)
        {
            if (null == initData)
            {
                return;
            }

            //mwh 根据RoleBase的ID获得路径
            Tab_RoleBaseAttr roleBaseAttr = TableManager.GetRoleBaseAttrByID(initData.m_RoleBaseID, 0);

            if (null == roleBaseAttr)
            {
                return;
            }
            initData.m_CharModelID = roleBaseAttr.CharModelID;
            GameObject otherPlayer = ResourceManager.InstantiateResource("Prefab/Model/OtherPlayerRoot", initData.m_ServerID.ToString()) as GameObject;

            if (null != otherPlayer)
            {
                Obj_ZombieUser objZombiePlayer = otherPlayer.AddComponent <Obj_ZombieUser>();

                if (null != objZombiePlayer && objZombiePlayer.Init(initData))
                {
                    objZombiePlayer.CanLogic = true;
                }

                Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(objZombiePlayer.ModelVisualID, 0);
                if (tabItemVisual == null)
                {
                    tabItemVisual = TableManager.GetItemVisualByID(GlobeVar.DEFAULT_VISUAL_ID, 0);
                    if (tabItemVisual == null)
                    {
                        return;
                    }
                }
                int           nCharmodelID = objZombiePlayer.GetCharModelID(tabItemVisual, objZombiePlayer.Profession);
                Tab_CharModel charModel    = TableManager.GetCharModelByID(nCharmodelID, 0);
                if (charModel == null)
                {
                    return;
                }
                Singleton <ObjManager> .Instance.AddPoolObj(objZombiePlayer.ServerID.ToString(), objZombiePlayer);

                LoadModelToRoot(nCharmodelID, EResourceType.CharacterModel, LoadModelComplete, otherPlayer, charModel,
                                null);
            }
        }
Exemplo n.º 8
0
    void HandleFitOnArmor(int nGoodsId, int nDataID, Tab_EquipAttr tabArmorEquipAttr)
    {
        Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(tabArmorEquipAttr.ModelId, 0);

        if (tabItemVisual == null)
        {
            return;
        }

        int nCharModelID = Singleton <ObjManager> .Instance.MainPlayer.GetCharModelID(tabItemVisual);

        Tab_CharModel tabCharModel = TableManager.GetCharModelByID(nCharModelID, 0);

        if (tabCharModel == null)
        {
            return;
        }

        Tab_FakeObject tabFakeObject = TableManager.GetFakeObjectByID(m_FakeObjID, 0);

        if (tabFakeObject == null)
        {
            return;
        }

        m_FitOnVisual.ArmorGoodsID = nGoodsId;
        m_FitOnVisual.ArmorID      = nDataID;

        // 装备 时装 不同时预览
        m_FitOnVisual.FashionGoodsID  = GlobeVar.INVALID_ID;
        m_FitOnVisual.FashionID       = GlobeVar.INVALID_ID;
        m_FitOnVisual.FashionDeadline = YuanBaoShopItemLogic.DEADLINE_PRICE.PRICE_FOREVER;

        List <object> param = new List <object>();

        param.Add(tabFakeObject);
        param.Add(m_FitOnFakeObj);
        param.Add(m_FitOnVisual);

        Singleton <ObjManager> .GetInstance().ReloadModel(m_FitOnGameObject,
                                                          tabCharModel.ResPath,
                                                          Singleton <ObjManager> .GetInstance().AsycLoadFitOnObjOver,
                                                          param);
    }
    public void FitOnFashion(int nFashionID)
    {
        Tab_FashionData tabFashionData = TableManager.GetFashionDataByID(nFashionID, 0);

        if (tabFashionData == null)
        {
            return;
        }

        Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(tabFashionData.ItemVisualID, 0);

        if (tabItemVisual == null)
        {
            return;
        }

        int nCharModelID = Singleton <ObjManager> .Instance.MainPlayer.GetCharModelID(tabItemVisual);

        Tab_CharModel tabCharModel = TableManager.GetCharModelByID(nCharModelID, 0);

        if (tabCharModel == null)
        {
            return;
        }

        Tab_FakeObject tabFakeObject = TableManager.GetFakeObjectByID(m_PlayerFakeObjID, 0);

        if (tabFakeObject == null)
        {
            return;
        }

        List <object> param = new List <object>();

        param.Add(tabFakeObject);
        param.Add(m_PlayerFakeObj);

        Singleton <ObjManager> .GetInstance().ReloadModel(m_FakeObjGameObject,
                                                          tabCharModel.ResPath,
                                                          Singleton <ObjManager> .GetInstance().AsycLoadRoleViewFitOnObjOver,
                                                          param);

        GameManager.gameManager.ActiveScene.ShowFakeObj();
    }
Exemplo n.º 10
0
 // 参考 mainPlayer 的函数,由于此时 mainPlayer 还没有创建,再写个一样的
 private int GetCharModelID(Tab_ItemVisual tabItemVisual, int nProfession = GlobeVar.INVALID_ID)
 {
     if (nProfession == (int)CharacterDefine.PROFESSION.SHAOLIN)
     {
         return(tabItemVisual.CharModelIDShaoLin);
     }
     else if (nProfession == (int)CharacterDefine.PROFESSION.TIANSHAN)
     {
         return(tabItemVisual.CharModelIDTianShan);
     }
     else if (nProfession == (int)CharacterDefine.PROFESSION.DALI)
     {
         return(tabItemVisual.CharModelIDDaLi);
     }
     else if (nProfession == (int)CharacterDefine.PROFESSION.XIAOYAO)
     {
         return(tabItemVisual.CharModelIDXiaoYao);
     }
     else if (nProfession == (int)CharacterDefine.PROFESSION.GAIBANG)
     {
         return(tabItemVisual.CharModelIDGaiBang);
     }
     return(GlobeVar.INVALID_ID);
 }
Exemplo n.º 11
0
        public void InitFakeObjWeapon(GameObject Obj, int nCurWeaponID, Tab_FakeObject FakeObjTable)
        {
            // 重载武器
            bool           defaultVisual = false;
            Tab_ItemVisual WeaponVisual  = null;
            Tab_EquipAttr  tabEquipAttr  = TableManager.GetEquipAttrByID(nCurWeaponID, 0);

            if (tabEquipAttr != null)
            {
                Tab_ItemVisual tabWeaponVisual = TableManager.GetItemVisualByID(tabEquipAttr.ModelId, 0);
                if (tabWeaponVisual != null)
                {
                    WeaponVisual = tabWeaponVisual;
                }
                else
                {
                    defaultVisual = true;
                }
            }
            else
            {
                defaultVisual = true;
            }

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

                WeaponVisual = tabDefaultVisual;
            }

            int nWeaponModelID = -1;

            if (WeaponVisual == null)
            {
                return;
            }


            if (Singleton <ObjManager> .Instance.MainPlayer == null)
            {
                if (UIControllerBase <RoleChooseLogic> .Instance() != null)
                {
                    int nProfession = -1;
                    nProfession = UIControllerBase <RoleChooseLogic> .Instance().GetRoleProfess();

                    if (nProfession == (int)CharacterDefine.PROFESSION.SHAOLIN)
                    {
                        nWeaponModelID = WeaponVisual.WeaponModelIDShaoLin;
                    }
                    else if (nProfession == (int)CharacterDefine.PROFESSION.TIANSHAN)
                    {
                        nWeaponModelID = WeaponVisual.WeaponModelIDTianShan;
                    }
                    else if (nProfession == (int)CharacterDefine.PROFESSION.DALI)
                    {
                        nWeaponModelID = WeaponVisual.WeaponModelIDDaLi;
                    }
                    else if (nProfession == (int)CharacterDefine.PROFESSION.XIAOYAO)
                    {
                        nWeaponModelID = WeaponVisual.WeaponModelIDXiaoYao;
                    }
                    else if (nProfession == (int)CharacterDefine.PROFESSION.GAIBANG)
                    {
                        nWeaponModelID = WeaponVisual.WeaponModelIDGaiBang;
                    }
                }
            }

            else
            {
                nWeaponModelID = Singleton <ObjManager> .Instance.MainPlayer.GetWeaponModelID(WeaponVisual);
            }


            Tab_WeaponModel tabWeaponModel = TableManager.GetWeaponModelByID(nWeaponModelID, 0);

            if (tabWeaponModel == null)
            {
                return;
            }

            int playerProfession = -1;

            if (Singleton <ObjManager> .Instance.MainPlayer == null)
            {
                if (UIControllerBase <RoleChooseLogic> .Instance())
                {
                    playerProfession = UIControllerBase <RoleChooseLogic> .Instance().GetRoleProfess();
                }
            }

            else
            {
                playerProfession = Singleton <ObjManager> .Instance.MainPlayer.Profession;
            }

            if (playerProfession == (int)CharacterDefine.PROFESSION.TIANSHAN ||
                playerProfession == (int)CharacterDefine.PROFESSION.GAIBANG)
            {
                LoadWeapon(Obj, "Weapon_L", tabWeaponModel.ResPath + "_L", tabWeaponModel);
                LoadWeapon(Obj, "Weapon_R", tabWeaponModel.ResPath + "_R", tabWeaponModel);
            }
            else if (playerProfession == (int)CharacterDefine.PROFESSION.XIAOYAO)
            {
                LoadWeapon(Obj, "Weapon_R", tabWeaponModel.ResPath + "_R", tabWeaponModel);
            }
            else
            {
                LoadWeapon(Obj, "Weapon_R", tabWeaponModel.ResPath + "_R", tabWeaponModel);
            }
        }
Exemplo n.º 12
0
    void HandleFitOnWeapon(int nGoodsId, int nDataID, Tab_EquipAttr tabWeaponEquipAttr)
    {
        Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(tabWeaponEquipAttr.ModelId, 0);

        if (tabItemVisual == null)
        {
            return;
        }

        int nWeaponModelID = Singleton <ObjManager> .Instance.MainPlayer.GetWeaponModelID(tabItemVisual);

        Tab_WeaponModel tabWeaponModel = TableManager.GetWeaponModelByID(nWeaponModelID, 0);

        if (tabWeaponModel == null)
        {
            return;
        }

        /// 因为可能显示过伙伴 坐骑的模型 所以要重载玩家模型预览 设置玩家外观
        Tab_ItemVisual tabModelVisual = null;

        if (m_FitOnVisual.FashionID != GlobeVar.INVALID_ID)
        {
            Tab_FashionData tabFashionData = TableManager.GetFashionDataByID(m_FitOnVisual.FashionID, 0);
            if (tabFashionData == null)
            {
                return;
            }
            tabModelVisual = TableManager.GetItemVisualByID(tabFashionData.ItemVisualID, 0);
        }
        else if (m_FitOnVisual.ArmorID != GlobeVar.INVALID_ID)
        {
            Tab_EquipAttr tabArmorEquipAttr = TableManager.GetEquipAttrByID(m_FitOnVisual.ArmorID, 0);
            if (tabArmorEquipAttr == null)
            {
                return;
            }
            tabModelVisual = TableManager.GetItemVisualByID(tabArmorEquipAttr.ModelId, 0);
        }
        else
        {
            if (Singleton <ObjManager> .Instance.MainPlayer.ModelVisualID == GlobeVar.INVALID_ID)
            {
                tabModelVisual = TableManager.GetItemVisualByID(GlobeVar.DEFAULT_VISUAL_ID, 0);
            }
            else
            {
                tabModelVisual = TableManager.GetItemVisualByID(Singleton <ObjManager> .Instance.MainPlayer.ModelVisualID, 0);
            }
        }

        if (tabModelVisual == null)
        {
            return;
        }
        // 设置结束 下面与武器一起重载

        int nCharModelID = Singleton <ObjManager> .Instance.MainPlayer.GetCharModelID(tabModelVisual);

        Tab_CharModel tabCharModel = TableManager.GetCharModelByID(nCharModelID, 0);

        if (tabCharModel == null)
        {
            return;
        }

        Tab_FakeObject tabFakeObject = TableManager.GetFakeObjectByID(m_FakeObjID, 0);

        if (tabFakeObject == null)
        {
            return;
        }

        m_FitOnVisual.WeaponGoodsID = nGoodsId;
        m_FitOnVisual.WeaponID      = nDataID;

        List <object> param = new List <object>();

        param.Add(tabFakeObject);
        param.Add(m_FitOnFakeObj);
        param.Add(m_FitOnVisual);

        Singleton <ObjManager> .GetInstance().ReloadModel(m_FitOnGameObject,
                                                          tabCharModel.ResPath,
                                                          Singleton <ObjManager> .GetInstance().AsycLoadFitOnObjOver,
                                                          param);
    }
    void UpdateFakeObj(Tab_EquipAttr eqTab = null)
    {
        int weaponId = -1;
        int modelId  = -1;

        if (eqTab != null)
        {
            EquipSubClass equipSubClass = (EquipSubClass)eqTab.Component;
            if (equipSubClass == EquipSubClass.WEAPON)
            {
                weaponId = eqTab.Id;
                FakeObjExtraData.weaponId = weaponId;
            }
            modelId = eqTab.ModelId;
        }
        //Debug.LogError("EQTab:"+eqTab.Id+","+modelId);
        int nModelVisualID = Singleton <ObjManager> .Instance.MainPlayer.ModelVisualID;
        //Debug.LogError("nModelVisualID is:" + nModelVisualID);

        bool           isDefaultVisual = false;
        Tab_ItemVisual tabItemVisual   = TableManager.GetItemVisualByID(nModelVisualID, 0);

        if (tabItemVisual == null)
        {
            isDefaultVisual = true;
        }
        else
        {
            isDefaultVisual = false;
        }

        if (isDefaultVisual)
        {
            tabItemVisual = TableManager.GetItemVisualByID(GlobeVar.DEFAULT_VISUAL_ID, 0);
            if (tabItemVisual == null)
            {
                return;
            }
        }
        //武器不影响外观
        if (weaponId == -1 && modelId != -1)
        {
            tabItemVisual = TableManager.GetItemVisualByID(modelId, 0);
        }

        int nCharModelID = Singleton <ObjManager> .Instance.MainPlayer.GetCharModelID(tabItemVisual);

        //Debug.LogError("nCharModelID is:" + nCharModelID);
        Tab_CharModel tabCharModel = TableManager.GetCharModelByID(nCharModelID, 0);

        if (tabCharModel == null)
        {
            return;
        }
        Tab_FakeObject tabFakeObject = TableManager.GetFakeObjectByID(m_PlayerFakeObjID, 0);

        if (tabFakeObject == null)
        {
            return;
        }
        //m_PlayerFakeObj = new FakeObject();
        Singleton <ObjManager> .GetInstance().ReloadModel(m_FakeObjGameObject,
                                                          tabCharModel.ResPath,
                                                          Singleton <ObjManager> .GetInstance().AsycLoadFakeObjOver,
                                                          tabFakeObject,
                                                          m_FakeObj
                                                          // weaponId:
                                                          );

        GameManager.gameManager.ActiveScene.ShowFakeObj();
    }
Exemplo n.º 14
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);
        }
Exemplo n.º 15
0
        /// <summary>
        /// 创建其他玩家  这里可以优化一下  代码里获取 ModelId 的部分 可能是重复的 等具体功能应用后 替换成obj.ModelId
        /// </summary>
        /// <param name="initData"></param>
        public static void CreateOtherPlayer(Obj_Init_Data initData)
        {
            if (null == initData)
            {
                return;
            }
            GameObject otherPlayer = ResourceManager.InstantiateResource("Prefab/Model/OtherPlayerRoot", initData.m_ServerID.ToString()) as GameObject;

            if (null != otherPlayer)
            {
                //加载逻辑体,同时异步加载渲染体
                Obj_OtherPlayer objOtherPlayer = otherPlayer.AddComponent <Obj_OtherPlayer>();

                ////////////////////////////////临时代码 写死玩家 装备  其他玩家跟主玩家相同
                //
                //                 initData.m_ModelVisualID = 18;
                //                 initData.m_WeaponDataID = 52188;
                //                 initData.m_WeaponEffectGem = 8909;

                ////////////////////////////////临时代码 写死玩家 装备

                if (objOtherPlayer.Init(initData))
                {
                    objOtherPlayer.CanLogic = true;
                }



                Tab_ItemVisual tabItemVisual = TableManager.GetItemVisualByID(objOtherPlayer.ModelVisualID, 0);
                if (tabItemVisual == null)
                {
                    tabItemVisual = TableManager.GetItemVisualByID(GlobeVar.DEFAULT_VISUAL_ID, 0);
                    if (tabItemVisual == null)
                    {
                        return;
                    }
                }
                int nCharmodelID = objOtherPlayer.GetCharModelID(tabItemVisual, objOtherPlayer.Profession);

                //变身的特殊处理
                int nChangeModelId = objOtherPlayer.GetCharModelIDByChangeState(objOtherPlayer.Profession, objOtherPlayer.CurChangeState);

                //如果在变身状态,就用变身状态的模型ID去创建
                if (nChangeModelId != GlobeVar.INVALID_ID)
                {
                    nCharmodelID = nChangeModelId;
                }

                Tab_CharModel charModel = TableManager.GetCharModelByID(nCharmodelID, 0);
                if (charModel == null)
                {
                    return;
                }
                ObjManager cachedManager = Singleton <ObjManager> .Instance;
                if (cachedManager == null)
                {
                    return;
                }

                cachedManager.AddPoolObj(objOtherPlayer.ServerID.ToString(), objOtherPlayer);
                if (!cachedManager.CheckOhterPlayerVisibleState(initData, charModel, objOtherPlayer))
                {
                    return;
                }
                cachedManager.TestOtherPlayerVisible(objOtherPlayer);

                objOtherPlayer.IsLoadingModel = true;
                LoadModelToRoot(nCharmodelID, EResourceType.CharacterModel, LoadModelComplete, otherPlayer, charModel, objOtherPlayer.CurChangeState == (int)GameDefine_Globe.ChangeModeState.CHANGE_2 || objOtherPlayer.CurChangeState == (int)GameDefine_Globe.ChangeModeState.CHANGE_1);
            }
        }
Exemplo n.º 16
0
        public void InitFakeObjWeapon(GameObject Obj, int nCurWeaponID, Tab_FakeObject FakeObjTable)
        {
            // 重载武器
            bool           defaultVisual = false;
            Tab_ItemVisual WeaponVisual  = null;
            Tab_EquipAttr  tabEquipAttr  = TableManager.GetEquipAttrByID(nCurWeaponID, 0);

            if (tabEquipAttr != null)
            {
                Tab_ItemVisual tabWeaponVisual = TableManager.GetItemVisualByID(tabEquipAttr.ModelId, 0);
                if (tabWeaponVisual != null)
                {
                    WeaponVisual = tabWeaponVisual;
                }
                else
                {
                    defaultVisual = true;
                }
            }
            else
            {
                defaultVisual = true;
            }

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

                WeaponVisual = tabDefaultVisual;
            }

            if (WeaponVisual == null)
            {
                return;
            }

            int nWeaponModelID = GetWeaponModelID(WeaponVisual, GameManager.gameManager.OtherPlayerData.Profession);

            Tab_WeaponModel tabWeaponModel = TableManager.GetWeaponModelByID(nWeaponModelID, 0);

            if (tabWeaponModel == null)
            {
                return;
            }

            if (GameManager.gameManager.OtherPlayerData == null)
            {
                return;
            }
            if (GameManager.gameManager.OtherPlayerData.Profession == (int)CharacterDefine.PROFESSION.TIANSHAN ||
                GameManager.gameManager.OtherPlayerData.Profession == (int)CharacterDefine.PROFESSION.GAIBANG)
            {
                LoadOtherViewWapon(Obj, "Weapon_L", tabWeaponModel.ResPath + "_L", new Vector3(tabWeaponModel.LeftRotX, tabWeaponModel.LeftRotY, tabWeaponModel.LeftRotZ));
                LoadOtherViewWapon(Obj, "Weapon_R", tabWeaponModel.ResPath + "_R", new Vector3(tabWeaponModel.RightRotX, tabWeaponModel.RightRotY, tabWeaponModel.RightRotZ));
            }
            else if (GameManager.gameManager.OtherPlayerData.Profession == (int)CharacterDefine.PROFESSION.XIAOYAO)
            {
                LoadOtherViewWapon(Obj, "Weapon_R", tabWeaponModel.ResPath + "_R", Vector3.zero);
            }
            else
            {
                LoadOtherViewWapon(Obj, "Weapon_R", tabWeaponModel.ResPath + "_R", new Vector3(tabWeaponModel.RightRotX, tabWeaponModel.RightRotY, tabWeaponModel.RightRotZ));
            }
        }