Exemplo n.º 1
0
    void UpdateBagByIndex(int index)
    {
        int          nIndex   = index - currTab * MAX_PERPACKET;
        CObject_Item packItem = CDataPool.Instance.UserBag_GetItemByIndex(index);

        if (nIndex < 0 || nIndex >= buttons.Count)
        {
            LogManager.LogError("packet index is invalid index=" + nIndex);
            return;
        }
        if (packItem != null)
        {
            buttons[nIndex].SetActionItem(packItem.GetID());
            if (packItem.isLocked)
            {
                buttons[nIndex].Disable();
            }
            else
            {
                buttons[nIndex].Enable();
            }
        }
        else
        {
            buttons[nIndex].SetActionItem(-1);
        }
    }
Exemplo n.º 2
0
 void UpdatePetEquiptActionButton(CObject_Item item, ActionButton btn)
 {
     if (item != null)
     {
         btn.UpdateItem(item.GetID());
     }
     else
     {
         btn.UpdateItem(-1);
     }
 }
Exemplo n.º 3
0
 void AddGemCombineMat(int nIndex)
 {
     if (mGemContainer[nIndex].CurrActionItem != null)
     {
         CObject_Item item = mGemContainer[nIndex].CurrActionItem.GetImpl() as CObject_Item;
         if (item != null)
         {
             //检测材料合法性
             //todo
             if (!CheckGem(item))
             {
                 return;
             }
             if (!mGemCombineSelectedIDs.Contains(item.GetID()))
             {
                 mGemCombineSelectedIDs.Add(item.GetID());
                 item.isLocked = true;
                 UpdateGemMaterials();
             }
         }
     }
 }
Exemplo n.º 4
0
        public CActionItem EnumCallBackItem(int nIndex)
        {
            int nNum = CDataPool.Instance.Booth_GetSoldNumber();

            for (int i = 0; i < nNum; i++)
            {
                CObject_Item item = CDataPool.Instance.Booth_GetSoldItem(i);
                if (item != null)
                {
                    return(CActionSystem.Instance.GetAction_ItemID(item.GetID(), false));
                }
            }
            return(null);
        }
Exemplo n.º 5
0
 public void Update_Item(CObject_Item item)
 {
     ItemImpl = item;
     //引用
     IDItemImpl = item.GetID();
     //名称
     m_strName = item.GetName();
     //图标
     if (item.GetIconName() != "")
     {
         m_strIconName = item.GetIconName();
     }
     //通知UI
     UpdateToRefrence();
 }
Exemplo n.º 6
0
    //void Awake()
    //{
    //gameObject.SetActiveRecursively(true);


    //	EZScreenPlacement ScreenPlacement = gameObject.GetComponent<EZScreenPlacement>();
    //    if (ScreenPlacement != null)
    //ScreenPlacement.SetCamera(UISystem.Instance.UiCamrea);
    //		ScreenPlacement.RenderCamera = UISystem.Instance.UiCamrea;

    //     CEventSystem.Instance.RegisterEventHandle(GAME_EVENT_ID.GE_NEW_ITEM, OnEvent);
    //CEventSystem.Instance.RegisterEventHandle(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED, OnEvent);
    //     CEventSystem.Instance.RegisterEventHandle(GAME_EVENT_ID.GE_UNIT_HP,OnEvent);

    //     actionButton.AddInputDelegate(OnActionButtonClicked);

    //     gameObject.SetActiveRecursively(false);
    //  }

    void OnEvent(GAME_EVENT_ID gAME_EVENT_ID, List <string> vParam)
    {
        if (gAME_EVENT_ID == GAME_EVENT_ID.GE_NEW_ITEM)
        {
            int         id         = int.Parse(vParam[0]);
            CActionItem actionItem = CActionSystem.Instance.GetAction_ItemID(id, false);
            if (actionItem == null)
            {
                return;
            }

            actionId = actionItem.GetID();
            actionButton.SetActionItemByActionId(actionItem.GetID());

            CObject_Item item = actionItem.GetImpl() as CObject_Item;
            if (item != null)
            {
                titleText.Text = UIString.Instance.ParserString_Runtime("#{GET_NEW_ITEM}");
                descText.Text  = UIString.Instance.ParserString_Runtime("#{NEW_ITEM_DESC}");
            }
            UIWindowMng.Instance.ShowWindow("NewItemWindow");
        }
        //else if (gAME_EVENT_ID == GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED)
        //{
        //CActionItem actionItem = CActionSystem.Instance.GetActionByActionId(actionId);
        //if (actionItem == null)
        // OnClose();
        // }
        else if (gAME_EVENT_ID == GAME_EVENT_ID.GE_UNIT_HP)
        {
            float hp = PlayerMySelf.Instance.GetHPPercent();
            if (hp <= 0.4)
            {
                CObject_Item item = CDataPool.Instance.GetMedicial();
                if (item != null)
                {
                    actionButton.UpdateItem(item.GetID());
                    titleText.Text = "血量剩余40%";
                    descText.Text  = UIString.Instance.ParserString_Runtime("#{NEW_ITEM_DESC}");
                    UIWindowMng.Instance.ShowWindow("NewItemWindow");
                }
            }
            else
            {
                OnClose();
            }
        }
    }
