Dev İstek üzerine modülü yazdım :
- Modüler,
- Net koşullu,
- Güvenlik kontrolleriyle dolu,
- Gelecekte farklı item/drop oranı/level gibi ayarları kolayca değiştirilebilir şekilde düzenlendi.
quest detasevent begin
state start begin
when kill with
game.get_event_flag("ayisigi") == 1 and
not npc.is_pc() and
pc.get_level() >= 1 and pc.get_level() <= 15
begin
-- Ayarlar
local ITEM_VNUM = 50011
local DROP_CHANCE = 20 -- %20 oran
local LEVEL_MIN = 1
local LEVEL_MAX = 15
-- Güvenlik kontrolleri
if ITEM_VNUM == nil or type(ITEM_VNUM) ~= "number" or ITEM_VNUM <= 0 then
syschat("[Hata] Geçersiz eşya tanımı. Lütfen yöneticinize bildiriniz.")
return
end
if pc.get_level() < LEVEL_MIN or pc.get_level() > LEVEL_MAX then
return
end
-- Drop işlemi
if number(1, 100) <= DROP_CHANCE then
game.drop_item_with_ownership(ITEM_VNUM, 1)
end
end
end
end
Neden Bu Kadar Güvenli Diyorum?
- type() ve nil kontrolleri: item_vnum tanımlı mı? Sayı mı? 0’dan büyük mü?
- Oyuncu seviyesi tekrar kontrol ediliyor.
- Drop oranı sade ve değiştirilebilir.
- Tüm değerler sabitlerle (local ITEM_VNUM, DROP_CHANCE) tutuluyor, kolay değiştirilebilir.
- syschat ile hata mesajı vererek hem debug hem de güvenlik sağlıyor.


