예제 #1
0
        //一次购买多个物品
        public int BulkBuyItem(int nIndex, int nNumber)
        {
            CObject_Item pBoothItem = CDataPool.Instance.Booth_GetItem(nIndex);

            if (pBoothItem != null)
            {
                nNumber = (nNumber <1 || nNumber> pBoothItem.GetMaxOverLay())?1:nNumber;

                if (CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_Money() >=
                    (int)(CDataPool.Instance.Booth_GetItemPrice(nIndex) * nNumber))
                {
                    CGShopBuy msg = new CGShopBuy();

                    msg.UniqueID  = CDataPool.Instance.Booth_GetShopUniqueId();
                    msg.Index     = (byte)pBoothItem.GetPosIndex();
                    msg.SerialNum = (byte)CDataPool.Instance.Booth_GetSerialNum();
                    msg.BuyNum    = (uint)nNumber;

                    NetManager.GetNetManager().SendPacket(msg);
                    return(0);
                }
            }

            CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_INTERCOURSE, "#{LowMoney}");

            return(0);
        }
예제 #2
0
        //-----------------------------------------------------------
// 从货架上头购买一个物品
        internal void Booth_BuyItem(CObject_Item pItem)
        {
            CGShopBuy msg = new CGShopBuy();

            // 先判断是否够钱买

            msg.UniqueID = CDataPool.Instance.Booth_GetShopUniqueId();
            msg.Index    = (byte)pItem.PosIndex;

            NetManager.GetNetManager().SendPacket(msg);
        }
예제 #3
0
    public override void DoAction()
    {
        base.DoAction();

        if (ItemImpl == null)
        {
            return;
        }

        //处理拆分
        //...TODO

        // 发送物品链接
        //...TODO

        switch (ItemImpl.GetTypeOwner())
        {
        case ITEM_OWNER.IO_UNKNOWN:
            break;

        case ITEM_OWNER.IO_MYSELF_EQUIP:
            DoAction_MyEquip();
            break;

        case ITEM_OWNER.IO_PET_EQUIPT:
            DoAction_PetEquip();
            break;

        case ITEM_OWNER.IO_MYSELF_PACKET:    //玩家自己身上的包中
            DoAction_Packet();
            break;

        case ITEM_OWNER.IO_MYSELF_BANK:
        {
            CGBankRemoveItem msg = new CGBankRemoveItem();
            msg.ToType    = (byte)(CGBankRemoveItem.RemoveType.BAG_POS);
            msg.IndexFrom = (byte)GetPosIndex();
            msg.IndexTo   = 255;

            NetManager.GetNetManager().SendPacket(msg);
        }
        break;

        case ITEM_OWNER.IO_PLAYEROTHER_EQUIP:
            break;

        case ITEM_OWNER.IO_ITEMBOX:
            break;

        case ITEM_OWNER.IO_BOOTH:
        {
            DoSubAction();
        }
        break;

        case ITEM_OWNER.IO_MYEXBOX:
            break;

        case ITEM_OWNER.IO_OTHEREXBOX:
            break;

        case ITEM_OWNER.IO_MISSIONBOX:
            break;

        case ITEM_OWNER.IO_MYSTALLBOX:
            break;

        case ITEM_OWNER.IO_OTSTALLBOX:
            break;

        case ITEM_OWNER.IO_QUESTVIRTUALITEM:
            break;

        case ITEM_OWNER.IO_PS_SELFBOX:
            break;

        case ITEM_OWNER.IO_PS_OTHERBOX:
            break;

        case ITEM_OWNER.IO_BOOTH_CALLBACK:
        {
            //        if(CActionSystem::GetMe()->GetDefaultAction() == CActionItem_MouseCmd_Repair::GetMe())
            //{
            //    CEventSystem::GetMe()->PushEvent(GE_INFO_SELF,"不能修理此物品");
            //    break;
            //}

            if (CObjectManager.Instance.getPlayerMySelf().GetCharacterData().Get_Money() >=
                (int)(CDataPool.Instance.Booth_GetSoldPrice(this.GetPosIndex())))
            {
                _ITEM_GUID Guid;
                ITEM_GUID  temp = new ITEM_GUID();

                ItemImpl.GetGUID(ref temp.m_idWorld, ref temp.m_idServer, ref temp.m_uSerial);
                Guid.m_World  = (byte)temp.m_idWorld;
                Guid.m_Server = (byte)temp.m_idServer;
                Guid.m_Serial = (int)temp.m_uSerial;

                CGShopBuy msg = new CGShopBuy();
                msg.UniqueID  = CDataPool.Instance.Booth_GetShopUniqueId();
                msg.Index     = (byte)(ItemImpl.PosIndex + 200);
                msg.ItemGuid  = Guid;
                msg.SerialNum = (byte)CDataPool.Instance.Booth_GetSerialNum();

                NetManager.GetNetManager().SendPacket(msg);
            }
            else
            {
                CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, "#{LowMoney}");
            }
        }
        break;

        case ITEM_OWNER.IO_GEM_SEPARATE:
            break;

        case ITEM_OWNER.IO_TRANSFER_ITEM:
            break;

        case ITEM_OWNER.IO_CITY_RESEARCH:
            break;

        case ITEM_OWNER.IO_CITY_SHOP:
            break;

        case ITEM_OWNER.IO_QUESTUI_DEMAND:
            break;

        case ITEM_OWNER.IO_QUESTUI_REWARD:
            break;

        default:
            break;
        }
    }