void OnMatchListSlotdelegate() { for (int i = 0; i < PvpGrid.transform.childCount; i++) { if (i >= EnemyList.Count) { PvpGrid.transform.GetChild(i).gameObject.SetActive(false); continue; } GameObject slotGo = PvpGrid.transform.GetChild(i).gameObject; Transform slotTf = slotGo.transform; slotGo.SetActive(true); slotTf.FindChild("win_reward").gameObject.SetActive(MyTopRank > EnemyList[i].Rank); //상대승리시 최고래밸을 달성할수있을시 .. if (slotTf.FindChild("win_reward").gameObject.activeSelf) { slotTf.FindChild("win_reward/label").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1259), (MyTopRank - EnemyList[i].Rank) * _LowDataMgr.instance.GetEtcTableValue <uint>(EtcID.PvPfirstgetcash)); } slotTf.FindChild("lv").GetComponent <UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(14), EnemyList[i].Level); slotTf.FindChild("battle").GetComponent <UILabel>().text = string.Format("{0} {1:#,#}", _LowDataMgr.instance.GetStringCommon(47), EnemyList[i].Attack); slotTf.FindChild("name").GetComponent <UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(155), EnemyList[i].Name); slotTf.FindChild("rank").GetComponent <UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(1020), EnemyList[i].Rank); slotTf.FindChild("class").GetComponent <UISprite>().spriteName = UIHelper.GetClassIcon((uint)EnemyList[i].Type); if ((ulong)EnemyList[i].RoleId == CharInven.GetCharUUID()) { slotTf.FindChild("win_reward").gameObject.SetActive(false); slotTf.FindChild("BtnStart").gameObject.SetActive(false); } else { slotTf.FindChild("BtnStart").gameObject.SetActive(true); } int idx = i; EventDelegate.Set(slotTf.FindChild("BtnStart").GetComponent <UIButton>().onClick, delegate() { NetData._PartnerData par_1 = CharInven.GetEquipPartner(1); NetData._PartnerData par_2 = CharInven.GetEquipPartner(2); EnemyPartners = new int[] { (int)(par_1 != null ? par_1._partnerIndex : 0), (int)(par_2 != null ? par_2._partnerIndex : 0) }; EnemyInfo = EnemyList[idx]; if (ResetCount >= 1) { if (ResetCount - DailyCount == 0) { OnClickBuyBtn(); return; } } else { if (MaxDailyCount <= DailyCount) { OnClickBuyBtn(); return; } } NetworkClient.instance.SendPMsgArenaFightStartC(EnemyPartners, EnemyInfo.RoleId, EnemyInfo.Rank); }); } PvpGrid.repositionNow = true; //if (EnemyList.Count <= arr) //{ // go.SetActive(false); // return; //} //go.SetActive(true); //Transform tf = go.transform; //tf.FindChild("win_reward").gameObject.SetActive(MyTopRank > EnemyList[arr].Rank); //상대승리시 최고래밸을 달성할수있을시 .. //if (tf.FindChild("win_reward").gameObject.activeSelf) //{ // tf.FindChild("win_reward/label").GetComponent<UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1259), (MyTopRank - EnemyList[arr].Rank) * _LowDataMgr.instance.GetEtcTableValue<uint>(EtcID.PvPfirstgetcash)); //} //tf.FindChild("lv").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(14), EnemyList[arr].Level); //tf.FindChild("battle").GetComponent<UILabel>().text = string.Format("{0} {1:#,#}", _LowDataMgr.instance.GetStringCommon(47), EnemyList[arr].Attack); //tf.FindChild("name").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(155), EnemyList[arr].Name); //tf.FindChild("rank").GetComponent<UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(1020), EnemyList[arr].Rank); //tf.FindChild("class").GetComponent<UISprite>().spriteName = UIHelper.GetClassIcon((uint)EnemyList[arr].Type); //if ((ulong)EnemyList[arr].RoleId == CharInven.GetCharUUID()) //{ // tf.FindChild("win_reward").gameObject.SetActive(false); // tf.FindChild("BtnStart").gameObject.SetActive(false); //} //else // tf.FindChild("BtnStart").gameObject.SetActive(true); //EventDelegate.Set(tf.FindChild("BtnStart").GetComponent<UIButton>().onClick, delegate () { // NetData._PartnerData par_1 = CharInven.GetEquipPartner(1); // NetData._PartnerData par_2 = CharInven.GetEquipPartner(2); // EnemyPartners = new int[] { // (int)(par_1 != null ? par_1._partnerIndex : 0), // (int)(par_2 != null ? par_2._partnerIndex : 0) // }; // EnemyInfo = EnemyList[arr]; // if (ResetCount >= 1) // { // if(ResetCount - DailyCount == 0) // { // OnClickBuyBtn(); // return; // } // } // else // { // if (MaxDailyCount <= DailyCount) // { // OnClickBuyBtn(); // return; // } // } // NetworkClient.instance.SendPMsgArenaFightStartC(EnemyPartners, EnemyInfo.RoleId, EnemyInfo.Rank); //}); /* * * * if (ResetCount >= 1) * { * FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), ResetCount - DailyCount, MaxDailyCount); //이떄 한개만 * BuyBtn.gameObject.SetActive(ResetCount - DailyCount == 0); * * } * else * { * FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), MaxDailyCount - DailyCount, MaxDailyCount); * BuyBtn.ga */ }
public override void NetworkData(params object[] proto) { base.NetworkData(proto); switch ((Sw.MSG_DEFINE)proto[0]) { case Sw.MSG_DEFINE._MSG_ARENA_INFO_S: //금일 횟수 DailyCount = (int)proto[1]; MaxDailyCount = (int)proto[2]; ResetCount = (int)proto[3]; MyTopRank = (int)proto[4]; ArenaGameState.MyTopRank = MyTopRank; if (ResetCount >= 1) { FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), ResetCount - DailyCount, MaxDailyCount); //이떄 한개만 BuyBtn.gameObject.SetActive(ResetCount - DailyCount == 0); } else { FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), MaxDailyCount - DailyCount, MaxDailyCount); BuyBtn.gameObject.SetActive(MaxDailyCount - DailyCount == 0); } //FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), MaxDailyCount - DailyCount, MaxDailyCount); // BuyBtn.gameObject.SetActive(MaxDailyCount - DailyCount == 0); //if (CharInven.ArenaRanking <= 0)//최초 진입일 것이다. //{ //NetworkClient.instance.SendPMsgArenaRankInfoC(); //} //else //{ // transform.FindChild("PvpPanel/info/rank_label").GetComponent<UILabel>().text = // string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(521), CharInven.ArenaRanking); //} break; case Sw.MSG_DEFINE._MSG_ARENA_RANK_INFO_S: //나의 랭킹 정보 { transform.FindChild("PvpPanel/info/rank_label").GetComponent <UILabel>().text = string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(521), CharInven.ArenaRanking); TodayPoints.text = "0"; //오늘획득가능한보상... List <PVP.PVPAutoRewardInfo> autoList = _LowDataMgr.instance.GetPvpAutoRewardList(); for (int i = 0; i < autoList.Count; i++) { if (autoList[i].RankMax < CharInven.ArenaRanking || CharInven.ArenaRanking < autoList[i].RankMin) { continue; } TodayPoints.text = autoList[i].RewardValue.ToString(); break; } NetworkClient.instance.SendPMsgArenaMatchListC(0); //서버에서 알아서보내준다함. } break; case Sw.MSG_DEFINE._MSG_ARENA_MATCH_LIST_S: //대상 리스트 받음 // 상위 유저 8명 , 나 , 하위유저 2명 => 11명 보여줌 EnemyList = (List <NetData.ArenaUserInfo>)proto[1]; //내껏도 추가해줭 NetData.ArenaUserInfo myInfo = new NetData.ArenaUserInfo((long)CharInven._charUUID, CharInven._charName, (int)CharInven._userCharIndex, (int)CharInven._Level, (int)CharInven._VipLevel, (int)CharInven._TotalAttack, CharInven.ArenaRanking, CharInven._GuildId); EnemyList.Insert(EnemyList.Count, myInfo); //정렬타임 EnemyList.Sort(delegate(NetData.ArenaUserInfo a, NetData.ArenaUserInfo b) { if (a.Rank > b.Rank) { return(1); } else if (b.Rank > a.Rank) { return(-1); } return(0); }); OnMatchListSlotdelegate(); break; case Sw.MSG_DEFINE._MSG_ARENA_MATCH_INFO_S: //게임 시작 로딩으로 넘기는 곳 ArenaGameState.TargetRank = EnemyInfo.Rank; ArenaGameState.MyRank = CharInven.ArenaRanking; ArenaGameState.TargetAttack = EnemyInfo.Attack; SceneManager.instance.SetSubLoadingPanelParams((int)NetData.instance.GetUserInfo()._TotalAttack, EnemyInfo.Attack, MyGuildName, EnemyInfo.GuildName); SceneManager.instance.ShowLoadingTipPanel(true, GAME_MODE.ARENA, () => { SceneManager.instance.ActionEvent(_ACTION.PLAY_ARENA); }); Hide(); break; case Sw.MSG_DEFINE._MSG_ARENA_FIGHT_LIST_S: //유아이에 있을 경우 한번만 실행하도록 한다 이후에는 팝업만 껏다 켜줌 IsSendFightList = true; //막아줄 변수 List <NetData.ArenaFightInfo> list = (List <NetData.ArenaFightInfo>)proto[1]; UIHelper.CreateSlotItem(true, list.Count, RecordSlotPrefab.transform, RecordGrid.transform, delegate(Transform tf, int i) { if (list.Count <= i) { tf.gameObject.SetActive(false); return; } tf.gameObject.SetActive(true); tf.FindChild("battle").GetComponent <UILabel>().text = SceneManager.instance.NumberToString(list[i].BattlePoint); //list[i].BattlePoint.ToString(); // ToString("#,##"); tf.FindChild("name").GetComponent <UILabel>().text = list[i].UserName; //tf.FindChild("rank").GetComponent<UILabel>().text = string.Format("{0}", list[i].Ranking); //tf.FindChild("result").GetComponent<UILabel>().text = _LowDataMgr.instance.GetStringCommon((uint)(list[i].FightResult == (int)Sw.FIGHT_RESULT.FIGHT_RESULT_WIN ? 69 : 70)); //승리.패배시 슬롯색이달라짐 bool isWin = list[i].FightResult == (int)Sw.FIGHT_RESULT.FIGHT_RESULT_WIN; tf.FindChild("winBg").gameObject.SetActive(isWin); tf.FindChild("loseBg").gameObject.SetActive(!isWin); tf.FindChild("winResult").gameObject.SetActive(isWin); tf.FindChild("loseResult").gameObject.SetActive(!isWin); //랭킹변화도 표시해줘야함 //녹색 :3ddb80 //빨강: ed353a string rank = ""; if (isWin && list[i].Ranking != list[i].WinRanking) { rank = string.Format("{0}[ed353a](-{1})[-]", list[i].WinRanking, list[i].Ranking - list[i].WinRanking); } else { rank = string.Format("{0}", list[i].Ranking); } //if (CharInven.ArenaRanking == list[i].Ranking) // rank = string.Format("{0}", list[i].Ranking); //else if (CharInven.ArenaRanking > list[i].Ranking) // rank = string.Format("{0}[3ddb80](+{1})[-]", list[i].Ranking, CharInven.ArenaRanking - list[i].Ranking); //else // rank = string.Format("{0}[ed353a](-{1})[-]", list[i].Ranking, list[i].Ranking - CharInven.ArenaRanking); tf.FindChild("rank").GetComponent <UILabel>().text = rank; }); RecordGrid.repositionNow = true; BattleRecordPopup.SetActive(true); break; case Sw.MSG_DEFINE._MSG_ARENA_RANK_LIST_S: //랭킹 리스트 List <NetData.ArenaUserInfo> addList = (List <NetData.ArenaUserInfo>)proto[1]; List <ulong> guildIdList = new List <ulong>(); for (int i = 0; i < addList.Count; i++) { RankList.Add(addList[i]); guildIdList.Add(addList[i].GuildId); } NetworkClient.instance.SendPMsgGuildNameQueryC(guildIdList); break; case Sw.MSG_DEFINE._MSG_GUILD_NAME_QUERY_S: Sw.PMsgGuildNameQueryS protocol = (Sw.PMsgGuildNameQueryS)proto[1]; for (int i = 0; i < protocol.UnCount; i++) { ulong guildId = protocol.CGuildInfo[i].UllGuildId; string guild = string.IsNullOrEmpty(protocol.CGuildInfo[i].SzGuildName) ? "" : string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(8), protocol.CGuildInfo[i].SzGuildName); for (int j = 0; j < RankList.Count; j++) { if (!string.IsNullOrEmpty(RankList[j].GuildName) || RankList[j].GuildId != guildId) { continue; } if (CharInven.ArenaRanking == RankList[j].Rank) //유저의 길드 이름이다. { MyGuildName = guild; } RankList[j].SetGuildName(guild); break; } } if (protocol.UnCount != 50 || RankList.Count == 100) { RankPaging.RefreshSlot(RankList.Count); if (!RankPopup.activeSelf) { RankPopup.SetActive(true); //유저의 정보 transform.FindChild("RankPopup/HeroRank/name").GetComponent <UILabel>().text = CharInven._charName; transform.FindChild("RankPopup/HeroRank/guild_name").GetComponent <UILabel>().text = MyGuildName; transform.FindChild("RankPopup/HeroRank/rank").GetComponent <UILabel>().text = CharInven.ArenaRanking.ToString();//string.Format("{0} {1}", _LowDataMgr.instance.GetStringCommon(521), CharInven.ArenaRanking); transform.FindChild("RankPopup/HeroRank/class").GetComponent <UISprite>().spriteName = UIHelper.GetClassIcon(CharInven._userCharIndex); transform.FindChild("RankPopup/HeroRank/face").GetComponent <UISprite>().spriteName = _LowDataMgr.instance.GetCharcterData(CharInven._userCharIndex).PortraitId; transform.FindChild("RankPopup/HeroRank/Bestrank/rank_label").GetComponent <UILabel>().text = MyTopRank.ToString(); transform.FindChild("RankPopup/HeroRank/guild_name").GetComponent <UILabel>().text = string.Format("{0} {1:#,#}", _LowDataMgr.instance.GetStringCommon(47), CharInven._TotalAttack); } } break; case Sw.MSG_DEFINE._MSG_ARENA_RESET_TIMES_S: //차관 금일 횟수 초기화 DailyCount = (int)proto[1]; MaxDailyCount = (int)proto[2]; ResetCount = (int)proto[3]; if (ResetCount >= 1) { FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), ResetCount - DailyCount, MaxDailyCount); //이떄 한개만 BuyBtn.gameObject.SetActive(ResetCount - DailyCount == 0); } else { FightCountLabel.text = string.Format(_LowDataMgr.instance.GetStringCommon(1255), MaxDailyCount - DailyCount, MaxDailyCount); BuyBtn.gameObject.SetActive(MaxDailyCount - DailyCount == 0); } //NetworkClient.instance.SendPMsgArenaFightStartC(EnemyPartners, EnemyInfo.RoleId, EnemyInfo.Rank);//바로 시작. break; } }