Exemplo n.º 7
0
    public void DestroyItem(CObject_Item item)
    {
        if (item != null)
        {
            allItems.Remove(item.GetID());
        }
//          if(pItem)
//          {
//              std::map< UINT, CObject_Item* >::iterator it = s_mapAllItem.find(pItem->GetID());
//              if(it != s_mapAllItem.end()) s_mapAllItem.erase(it);
//              if(pItem->m_pExtraInfoItem)
//              {
//                  delete pItem->m_pExtraInfoItem;
//                  pItem->m_pExtraInfoItem = 0;
//              }
//              delete pItem;
//          }
//          return;
    }
Exemplo n.º 8
0
    void RefreshRolePetPage(int petIndex, ref bool bResetSelectIndex)
    {
        int       nBeginIndex = mCurrentEquipIndex * MAX_EQUIPGRID;
        int       nCount      = 0;                                            //总装备数量
        SDATA_PET curPet      = CDataPool.Instance.Pet_GetValidPet(petIndex); //CDataPool.Instance.Pet_GetPet(petIndex);

        if (curPet != null)
        {
            for (int i = 0; i < (int)PET_EQUIP.PEQUIP_NUMBER; i++)
            {
                CObject_Item curItem = CDataPool.Instance.UserPetEquipt_GetItem(curPet.GUID, (PET_EQUIP)i);
                if (curItem != null)
                {
                    if (nCount < nBeginIndex || nCount - nBeginIndex >= MAX_EQUIPGRID)
                    {
                        nCount++;
                        continue;
                    }
                    //不重置当前选择的索引
                    if (nCount - nBeginIndex >= mCurrentSelectedEquip)
                    {
                        bResetSelectIndex = false;
                    }

                    mEquips[nCount - nBeginIndex].SetActionItem(curItem.GetID());
                    mEquipsText[nCount - nBeginIndex].Text = curItem.GetName() + "\n" + "强化 " + curItem.GetStrengthLevel() + "级";
                    nCount++;
                }
            }
        }
        mMaxPage = nCount / MAX_EQUIPGRID;
        if (nCount % MAX_EQUIPGRID != 0)
        {
            mMaxPage++;
        }
        UpatePageNum();
    }
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain)
            {
                GCBankRemoveItem packet    = pPacket as GCBankRemoveItem;
                byte             indexTo   = packet.IndexTo;
                byte             indexFrom = packet.IndexFrom;

                if (packet.ToType == (byte)GCBankRemoveItem.PosType.EQUIP_POS)
                {
                }
                else if (packet.ToType == (byte)GCBankRemoveItem.PosType.BAG_POS)
                {
                    switch (packet.operateType)
                    {
                    case (byte)GCBankRemoveItem.OPtype.OPERATE_MOVE:                            // 移动物品到空格
                    {
                        CObject_Item pItem = CDataPool.Instance.UserBank_GetItem(indexFrom);
                        CDataPool.Instance.UserBag_SetItem(indexTo, pItem, true, false);
                        CDataPool.Instance.UserBank_SetItem(indexFrom, null, false);
                        CActionSystem.Instance.UserBank_Update();
                        CActionSystem.Instance.UserBag_Update();

                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "物品取出银行成功");
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED);
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_BANK);
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_GET_NEWEQUIP, pItem.GetID());
                    }
                    break;

                    case (byte)GCBankRemoveItem.OPtype.OPERATE_SPLICE:                          // 叠加物品
                    {
                    }
                    break;

                    case (byte)GCBankRemoveItem.OPtype.OPERATE_SPLIT:                           // 拆分物品
                    {
                    }
                    break;

                    case (byte)GCBankRemoveItem.OPtype.OPERATE_SWAP:                            // 交换物品
                    {
                        CObject_Item pItem  = CDataPool.Instance.UserBank_GetItem(indexFrom);
                        CObject_Item pItem1 = CDataPool.Instance.UserBag_GetItemByIndex(indexTo);
                        CDataPool.Instance.UserBag_SetItem(indexTo, pItem, false, false);
                        CDataPool.Instance.UserBank_SetItem(indexFrom, pItem1, false);
                        CActionSystem.Instance.UserBank_Update();
                        CActionSystem.Instance.UserBag_Update();

                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "银行和背包交换物品成功");
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED);
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_BANK);
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_GET_NEWEQUIP, pItem.GetID());
                    }
                    break;

                    default:
                        break;
                    }
                }
                else if (packet.ToType == (byte)GCBankRemoveItem.PosType.ERROR_POS)
                {
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "移动物品失败");
                }
            }

            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain)
            {
                GCBankAddItem packet = pPacket as GCBankAddItem;

                if (packet.FromType == (byte)GCBankAddItem.PosType.EQUIP_POS)
                {
                }
                else if (packet.FromType == (byte)GCBankAddItem.PosType.BAG_POS)
                {
                    CObject_Item pItemFrom = CDataPool.Instance.UserBag_GetItemByIndex(packet.IndexFrom);
                    CObject_Item pItemTo   = CDataPool.Instance.UserBank_GetItem(packet.IndexTo);

                    switch ((GCBankAddItem.OperateType)packet.Operatetype)
                    {
                    case GCBankAddItem.OperateType.OPERATE_MOVE:                // 移动到空格
                    {
                        CDataPool.Instance.UserBank_SetItem(packet.IndexTo, pItemFrom, true);
                        CDataPool.Instance.UserBag_SetItem(packet.IndexFrom, null, false, false);
                    }
                    break;

                    case GCBankAddItem.OperateType.OPERATE_SPLICE:              // 合并
                    {
                        //CDataPool::GetMe()->UserBank_SetItem(indexTo, pItemFrom);
                        //CDataPool::GetMe()->UserBag_SetItem(indexFrom, NULL, FALSE);
                    }
                    break;

                    case GCBankAddItem.OperateType.OPERATE_SWAP:                // 交换
                    {
                        CDataPool.Instance.UserBank_SetItem(packet.IndexTo, pItemFrom, false);
                        CDataPool.Instance.UserBag_SetItem(packet.IndexFrom, pItemTo, false, false);
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_GET_NEWEQUIP, pItemTo.GetID());
                    }
                    break;

                    default:
                        break;
                    }
                    CActionSystem.Instance.UserBank_Update();
                    CActionSystem.Instance.UserBag_Update();
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "物品存入银行成功");
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED);
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_BANK);
                }
                else if (packet.FromType == (byte)GCBankAddItem.PosType.ERROR_POS)
                {
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "物品存入银行失败");
                }
            }

            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase Packet, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain)
            {
                LogManager.Log("Receive GCPickResult Packet");
                GCPickResult   pPacket        = (GCPickResult)Packet;
                CObjectManager pObjectManager = CObjectManager.Instance;
                CDataPool      pDataPool      = GameProcedure.s_pDataPool;
                //if( pPacket.getItemBoxId() != pDataPool.GetItemBoxID() )

                bool bLog = (GameProcedure.s_pUISystem != null)?true:false;
                // 放置每一个物品
                if (pPacket.getResult() == (byte)PickResultCode.PICK_SUCCESS)
                {
                    int          nIndex = 0;
                    CObject_Item pItem  = CDataPool.Instance.ItemBox_GetItem(
                        pPacket.getItemID().m_World,
                        pPacket.getItemID().m_Server,
                        pPacket.getItemID().m_Serial,
                        ref nIndex);

                    if (pItem == null)
                    {
                        if (bLog)
                        {
                            GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "内部错误,非法的物品GUID!");
                        }
                        return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                    }

                    // 先保存物品名称,后面可能会删除掉落包里的物品 [6/13/2011 ivan edit]
                    string strItemName = pItem.GetName();

                    //如果发生物品转移,(从箱子里面移到包裹里),则改变客户端id,以表示在客户端是不同物体
                    ObjectSystem.Instance.ChangeItemClientID(pItem);
                    ((CObject_Item)pItem).SetTypeOwner(ITEM_OWNER.IO_MYSELF_PACKET);

                    CObject_Item pItemBag = CDataPool.Instance.UserBag_GetItem(pPacket.getBagIndex());
                    if (pItemBag != null)
                    {            //有东西,应该一定是一类物品
                        if (pItem.GetIdTable() == pItemBag.GetIdTable())
                        {        //同一类物品
                            //CDataPool.GetMe().ItemBox_SetItem(nIndex, NULL, FALSE);
                            // 不删除会泄露内存 [6/10/2011 ivan edit]
                            CDataPool.Instance.ItemBox_SetItem(nIndex, null, true);
                        }
                        else
                        {
                            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                        }
                    }
                    else
                    {            //没东西
                        //存入数据池
                        CDataPool.Instance.UserBag_SetItem(pPacket.getBagIndex(), pItem, true, true);
                        CDataPool.Instance.ItemBox_SetItem(nIndex, null, false);

                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_GET_NEWEQUIP, pItem.GetID());
                    }

                    //通知ActionButton
                    CActionSystem.Instance.UserBag_Update();
                    CActionSystem.Instance.ItemBox_Update();

                    //产生ui事件
                    if (bLog)
                    {
                        //ADDTALKMSG(strItemName); //todo
                    }

                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_LOOT_SLOT_CLEARED);
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED, pPacket.getBagIndex());

                    //如果掉落箱空,关闭
                    if (CDataPool.Instance.ItemBox_GetNumber() == 0)
                    {
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_LOOT_CLOSED);
                    }
                }
                else
                {
                    switch (pPacket.getResult())
                    {
                    case (byte)PickResultCode.PICK_BAG_FULL:
                    {
                        if (bLog)
                        {
                            GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, ("背包已满!"));
                        }
                        //CSoundSystemFMod._PlayUISoundFunc(96); todo
                    }
                    break;

                    case (byte)PickResultCode.PICK_INVALID_OWNER:
                    {
                        if (bLog)
                        {
                            GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, ("不属于自己的背包!"));
                        }
                    }
                    break;

                    case (byte)PickResultCode.PICK_INVALID_ITEM:
                    {
                        if (bLog)
                        {
                            GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, ("非法物品!"));
                        }
                    }
                    break;

                    case (byte)PickResultCode.PICK_TOO_FAR:
                    {
                        if (bLog)
                        {
                            GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, ("距离太远!"));
                        }
                    }
                    break;

                    default:
                        break;
                    }
                }
            }
            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Exemplo n.º 12
