Beispiel #1
0
        private void LoadFigters()
        {
            for (int i = 0; i < 2; i++)
            {
                if (i == mLocalIndex)
                {
                    continue;
                }

                MsgData_sResArenaMemVo player = ArenaFighters[i];
                int modelID = SceneLoader.GetClothesModelID(player.FashionDress, player.Dress, player.Job, 0);

                GameObject obj = CoreEntry.gSceneLoader.CreateGameObject(modelID);
                if (obj == null)
                {
                    return;
                }
                ActorObj actorObject = null;
                actorObject = obj.GetComponent <ActorObj>();
                if (null != actorObject)
                {
                    UnityEngine.Object.DestroyImmediate(actorObject);
                }

                PlayerAgent agent = obj.GetComponent <PlayerAgent>();
                if (null != agent)
                {
                    agent.enabled = false;
                }

                Vector3 position = Vector3.zero;
                position.x = initPos[1 - mLocalIndex].x;
                position.z = initPos[1 - mLocalIndex].y;
                position.y = CommonTools.GetTerrainHeight(new Vector2(position.x, position.y));

                obj.transform.position   = position;
                obj.transform.rotation   = Quaternion.identity;
                obj.transform.localScale = Vector3.one;

                OtherPlayer otherPlayer = obj.AddComponent <OtherPlayer>();
                otherPlayer.Init(modelID, modelID, player.RoleID, "", true);
                otherPlayer.ServerID = player.RoleID;
                CoreEntry.gActorMgr.AddActorObj(otherPlayer);

                int weaponID = SceneLoader.GetWeaponModelID(player.FashionWeapon, player.ShenBing, player.Weapon, player.Job);
                LoadWeapon(obj.transform, weaponID, player.Job == 4);
            }
        }
Beispiel #2
0
        public GameObject LoadVirtualPlayer(MsgData_sSceneObjectEnterVirtualPlayer player)
        {
            int modelID = SceneLoader.GetClothesModelID(player.FashionDress, player.Dress, player.Job, 0);

            Vector3    position   = CommonTools.ServerPosToClient(player.PosX, player.PosY);
            Vector3    eulerAngle = CommonTools.ServerDirToClient(player.Dir);
            GameObject obj        = CreateGameObject(modelID, position, eulerAngle);

            ActorObj actorObject = null;

            actorObject = obj.GetComponent <ActorObj>();
            if (null != actorObject)
            {
                UnityEngine.Object.DestroyImmediate(actorObject);
            }

            PlayerAgent agent = obj.GetComponent <PlayerAgent>();

            if (null != agent)
            {
                agent.enabled = false;
            }

            /*Vector3 position = Vector3.zero;
             * position.x = player.PosX;
             * position.z = player.PosY;
             * position.y = CommonTools.GetTerrainHeight(new Vector2(position.x, position.y));
             *
             * obj.transform.position = position;
             * obj.transform.rotation = Quaternion.identity;
             * obj.transform.localScale = Vector3.one;*/

            OtherPlayer otherPlayer = obj.AddComponent <OtherPlayer>();

            otherPlayer.Init(modelID, modelID, player.Guid, "", true);
            otherPlayer.InitEnterHumanAttr(player);
            CoreEntry.gActorMgr.AddActorObj(otherPlayer);
            otherPlayer.Health.OnCreateHPBar();

            StartCoroutine(ChangeVirtualPlayerShow(otherPlayer as OtherPlayer, player));

            int weaponID = SceneLoader.GetWeaponModelID(player.FashionWeapon, player.ShenBing, player.Weapon, player.Job);

            LoadWeapon(obj.transform, weaponID, player.Job == 4);

            return(obj);
        }
