C++ Hızlı İtem Toplama

XPyrion

Premium Üye
Premium Üye
Geliştirici
Yardımsever Üye
Emekli Üye
Editör
Mesaj
805
Çözümler
41
Beğeni
2.273
Puan
1.679
Ticaret Puanı
0
Merhaba arkadaşlar biliyorum bir çok forumda bu konu mevcut ama elimizin altında olsun istediğim için buraya kod bloğunu bırakıyorum ihtiyacı olan arkadaşlar kullanabilsinler diye.


NOT: Bu tek seferde yerdeki tüm item'leri toplamaz. Sadece seri bir şekilde toplamanıza yarar.


ClientSource/UserInterface/PythonPlayer.cpp:
Genişlet Daralt Kopyala
void CPythonPlayer::SendClickItemPacket(DWORD dwIID)
{
    if (IsObserverMode())
        return;

    static DWORD s_dwNextTCPTime = 0;

    DWORD dwCurTime=ELTimer_GetMSec();

    if (dwCurTime >= s_dwNextTCPTime)
    {
        s_dwNextTCPTime=dwCurTime + 500;

        const char * c_szOwnerName;
        if (!CPythonItem::Instance().GetOwnership(dwIID, &c_szOwnerName))
            return;

        if (strlen(c_szOwnerName) > 0)
        if (0 != strcmp(c_szOwnerName, GetName()))
        {
            CItemData * pItemData;
            if (!CItemManager::Instance().GetItemDataPointer(CPythonItem::Instance().GetVirtualNumberOfGroundItem(dwIID), &pItemData))
            {
                Tracenf("CPythonPlayer::SendClickItemPacket(dwIID=%d) : Non-exist item.", dwIID);
                return;
            }
            if (!IsPartyMemberByName(c_szOwnerName) || pItemData->IsAntiFlag(CItemData::ITEM_ANTIFLAG_DROP | CItemData::ITEM_ANTIFLAG_GIVE))
            {
                PyCallClassMemberFunc(m_ppyGameWindow, "OnCannotPickItem", Py_BuildValue("()"));
                return;
            }
        }

        CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
        rkNetStream.SendItemPickUpPacket(dwIID);
    }
}

İsterseniz yukarıda ki kod bloğunu yorum satırına çevirin ya da isterseniz aşağıda ki kod bloğu ile değiştirin.

ClientSource/UserInterface/PythonPlayer.cpp:
Genişlet Daralt Kopyala
void CPythonPlayer::SendClickItemPacket(DWORD dwIID)
{
    if (IsObserverMode())
        return;

    const char * c_szOwnerName;
    if (!CPythonItem::Instance().GetOwnership(dwIID, &c_szOwnerName))
        return;

    if (strlen(c_szOwnerName) > 0)
    if (0 != strcmp(c_szOwnerName, GetName()))
    {
        CItemData * pItemData;
        if (!CItemManager::Instance().GetItemDataPointer(CPythonItem::Instance().GetVirtualNumberOfGroundItem(dwIID), &pItemData))
        {
            Tracenf("CPythonPlayer::SendClickItemPacket(dwIID=%d) : Non-exist item.", dwIID);
            return;
        }
        if (!IsPartyMemberByName(c_szOwnerName) || pItemData->IsAntiFlag(CItemData::ITEM_ANTIFLAG_DROP | CItemData::ITEM_ANTIFLAG_GIVE))
        {
            PyCallClassMemberFunc(m_ppyGameWindow, "OnCannotPickItem", Py_BuildValue("()"));
            return;
        }
    }

    CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance();
    rkNetStream.SendItemPickUpPacket(dwIID);
}




Herkese iyi forumlar.
Sevgi ve sağlıcakla dostlar.
 
Geri
Üst