0
        // 把装备栏某位置的物品置灰 [7/15/2011 ivan edit]
        public void Lock_Equip_Item(int nIndex, bool isLock)
        {
            if (nIndex >= 0)
            {
                CObject_Item pObj = CDataPool.Instance.UserEquip_GetItem((HUMAN_EQUIP)nIndex);
                if (pObj != null)
                {
                    // 设置装备栏物品状态,是否锁定 [7/15/2011 ivan edit]
                    CActionItem_Item pItemAction = CActionSystem.Instance.GetAction_ItemID(pObj.GetID());

                    if (isLock)
                    {
                        pObj.SetLock(true);
                        if (pItemAction != null)
                        {
                            pItemAction.Disable();
                        }
                    }
                    else
                    {
                        pObj.SetLock(false);
                        if (pItemAction != null)
                        {
                            pItemAction.Enable();
                        }
                    }
                }
            }
        }
Exemplo n.º 13
0
    void UpdateEnchanseSelectedEquip()
    {
        ClearEnchanseSelected();
        if (mSelectedItem != null)
        {
            mEnchanseSelectedAction.SetActionItem(mSelectedItem.GetID());

            CObject_Item_Equip equip = mSelectedItem as CObject_Item_Equip;
            if (equip != null)
            {
                int gemCount = equip.GetGemCount();
                for (int i = 0; i < gemCount; i++)
                {
                    int nIdTable = equip.GetGemTableId(i);
                    if (nIdTable != 0)
                    {
                        CObject_Item gemItem = ObjectSystem.Instance.NewItem((uint)nIdTable);
                        CActionItem  action  = CActionSystem.Instance.GetAction_ItemID(gemItem.GetID(), false);
                        mEnchanseGemInfo[i].enchanseGem.SetActionItemByActionId(action.GetID());
                    }
                }
            }
        }
        UpdateEnchanseGemStates();
    }
