Uzaktan Market

  • Konuyu açan Konuyu açan layers
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 11
  • Gösterim Gösterim 463

layers

MT Üye
MT Üye
Mesaj
376
Çözümler
28
Beğeni
330
Puan
829
Ticaret Puanı
0
Merhaba arkadaşlar forumdan bir arkadaşımız istemişti onun isteği üzerine uzaktan market sistemini paylaşmak istedim.
Sistemde açılacak olan npcleri siz kendinize göre ayarlarsınız.

Kanıt:
Ekran görüntüsü 2025-11-26 233105.webp




:mmt-indir:
 

Dosya Eklentileri

  • uzaktanmarket.rar
    uzaktanmarket.rar
    70,1 KB · Gösterim: 24
çok iyi olur reisim takipteyim
uzaktan cubeyide aktif edebilir misiniz

cubeyi uzaktan açmak için:

aşağıdaki kod ile değiştir (20383 yazan yere npc kodunuzu yazın)
cmd_general.cpp:
Genişlet Daralt Kopyala
ACMD(do_cube_npc)
{
    if (!ch)
        return;

    CharacterVectorInteractor i;
    if (!CHARACTER_MANAGER::instance().GetCharactersByRaceNum(20383, i))
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Cube NPC'si bulunamadı.");
        return;
    }

    LPCHARACTER npc = *(i.begin());
    if (!npc)
        return;

    ch->SetQuestNPCID(npc->GetVID());

    Cube_open(ch);
}

Cube_open fonksiyonunu aşağıdaki ile değiştir
cuberenewal.cpp:
Genişlet Daralt Kopyala
void Cube_open(LPCHARACTER ch)
{
    LPCHARACTER npc = ch->GetQuestNPC();
    if (!npc)
        return;

    DWORD npcVNUM = npc->GetRaceNum();

    if (FN_check_valid_npc(npcVNUM) == false)
        return;

    if (ch->GetExchange() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen() || ch->IsAcceOpened(true) || ch->IsAcceOpened(false))
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Cannot open refinement window");
        return;
    }

    SendDateCubeRenewalPackets(ch, CUBE_RENEWAL_SUB_HEADER_CLEAR_DATES_RECEIVE);
    SendDateCubeRenewalPackets(ch, CUBE_RENEWAL_SUB_HEADER_DATES_RECEIVE, npcVNUM);
    SendDateCubeRenewalPackets(ch, CUBE_RENEWAL_SUB_HEADER_DATES_LOADING);
    SendDateCubeRenewalPackets(ch, CUBE_RENEWAL_SUB_HEADER_OPEN_RECEIVE);
    ch->SetCubeNpc(npc);
}

Kanıt:
 
cubeyi uzaktan açmak için:

aşağıdaki kod ile değiştir (20383 yazan yere npc kodunuzu yazın)
cmd_general.cpp:
Genişlet Daralt Kopyala
ACMD(do_cube_npc)
{
    if (!ch)
        return;

    CharacterVectorInteractor i;
    if (!CHARACTER_MANAGER::instance().GetCharactersByRaceNum(20383, i))
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Cube NPC'si bulunamadı.");
        return;
    }

    LPCHARACTER npc = *(i.begin());
    if (!npc)
        return;

    ch->SetQuestNPCID(npc->GetVID());

    Cube_open(ch);
}

Cube_open fonksiyonunu aşağıdaki ile değiştir
cuberenewal.cpp:
Genişlet Daralt Kopyala
void Cube_open(LPCHARACTER ch)
{
    LPCHARACTER npc = ch->GetQuestNPC();
    if (!npc)
        return;

    DWORD npcVNUM = npc->GetRaceNum();

    if (FN_check_valid_npc(npcVNUM) == false)
        return;

    if (ch->GetExchange() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen() || ch->IsAcceOpened(true) || ch->IsAcceOpened(false))
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Cannot open refinement window");
        return;
    }

    SendDateCubeRenewalPackets(ch, CUBE_RENEWAL_SUB_HEADER_CLEAR_DATES_RECEIVE);
    SendDateCubeRenewalPackets(ch, CUBE_RENEWAL_SUB_HEADER_DATES_RECEIVE, npcVNUM);
    SendDateCubeRenewalPackets(ch, CUBE_RENEWAL_SUB_HEADER_DATES_LOADING);
    SendDateCubeRenewalPackets(ch, CUBE_RENEWAL_SUB_HEADER_OPEN_RECEIVE);
    ch->SetCubeNpc(npc);
}

Kanıt:
Teşekkür ederiz, elinize sağlık <3
 
cmd_general.cpp: In function 'void do_open_range_npc(LPCHARACTER, const char*, int, int)':
cmd_general.cpp:3215:6: error: invalid use of incomplete type 'class CShop'
shop->AddGuest(ch, 0, false);
^
In file included from cmd_general.cpp:15:0:
char.h:652:7: error: forward declaration of 'class CShop'
class CShop;
^
 
Geri
Üst