Rúben Alexandre 124 Posted March 31, 2016 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 Event 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 Share this post Link to post Share on other sites