Exemplo n.º 14
0
    void ShowShengDangInfo(int index)
    {
        ShengDangItem = sItem[index];
        ShengDangImageButton[0].UpdateItem(ShengDangItem.GetID());

        int j = ShengDangPage[nTheIndex] * 10;

        for (int i = 0; i < 10; i++)
        {
            if (i + j >= sItem.Count)
            {
                ShengDangNames[i].Text  = "";
                ShengDangLevels[i].Text = "";
                ShengDangRadios[i].Hide(true);
            }
            else
            {
                ShengDangNames[i].Text  = sItem[i + j].GetName();
                ShengDangLevels[i].Text = "档次:" + sItem[i + j].GetCurrentDangCi();
                ShengDangRadios[i].Hide(false);
            }
        }

        int selectIndex = (int)ShengDangSelect[nTheIndex];

        if (ShengDangPage[nTheIndex] == ShengDangPageRadio[nTheIndex])
        {
            ShengDangRadios[selectIndex].Value = true;
        }

        else
        {
            ShengDangRadios[selectIndex].Value = false;
        }

        ShengDangPageNum.Text = (ShengDangPage[nTheIndex] + 1) + "/" + GetPageNum();

        ShengDangPreEnchanceLevel.Text = "强化等级:" + CDataPool.Instance.GetStrengthLevelDesc(ShengDangItem.GetStrengthLevel());
        if (ShengDangItem.GetCurrentDangCi() == -1)
        {
            ShengDangCurrentDangCi.Text = "";
            ShengDangNextDangCi.Text    = "档次1";
        }
        else
        {
            ShengDangCurrentDangCi.Text = "档次:" + ShengDangItem.GetCurrentDangCi();
            ShengDangNextDangCi.Text    = "档次:" + (ShengDangItem.GetCurrentDangCi() + 1);
        }

        Lua_Item_LevelUp item      = LifeAbility.Instance.Get_Equip_LevelUpMaterial(ShengDangItem.GetCurrentDangCi());
        CObject_Item     pItemObj1 = ObjectSystem.Instance.NewItem((uint)item.needItemID);
        CObject_Item     pItemObj2 = ObjectSystem.Instance.NewItem((uint)item.needItemID2);

        CActionItem_Item actionItem1 = CActionSystem.Instance.GetAction_ItemID(pItemObj1.GetID());
        CActionItem_Item actionItem2 = CActionSystem.Instance.GetAction_ItemID(pItemObj2.GetID());

        MaterialName[0].Text = actionItem1.GetName();
        MaterialName[1].Text = actionItem2.GetName();
        MaterialButton[0].SetActionItemByActionId(actionItem1.GetID());
        MaterialButton[1].SetActionItemByActionId(actionItem2.GetID());

        int count1 = CDataPool.Instance.UserBag_CountItemByIDTable(item.needItemID);
        int count2 = CDataPool.Instance.UserBag_CountItemByIDTable(item.needItemID2);

        if (count1 >= item.needItemNum)
        {
            count1 = item.needItemNum;
        }
        else if (count1 == -1)
        {
            count1 = 0;
        }

        if (count2 >= item.needItem2Num)
        {
            count2 = item.needItem2Num;
        }
        else if (count2 == -1)
        {
            count2 = 0;
        }

        MaterialNum[0].Text = count1 + "/" + item.needItemNum;
        MaterialNum[1].Text = count2 + "/" + item.needItem2Num;
        ShengDangMoney.Text = item.money.ToString();
    }
