Kod:
quest daily_reward begin
state start begin
function get_reward_interval()
return 86400 -- 24 saat
end
function get_reward_item()
return 189, 1 -- VNUM, adet
end
function can_receive()
local now = get_time()
local last = pc.getqf("last_daily_reward")
return now >= last + daily_reward.get_reward_interval()
end
function mark_reward()
local now = get_time()
pc.setqf("last_daily_reward", now)
end
function give()
-- Çift kontrol: güvenlik için
if not daily_reward.can_receive() then
return false
end
local vnum, count = daily_reward.get_reward_item()
-- Envanter kontrolü
if pc.count_item(vnum) + count <= pc.get_max_inventory_count() then
pc.give_item2(vnum, count)
daily_reward.mark_reward()
-- Log kaydı
sys_log(0, "DAILY_REWARD: "..pc.get_name().." oyuncusu "..count.."x "..vnum.." aldı.")
return true
else
return false
end
end
function time_remaining()
local now = get_time()
local last = pc.getqf("last_daily_reward")
local remaining = (last + daily_reward.get_reward_interval()) - now
return remaining > 0 and remaining or 0
end
function format_time(sec)
local h = math.floor(sec / 3600)
local m = math.floor((sec % 3600) / 60)
local s = sec % 60
return string.format("%02d saat %02d dakika %02d saniye", h, m, s)
end
end
end


