Beispiel #1
0
    private static void msg_SC_TREASURE_CHEST_NTF(int iMsgID, ref CMessage msg)
    {
        CliProto.SC_TREASURE_CHEST_NTF refMSG = (CliProto.SC_TREASURE_CHEST_NTF)msg;
        if (sdGameLevel.instance.levelType == sdGameLevel.LevelType.WorldMap)
        {
            sdUICharacter.Instance.AddSweepInfo(refMSG);
        }
        else
        {
            // 保存结算信息aa
            sdUICharacter.Instance.SetJiesuanMsg(refMSG);
        }
//		int count = refMSG.m_ItemList.m_Count;
//		for(int i = 0; i < count; ++i)
//		{
//			sdGameItemMgr.Instance.createItem((int)refMSG.m_ItemList.m_ItemList[i].m_TemplateId, refMSG.m_ItemList.m_ItemList[i].m_UUID, (int)refMSG.m_Pos, refMSG.m_ItemList.m_ItemList[i].m_Count);
//		}
//		sdGlobalDatabase.Instance.globalData["MainCharItemInfo"] = sdGameItemMgr.Instance.GetAllItem(2,-1);
//		sdSlotMgr.Instance.Notify((int)refMSG.m_Pos);

        // 关卡结束aa
        sdLevelInfo.EndLevel(refMSG.m_LevelID, refMSG.m_CurGetStar);

        // 显示胜利动画aa
        if (sdGameLevel.instance != null)
        {
            if (sdGameLevel.instance.mainCamera != null)
            {
                sdGameLevel.instance.mainCamera.ShowVictory();
            }
        }
    }
