Uzaktan Market

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

layers

MT Üye
MT Üye
Mesaj
370
Çözümler
27
Beğeni
324
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: 19
ç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
 
Geri
Üst