Global Canavar Avı & Sunucu Geneli Sayaç SistemiSistem Özellikleri:
Ortak Hedef: Tüm oyuncuların kestiği canavarlar tek bir havuzda birikir.
Anlık Takip: Sol görev parşömeni üzerinden anlık kalan süre ve kesilen sayı görülebilir.
GM Kontrolü: Etkinlik sadece yöneticiler tarafından 20095 NPC'si ile başlatılır. Quest İçinden Değiştirilebilir.
Süre Sınırı: Belirlenen süre içinde hedefe ulaşılamazsa etkinlik ödül vermeden kapanır.
Otomatik Ödül: Hedefe ulaşıldığı an sistem otomatik olarak belirlenen oranda drop bonusu açar.
Kurulum Talimatı:
Aşağıdaki kodu global_sayac.lua adıyla kaydedin.
Dosyayı /usr/game/share/locale/turkey/quest dizinine yükleyin.
quest_list dosyasının en altına global_sayac.lua ekleyin.
Putty üzerinden ./qc global_sayac.lua komutunu okutun ve oyunda /reload q yapın.
Hatasız Quest Kod Bloğu:
Quest Bloğu (Npc Vnum Değiştirin):
Ortak Hedef: Tüm oyuncuların kestiği canavarlar tek bir havuzda birikir.
Anlık Takip: Sol görev parşömeni üzerinden anlık kalan süre ve kesilen sayı görülebilir.
GM Kontrolü: Etkinlik sadece yöneticiler tarafından 20095 NPC'si ile başlatılır. Quest İçinden Değiştirilebilir.
Süre Sınırı: Belirlenen süre içinde hedefe ulaşılamazsa etkinlik ödül vermeden kapanır.
Otomatik Ödül: Hedefe ulaşıldığı an sistem otomatik olarak belirlenen oranda drop bonusu açar.
Kurulum Talimatı:
Aşağıdaki kodu global_sayac.lua adıyla kaydedin.
Dosyayı /usr/game/share/locale/turkey/quest dizinine yükleyin.
quest_list dosyasının en altına global_sayac.lua ekleyin.
Putty üzerinden ./qc global_sayac.lua komutunu okutun ve oyunda /reload q yapın.
Hatasız Quest Kod Bloğu:
Quest Bloğu (Npc Vnum Değiştirin):
quest global_sayac begin
state start begin
-- AYARLAR
function config()
return {
["hedef_kill"] = 1000000, -- Toplam gereken canavar sayısı
["gorev_suresi"] = 3600 * 24, -- Görev süresi (24 Saat)
["odul_suresi"] = 3600 * 3, -- Ödül süresi (3 Saat)
["odul_orani"] = 25 -- %25 Drop Bonusu
}
end
-- GM Paneli (NPC: 20095)
when 20095.chat."Global Etkinliği Başlat" with pc.is_gm() begin
local cfg = global_sayac.config()
say_title("Etkinlik Yönetimi")
say("Global canavar sayacı etkinliğini başlatmak istiyor musun?")
if select("Evet", "Hayır") == 1 then
game.set_event_flag("global_kill_active", 1)
game.set_event_flag("global_total_kills", 0)
game.set_event_flag("global_finish_time", get_time() + cfg.gorev_suresi)
server_timer("global_sayac_bitir", cfg.gorev_suresi)
notice_all("Global Canavar Avı Etkinliği Başladı!")
notice_all("Hedef: " .. cfg.hedef_kill .. " canavar yok etmek!")
end
end
-- Canavar Öldürme Takibi
when kill with not npc.is_pc() and game.get_event_flag("global_kill_active") == 1 begin
game.set_event_flag("global_total_kills", game.get_event_flag("global_total_kills") + 1)
pc.setqf("my_kills", pc.getqf("my_kills") + 1)
local cfg = global_sayac.config()
if game.get_event_flag("global_total_kills") >= cfg.hedef_kill then
global_sayac.odul_baslat()
end
end
-- Görev Parşömeni Takibi
when login or enter with game.get_event_flag("global_kill_active") == 1 begin
send_letter("Global Sayaç Durumu")
end
when button or info begin
local cfg = global_sayac.config()
local kalan_sure = game.get_event_flag("global_finish_time") - get_time()
say_title("Global Canavar Avı Durumu")
say_reward("Senin Katkın: " .. pc.getqf("my_kills") .. " canavar.")
say_reward("Genel İlerleme: " .. game.get_event_flag("global_total_kills") .. " / " .. cfg.hedef_kill)
if kalan_sure > 0 then
local saat = math.floor(kalan_sure / 3600)
local dakika = math.floor((kalan_sure % 3600) / 60)
say("Kalan Süre: " .. saat .. " saat " .. dakika .. " dakika.")
else
say("Etkinlik süresi dolmak üzere!")
end
send_letter("Global Sayaç Durumu")
end
-- Ödül Mekanizması
function odul_baslat()
local cfg = global_sayac.config()
game.set_event_flag("global_kill_active", 0)
notice_all("TEBRİKLER! Global hedefe ulaşıldı!")
notice_all(cfg.odul_suresi / 3600 .. " saat boyunca %" .. cfg.odul_orani .. " Drop Bonusu kazandınız!")
game.set_event_flag("kill_drop_bonus", 1)
server_timer("odul_bitir", cfg.odul_suresi)
end
-- Zamanlayıcılar
when global_sayac_bitir.server_timer begin
if game.get_event_flag("global_kill_active") == 1 then
game.set_event_flag("global_kill_active", 0)
notice_all("Global Canavar Avı süresi doldu. Hedefe ulaşılamadı.")
end
end
when odul_bitir.server_timer begin
game.set_event_flag("kill_drop_bonus", 0)
notice_all("Global etkinlik ödül süresi doldu.")
end
end
end


