Bulundu hızlı sandık açma ve sandık aynası sistemi

  • Konuyu açan Konuyu açan 756902
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 50
Konu sahibinin aradığı materyalleri bulduğu için "Bulundu" öneki eklenmiştir. Eğer aynı materyalleri arıyorsanız yorumlara bakabilirsiniz. İstediğiniz materyallere bu konuda bulamadıysanız yeni konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

756902

Üye
Üye
Mesaj
30
Çözümler
1
Beğeni
10
Puan
29
Ticaret Puanı
0
welberin filesindekine benzer official arayüzü olan hızlı sandık açma ve sandık aynası sistemi arıyorum
 

Dosya Eklentileri

  • Screenshot_1.webp
    Screenshot_1.webp
    61,1 KB · Gösterim: 19
Çözüm
Görseldeki sistem

1792772501496.webp


C++:
Genişlet Daralt Kopyala
#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...
Görseldeki sistem

1792772501496.webp


C++:
Genişlet Daralt Kopyala
#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
 

Dosya Eklentileri

Çözüm
Görseldeki sistem

33569 eklentisini görüntüle

C++:
Genişlet Daralt Kopyala
#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
hele valla her seyi hallediyoz da şu hızlı oto toplamaya bi çözüm bulamadık ama olsun nt eline sağlık hocam
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst