예제 #1
0
    public static tagItem   Create(uint dwTypeID, Int16 nNum, EItemQuality eQuality, int nCmd)
    {
        if (nNum <= 0)
        {
            return(null);
        }

        tagItem pRet = null;

        if (MIsEquipment(dwTypeID))
        {
            pRet          = new tagEquip();
            pRet.dwTypeID = dwTypeID;
        }
        else
        {
            pRet          = new tagItem();
            pRet.dwTypeID = dwTypeID;
        }

        // 64 bit id
        Int64 nSerial = CreateItemSerial();

        InitItem(pRet, nSerial, nNum);

        return(pRet);
    }
예제 #2
0
 public CItem(tagItem data)
 {
     m_data = data;
     CProtoManager.inst.m_mapItem.TryGetValue(m_data.dwTypeID, out m_pProto);
     if (m_pProto == null)
     {
         Common.DEBUG_MSG("tagIteProto's proto not find " + m_data.dwTypeID);
     }
 }
예제 #3
0
    public bool AddItem2Bag(uint dwTypeID, Int16 nNum, EItemQuality eQ, int nCmd)
    {
        if (m_pPocket.IsFull())
        {
            return(false);
        }

        CItem pNewItem  = null;
        Int16 nBagSpace = (Int16)CalSpaceUsed(dwTypeID, nNum);

        // check bag free grid is enongh
        int nFreeSpace = m_pPocket.GetFreeSpaceSize();

        if (nFreeSpace < nBagSpace - 1)
        {
            return(false);
        }

        for (int i = 0; i < nBagSpace; i++)
        {
            tagItem pNew = ItemCreator.Create(dwTypeID, nNum, EItemQuality.EIQ_White, 0);
            if (pNew != null)
            {
                if (ItemCreator.MIsEquipment(dwTypeID))
                {
                    pNewItem = new CEquipment((tagEquip)pNew);
                }
                else
                {
                    pNewItem = new CItem(pNew);
                }
            }


            if (pNewItem != null)
            {
                AddItem(m_pPocket, pNewItem, nNum);
            }
        }

        return(true);
    }
예제 #4
0
    public static tagItem   Create(tagItem item, Int16 nNum)
    {
        if (nNum <= 0)
        {
            return(null);
        }

        tagItem pNewItem = null;

        if (MIsEquipment(item.dwTypeID))
        {
            pNewItem = new tagEquip();
            pNewItem = item;
        }
        else
        {
            pNewItem = new tagItem();
            pNewItem = item;
        }

        pNewItem.n64Serial = CreateItemSerial();

        return(pNewItem);
    }
예제 #5
0
 public static void InitItem(tagItem item, Int64 n64Serial, Int16 nNum)
 {
     item.n64Serial = n64Serial;
     item.n16Num    = nNum;
 }