public void TownUserLeave(PMsgMapLeaveMapS leaveInfo) { TownUnit unit = null; if (townUnitList.TryGetValue(leaveInfo.UllRoleId, out unit)) { //다로딩이 완료된애만 string path = "Effect/_UI/_INGAME/Fx_IN_goout_01"; GameObject effGo = GameObject.Instantiate(Resources.Load(path)) as GameObject; effGo.transform.parent = unit.transform; effGo.transform.localScale = unit.transform.localScale; effGo.transform.localPosition = Vector3.zero; TempCoroutine.instance.FrameDelay(0.5f, () => { Destroy(unit.gameObject); }); townUnitList.Remove(leaveInfo.UllRoleId); } else { //내꺼는 보통 없다 //Debug.LogError("not found TownUnit error " + leaveInfo.UllRoleId); } /* * if(townUnitList.ContainsKey(leaveInfo.UllRoleId)) * { * Destroy(townUnitList[leaveInfo.UllRoleId].gameObject); * townUnitList.Remove(leaveInfo.UllRoleId); * } */ }
public static IEnumerator CreateTownUnitAsync(int x, int y, System.Action <TownUnit> callback, params object[] args) { GameObject _townUnit = new GameObject(); _townUnit.name = "TownUnit"; TownUnit tu = _townUnit.AddComponent <TownUnit>(); Vector3 pos = NaviTileInfo.instance.GetTilePos(x, y); NavMeshHit hit; if (NavMesh.SamplePosition(pos, out hit, 10, -1)) { pos = hit.position; } tu.transform.position = pos; tu.Height = 2.47f; yield return(SceneManager.instance.StartCoroutine(tu.InitAsync(args))); tu.SetTrailRenderer(tu.gameObject, false); // 마을에서 스케일 1.2정도 크게해줘 tu.gameObject.transform.localScale = new Vector3(1.4f, 1.4f, 1.4f); NGUITools.SetLayer(_townUnit, 14); callback(tu); }
/// <summary> 마을 콜로세움, 멀티보스레이드 다른 유저 입장 </summary> public void OnInUser(NetData.RoomUserInfo userInfo) { int arr = NetData.instance.GetGameRoomUserArr(userInfo.Id); string lv = string.Format(_LowDataMgr.instance.GetStringCommon(453), userInfo.Lv); TakeParNames[arr].text = string.Format("{0} {1}", lv, userInfo.Name); PnTouchObj[arr].SetActive(true); TownUnit unit = null; if (SceneManager.instance.GetState <TownState>().GetTownUnits().TryGetValue((long)userInfo.Id, out unit)) { UIHelper.CreatePcUIModel("ReadyPopup", PartnerModelRoot[arr] , unit.townunitData.character_id , unit.townunitData.EquipHeadItemIdx , unit.townunitData.costume_id , unit.townunitData.EquipClothItemIdx , unit.townunitData.EquipWeaponItemIdx , unit.townunitData.SkillSetID , 3 , unit.townunitData.isHideCostume , false); } else { NetworkClient.instance.SendPMsgQueryRoleInfoC((long)userInfo.Id); } }
public static TownUnit CreateTownUnit(int x, int y, params object[] args) { GameObject _townUnit = new GameObject(); _townUnit.name = "TownUnit"; TownUnit tu = _townUnit.AddComponent <TownUnit>(); Vector3 pos = NaviTileInfo.instance.GetTilePos(x, y); NavMeshHit hit; if (NavMesh.SamplePosition(pos, out hit, 10, -1)) { pos = hit.position; } tu.transform.position = pos; tu.Height = 2.47f; tu.Init(args); tu.SetTrailRenderer(tu.gameObject, false); // 마을에서 스케일 1.2정도 크게해줘 tu.gameObject.transform.localScale = new Vector3(1.4f, 1.4f, 1.4f); NGUITools.SetLayer(_townUnit, 14); return(tu); }
public IEnumerator TownUserEnter(PMsgMapRoleInfoS anotherUserInfo) { //이미 있는경우는 추가하지 않는다. TownUnit unit = null; if (townUnitList.TryGetValue(anotherUserInfo.UllRoleId, out unit)) { uint head = 0, cloth = 0, weapon = 0; int equipCount = anotherUserInfo.UnEquipmentId.Count; for (int i = 0; i < equipCount; i++) { int equipId = anotherUserInfo.UnEquipmentId[i]; if (equipId <= 0) { continue; } Item.EquipmentInfo equipInfo = _LowDataMgr.instance.GetLowDataEquipItemInfo((uint)equipId); if (equipInfo == null) { Debug.LogError(string.Format("friend equip item not found lowdataID={0} error", equipId)); continue; } if (equipInfo.UseParts == (byte)ePartType.CLOTH) { cloth = (uint)equipId; } //else if (equipInfo.UseParts == (byte)ePartType.HELMET) //head = (uint)equipId; else if (equipInfo.UseParts == (byte)ePartType.WEAPON) { weapon = (uint)equipId; } } unit.ChangeSkin(anotherUserInfo.UnCostumeShowFlag == (int)COSTUME_FLAG_TYPE.COSTUME_FLAG_HIDE, (uint)anotherUserInfo.UnCostumeId, head, cloth, weapon); unit.ChangeTitle(anotherUserInfo.UnTitlePrefix, anotherUserInfo.UnTitleSuffix); /* * UIBasePanel readyPopup = UIMgr.GetUIBasePanel("UIPopup/ReadyPopup"); * if (readyPopup != null) * { * if ((readyPopup as ReadyPopup).IsRoom) * { * (readyPopup as ReadyPopup).OnChangeUserInfo(anotherUserInfo.UllRoleId); * } * } */ yield break; } if (NetData.instance.GetUserInfo().GetCharUUID() == (ulong)anotherUserInfo.UllRoleId) { yield break; } NetData.RecommandFriendData friend = new NetData.RecommandFriendData(); friend.c_usn = (ulong)anotherUserInfo.UllRoleId; friend.character_id = (uint)anotherUserInfo.UnType; friend.nickname = anotherUserInfo.SzName; friend.level = (uint)anotherUserInfo.UnLevel; friend.costume_id = (uint)anotherUserInfo.UnCostumeId; friend.isHideCostume = (int)COSTUME_FLAG_TYPE.COSTUME_FLAG_HIDE == anotherUserInfo.UnCostumeShowFlag; friend.Prefix = anotherUserInfo.UnTitlePrefix; friend.Sufffix = anotherUserInfo.UnTitleSuffix; if (friend.character_id < 10000) { friend.character_id = 12000; } if (friend.costume_id <= 0) { Debug.LogError(string.Format("RoleID: {0}, costume idx = {1} error charIdx={2}", anotherUserInfo.UllRoleId, friend.costume_id, friend.character_id)); if (friend.character_id == 11000) { friend.costume_id = 100; } else if (friend.character_id == 12000) { friend.costume_id = 110; } else if (friend.character_id == 13000) { friend.costume_id = 120; } } int count = anotherUserInfo.UnEquipmentId.Count; for (int i = 0; i < count; i++) { int equipId = anotherUserInfo.UnEquipmentId[i]; if (equipId <= 0) { continue; } Item.EquipmentInfo equipInfo = _LowDataMgr.instance.GetLowDataEquipItemInfo((uint)equipId); if (equipInfo == null) { Debug.LogError(string.Format("friend equip item not found lowdataID={0} error", equipId)); continue; } if (equipInfo.UseParts == (byte)ePartType.CLOTH) { friend.EquipClothItemIdx = (uint)equipId; } //else if (equipInfo.UseParts == (byte)ePartType.HELMET) //friend.EquipHeadItemIdx = (uint)equipId; else if (equipInfo.UseParts == (byte)ePartType.WEAPON) { friend.EquipWeaponItemIdx = (uint)equipId; } } /* * if (friend.character_id == 11000) * { * friend.costume_id = (uint)100; * } * else if (friend.character_id == 12000) * { * friend.costume_id = (uint)110; * } * else if (friend.character_id == 13000) * { * friend.costume_id = (uint)120; * } * else * { * Debug.LogError(string.Format("error not found character id {0}, is setting default id:{1}", friend.character_id, 11000)); * friend.character_id = 11000; * friend.costume_id = (uint)100; * } */ object[] initialData = new object[4] { 0, 0, (int)UnitType.TownNpc, friend }; //TownUnit tu = TownUnit.CreateTownUnit(anotherUserInfo.UnPosX, anotherUserInfo.UnPosY, initialData); TownUnit tu = null; yield return(StartCoroutine(TownUnit.CreateTownUnitAsync(anotherUserInfo.UnPosX, anotherUserInfo.UnPosY, (retval) => { tu = retval; }, initialData))); tu.ChangeState(UnitState.Idle); if (!townUnitList.ContainsKey(anotherUserInfo.UllRoleId)) { townUnitList.Add(anotherUserInfo.UllRoleId, tu); } else { Debug.LogError(string.Format("is already key error key={0}, name={1}, isMyChar={2}" , anotherUserInfo.UllRoleId, anotherUserInfo.SzName, ((ulong)anotherUserInfo.UllRoleId) == NetData.instance.GetUserInfo()._charUUID)); } UIBasePanel basePanel = UIMgr.GetTownBasePanel(); if (basePanel != null) { (basePanel as TownPanel).CreateHeadObjet(tu.gameObject, friend.nickname, friend.Prefix, friend.Sufffix, false); //string path = string.Format("Effect/_UI/_INGAME/{0}", name); CreateAccessEff(tu.gameObject); } else { TownNickList.Add(new TownNickData(tu.gameObject, friend.nickname, friend.Prefix, friend.Sufffix)); } }