Exemplo n.º 15
0
 void UpdateEnchanseGemStates()
 {
     for (int i = 0; i < mEnchanseGemInfo.Length; i++)
     {
         if (mEnchanseGemInfo[i].bFlag == 2)
         {
             mEnchanseGemInfo[i].enchanseGem.SetMaskTexture("maskout");
         }
         else if (mEnchanseGemInfo[i].bFlag == 1)
         {
             //todo add
             if (mEnchanseGemInfo[i].nGemType != -1)
             {
                 CObject_Item gemItem    = CDataPool.Instance.UserBag_GetItemById(mEnchanseGemInfo[i].nGemType);
                 CObject_Item newGemItem = ObjectSystem.Instance.NewItem((uint)gemItem.GetIdTable());
                 CActionItem  action     = CActionSystem.Instance.GetAction_ItemID(newGemItem.GetID(), false);
                 mEnchanseGemInfo[i].enchanseGem.SetActionItemByActionId(action.GetID());
                 mEnchanseGemInfo[i].enchanseGem.SetMaskTexture("maskin");
             }
         }
     }
 }
Exemplo n.º 16
0
 public void ChangeItemClientID(CObject_Item item)
 {
     allItems.Remove(item.GetID());
     item.ChangeClientID(CreateID());
     allItems.Add(item.GetID(), item);
 }
