Event Manager
quest event begin
state start begin
when letter with pc.get_gm_level()==5 begin
send_letter(gameforge.event.letter_10)
end
when button or info begin
say_title(gameforge.event.title_20)
say(gameforge.event.say_30)
local events_info = {
--- event_name , flag
{gameforge.event.event_90, "new_2006_drop"},
{gameforge.event.event_100, "new_drop_moon"},
{gameforge.event.event_110, "new_valentine_drop"},
{gameforge.event.event_120, "new_football_drop"},
{gameforge.event.event_130, "new_ramadan_drop"},
{gameforge.event.event_140, "halloween_hair"},
{gameforge.event.event_150, "easter_rabbit"},
{gameforge.event.event_160, "new_xmas_event"},
{gameforge.event.event_170, "dressup_saleh"},
{gameforge.event.event_180, "sertbox_saleh"},
-- حالة خاصه , لاتقم بالتعديل هنا
{gameforge.event.say_70, nil}, -- rate
{gameforge.locale.cancel, ""} -- close
}
local menu01 = {}
for num1,str1 in ipairs(events_info) do
table.insert(menu01, str1[1])
end
local seltab01 = select_table(menu01, gameforge.locale.cancel)
if seltab01 == table.getn(menu01) then return end
say_reward(gameforge.event.say_reward_40)
if events_info[seltab01][2] == nil then
say(gameforge.event.say_80)
local min_rate = tonumber(input())
if min_rate == nil then
say(gameforge.event.say_90)
return
end
game.set_event_flag("event_rate", min_rate)
else
local s = select(gameforge.event.select_50, gameforge.event.select_60, gameforge.locale.cancel)
if s == 1 then
notice_all(string.format(gameforge.event.notice_70, events_info[seltab01][1]))
game.set_event_flag(events_info[seltab01][2], 1)
elseif s == 2 then
notice_all(string.format(gameforge.event.notice_80, events_info[seltab01][1]))
game.set_event_flag(events_info[seltab01][2], 0)
else
return
end
end
end
end
end
Drop
quest event_drop begin
state start begin
function get_events_table()
if event_drop.events_info == nil then
event_drop.events_info={
{gameforge.event.event_90, "new_2006_drop", 50037},
{gameforge.event.event_100, "new_drop_moon", 50011},
{" صندوق غامض ", "new_kids_day_drop", 50034},
{gameforge.event.event_120, "new_football_drop", 50096},
{gameforge.event.event_130, "new_ramadan_drop", 30315},
{gameforge.event.event_170, "dressup_saleh", 50130},
{gameforge.event.event_180, "sertbox_saleh", 50033},
}
end
return event_drop.events_info
end
when login or enter begin
for i,v in ipairs(event_drop.get_events_table()) do
if game.get_event_flag(v[2]) == 1 then
syschat(gameforge.event.say_100, v[1])
end
end
end
when kill with not npc.is_pc() begin
for i,v in ipairs(event_drop.get_events_table()) do
if game.get_event_flag(v[2]) == 1 then
local level = pc.get_level()
local limit = npc.get_level0()
local rate = game.get_event_flag("event_rate")
if level < limit+5 then
if math.random(1, 100) <= rate then
game.drop_item_with_ownership(v[3])
end
end
end
end
end
end
end
Tutorial instalare quest:
1. Salvaţi conţinutul quest-ului într-un fişier text numit de exemplu q1.quest .
2. Vă conectaţi la filezilla / winscp şi întrati în /usr/home/game/share/locale/germany/quest (depinde ce server aveţi).
3. Îl puneţi acolo (să fie .quest) şi da-ţi permisiuni 777.
4. Te loghezi în FreeBSD / putty şi scrii în felul următor: cd /usr/home/game/share/locale/germany/quest apoi ./qc q1.quest
5. Intraţi pe server şi scrieţi /reload q .