Beispiel #3
0
        private void DoFightOver()
        {
            ActorObj winner = null;
            ActorObj loser  = null;

            if (mFightResult == 0)
            {
                winner = CoreEntry.gActorMgr.MainPlayer;
                loser  = CoreEntry.gActorMgr.GetPlayerActorByServerID(ArenaFighters[1 - mLocalIndex].RoleID);
            }
            else
            {
                winner = CoreEntry.gActorMgr.GetPlayerActorByServerID(ArenaFighters[1 - mLocalIndex].RoleID);
                loser  = CoreEntry.gActorMgr.MainPlayer;
            }

            if (null != winner)
            {
                PlayerAgent agent = winner.GetComponent <PlayerAgent>();
                if (null != agent)
                {
                    agent.enabled = false;
                }
            }
            if (null != loser)
            {
                PlayerAgent agent = loser.GetComponent <PlayerAgent>();
                if (null != agent)
                {
                    agent.enabled = false;
                }
                loser.OnDead(0, winner, null, null);
            }

            if (mFightResult == 0)
            {
                MainPanelMgr.Instance.ShowPanel("UIArenaSuccess");
            }
            else
            {
                MainPanelMgr.Instance.ShowPanel("UIArenaFail");
            }

            isFightOver = true;
        }
Beispiel #4
0
        public GameObject LoadPet(MsgData_sSceneObjectEnterPet petStruct)
        {
            LuaTable petCfg = ConfigManager.Instance.HeroConfig.GetHeroConfig(petStruct.ConfigID);

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

            float   s          = petCfg.Get <float>("scale");
            Vector3 position   = CommonTools.ServerPosToClient(petStruct.PosX, petStruct.PosY);
            Vector3 eulerAngle = CommonTools.ServerDirToClient(petStruct.Dir);
            Vector3 scale      = new Vector3(s, s, s);

            if (petStruct.Job <= 0)
            {
                return(null);
            }
            int modelid = petCfg.Get <int>("model" + petStruct.Job);

            if (petStruct.Level > 0)
            {
                LuaTable petShengjieCfg = ConfigManager.Instance.HeroConfig.GetHeroShengjieConfig(petStruct.ConfigID * 100 + petStruct.Level);
                if (petShengjieCfg != null)
                {
                    modelid = petShengjieCfg.Get <int>("model" + petStruct.Job);
                }
            }
            GameObject obj = CreateGameObject(modelid, position, eulerAngle, scale);

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

            //obj.transform.localScale = Vector3.one;

            ActorObj actorObject = null;

            actorObject = obj.GetComponent <ActorObj>();
            if (null != actorObject)
            {
                Object.DestroyImmediate(actorObject);
            }

            PlayerAgent agent = obj.GetComponent <PlayerAgent>();

            if (null != agent)
            {
                agent.enabled = false;
            }

            PetObj pet = obj.AddComponent <PetObj>();

            pet.Starlevel = petStruct.Level;
            pet.Qua       = petStruct.Qua;
            pet.OwnName   = UiUtil.GetNetString(petStruct.RoleName);

            pet.SetMaster(petStruct.Owner);
            //Debug.LogError("pet :" + petStruct.Owner + " id:" + petStruct.ConfigID);
            pet.Init(modelid, petStruct.ConfigID, petStruct.Guid);
            pet.ServerID = petStruct.Guid;
            pet.InitSpeed(CommonTools.ServerValueToClient(petStruct.Speed));
            CoreEntry.gActorMgr.AddActorObj(pet);

            //宠物创建时,需要检查主人的显示隐藏属性
            if (pet.m_MasterActor && !pet.m_MasterActor.Visiable)
            {
                pet.HideSelf();
            }

            //ActorObj owner = CoreEntry.gActorMgr.GetPlayerActorByServerID(petStruct.Owner);
            //if (null != owner)
            //{
            //    if (owner.mActorType == ActorType.AT_LOCAL_PLAYER)
            //    {
            //        pet.ChangeWeapon(PlayerData.Instance.GetWeaponModelID());
            //    }
            //    else
            //    {
            //        MsgData_sSceneObjectEnterHuman ownerData = CoreEntry.gSceneObjMgr.GetEntityData(petStruct.Owner) as MsgData_sSceneObjectEnterHuman;
            //        if (null != ownerData)
            //        {
            //            pet.ChangeWeapon(GetWeaponModelID(ownerData.FashionState == 0 ? ownerData.FashionWeapon : 0, ownerData.ShenBin, ownerData.Weapon, ownerData.Prof));
            //        }
            //    }
            //}

            return(obj);
        }