Exemplo n.º 17
0
    /// <summary>
    /// 升档
    /// </summary>
    void UpdateShengDang()
    {
        ClearShengDangContext();
        mIsEnableSD = false;
        if (mSelectedItem != null)
        {
            mSDSelectedAction.SetActionItem(mSelectedItem.GetID());
            string text = mSelectedItem.GetWhiteAttribute(0);
            mSDSelectedAttriDesc.Text = UIString.Instance.ParserString_Runtime(text);
            text = mSelectedItem.GetWhiteAttribute(1);
            if (text == "")
            {
                mSDSelectedAttriDesc2.Hide(true);
            }
            else
            {
                mSDSelectedAttriDesc2.Hide(false);
                mSDSelectedAttriDesc2.Text = UIString.Instance.ParserString_Runtime(text);
            }


            CActionItem actionItem = LifeAbility.Instance.GetEquipUpdatePreView(mSDSelectedAction.CurrActionItem.GetID());
            if (actionItem != null)
            {
                mSDPreviewAction.SetActionItemByActionId(actionItem.GetID());

                CObject_Item previewItem = mSDPreviewAction.CurrActionItem.GetImpl() as CObject_Item;
                if (previewItem != null)
                {
                    text = previewItem.GetWhiteAttribute(0);
                    mSDPreviewAttriDesc.Text = UIString.Instance.ParserString_Runtime(text);
                    text = previewItem.GetWhiteAttribute(1);
                    if (text == "")
                    {
                        mSDPreviewAttriDesc2.Hide(true);
                    }
                    else
                    {
                        mSDPreviewAttriDesc2.Text = UIString.Instance.ParserString_Runtime(text);
                        mSDPreviewAttriDesc2.Hide(false);
                    }
                }
            }

            int nPrescrId = LifeAbility.Instance.GetPrescrID(mSelectedItem.GetIdTable());
            if (nPrescrId == -1)
            {
                NoPrescrHandler(mSelectedItem.GetIdTable());
                mSDOK.controlIsEnabled = false;
                return;
            }
            NoPrescrHandler(-1);
            //材料
            int nCount = LifeAbility.Instance.GetPrescrStuffCount(nPrescrId);
            //int nMaterial = -1;
            for (int i = 1; i < nCount; i++) //第一个材料为当前装备,跳过不显示
            {
                Stuff stuff = LifeAbility.Instance.GetPrescrStuff(i, nPrescrId);
                if (stuff.nID == -1)
                {
                    mSDMaterials[i - 1].SetActionItem(-1);
                    mSDMaterialTexts[i - 1].Text = "";
                    continue;
                }
                bool bCreateNew = true;
                if (mSDMaterials[i - 1].CurrActionItem != null)
                {
                    if (mSDMaterials[i - 1].CurrActionItem.GetIDTable() == stuff.nID)
                    {
                        bCreateNew = false;
                    }
                    else
                    {
                        mSDMaterials[i - 1].CurrActionItem.DestroyImpl();
                    }
                }
                if (bCreateNew)
                {
                    CObject_Item     pItemObj1   = ObjectSystem.Instance.NewItem((uint)stuff.nID);
                    CActionItem_Item actionItem1 = CActionSystem.Instance.GetAction_ItemID(pItemObj1.GetID(), false);

                    mSDMaterials[i - 1].SetActionItemByActionId(actionItem1.GetID());
                }

                int count = CDataPool.Instance.UserBag_CountItemByIDTable(stuff.nID);
                if (count >= stuff.nNum)
                {
                    count       = stuff.nNum;
                    mIsEnableSD = true;
                }
                else
                {
                    mIsEnableSD = false;
                }
                mSDMaterialTexts[i - 1].Text = count + "/" + stuff.nNum;
            }

            mSDOK.controlIsEnabled = mIsEnableSD;
        }
    }
