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); } }
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); }
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; }
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); }