Beispiel #1
0
 public void AddRival(stPVPRival rival)
 {
     m_Rivallist.Add(rival);
     //服务器发了5个,只显示4个,最后一个是机器人,必须要显示,所以就把最后一个非机器人干掉了aaa
     if (m_Rivallist.Count >= 5)
     {
         m_Rivallist.RemoveAt(3);
     }
 }
Beispiel #2
0
 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();
 }
Beispiel #3
0
 /* 获取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();
 }
Beispiel #4
0
    /* 获取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);
        }
    }
Beispiel #5
0
    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>());
        }
    }
Beispiel #6
0
    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;
            }
        }
    }
Beispiel #7
0
 public void AddRank(stPVPRival rank)
 {
     m_RankList.Add(rank);
 }