xranzei 1
xranzei
Best Studio 1
Best Studio
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Hikaye Ekle
Kaynak ikonu

C++ Chest View Drop #Güncellendi 1.0

indirmek için izniniz yok
  • Konuyu başlatan Konuyu başlatan forum80
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 102
  • Görüntüleme Görüntüleme 31K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

merhaba arkadaşlar bu sistem daha önce paylaşıldı fakat birkaç kod bloğu eksik oldugu için çogu kimse kullanamadı bunun için biraz araştırma yaptım ve eksik kısımları buldum

fakat %100 denemedim bilgisayarımdan kaldırdıgım için wmbox ve visual studioyu denemedim

ama çalışacağından eminim

Sistemde Çalışacak sandığın Txtden Typesini ITEM_TYPE_GIFTBOX yapmayı unutmayın

iyi günlerde kullanın
bf1ec520277aefa6e8ec6d4e13af7ea6.jpg



bu standart heryerde olan resmi

buda bir arkadaştan aldıgım kanıt resmi

e961778df03b59e58f0a7c8eb510c70d.png




indir





Yeni güncelleme yayınlanmış burada paylaşılmamış sanırsam.

C++:
]#ifdef ENABLE_SHOW_CHEST_DROP

#include "../../libgame/include/grid.h"



template<typename T, typename... Args>

std::unique_ptr<T> make_unique(Args&&... args) {

    return std::unique_ptr<T>(new T(std::forward<Args>(args)...));

}



void ITEM_MANAGER::GetChestItemList(DWORD dwChestVnum, std::vector<TChestDropInfoTable>& vec_item)

{

    const auto pGroup = GetSpecialItemGroup(dwChestVnum);

    if (!pGroup)

        return;

    std::vector<std::unique_ptr<CGrid>> pGrids;

    pGrids.emplace_back(make_unique<CGrid>(15, 5));



    for (int i = 0; i < pGroup->GetGroupSize(); i++) {

        const auto itemTable = GetTable(pGroup->GetVnum(i));

        //pass if exp, yang or duplicate item

        if (!itemTable || !itemTable->dwVnum || itemTable->dwVnum < 3 || std::find_if(vec_item.begin(), vec_item.end(), [&pGroup, &i](const TChestDropInfoTable& data) -> bool { return static_cast<DWORD>(pGroup->GetVnum(i)) == data.dwItemVnum; }) != vec_item.end())

            continue;

        bool PushNewGrid = true;

        for (size_t iPage = 0; iPage < pGrids.size(); iPage++) {

            const auto iPos = pGrids.at(iPage)->FindBlank(1, static_cast<int>(itemTable->bSize));

            if (iPos >= 0) {

                pGrids.at(iPage)->Put(iPos, 1, static_cast<int>(itemTable->bSize));

                vec_item.push_back({ static_cast<BYTE>(iPage + 1), static_cast<BYTE>(iPos), static_cast<DWORD>(pGroup->GetVnum(i)), static_cast<BYTE>(pGroup->GetCount(i)) });

                PushNewGrid = false;

                break;

            }

        }

        if (PushNewGrid) {

            pGrids.emplace_back(make_unique<CGrid>(15, 5));

            i--;//again

        }

    }

}

#endif
 
Moderatör tarafında düzenlendi:

En Çok Reaksiyon Alan Mesajlar

bazı arkadaşlar GetGroupSize hatası alabilir game sourcede

item manager.h aç
arat class CSpecialItemGroup

kod blogunda arat : DWORD m_dwVnum;

üstüne ekle

int GetGroupSize() const
{
return m_vecProbs.size();
}

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst