Bvural41 1
Bvural41
Mt2Hizmet 1
Mt2Hizmet
xranzei 1
xranzei
Hikaye Ekle

[C++] Balıkçılık Eventi

  • Konuyu başlatan Konuyu başlatan theay
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 14
  • Görüntüleme Görüntüleme 3K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

  • Char.cpp dosyasına şu fonksiyonu ekleyin veya düzenleyin:
[CODE lang="cpp" title="char.cpp"]void CHARACTER::FishingEvent(const TItemPos& pos, DWORD dwVnum)
{
at_fishing_event(this, pos, dwVnum);
}
[/CODE]

  • char.h dosyasında CHARACTER sınıfının altına şu fonksiyon bildirimini ekleyin.
[CODE lang="cpp"]
void FishingEvent(const TItemPos& pos, DWORD dwVnum);
[/CODE]
  • cmd.cpp dosyasına şu fonksiyonu ekleyin veya düzenleyin:
[CODE lang="cpp"]
ACMD(do_fishing_event);
[/CODE]
  • cmd.cpp ACMD_TABLE ALTINA :
[CODE lang="cpp"]
{ "fishing_event", do_fishing_event, 0, 0 },
[/CODE]

  • questlua.cpp dosyasına şu satırları ekleyin:
[CODE lang="cpp"]
#include "questlu#includeclude "char.h"#includeuest_fishing_event)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
if (ch)
ch->FishingEvent(TItemPos(INVENTORY, 0), 0); // Item düşürecek bir balık vnum'u belirtilebilir.

return 0;
}

ALUA(unbind_fishing_event)
{
stop_fishing_event();
return 0;
}

[/CODE]

  • cmd_general.cpp dosyasına şu satırı ekleyin:
[CODE lang="cpp"]
ACMD(do_fishing_event)
{
if (is_gm(ch))
ch->ChatPacket(CHAT_TYPE_COMMAND, "quest fishing_event");
}

[/CODE]

  • cmd_gm.cpp dosyasına şu satırı ekleyin:
[CODE lang="cpp"]
{ "fishing_event", do_fishing_event, 0, POS_DEAD, GM_IMPLEMENTOR },

[/CODE]


Bu eventi başlatmak için şöyle bir quest tetiklemesi kullanılabilir.
JavaScript:
quest fishing_event begin
    state start begin
        when login with is_gm() begin
            cmdchat("start_fishing_event")
            say("Balık eventi başladı! Sadece belirli itemler düşecek.")
            notice_all("Balık eventi başladı! Sadece belirli itemler düşecek.")
        end

        when login with not is_gm() begin
            say("Sadece GM hesapları balık eventini başlatabilir.")
        end
    end

    state stop begin
        when login with is_gm() begin
            cmdchat("stop_fishing_event")
            say("Balık eventi sona erdi. Artık normal itemler düşecek.")
            notice_all("Balık eventi sona erdi. Artık normal itemler düşecek.")
        end

        when login with not is_gm() begin
            say("Sadece GM hesapları balık eventini sonlandırabilir.")
        end
    end
end

function start_fishing_event()
    fishing_event.set_state("start")
    fishing_event.set_timer(3600) -- 1 saat boyunca devam eder
    fishing_event.start()
end

function stop_fishing_event()
    fishing_event.set_state("stop")
    fishing_event.stop()
end

function at_fishing(fish_vnum)
    local state = fishing_event.get_state()
    if state == "start" then -- Eğer balık eventi aktifse, sadece belirli itemler düşecek.
        if fish_vnum == 1001 or fish_vnum == 1002 or fish_vnum == 1003 then -- Sadece belirli itemlerin vnum'larına izin veriyoruz.
            game.drop_item(fish_vnum, 1, 1) -- Düşürülecek itemlerin adetini ve düşürülecek yerin numarasını buradan ayarlayabilirsiniz.
        end
    end
end
 
auto event manager kullanarak eventi otomatik başlatip durdurup eventi otomatiğe alabiliriz bide duyuru ekledikmi miss ben beğendim ilgi çekici olabilir.
altta belirttigim kısmı common da bi fish_event sql oluşturup oradan vnum çektiririz miss quest düzenleme işide biter
if fish_vnum == 1001 or fish_vnum == 1002 or fish_vnum == 1003

paylaşım için teşekkürler geliştirmeye açik sizde fikirlerinizi sunarsanız belki geliştirip tekrar paylasılabilir.

sonradan aklıma geldi eğer FishingEvent aktifse normal fishing.txt devre dişi birakilabilir sadece event nesnelerini düşürmek için
 
auto event manager kullanarak eventi otomatik başlatip durdurup eventi otomatiğe alabiliriz bide duyuru ekledikmi miss ben beğendim ilgi çekici olabilir.
altta belirttigim kısmı common da bi fish_event sql oluşturup oradan vnum çektiririz miss quest düzenleme işide biter
if fish_vnum == 1001 or fish_vnum == 1002 or fish_vnum == 1003

paylaşım için teşekkürler geliştirmeye açik sizde fikirlerinizi sunarsanız belki geliştirip tekrar paylasılabilir.
Yani bu şekilde bir çok event yapılabilir. Hatta p2p ile telefondan bile event açıp kapatabiliriz telefondan yönetim işin sonu yok :D vakit lazım
 
Yani bu şekilde bir çok event yapılabilir. Hatta p2p ile telefondan bile event açıp kapatabiliriz telefondan yönetim işin sonu yok :D vakit lazım
benim event modulum sql den direk item vnum quest flag drop ayarları vs hepsi sql den çalişiyo ben oraya bağliycam bu eventide sql e erişimim olan heryerden event başlatıp durdurabiliyorum.30 saniyede bi gameye paket gönderiyo 30 saniyede event başlatip kapatabiliyorum.
 

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

Geri
Üst