ÇÖZÜLDÜ merchant bot kayıt sorunu

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
Kullanılan Source
ıstırap
Kullanılan Database
ıstırap
Kullanılan Client
1098
Hangi versiyon
1098
arkadaşlar malum daha öncede bu konuyu açmıştım ama çok gereksiz cevap olduğu için yenileme gereği duydum şimdi gelelim sorunuma

+savebotmerchant
+loadbotmerchant komutları bende çalışmıyor elle bot listesindeki ıdları girerek tek tek atıyorum save yada load kodu girince Gameserver
ReqHandleDatabasRequest unhandled opcode 10 hatası veriyor volkan ustanın yapmaya çalıştığı kodlar var ama oda botlardan item çektirmiyor hata veriyor. bu
paket denilen +savebotmerchant ve +loadbotmerchant kodlarını hangi dosya isimlerine eklemeliyim
 
Çözüm
C++:
 else if (type == 2) {

    g_pMain->m_BotSaveDataArray.DeleteAllData();
    g_pMain->LoadSaveBotData();

    CUser* pUser = GetUserPtr(id);
    if (pUser == nullptr)
        return;

    g_pMain->m_BotSaveDataArray.m_lock.lock();
    auto m_BotSaveDataArray = g_pMain->m_BotSaveDataArray.m_UserTypeMap;
    g_pMain->m_BotSaveDataArray.m_lock.unlock();

    if (m_BotSaveDataArray.size() > 0)
    {
        int nAutoID = 0;
        foreach(itr, m_bBotSaveDataArray)
        {
            _BOT_SAVE_DATA* pAuto = itr->second;
            if (pAuto == nullptr)
            {
                if (pUser)g_pMain->SendHelpDescription(pUser, string_format("### Error Nullptr ###", nAutoID));
                return;
            }...

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
DatabaseThread.cpp içinde BotSaveLoad kapatmışlar açınca
return classTypes[classType - 1]; hata veriyor

 

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
Yokmu anlayan arkadaşlar bu classTypes lerde ne gibi değişiklik yapmalıyım beceremedim
 

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
konu güncel
 

Anissa

Moderatör
Teknik Üye
KY YardımSever
Coder
Aktiflik
Çevrimdışı
Katılım
3 Eki 2023
Mesajlar
201
Konu Çözümleri
41
Tepki puanı
62
Puanları
40
Konum
Tekirdağ
// ları kaldırdıktan sonra hata veren yeri sourcede arayın. Muhtemelen tanımlamasında // ile kapatılmıştır.
 

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
// ları kaldırdıktan sonra hata veren yeri sourcede arayın. Muhtemelen tanımlamasında // ile kapatılmıştır.
ustam alttaki hatayı veriyor ReqBotLoadSaveData aratınca collectionracehadler işaret ediyor orda
void CGameServerDlg::ReqBotLoadSaveData(Packet& pkt) { diye kodlar eksik ekliyorum hata bu sefer 11 çıkıyor :(
 

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
saveload işini hallettim arkadaşlar item fiyatıda tamam sade +loadbotmerchant komutunda çıkan botlardan item çekilmiyor kendim satlık item korsam ondan çekiliyor koddan anlayan arkadaşlar aşağıdaki koddan kaynaklı herhalde bunun neresinde hata olabilir

Kod:
void CGameServerDlg::ReqBotLoadSaveData(Packet& pkt) {

    uint8 type = pkt.read<uint8>();
    uint8 zoneid = pkt.read<uint8>();
    uint16 id = pkt.read<uint16>();

    if (type == 1)
    {
        int count = 1;

        g_pMain->m_ArtificialIntelligenceArray.m_lock.lock();
        auto m_sMapBotListArray = g_pMain->m_ArtificialIntelligenceArray.m_UserTypeMap;
        g_pMain->m_ArtificialIntelligenceArray.m_lock.unlock();

        foreach(itr, m_sMapBotListArray)
        {
            CBot* pBot = g_pMain->GetBotPtr(itr->first);
            if (pBot == nullptr)
                continue;

            if (!pBot->isInGame())
                continue;

            if (pBot->GetZoneID() != zoneid)
                continue;

            if (!pBot->isMerchanting())
                continue;

            _BOT_SAVE_DATA* pAuto = new _BOT_SAVE_DATA();
            for (int i = 0; i < MAX_MERCH_ITEMS; i++)
            {
                _MERCH_DATA* pMerch = &pBot->m_arMerchantItems[i];
                pAuto->sCount[i] = pMerch->sCount;
                pAuto->nNum[i] = pMerch->nNum;
                pAuto->sDuration[i] = pMerch->sDuration;
                pAuto->nPrice[i] = pMerch->nPrice;
                pAuto->IsSoldOut[i] = false;
                pAuto->isKc[i] = pMerch->isKC;
                pAuto->nSerialNum[i] = g_pMain->GenerateItemSerial();
            }

            pAuto->byZone = pBot->m_bZone;
            pAuto->Direction = pBot->m_sDirection;
            pAuto->fX = pBot->GetX();
            pAuto->fY = pBot->GetY();
            pAuto->fZ = pBot->GetZ();
            pAuto->Minute = 3600;
            pAuto->AdvertMessage = "";

            pAuto->sMerchanType = 0;

            if (pBot->isBuyingMerchant())
                pAuto->sMerchanType = 1;

            pAuto->nAutoID = g_DBAgent.InsertBotMerchant(pAuto);
            count++;
        }

        CUser* pUser = GetUserPtr(id);
        if (pUser)
            g_pMain->SendHelpDescription(pUser, string_format("(%d) Save Merchant Bot", count));
    }
    else if (type == 2) {

        g_pMain->m_BotSaveDataArray.DeleteAllData();
        g_pMain->LoadSaveBotData();

        CUser* pUser = GetUserPtr(id);

        int nAutoID = 0;
        foreach_stlmap_nolock(itr, g_pMain->m_BotSaveDataArray)
        {
            _BOT_SAVE_DATA* pAuto = itr->second;
            if (pAuto == nullptr)
            {
                if (pUser)g_pMain->SendHelpDescription(pUser, string_format("### Error Nullptr ###", nAutoID));
                return;
            }

            int16 Direction = pAuto->Direction;

            float fX = pAuto->fX;
            float fZ = pAuto->fZ;
            float fY = pAuto->fY;
            nAutoID = itr->first;

            if (!g_pMain->SpawnUserBot(3600, zoneid, fX, fY, fZ, 50, 1, Direction, nAutoID))
            {
                if (pUser)g_pMain->SendHelpDescription(pUser, "### Bot Bulunamadi ###");
                continue;
            }
        }
    }
}
uint16 CGameServerDlg::SpawnUserBot(int Minute, uint8 byZone, float fX, float fY, float fZ, uint8 Restipi,
    uint8 minlevel /* = 1*/, int16 direction, uint32 SaveID, uint8 Class, _bot_merchant _merchant)
{

    m_ArtificialIntelligenceArray.m_lock.lock();
    auto m_sArtificialIntelligenceArray = m_ArtificialIntelligenceArray.m_UserTypeMap;
    m_ArtificialIntelligenceArray.m_lock.unlock();

    foreach(itr, m_sArtificialIntelligenceArray)
    {
        _BOT_DATA* pBotInfo = itr->second;
        if (pBotInfo == nullptr)
            continue;

        if (byZone <= ZONE_ELMORAD && byZone != pBotInfo->m_bNation
            || (byZone >= ZONE_KARUS_ESLANT
                && byZone <= ZONE_ELMORAD_ESLANT
                && byZone != (pBotInfo->m_bNation + 10)))
            continue;

        if (pBotInfo->m_bLevel < minlevel)
            continue;

        // Check if bot already exist
        CBot* pBotCheck = GetBotPtr(pBotInfo->m_sSid);
        if (pBotCheck != nullptr)
            continue;

        CBot* pBot = new CBot();

        pBot->m_strUserID = pBotInfo->m_strUserID;
        pBot->m_bNation = pBotInfo->m_bNation;
        pBot->m_bRace = pBotInfo->m_bRace;
        pBot->m_sClass = pBotInfo->m_sClass;
        pBot->m_nHair = pBotInfo->m_nHair;
        pBot->m_bLevel = pBotInfo->m_bLevel;
        pBot->m_bFace = pBotInfo->m_bFace;
        pBot->m_bKnights = pBotInfo->m_bKnights;
        pBot->m_bFame = pBotInfo->m_bFame;

        memcpy(pBot->m_sItemArray, pBotInfo->m_sItemArray, sizeof(pBot->m_sItemArray));
        memcpy(pBot->m_bstrSkill, pBotInfo->m_bstrSkill, sizeof(pBot->m_bstrSkill));
        memcpy(pBot->m_bStats, pBotInfo->m_bStats, sizeof(pBot->m_bStats));

        pBot->m_sSid = pBotInfo->m_sSid;
        pBot->m_sAchieveCoverTitle = pBotInfo->m_sAchieveCoverTitle;
        pBot->m_reblvl = pBotInfo->m_reblvl;
        pBot->m_iGold = pBotInfo->m_iGold;
        pBot->m_sPoints = pBotInfo->m_sPoints;
        pBot->m_iLoyalty = pBotInfo->m_iLoyalty;
        pBot->m_iLoyaltyMonthly = pBotInfo->m_iLoyaltyMonthly;

        pBot->m_bMerchantState = (SaveID > 0 ? MERCHANT_STATE_SELLING : MERCHANT_STATE_NONE);
        pBot->LastWarpTime = 0;
        pBot->m_sMerchantAreaType = 0;

        if (Minute > 0)
            pBot->LastWarpTime = UNIXTIME + (Minute * 60);

        pBot->m_sDirection = direction;
        pBot->m_pMap = GetZoneByID(byZone);
        pBot->m_bZone = byZone;
        pBot->m_sMerchantAreaType = 0;
        pBot->m_iGold = myrand(1000, 5000000);

        if (Restipi == 13 || Restipi == 14)
        {
            _ITEM_DATA* pItem = &pBot->m_sItemArray[RIGHTHAND];

            _ITEM_TABLE pTable = GetItemPtr(pItem->nNum);
            if (pTable.isnull())
                continue;

            if (Class == 1 && !pBot->isWarrior())
                continue;

            if (Class == 2 && !pBot->isRogue())
                continue;

            if (Class == 3 && !pBot->isMage())
                continue;

            if (Class == 4 && !pBot->isPriest())
                continue;

            if (pBot->isRogue() && !pTable.isBow())
                continue;

            if (pBot->isWarrior()
                || pTable.isShield()
                || pTable.isPickaxe()
                || pTable.isFishing())
                continue;

            pBot->m_bGenieStatus = 1;

            if (Restipi == 14)
                pBot->m_bPartyLeader = true;
            else
                pBot->m_bPartyLeader = false;
        }
        else if (Restipi == 50)
        {
            _BOT_SAVE_DATA* pAuto = g_pMain->m_BotSaveDataArray.GetData(SaveID);
            if (pAuto == nullptr)
                return 0;

            std::string advertMessage = "test";

            uint16 bResult = 1;
            uint8 MerchantItemleri = 0;
            for (int i = 0; i < MAX_MERCH_ITEMS; i++) { if (pAuto->nNum[i] != 0)                    MerchantItemleri++; }

            if (MerchantItemleri == 0)
                return false;

            _MERCH_DATA    m_arNewItems[MAX_MERCH_ITEMS]{};

            if (pAuto->sMerchanType == 0)
            {
                Packet result(WIZ_MERCHANT, uint8(MERCHANT_INSERT));

                for (int i = 0; i < MAX_MERCH_ITEMS; i++)
                {
                    int8 sItemSlot = pBot->FindSlotForItem(pAuto->nNum[i], pAuto->sCount[i]);
                    if (sItemSlot < 0)
                        continue;

                    auto* pData = pBot->GetItem(sItemSlot);
                    if (!pData
                        || pData->nNum != 0)
                        continue;

                    pData->nNum = pAuto->nNum[i];
                    pData->sCount = pAuto->sCount[i];
                    pData->sDuration = pAuto->sDuration[i];
                    pData->nSerialNum = pAuto->nSerialNum[i];
                    pData->MerchItem = true;

                    m_arNewItems[i].sCount = pAuto->sCount[i];
                    m_arNewItems[i].sCount = pAuto->sCount[i];
                    m_arNewItems[i].nNum = pAuto->nNum[i];
                    m_arNewItems[i].IsSoldOut = pAuto->IsSoldOut[i];
                    m_arNewItems[i].sDuration = pAuto->sDuration[i];
                    m_arNewItems[i].nPrice = pAuto->nPrice[i];
                    m_arNewItems[i].nSerialNum = pAuto->nSerialNum[i];
                    m_arNewItems[i].bOriginalSlot = sItemSlot;
                    m_arNewItems[i].isKC = pAuto->isKc[i];
                }

                uint8 reqcount = 0;
                for (int i = 0; i < MAX_MERCH_ITEMS; i++)
                    if (m_arNewItems[i].nNum)
                        reqcount++;

                if (!reqcount)
                    return false;

                uint8 nRandom = 3;
                std::string asdasd = "";
                if (!asdasd.empty())
                    pBot->MerchantChat = string_format("%s(Location:%d,%d)", asdasd.c_str(), pBot->GetSPosX() / 10, pBot->GetSPosZ() / 10);

                pBot->MerchantChat.clear();
                pBot->m_iLoyalty = myrand(3000, 5000);
                pBot->m_bPremiumMerchant = 0;
                pBot->m_bMerchantState = MERCHANT_STATE_SELLING;
                pBot->m_BotState = BOT_MERCHANT;

                result << bResult << advertMessage << pBot->GetID()
                    << pBot->m_bPremiumMerchant;

                for (int i = 0; i < MAX_MERCH_ITEMS; i++)
                    pBot->m_arMerchantItems[i] = m_arNewItems[i];

                for (int i = 0; i < MAX_MERCH_ITEMS; i++)
                    result << pBot->m_arMerchantItems[i].nNum;

                pBot->SendToRegion(&result);
            }

            if (pAuto->sMerchanType == 1)
            {
                Packet result(WIZ_MERCHANT, uint8(MERCHANT_BUY_REGION_INSERT));

                for (int i = 0; i < MAX_MERCH_ITEMS; i++) { pBot->m_arMerchantItems[i].nNum = pAuto->nNum[i];                    pBot->m_arMerchantItems[i].sCount = pAuto->sCount[i];                    pBot->m_arMerchantItems[i].nPrice = pAuto->nPrice[i];                    pBot->m_arMerchantItems[i].sDuration = pAuto->sDuration[i];                    pBot->m_arMerchantItems[i].isKC = pAuto->isKc[i]; }
                pBot->m_bMerchantState = MERCHANT_STATE_BUYING;
                pBot->m_BotState = BOT_MERCHANT;
                result << pBot->GetID();

                for (int i = 0; i < 4; i++)
                    result << pBot->m_arMerchantItems[i].nNum;

                pBot->SendToRegion(&result);
            }
        }
        else if (Restipi == 1)
        {
            _ITEM_DATA* pItem = &pBot->m_sItemArray[RIGHTHAND];
            if (pItem)
            {
                auto pTable = GetItemPtr(myrand(0, 100) > 50 ? GOLDEN_MATTOCK : MATTOCK);
                if (pTable.isnull())
                    continue;

                _ITEM_DATA* pTItem = &pBot->m_sItemArray[LEFTHAND];
                if (pTItem) memset(pTItem, 0x00, sizeof(_ITEM_DATA));

                memset(pItem, 0x00, sizeof(_ITEM_DATA));
                pItem->nNum = pTable.m_iNum;
                pItem->nSerialNum = GenerateItemSerial();
                pItem->sCount = 1;
                pItem->sDuration = pTable.m_sDuration;
                pBot->m_bResHpType = USER_MINING;
            }
        }
        else if (Restipi == 2)
        {
            _ITEM_DATA* pItem = &pBot->m_sItemArray[RIGHTHAND];
            if (pItem)
            {
                auto pTable = GetItemPtr(myrand(0, 100) > 50 ? GOLDEN_FISHING : FISHING);
                if (pTable.isnull())
                    continue;

                auto* pTItem = &pBot->m_sItemArray[LEFTHAND];
                if (pTItem != nullptr)
                    memset(pTItem, 0x00, sizeof(_ITEM_DATA));

                memset(pItem, 0x00, sizeof(_ITEM_DATA));
                pItem->nNum = pTable.m_iNum;
                pItem->nSerialNum = GenerateItemSerial();
                pItem->sCount = 1;
                pItem->sDuration = pTable.m_sDuration;
                pBot->m_bResHpType = USER_FLASHING;
            }
        }
        else if (Restipi == 3 || Restipi == 4)
            pBot->m_bResHpType = Restipi == 3 ? USER_STANDING : USER_SITDOWN;
        else if (Restipi == 5)
            pBot->m_bResHpType = USER_STANDING;// Random > 5000 ? USER_STANDING : USER_SITDOWN;
        else if (Restipi == 6) {}
        else continue;

        if (Restipi == 6)
        {
            pBot->m_bMerchantIndex = _merchant.index;
            pBot->m_sMerchantAreaType = _merchant.areaType;
            pBot->m_BotState = BOT_MERCHANT;

            uint8 itemcount = 0;
            for (int i = 0; i < MAX_MERCH_ITEMS; i++)
            {
                if (_merchant.merc[i].itemid)
                    itemcount++;
            }

            _MERCH_DATA    m_arNewItems[MAX_MERCH_ITEMS]{};
            memset(m_arNewItems, 0, sizeof(m_arNewItems));

            if (!_merchant.isBuy) {

                for (int i = 0; i < MAX_MERCH_ITEMS; i++) {
                    if (!_merchant.merc[i].itemid)
                        continue;

                    int8 sItemSlot = pBot->FindSlotForItem(_merchant.merc[i].itemid, _merchant.merc[i].count);
                    if (sItemSlot < 0)
                        continue;

                    auto pItem = g_pMain->GetItemPtr(_merchant.merc[i].itemid);
                    if (pItem.isnull())
                        continue;

                    auto* pData = pBot->GetItem(sItemSlot);
                    if (!pData || (pData->nNum != 0 && !pItem.m_bCountable))
                        continue;

                    pData->nNum = _merchant.merc[i].itemid;
                    pData->sCount += _merchant.merc[i].count;
                    pData->sDuration = _merchant.merc[i].pTable.m_sDuration;
                    pData->nSerialNum = g_pMain->GenerateItemSerial();
                    pData->MerchItem = true;

                    m_arNewItems[i].sCount = pData->sCount;
                    m_arNewItems[i].nNum = pData->nNum;
                    m_arNewItems[i].IsSoldOut = false;
                    m_arNewItems[i].sDuration = pData->sDuration;
                    m_arNewItems[i].nPrice = _merchant.merc[i].price;
                    m_arNewItems[i].nSerialNum = pData->nSerialNum;
                    m_arNewItems[i].bOriginalSlot = sItemSlot;
                    m_arNewItems[i].isKC = _merchant.merc[i].iskc;
                }

                uint8 reqcount = 0;
                for (int i = 0; i < MAX_MERCH_ITEMS; i++)
                    if (m_arNewItems[i].nNum)
                        reqcount++;

                if (!reqcount)
                {
                    if (_merchant.index) {
                        auto* pCoord = g_pMain->pBotInfo.mCoordinate.GetData(_merchant.index);
                        if (pCoord)
                            pCoord->used = false;
                    }
                    return 0;
                }

                pBot->m_bPremiumMerchant = myrand(0, 100) < 15;
                pBot->m_bMerchantState = MERCHANT_STATE_SELLING;
            }
            else {

                uint32 total_price = 0;
                for (int i = 0; i < MAX_MERCH_ITEMS; i++) {
                    m_arNewItems[i].sCount = _merchant.merc[i].count;
                    m_arNewItems[i].nNum = _merchant.merc[i].itemid;
                    m_arNewItems[i].sDuration = _merchant.merc[i].pTable.m_sDuration;
                    m_arNewItems[i].nPrice = _merchant.merc[i].price;
                    m_arNewItems[i].isKC = _merchant.merc[i].iskc;
                    m_arNewItems[i].bOriginalSlot = i;
                    total_price += _merchant.merc[i].price;
                }

                uint8 reqcount = 0;
                for (int i = 0; i < MAX_MERCH_ITEMS; i++)
                    if (m_arNewItems[i].nNum)
                        reqcount++;

                if (!reqcount)
                {
                    if (_merchant.index) {
                        auto* pCoord = g_pMain->pBotInfo.mCoordinate.GetData(_merchant.index);
                        if (pCoord)
                            pCoord->used = false;
                    }
                    return 0;
                }

                pBot->m_bPremiumMerchant = myrand(0, 100) < 15;
                pBot->m_bMerchantState = MERCHANT_STATE_BUYING;

                if (pBot->m_iGold < total_price)
                    pBot->m_iGold = myrand(total_price, total_price + 5000000);
            }

            for (int i = 0; i < MAX_MERCH_ITEMS; i++)
                pBot->m_arMerchantItems[i] = m_arNewItems[i];
        }

        int Random = myrand(0, 10000);
        pBot->m_sTargetID = int16(-1);
        pBot->m_TargetChanged = false;
        pBot->m_bBlockPrivateChat = false;
        pBot->m_BotState = BOT_AFK;
        pBot->SetBotAbility();
        pBot->SetPosition(fX, fY, fZ);
        pBot->SetRegion(pBot->GetNewRegionX(), pBot->GetNewRegionZ());
        //pBot->SetZoneAbilityChange(pBot->GetZoneID());
        AddMapBotList(pBot);
        pBot->UserInOut(INOUT_IN);
        pBot->StateChangeServerDirect(1, Random > 5000 ? USER_STANDING : USER_SITDOWN);
        return pBot->GetID();
    }
    return 0;
}
 
Son düzenleme:

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
vay be sorsan forumun yarısı kod biliyorum der boşa yardım istiyoruz her zamanki gibi
 

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
konu güncel
 

CMDK

Admin
Premium Üye
KY Saygın Üye
KY Uzman Üye
KY Kıdemli Üye
KY YardımSever
Bağımlı Üye
Coder
KY Paylaşım Editörü
Aktiflik
Gizlenmiş
Katılım
3 Mar 2021
Mesajlar
524
Konu Çözümleri
85
Tepki puanı
1,638
Puanları
153
C++:
 else if (type == 2) {

    g_pMain->m_BotSaveDataArray.DeleteAllData();
    g_pMain->LoadSaveBotData();

    CUser* pUser = GetUserPtr(id);
    if (pUser == nullptr)
        return;

    g_pMain->m_BotSaveDataArray.m_lock.lock();
    auto m_BotSaveDataArray = g_pMain->m_BotSaveDataArray.m_UserTypeMap;
    g_pMain->m_BotSaveDataArray.m_lock.unlock();

    if (m_BotSaveDataArray.size() > 0)
    {
        int nAutoID = 0;
        foreach(itr, m_bBotSaveDataArray)
        {
            _BOT_SAVE_DATA* pAuto = itr->second;
            if (pAuto == nullptr)
            {
                if (pUser)g_pMain->SendHelpDescription(pUser, string_format("### Error Nullptr ###", nAutoID));
                return;
            }

            int16 Direction = pAuto->Direction;

            float fX = pAuto->fX;
            float fZ = pAuto->fZ;
            float fY = pAuto->fY;
            nAutoID = itr->first;

            if (!g_pMain->SpawnUserBot(3600, zoneid, fX, fY, fZ, 50, 1, Direction, nAutoID))
            {
                if (pUser)g_pMain->SendHelpDescription(pUser, "### Bot Bulunamadi ###");
                continue;
            }
        }
    }
    }
}

Type 2 kısmını u şekilde düzenleyip dener misin hocam
 
Çözüm

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
but
C++:
 else if (type == 2) {

    g_pMain->m_BotSaveDataArray.DeleteAllData();
    g_pMain->LoadSaveBotData();

    CUser* pUser = GetUserPtr(id);
    if (pUser == nullptr)
        return;

    g_pMain->m_BotSaveDataArray.m_lock.lock();
    auto m_BotSaveDataArray = g_pMain->m_BotSaveDataArray.m_UserTypeMap;
    g_pMain->m_BotSaveDataArray.m_lock.unlock();

    if (m_BotSaveDataArray.size() > 0)
    {
        int nAutoID = 0;
        foreach(itr, m_bBotSaveDataArray)
        {
            _BOT_SAVE_DATA* pAuto = itr->second;
            if (pAuto == nullptr)
            {
                if (pUser)g_pMain->SendHelpDescription(pUser, string_format("### Error Nullptr ###", nAutoID));
                return;
            }

            int16 Direction = pAuto->Direction;

            float fX = pAuto->fX;
            float fZ = pAuto->fZ;
            float fY = pAuto->fY;
            nAutoID = itr->first;

            if (!g_pMain->SpawnUserBot(3600, zoneid, fX, fY, fZ, 50, 1, Direction, nAutoID))
            {
                if (pUser)g_pMain->SendHelpDescription(pUser, "### Bot Bulunamadi ###");
                continue;
            }
        }
    }
    }
}

Type 2 kısmını u şekilde düzenleyip dener misin hocam
bu hatayı verdi hocam

 

CMDK

Admin
Premium Üye
KY Saygın Üye
KY Uzman Üye
KY Kıdemli Üye
KY YardımSever
Bağımlı Üye
Coder
KY Paylaşım Editörü
Aktiflik
Gizlenmiş
Katılım
3 Mar 2021
Mesajlar
524
Konu Çözümleri
85
Tepki puanı
1,638
Puanları
153
Foreach içindeki mbot kısmında baştaki b’yi silip dener misin hocam
 

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
Foreach içindeki mbot kısmında baştaki b’yi silip dener misin hocam
build aldı ama yine item çekilmiyor hocam +merchantbotspawn 1 şeklinde bot atar isem ondan çekiliyor ama +loadbotmerchant diye toplu atar isem çekilmiyor
 

delitay

KY Uzman Üye
KY YardımSever
Konu Sahibi
Aktiflik
Çevrimiçi
Katılım
24 Ağu 2023
Mesajlar
460
Konu Çözümleri
5
Tepki puanı
43
Puanları
0
konuyu kapatabilirsiniz sorunum CMDK hocam tarafından çözüldü kendisine çok teşekkür ediyorum Allah razı olsun ne muradı varsa versin
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Reklam