Exemplo n.º 18
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain)
            {
                GCBankSwapItem packet    = pPacket as GCBankSwapItem;
                byte           indexTo   = packet.IndexTo;
                byte           indexFrom = packet.IndexFrom;

                if (packet.FromType == (byte)GCBankSwapItem.PosType.ERROR_POS ||
                    packet.ToType == (byte)GCBankSwapItem.PosType.ERROR_POS
                    )
                {
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "非法命令");
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }


                switch ((GCBankSwapItem.PosType)packet.FromType)
                {
                case GCBankSwapItem.PosType.EQUIP_POS:
                {
                    switch ((GCBankSwapItem.PosType)packet.ToType)
                    {
                    case GCBankSwapItem.PosType.BAG_POS:
                    {
                    }
                    break;

                    case GCBankSwapItem.PosType.EQUIP_POS:
                    {
                    }
                    break;

                    case GCBankSwapItem.PosType.BANK_POS:
                    {
                    }
                    break;

                    default:
                        break;
                    }
                }
                break;

                case GCBankSwapItem.PosType.BAG_POS:
                {
                    switch ((GCBankSwapItem.PosType)packet.ToType)
                    {
                    case GCBankSwapItem.PosType.BAG_POS:
                    {
                    }
                    break;

                    case GCBankSwapItem.PosType.EQUIP_POS:
                    {
                    }
                    break;

                    case GCBankSwapItem.PosType.BANK_POS:
                    {
                        CObject_Item pItemFrom = CDataPool.Instance.UserBag_GetItemByIndex(indexFrom);
                        CObject_Item pItemTo   = CDataPool.Instance.UserBank_GetItem(indexTo);

                        CDataPool.Instance.UserBank_SetItem(indexTo, pItemFrom, false);
                        CDataPool.Instance.UserBag_SetItem(indexFrom, pItemTo, false, false);
                        CActionSystem.Instance.UserBank_Update();
                        CActionSystem.Instance.UserBag_Update();

                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "背包到银行物品交换成功");
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED);
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_GET_NEWEQUIP, pItemTo.GetID());
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_BANK);
                    }
                    break;

                    default:
                        break;
                    }
                }
                break;

                case GCBankSwapItem.PosType.BANK_POS:
                {
                    switch ((GCBankSwapItem.PosType)packet.ToType)
                    {
                    case GCBankSwapItem.PosType.BAG_POS:
                    {
                        CObject_Item pItemFrom = CDataPool.Instance.UserBank_GetItem(indexFrom);
                        CObject_Item pItemTo   = CDataPool.Instance.UserBag_GetItemByIndex(indexTo);

                        CDataPool.Instance.UserBag_SetItem(indexTo, pItemFrom, false, false);
                        CDataPool.Instance.UserBank_SetItem(indexFrom, pItemTo, false);
                        CActionSystem.Instance.UserBank_Update();
                        CActionSystem.Instance.UserBag_Update();

                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "银行到背包物品交换成功");
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_PACKAGE_ITEM_CHANGED);
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_GET_NEWEQUIP, pItemFrom.GetID());
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_BANK);
                    }
                    break;

                    case GCBankSwapItem.PosType.EQUIP_POS:
                    {
                    }
                    break;

                    case GCBankSwapItem.PosType.BANK_POS:
                    {
                        CObject_Item pItemFrom = CDataPool.Instance.UserBank_GetItem(indexFrom);
                        CObject_Item pItemTo   = CDataPool.Instance.UserBank_GetItem(indexTo);

                        CDataPool.Instance.UserBank_SetItem(indexTo, pItemFrom, false);
                        CDataPool.Instance.UserBank_SetItem(indexFrom, pItemTo, false);
                        CActionSystem.Instance.UserBank_Update();

                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "银行到银行物品移位成功");
                        CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_UPDATE_BANK);
                    }
                    break;

                    default:
                        break;
                    }
                }
                break;

                default:
                    break;
                }
            }

            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Exemplo n.º 19
