TuZaKK 1
TuZaKK
xranzei 1
xranzei
Agresifizm 1
Agresifizm
Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Can Öcalan 1
Can Öcalan
mavzermete 1
mavzermete
farkmt2official 1
farkmt2official
Sevdamsın 1
Sevdamsın
Hikaye Ekle

Cevaplandı game source build sorunu

  • Konuyu başlatan Konuyu başlatan ahmetsimsek53
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 6
  • Görüntüleme Görüntüleme 225

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

merhaba sistem ekliyorum da bu hatayı alıyorum




Ekran Alıntısı.PNG
 

Ekli dosyalar

Çözüm
CFirsatiYakala::Buy da problemin var sanırım

Kod:
if (const auto& it = std::find_if(m_FirsatVec.begin(), m_FirsatVec.end(), [&bID](const auto& p) { return p.bID == bID; }); it != m_FirsatVec.cend())

bu kodu al

Kod:
if (const auto& it = std::find_if(m_FirsatVec.begin(), m_FirsatVec.end(), [bID](const auto& p) { return p.bID == bID; }); it != m_FirsatVec.cend())

böyle bir değiş bakalım.
böyle bir hata verdi dediğinizi yaptım başka filesten aldım sistemi c++ sürümü ile alakalı olabilir mi
CFirsatiYakala::Buy da problemin var sanırım

Kod:
if (const auto& it = std::find_if(m_FirsatVec.begin(), m_FirsatVec.end(), [&bID](const auto& p) { return p.bID == bID; }); it != m_FirsatVec.cend())

bu kodu al

Kod:
if (const auto& it = std::find_if(m_FirsatVec.begin(), m_FirsatVec.end(), [bID](const auto& p) { return p.bID == bID; }); it != m_FirsatVec.cend())

böyle bir değiş bakalım.
 
CFirsatiYakala::Buy da problemin var sanırım

Kod:
if (const auto& it = std::find_if(m_FirsatVec.begin(), m_FirsatVec.end(), [&bID](const auto& p) { return p.bID == bID; }); it != m_FirsatVec.cend())

bu kodu al

Kod:
if (const auto& it = std::find_if(m_FirsatVec.begin(), m_FirsatVec.end(), [bID](const auto& p) { return p.bID == bID; }); it != m_FirsatVec.cend())

böyle bir değiş bakalım.
böyle bir hata verdi dediğinizi yaptım başka filesten aldım sistemi c++ sürümü ile alakalı olabilir mi
 

Ekli dosyalar

  • Ekran Alıntısı.PNG
    Ekran Alıntısı.PNG
    81.1 KB · Görüntüleme: 0
Çözüm
böyle bir hata verdi dediğinizi yaptım başka filesten aldım sistemi c++ sürümü ile alakalı olabilir mi

Tüm CPP düzenlenmiş hali

Kod:
/**************************
* * Author: Larry Watterson *
* ? Date: 03.11.21 ?
* ! Version: v2 !
***************************/

#include "stdafx.h"
#ifdef FIRSATI_YAKALA
#include "FirsatiYakala.h"
#include "char.h"
#include "db.h"
#include "utils.h"
#include "desc.h"
#include "buffer_manager.h"
#include "p2p.h"
#include "questmanager.h"
#include "item_manager.h"
#include "item.h"

extern BYTE g_bAuthServer;
// #define LOGS

CFirsatiYakala::~CFirsatiYakala() { m_FirsatVec.clear(); }

auto CFirsatiYakala::LoadItems() -> void
{
    char szQuery[QUERY_MAX_LEN];
    int column = snprintf(szQuery, sizeof(szQuery), "SELECT id, eskiFiyat, yeniFiyat, UNIX_TIMESTAMP(gecerlilikSaat)");
    for (BYTE i = 1; i <= MAX_ITEM; ++i) {
        column += snprintf(szQuery + column, sizeof(szQuery) - column, ", vnum%d", i);
        column += snprintf(szQuery + column, sizeof(szQuery) - column, ", adet%d", i);
    }
    snprintf(szQuery + column, sizeof(szQuery) - column, " FROM firsati_yakala");

    const std::unique_ptr<SQLMsg> pkMsg(DBManager::instance().DirectQuery(szQuery));
    if (pkMsg->Get()->uiNumRows > 0) {
        MYSQL_ROW row;
        m_FirsatVec.reserve(pkMsg->Get()->uiNumRows);
        while ((row = mysql_fetch_row(pkMsg->Get()->pSQLResult)) != nullptr) {
            tFirsatiYakalaInfo info = {};
            DWORD col = 0;
            str_to_number(info.bID, row[col++]);
            str_to_number(info.wEskiFiyat, row[col++]);
            str_to_number(info.wYeniFiyat, row[col++]);
            str_to_number(info.iTime, row[col++]);
            for (BYTE i = 0; i < MAX_ITEM; ++i) {
                DWORD vnum = std::stoi(row[col++]);
                #ifdef EXTENDED_COUNT
                    WORD count = std::stoi(row[col++]);
                #else
                    BYTE count = std::stoi(row[col++]);
                #endif
                if (vnum == 0 || count == 0) { break; }
                info.firsatItems.emplace(vnum, count);
            }
            m_FirsatVec.emplace_back(info);
#ifdef LOGS
            sys_err("Emplace map new 'firsat' id : %d , eskifiyat : %d, yenifiyat : %d", info.bID, info.wEskiFiyat, info.wYeniFiyat);
            for (const auto& [key, value] : info.firsatItems) {
                sys_err("Emplace map new 'firsat' vnum : %d count %d", key, value);
            }
#endif
        }
    }
}