Beispiel #2
0
    public void SetInfo(CliProto.SC_TREASURE_CHEST_NTF msg)
    {
        float     expRate            = 1;
        float     moneyRate          = 1;
        Hashtable militarylevelTable = sdConfDataMgr.Instance().GetTable("militarylevel");

        if (militarylevelTable.ContainsKey(sdPVPManager.Instance.nMilitaryLevel.ToString()))
        {
            Hashtable military = militarylevelTable[(sdPVPManager.Instance.nMilitaryLevel).ToString()] as Hashtable;
            expRate   = float.Parse(military["experience"].ToString()) / 100 + 1;
            moneyRate = float.Parse(military["money"].ToString()) / 100 + 1;
        }

        int exp   = (int)(((float)msg.m_Experience) * expRate);
        int money = (int)(((float)msg.m_Money) * moneyRate);

        expLbl.text   = exp.ToString();
        moneyLbl.text = moneyLbl.ToString();

        int slotNum = 0;
        int num     = (int)msg.m_Items.m_ItemCount;
        List <sdGameItem>    itemList    = new List <sdGameItem>();
        List <sdGamePetItem> petItemList = new List <sdGamePetItem>();
        List <sdGameItem>    petCardList = new List <sdGameItem>();

        for (int i = 0; i < num; ++i)
        {
            sdGameItem item = sdGameItemMgr.Instance.getItem(msg.m_Items.m_Items[i].m_UID);
            if (item == null)
            {
                sdGamePetItem petItem = sdNewPetMgr.Instance.getPetItem(msg.m_Items.m_Items[i].m_UID);
                if (petItem == null)
                {
                    sdGameItem temp = new sdGameItem();
                    temp.templateID = msg.m_Items.m_Items[i].m_TID;
                    Hashtable tempInfo = sdConfDataMgr.Instance().GetItemById(msg.m_Items.m_Items[i].m_TID.ToString());
                    if (tempInfo == null)
                    {
                        continue;
                    }
                    if (int.Parse(tempInfo["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Item)
                    {
                        petCardList.Add(temp);
                    }
                    else
                    {
                        itemList.Add(temp);
                    }

                    continue;
                }
                petItemList.Add(petItem);
                continue;
            }
            itemList.Add(item);
        }

        num = msg.m_PetAboutCount;
        for (int i = 0; i < num; ++i)
        {
            if (table.Length > slotNum && table[slotNum] != null)
            {
                sdSweepResultIcon icon = table[slotNum];
                if (icon != null)
                {
                    Hashtable pet = sdConfDataMgr.Instance().GetItemById(msg.m_PetAbout[i].ToString());
                    if (pet == null)
                    {
                        continue;
                    }
                    if (int.Parse(pet["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Equip)
                    {
                        icon.SetInfo(msg.m_PetAbout[i]);
                    }
                    else if (int.Parse(pet["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Item)
                    {
                        icon.SetInfo(msg.m_PetAbout[i]);
                    }
                }
            }
            ++slotNum;
        }

        foreach (sdGameItem item in petCardList)
        {
            if (table.Length > slotNum && table[slotNum] != null)
            {
                sdSweepResultIcon icon = table[slotNum];
                if (icon != null)
                {
                    if (item != null)
                    {
                        icon.SetInfo(item.instanceID);
                    }
                }
            }
            ++slotNum;
        }

        foreach (sdGamePetItem item in petItemList)
        {
            if (table.Length > slotNum && table[slotNum] != null)
            {
                sdSweepResultIcon icon = table[slotNum];
                if (icon != null)
                {
                    if (item != null)
                    {
                        icon.SetInfo(item.instanceID);
                    }
                }
            }
            ++slotNum;
        }

        //itemList.Sort(CompareItem);

        foreach (sdGameItem item in itemList)
        {
            if (table.Length > slotNum && table[slotNum] != null)
            {
                sdSweepResultIcon icon = table[slotNum];
                if (icon != null)
                {
                    if (item != null)
                    {
                        icon.SetInfo(item.instanceID);
                    }
                }
            }
            ++slotNum;
        }

        while (table.Length > slotNum && table[slotNum] != null)
        {
            sdSweepResultIcon icon = table[slotNum];
            if (icon != null)
            {
                icon.SetInfo(0);
            }
            ++slotNum;
        }

        int treasureNum = msg.m_GetCount;

        for (int i = 0; i < treasureNum; ++i)
        {
            sdSweepResultIcon icon = table[4];
            icon.SetInfo(msg.m_CardInfos[i].m_ItemID);
        }
    }
Beispiel #3
0
    public void SetInfo(CliProto.SC_TREASURE_CHEST_NTF msg)
    {
        LoadScoreEffect(sdUICharacter.Instance.fightScore);
        if (sdUICharacter.Instance.GetBattleType() != (byte)HeaderProto.LEVEL_BATTLE_TYPE.LEVEL_BATTLE_TYPE_ABYSS)
        {
            sdUICharacter.Instance.fightScore = 1;
        }

        if (sdFriendMgr.Instance.fightFriend != null)
        {
            sdFriend fri = sdFriendMgr.Instance.fightFriend;
            friName.GetComponent <UILabel>().text         = fri.name;
            petName.GetComponent <UILabel>().text         = fri.petInfo.m_strName;
            petFrame.GetComponent <UISprite>().spriteName = sdConfDataMgr.Instance().GetPetQuilityBorder(fri.petInfo.m_iAbility);
            UIAtlas atlas = null;
            string  headName;
            //sdConfDataMgr.Instance().SetHeadAtlas += new sdConfDataMgr.HeadAtlas(SetAtlas);
            sdConfDataMgr.Instance().SetHeadPic(fri.gender, fri.hairStyle, fri.color, friIcon.GetComponent <UISprite>());
            //friIcon.GetComponent<UISprite>().atlas = atlas;
            //friIcon.GetComponent<UISprite>().spriteName = headName;

            petIcon.GetComponent <UISprite>().atlas      = sdConfDataMgr.Instance().PetAtlas;
            petIcon.GetComponent <UISprite>().spriteName = fri.petInfo.m_strIcon;
            friLevel.GetComponent <UILabel>().text       = "Lv." + fri.level;
            petLevel.GetComponent <UILabel>().text       = "Lv." + fri.petInfo.m_iLevel.ToString();
        }

        float     expRate            = 1;
        float     moneyRate          = 1;
        Hashtable militarylevelTable = sdConfDataMgr.Instance().GetTable("militarylevel");

        if (militarylevelTable.ContainsKey(sdPVPManager.Instance.nMilitaryLevel.ToString()))
        {
            Hashtable military = militarylevelTable[(sdPVPManager.Instance.nMilitaryLevel).ToString()] as Hashtable;
            expRate   = float.Parse(military["experience"].ToString()) / 100 + 1;
            moneyRate = float.Parse(military["money"].ToString()) / 100 + 1;
        }

        exp   = (int)(((float)msg.m_Experience) * expRate);
        money = (int)(((float)msg.m_Money) * moneyRate);
        Hashtable            table       = sdSlotMgr.Instance.GetIconList(PanelType.Panel_Jiesuan);
        int                  slotNum     = 0;
        int                  num         = (int)msg.m_Items.m_ItemCount;
        List <sdGameItem>    itemList    = new List <sdGameItem>();
        List <sdGamePetItem> petItemList = new List <sdGamePetItem>();
        List <sdGameItem>    petCardList = new List <sdGameItem>();

        for (int i = 0; i < num; ++i)
        {
            sdGameItem item = sdGameItemMgr.Instance.getItem(msg.m_Items.m_Items[i].m_UID);
            if (item == null)
            {
                sdGamePetItem petItem = sdNewPetMgr.Instance.getPetItem(msg.m_Items.m_Items[i].m_UID);
                if (petItem == null)
                {
                    sdGameItem temp = new sdGameItem();
                    temp.templateID = msg.m_Items.m_Items[i].m_TID;
                    Hashtable tempInfo = sdConfDataMgr.Instance().GetItemById(msg.m_Items.m_Items[i].m_TID.ToString());
                    if (tempInfo == null)
                    {
                        continue;
                    }
                    if (int.Parse(tempInfo["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Item)
                    {
                        petCardList.Add(temp);
                    }
                    else
                    {
                        itemList.Add(temp);
                    }

                    continue;
                }
                petItemList.Add(petItem);
                continue;
            }
            item.isNew = true;
            itemList.Add(item);
        }

        itemCount = num + msg.m_PetAboutCount;
        num       = msg.m_PetAboutCount;
        for (int i = 0; i < num; ++i)
        {
            if (table.ContainsKey(slotNum) && table[slotNum] != null)
            {
                sdSlotIcon icon = table[slotNum] as sdSlotIcon;
                if (icon != null)
                {
                    Hashtable pet = sdConfDataMgr.Instance().GetItemById(msg.m_PetAbout[i].ToString());
                    if (pet == null)
                    {
                        continue;
                    }
                    if (int.Parse(pet["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Equip)
                    {
                        icon.jiesuanType = JiesuanSlotType.PetItem;
                        icon.SetInfo(msg.m_PetAbout[i].ToString(), pet);
                        icon.gameObject.SetActive(false);
                        icon.GetComponent <BoxCollider>().enabled = true;
                    }
                    else if (int.Parse(pet["Class"].ToString()) == (int)HeaderProto.EItemClass.ItemClass_Pet_Item)
                    {
                        icon.jiesuanType = JiesuanSlotType.Pet;
                        icon.SetInfo(msg.m_PetAbout[i].ToString(), pet);
                        icon.gameObject.SetActive(false);
                        icon.GetComponent <BoxCollider>().enabled = true;
                    }
                }
            }
            ++slotNum;
        }

        foreach (sdGameItem item in petCardList)
        {
            if (table.ContainsKey(slotNum) && table[slotNum] != null)
            {
                sdSlotIcon icon = table[slotNum] as sdSlotIcon;
                if (icon != null)
                {
                    if (item != null)
                    {
                        Hashtable info = sdConfDataMgr.Instance().GetItemById(item.templateID.ToString());
                        icon.panel       = PanelType.Panel_Jiesuan;
                        icon.jiesuanType = JiesuanSlotType.Pet;
                        icon.SetInfo(item.instanceID.ToString(), info);
                        icon.gameObject.SetActive(false);
                    }
                    icon.enable = false;
                    icon.GetComponent <BoxCollider>().enabled = true;
                }
            }
            ++slotNum;
        }

        foreach (sdGamePetItem item in petItemList)
        {
            if (table.ContainsKey(slotNum) && table[slotNum] != null)
            {
                sdSlotIcon icon = table[slotNum] as sdSlotIcon;
                if (icon != null)
                {
                    if (item != null)
                    {
                        Hashtable info = sdConfDataMgr.Instance().GetItemById(item.templateID.ToString());
                        icon.panel       = PanelType.Panel_Jiesuan;
                        icon.jiesuanType = JiesuanSlotType.PetItem;
                        icon.SetInfo(item.instanceID.ToString(), info);
                        icon.gameObject.SetActive(false);
                    }
                    icon.enable = false;
                    icon.GetComponent <BoxCollider>().enabled = true;
                }
            }
            ++slotNum;
        }

        itemList.Sort(CompareItem);

        foreach (sdGameItem item in itemList)
        {
            if (table.ContainsKey(slotNum) && table[slotNum] != null)
            {
                sdSlotIcon icon = table[slotNum] as sdSlotIcon;
                if (icon != null)
                {
                    if (item != null)
                    {
                        Hashtable info = sdConfDataMgr.Instance().GetItemById(item.templateID.ToString());
                        icon.panel = PanelType.Panel_Jiesuan;
                        icon.SetInfo(item.instanceID.ToString(), info);
                        icon.gameObject.SetActive(false);
                    }
                    icon.enable = false;
                    icon.GetComponent <BoxCollider>().enabled = true;
                }
            }
            ++slotNum;
        }

        while (table.ContainsKey(slotNum) && table[slotNum] != null)
        {
            sdSlotIcon icon = table[slotNum] as sdSlotIcon;
            if (icon != null)
            {
                icon.SetInfo("0", null);
                icon.enable = false;
                icon.GetComponent <BoxCollider>().enabled = false;
            }
            ++slotNum;
        }

        int treasureNum = msg.m_GetCount;

        for (int i = 0; i < treasureNum; ++i)
        {
            TreasureInfo info = new TreasureInfo();
            info.index  = msg.m_CardInfos[i].m_IndexID;
            info.id     = (int)msg.m_CardInfos[i].m_ItemID;
            info.count  = (int)msg.m_CardInfos[i].m_Count;
            info.isTemp = false;
            realList.Add(info);
        }

        treasureNum = msg.m_TempCount;
        List <int> ranlist = new List <int>();

        for (int i = 0; i < treasureNum; ++i)
        {
            ranlist.Add(i);
        }

        System.Random ran = new System.Random();
        while (ranlist.Count > 0)
        {
            int          index    = ran.Next(ranlist.Count);
            int          indexNum = ranlist[index];
            TreasureInfo info     = new TreasureInfo();
            info.index  = msg.m_TempCardInfos[indexNum].m_IndexID;
            info.id     = (int)msg.m_TempCardInfos[indexNum].m_ItemID;
            info.count  = (int)msg.m_TempCardInfos[indexNum].m_Count;
            info.isTemp = true;

            tempList.Add(info);

            ranlist.RemoveAt(index);
        }

        if (sdGameLevel.instance != null && sdGameLevel.instance.mainChar != null)
        {
            if (sdGameLevel.instance.mainChar.Property != null)
            {
                curExp  = sdUICharacter.Instance.oldExp;
                m_level = sdUICharacter.Instance.oldLevel;
                m_job   = int.Parse(sdGameLevel.instance.mainChar.Property["Job"].ToString());
                int maxExp = sdConfDataMgr.Instance().GetLevelExp(m_job.ToString(), m_level.ToString());
                if (maxExp == 0)
                {
                    lvMax = true;
                }
                else
                {
                    lvMax = false;
                }

                if (curLevel != null)
                {
                    if (maxExp == 0)
                    {
                        curLevel.GetComponent <UILabel>().text = string.Format("Max");
                    }
                    else
                    {
                        curLevel.GetComponent <UILabel>().text = string.Format("Lv.{0}", m_level.ToString());
                    }
                }

                if (nextLevel != null)
                {
                    if (maxExp == 0)
                    {
                        nextLevel.GetComponent <UILabel>().text = string.Format("");
                    }
                    else
                    {
                        nextLevel.GetComponent <UILabel>().text = string.Format("Lv.{0}", (m_level + 1).ToString());
                    }
                }

                if (lvPic != null)
                {
                    if (maxExp == 0)
                    {
                        lvPic.GetComponent <UISprite>().fillAmount = 0;
                    }
                    else
                    {
                        lvPic.GetComponent <UISprite>().fillAmount = (float)((float)curExp / (float)maxExp);
                    }
                }
            }
        }
    }