0
    void OnChangedRoleType(RoleType rt)
    {
        Clear();
        bool bResetSelectIndex = true;

        switch (rt)
        {
        case RoleType.ROLE_SELF:
        {
            // 装备点的最大个数.
            int nBeginIndex = mCurrentEquipIndex * MAX_EQUIPGRID;
            int nCount      = 0;    //总装备数量
            for (int i = 0; i < (int)HUMAN_EQUIP.HEQUIP_NUMBER; i++)
            {
                if (i == (int)HUMAN_EQUIP.HEQUIP_RIDER)
                {
                    continue;
                }
                //取得玩家身上的装备
                CObject_Item pItem = CDataPool.Instance.UserEquip_GetItem((HUMAN_EQUIP)i);
                if (pItem != null)
                {
                    if (nCount < nBeginIndex || nCount - nBeginIndex >= MAX_EQUIPGRID)
                    {
                        nCount++;
                        continue;
                    }
                    //不重置当前选择的索引
                    if (nCount - nBeginIndex >= mCurrentSelectedEquip)
                    {
                        bResetSelectIndex = false;
                    }

                    mEquips[nCount - nBeginIndex].SetActionItem(pItem.GetID());
                    mEquipsText[nCount - nBeginIndex].Text = pItem.GetName() + "\n" + "强化 " + pItem.GetStrengthLevel() + "级";

                    nCount++;
                }
            }
            mMaxPage = nCount / MAX_EQUIPGRID;
            if (nCount % MAX_EQUIPGRID != 0)
            {
                mMaxPage++;
            }
            UpatePageNum();
        }
        break;

        case RoleType.ROLE_PACKET:
        {
            int nCount      = 0;
            int nBeginIndex = mCurrentEquipIndex * MAX_EQUIPGRID;
            for (int i = GAMEDEFINE.EQUIP_BAG_BEGIN; i < GAMEDEFINE.EQUIP_BAG_END; i++)
            {
                CObject_Item_Equip item = CDataPool.Instance.UserBag_GetItem(i) as CObject_Item_Equip;

                if (item != null && item.GetItemType() != HUMAN_EQUIP.HEQUIP_RIDER)
                {
                    if (nCount < nBeginIndex || nCount - nBeginIndex >= MAX_EQUIPGRID)
                    {
                        nCount++;
                        continue;
                    }
                    //不重置当前选择的索引
                    if (nCount - nBeginIndex >= mCurrentSelectedEquip)
                    {
                        bResetSelectIndex = false;
                    }

                    mEquips[nCount - nBeginIndex].SetActionItem(item.GetID());
                    mEquipsText[nCount - nBeginIndex].Text = item.GetName() + "\n" + "强化 " + item.GetStrengthLevel() + "级";

                    nCount++;
                }
            }
            mMaxPage = nCount / MAX_EQUIPGRID;
            if (nCount % MAX_EQUIPGRID != 0)
            {
                mMaxPage++;
            }
            UpatePageNum();
        }
        break;

        case RoleType.ROLE_PET1:
        {
            RefreshRolePetPage(0, ref bResetSelectIndex);
        }
        break;

        case RoleType.ROLE_PET2:
        {
            RefreshRolePetPage(1, ref bResetSelectIndex);
        }
        break;

        case RoleType.ROLE_PET3:
        {
            RefreshRolePetPage(2, ref bResetSelectIndex);
        }
        break;

        case RoleType.ROLE_PET4:
        {
            RefreshRolePetPage(3, ref bResetSelectIndex);
        }
        break;

        case RoleType.ROLE_PET5:
        {
            RefreshRolePetPage(4, ref bResetSelectIndex);
        }
        break;

        case RoleType.ROLE_PET6:
        {
            RefreshRolePetPage(5, ref bResetSelectIndex);
        }
        break;

        default:
            break;
        }

        //切换回归第一件装备
        if (bResetSelectIndex)
        {
            mCurrentSelectedEquip = 0;
            mEquipMenus[mCurrentSelectedEquip].Value = true;
        }
        SelectedEquipChanged(mCurrentSelectedEquip);
    }