public void AddRival(stPVPRival rival) { m_Rivallist.Add(rival); //服务器发了5个,只显示4个,最后一个是机器人,必须要显示,所以就把最后一个非机器人干掉了aaa if (m_Rivallist.Count >= 5) { m_Rivallist.RemoveAt(3); } }
private static void msg_SC_GET_RANK_LIST_ACK(int iMsgID, ref CMessage msg) { CliProto.SC_GET_RANK_LIST_ACK refMsg = (CliProto.SC_GET_RANK_LIST_ACK)msg; sdPVPManager.Instance.ClearRank(); for (int i = 0; i < refMsg.m_RankList.m_Count; ++i) { HeaderProto.PVP_RANK item = refMsg.m_RankList.m_PVPRankList[i]; stPVPRival rank = new stPVPRival(); rank.strName = System.Text.Encoding.UTF8.GetString(item.m_RoleName).Trim('\0'); rank.nLevel = (uint)item.m_RoleLevel; rank.nMilitaryLevel = item.m_MilitaryLevel; rank.nScore = (uint)item.m_Points; rank.nProfession = item.m_BaseJob; rank.nSex = item.m_Sex; rank.hairstyle = item.m_HairStyle; rank.haircolor = item.m_HairColor; rank.roleID = item.m_Roleid; sdPVPManager.Instance.AddRank(rank); } sdPVPManager.Instance.RefreshRankList(); }
/* 获取pvp对手回应 */ private static void msg_SC_GET_PVP_MATCH_ACK(int iMsgID, ref CMessage msg) { sdPVPManager.Instance.m_bPVPSuspend = false; sdPVPManager.Instance.ClearRival(); CliProto.SC_GET_PVP_MATCH_ACK refMsg = (CliProto.SC_GET_PVP_MATCH_ACK)msg; HeaderProto.PVP_MATCH_LIST pvpList = refMsg.m_PVPMatchList; for (int index = 0; index < pvpList.m_Count; ++index) { HeaderProto.PVP_MATCH match = pvpList.m_PVPMatchList[index]; stPVPRival rival = new stPVPRival(); rival.strName = System.Text.Encoding.UTF8.GetString(match.m_RoleName).Trim('\0'); rival.nLevel = (uint)match.m_RoleLevel; rival.nMilitaryLevel = match.m_MilitaryLevel; rival.nScore = (uint)match.m_Points; rival.nSex = (int)match.m_Sex; rival.hairstyle = (int)match.m_HairStyle; rival.haircolor = (int)match.m_HairColor; rival.roleID = match.m_Roleid; rival.nProfession = (int)match.m_BaseJob; sdPVPManager.Instance.AddRival(rival); } sdPVPManager.Instance.RefreshPK(); }
/* 获取PVP角色信息请求 */ private static void msg_SC_GET_PVP_ROLE_INFO_ACK(int iMsgID, ref CMessage msg) { CliProto.SC_GET_PVP_ROLE_INFO_ACK refMsg = (CliProto.SC_GET_PVP_ROLE_INFO_ACK)msg; if (refMsg.m_Result != 0) { return; } List <stPVPRival> rivalList = sdPVPManager.Instance.GetRanklist(); if (ms_Index >= 0 && ms_Index < rivalList.Count) { stPVPRival rival = rivalList[ms_Index]; sdFriend roleInfo = new sdFriend(); roleInfo.id = rival.roleID.ToString(); roleInfo.gender = (byte)rival.nSex; roleInfo.hairStyle = (byte)rival.hairstyle; roleInfo.color = (byte)rival.haircolor; roleInfo.name = rival.strName; roleInfo.level = rival.nLevel.ToString(); roleInfo.job = rival.nProfession.ToString(); roleInfo.power = refMsg.m_Attack.ToString(); for (int index = 0; index < refMsg.m_Equip.m_Items.m_ItemCount; ++index) { roleInfo.equipList.Add((uint)refMsg.m_Equip.m_Items.m_Items[index].m_TID); } for (int i = 0; i < refMsg.m_Pet.m_PetCount; ++i) { SClientPetInfo petInfo = new SClientPetInfo(); petInfo.m_uiTemplateID = refMsg.m_Pet.m_PetsInfo[i].m_TemplateID; petInfo.m_iLevel = refMsg.m_Pet.m_PetsInfo[i].m_Level; petInfo.m_iUp = refMsg.m_Pet.m_PetsInfo[i].m_Up; roleInfo.petList.Add(petInfo); } sdUICharacter.Instance.ShowRoleTipWnd(roleInfo, true, 1); } }
void RefreshRankList() { if (ranklistRight == null) { return; } Transform trans = ranklistRight.transform.FindChild("Label_rank"); if (trans == null) { return; } UILabel cur_rank = trans.GetComponent <UILabel>(); cur_rank.text = sdPVPManager.Instance.nRank.ToString(); trans = ranklistRight.transform.FindChild("Label_score"); if (trans == null) { return; } UILabel cur_score = trans.GetComponent <UILabel>(); cur_score.text = sdPVPManager.Instance.nScore.ToString(); lstjobAtlas.Clear(); List <stPVPRival> ranklist = sdPVPManager.Instance.GetRanklist(); for (int i = 0; i < ranklist.Count; ++i) { stPVPRival item = ranklist[i]; GameObject uiItem = null; Transform trans_item = rank_listPanel.transform.FindChild("ranklistitem" + i.ToString()); if (trans_item == null) { uiItem = GameObject.Instantiate(rank_listitem) as GameObject; } else { uiItem = trans_item.gameObject; } uiItem.SetActive(true); uiItem.name = "ranklistitem" + i.ToString(); uiItem.transform.parent = rank_listPanel.transform; uiItem.transform.localPosition = new Vector3(rank_listitem.transform.localPosition.x, rank_listitem.transform.localPosition.y - 145.0f * i, 0); uiItem.transform.localScale = Vector3.one; uiItem.transform.localRotation = Quaternion.identity; UILabel label_name = uiItem.transform.FindChild("Label_ranklistname").GetComponent <UILabel>(); label_name.text = item.strName; UILabel label_level = uiItem.transform.FindChild("Label_ranklistlevel").GetComponent <UILabel>(); label_level.text = "Lv." + item.nLevel.ToString(); UILabel label_title = uiItem.transform.FindChild("Label_ranklisttitlename").GetComponent <UILabel>(); Hashtable militarylevelTable = sdConfDataMgr.Instance().GetTable("militarylevel"); Hashtable table = militarylevelTable[(item.nMilitaryLevel).ToString()] as Hashtable; if (table == null) { label_title.text = "满级"; } else { label_title.text = (string)table["name"]; } UILabel label_score = uiItem.transform.FindChild("Label_ranklistscore").GetComponent <UILabel>(); label_score.text = "积分: " + item.nScore.ToString(); if (i <= 2) { GameObject label_rank = uiItem.transform.FindChild("Label_rankindex").gameObject; label_rank.SetActive(false); UISprite sprite = uiItem.transform.FindChild("Sprite_rankicon").GetComponent <UISprite>(); sprite.spriteName = "if-n" + (i + 1).ToString(); sprite = uiItem.transform.FindChild("Sprite_rankframe").GetComponent <UISprite>(); sprite.spriteName = "if-n" + (i + 1).ToString() + "a"; } else { GameObject label_rank = uiItem.transform.FindChild("Label_rankindex").gameObject; label_rank.SetActive(true); if (i < 9) { label_rank.GetComponent <UILabel>().text = "第 " + (i + 1).ToString() + " 名"; } else { label_rank.GetComponent <UILabel>().text = "第" + (i + 1).ToString() + "名"; } UISprite sprite = uiItem.transform.FindChild("Sprite_rankicon").GetComponent <UISprite>(); sprite.spriteName = "if-n4"; sprite = uiItem.transform.FindChild("Sprite_rankframe").GetComponent <UISprite>(); sprite.spriteName = "if-n4a"; } UISprite sprite_profession = uiItem.transform.FindChild("Sprite_ranklisttitleicon").GetComponent <UISprite>(); UIAtlas jobAtlas = sdConfDataMgr.Instance().GetAtlas(item.nProfession.ToString()); if (jobAtlas != null) { sprite_profession.atlas = jobAtlas; } else { sdConfDataMgr.Instance().LoadJobAtlas(item.nProfession); JobAtlasInfo info = new JobAtlasInfo(); info.jobname = item.nProfession.ToString(); info.sprite = sprite_profession; lstjobAtlas.Add(info); } sprite_profession.spriteName = sdConfDataMgr.Instance().GetJobIcon(item.nProfession.ToString()); //头像 sdConfDataMgr.Instance().SetHeadPic(item.nSex, item.hairstyle, item.haircolor, uiItem.transform.FindChild("Sprite_rankheadicon").GetComponent <UISprite>()); } }
void RefreshPK() { sdPlayerInfo kPlayerInfo = SDNetGlobal.playerList[SDNetGlobal.lastSelectRole]; if (pk_selfname == null) { Debug.Log("pkself name == null"); return; } lstjobAtlas.Clear(); // military level Hashtable militarylevelTable = sdConfDataMgr.Instance().GetTable("militarylevel"); int totalReputation = 0; int index = 1; if (sdPVPManager.Instance.nMilitaryLevel > 1) { for (; index < sdPVPManager.Instance.nMilitaryLevel; index++) { Hashtable militaryTable = militarylevelTable[index.ToString()] as Hashtable; totalReputation += int.Parse((string)militaryTable["reputation"]); } } Hashtable mymilitary = militarylevelTable[(sdPVPManager.Instance.nMilitaryLevel).ToString()] as Hashtable; if (mymilitary == null) { return; } string NameColor = mymilitary["namecolor"].ToString(); NameColor = NameColor.Substring(1); pk_selfname.text = "[" + NameColor + "]" + kPlayerInfo.mRoleName; pk_selflevel.text = "Lv." + sdGameLevel.instance.mainChar.Level.ToString(); pk_titleimage.spriteName = mymilitary["icon"] as string; Hashtable mynextmilitary = militarylevelTable[(sdPVPManager.Instance.nMilitaryLevel + 1).ToString()] as Hashtable; if (mynextmilitary == null) { pk_reputation.text = "满级"; pk_sprite_reputation.width = ms_Hplength; } else { int value = (int)sdPVPManager.Instance.nReputation + totalReputation; int needvalue = int.Parse((string)mymilitary["reputation"]) + totalReputation; pk_reputation.text = value.ToString() + "/" + needvalue.ToString(); float fpercent = value / (float)needvalue; fpercent = fpercent > 1.0f ? 1.0f : fpercent; pk_sprite_reputation.width = (int)(ms_Hplength * fpercent); } pk_selftitle.text = (string)mymilitary["name"]; pk_win.text = "胜" + sdPVPManager.Instance.nWin.ToString(); pk_lose.text = "负" + sdPVPManager.Instance.nLose.ToString(); pk_ranklist.text = sdPVPManager.Instance.nRank.ToString(); pk_score.text = sdPVPManager.Instance.nScore.ToString(); pk_challenge.text = sdPVPManager.Instance.nChallenge.ToString() + "次"; if (sdPVPManager.Instance.m_ChallengeBuyLeft <= 0) { pkLeft.transform.FindChild("Button_addchallenge").gameObject.SetActive(false); } else { pkLeft.transform.FindChild("Button_addchallenge").gameObject.SetActive(true); } if (sdPVPManager.Instance.mMilitaryRewards) { pkLeft.transform.FindChild("Button_getrewards").FindChild("Background").GetComponent <UISprite>().spriteName = "btn_2dis"; } if (sdPVPManager.Instance.m_bPVPSuspend) { pkRight.SetActive(false); pkRightSuspend.SetActive(true); } else { pkRight.SetActive(true); pkRightSuspend.SetActive(false); Hashtable mainProp = (Hashtable)sdGlobalDatabase.Instance.globalData["MainCharBaseProp"]; List <stPVPRival> rivalList = sdPVPManager.Instance.GetRivallist(); index = 0; for (; index < ms_TotalRival && index < rivalList.Count; ++index) { stPVPRival rival = rivalList[index]; Transform character = pkRight.transform.FindChild("Sprite_character" + index); character.gameObject.SetActive(true); UISprite headicon = character.FindChild("Sprite_headicon1").GetComponent <UISprite>(); UILabel level = character.FindChild("Label_level1").GetComponent <UILabel>(); level.text = "Lv." + rival.nLevel.ToString(); UILabel name = character.FindChild("Label_name1").GetComponent <UILabel>(); name.text = rival.strName; //职业aaa UISprite title = character.FindChild("Sprite_title1").GetComponent <UISprite>(); UIAtlas jobAtlas = sdConfDataMgr.Instance().GetAtlas(rival.nProfession.ToString()); if (jobAtlas != null) { title.atlas = jobAtlas; } else { sdConfDataMgr.Instance().LoadJobAtlas(rival.nProfession); JobAtlasInfo item = new JobAtlasInfo(); item.jobname = rival.nProfession.ToString(); item.sprite = title; lstjobAtlas.Add(item); } title.spriteName = sdConfDataMgr.Instance().GetJobIcon(rival.nProfession.ToString()); UILabel titlename = character.FindChild("Label_title1").GetComponent <UILabel>(); if (militarylevelTable.ContainsKey((rival.nMilitaryLevel).ToString())) { Hashtable table2 = militarylevelTable[(rival.nMilitaryLevel).ToString()] as Hashtable; if (table2 == null) { titlename.text = "满级"; } else { titlename.text = (string)table2["name"]; } //title.spriteName = table2["icon"].ToString(); } UILabel score = character.FindChild("Label_score1").GetComponent <UILabel>(); score.text = rival.nScore.ToString(); int nwin = CalcWinPoints((int)sdPVPManager.Instance.nScore, (int)rival.nScore); int nlose = CalcLosePoints((int)sdPVPManager.Instance.nScore, (int)rival.nScore); UILabel winreputation = character.FindChild("Label_winreputation1").GetComponent <UILabel>(); winreputation.text = "+5 声望"; UILabel winscore = character.FindChild("Label_winscore1").GetComponent <UILabel>(); winscore.text = "+" + nwin.ToString() + " 积分"; UILabel losereputation = character.FindChild("Label_losereputation1").GetComponent <UILabel>(); losereputation.text = "+2 声望"; UILabel losescore = character.FindChild("Label_losescore1").GetComponent <UILabel>(); losescore.text = "-" + nlose.ToString() + " 积分"; sdConfDataMgr.Instance().SetHeadPic(rival.nSex, rival.hairstyle, rival.haircolor, character.FindChild("Sprite_headicon1").GetComponent <UISprite>()); } for (; index < ms_TotalRival; index++) { Transform character = pkRight.transform.FindChild("Sprite_character" + index); character.gameObject.SetActive(false); } if (sdPVPManager.Instance.m_bMilitaryLevelUp) { sdUICharacter.Instance.ShowPVPTitleUpWnd(true); sdPVPManager.Instance.m_bMilitaryLevelUp = false; } Hashtable configTable = sdConfDataMgr.Instance().GetTable("config"); if (configTable.ContainsKey("refreshpvp")) { Hashtable table = configTable["refreshpvp"] as Hashtable; pk_refreshpvpmoney.text = table["value"] as string; } } }
public void AddRank(stPVPRival rank) { m_RankList.Add(rank); }