auto CFirsatiYakala::UpdateFirsatMap() -> void
{
    if (g_bAuthServer) { return; }
    m_FirsatVec.clear();
    LoadItems();
}

auto CFirsatiYakala::UpdateP2PInfo() -> void
{
    const BYTE bHeader = HEADER_GG_UPDATE_FIRSAT_INFO;
    P2P_MANAGER::instance().Send(&bHeader, sizeof(BYTE));
#ifdef LOGS
    sys_err("Firsat P2P update is ok");
#endif
}

auto CFirsatiYakala::SendClient(LPCHARACTER ch, const BYTE bSubHeader, const void* c_pvData, const size_t iSize) -> void
{
    const tFirsatGCPacketAction packet {
        .bHeader = HEADER_GC_FIRSAT,
        .bSubHeader = bSubHeader
    };

    TEMP_BUFFER buf;
    buf.write(&packet, sizeof(packet));
    if (iSize) {
        buf.write(c_pvData, iSize);
    }
    ch->GetDesc()->Packet(buf.read_peek(), buf.size());
}

auto CFirsatiYakala::SendInformation(LPCHARACTER ch) -> void
{
    if (!ch || !ch->GetDesc()) { return; }
    SendClient(ch, SUB_FIRSAT_GC_CLEAR_LIST, nullptr, 0);

    for (const auto& it : m_FirsatVec) {
        tPacketGCFirsatData pack{
            .bHeader = HEADER_GC_FIRSAT,
            .bID = it.bID,
            .wEskiFiyat = it.wEskiFiyat,
            .wYeniFiyat = it.wYeniFiyat,
            .iTime = it.iTime
        };
        for (const auto& [vnum, count] : it.firsatItems) {
            pack.dwVnum = vnum;
            pack.bCount = count;
            SendClient(ch, SUB_FIRSAT_GC_NEW_LIST, &pack, sizeof(pack));
        }
    }
}

auto CFirsatiYakala::OpenMyGui(LPCHARACTER ch) -> void
{
    SendClient(ch, SUB_FIRSAT_GC_OPEN_GUI, nullptr, 0);
    SendInformation(ch);
}

auto CFirsatiYakala::CheckFirsat(LPCHARACTER ch) -> void
{
    if (quest::CQuestManager::instance().GetEventFlag("firsat_disable") == 1) { return; }
    if (!ch || !ch->GetDesc()) { return; }
    if (m_FirsatVec.empty()) { return; }
    ch->ChatPacket(CHAT_TYPE_COMMAND, "FirsatIcon %u", true);
}

auto CFirsatiYakala::Buy(LPCHARACTER ch, const BYTE bID) -> void
{
    if (const auto it = std::find_if(m_FirsatVec.begin(), m_FirsatVec.end(), [bID](const tFirsatiYakalaInfo& p) { return p.bID == bID; }); it != m_FirsatVec.cend()) {
        if (it->iTime - get_global_time() < 0) {
            ch->ChatPacket(1, "Firsatin suresi dolmus!");
            return;
        }

        if (ch->GetDragonCoin() < it->wYeniFiyat) {
            ch->ChatPacket(1, "Yetersiz ejderha parasi!");
            return;
        }
        ch->SetDragonCoin(ch->GetDragonCoin() - it->wYeniFiyat);

        BYTE totalSize = 0;
        std::vector<LPITEM> fItems;

        for (const auto& [vnum, count] : it->firsatItems) {
            auto pItem = ITEM_MANAGER::instance().CreateItem(vnum, count);
            totalSize += pItem->GetSize();
            fItems.push_back(pItem);

            auto emptyPos = ch->GetEmptyInventory(pItem->GetSize());
            if (pItem->IsUpgradeItem()) {
                emptyPos = ch->GetEmptyUpgradeInventory(pItem);
            } else if (pItem->IsBook()) {
                emptyPos = ch->GetEmptyBookInventory(pItem);
            } else if (pItem->IsStone()) {
                emptyPos = ch->GetEmptyStoneInventory(pItem);
            }

            if (totalSize > emptyPos) {
                ch->ChatPacket(1, "yer yok");
                for (auto& dd : fItems) { M2_DESTROY_ITEM(dd); }
                fItems.clear();
                return;
            }
        }

        for (auto& it : fItems) {
            if (!it) { continue; }
            int cell = ch->GetEmptyInventory(it->GetSize());
            BYTE inven = INVENTORY;

            if (it->IsUpgradeItem()) {
                cell = ch->GetEmptyUpgradeInventory(it);
                inven = UPGRADE_INVENTORY;
            } else if (it->IsBook()) {
                cell = ch->GetEmptyBookInventory(it);
                inven = BOOK_INVENTORY;
            } else if (it->IsStone()) {
                cell = ch->GetEmptyStoneInventory(it);
                inven = STONE_INVENTORY;
            }
            it->AddToCharacter(ch, TItemPos(inven, cell));
        }
        ch->ChatPacket(1, "Itemler envanterine gonderildi.");
    }
}
#endif
 

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

Geri
Üst