Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest oxevent_manager begin
- state start begin
- function cleanup_event()
- oxevent.end_event()
- game.set_event_flag("ox_map_login_counter",0)
- end
- function check_limit()
- if game.get_event_flag("ox_map_login_counter") == game.get_event_flag("ox_map_player_max") then
- return 0
- else
- return 1
- end
- end
- function enter_level (vnum1,vnum2)
- lv_range={}
- lv_range[1] ={75,125}
- lv_range[2] ={125,150}
- lv_range[3] ={150,175}
- lv_range[4] ={175,200}
- lv_range[5] ={100,140}
- return lv_range [vnum1][vnum2]
- end
- when login or enter begin
- if pc.get_map_index() == 113 then
- local counter = game.get_event_flag("ox_map_login_counter")
- game.set_event_flag("ox_map_login_counter", counter+1)
- end
- end
- when logout begin
- if pc.get_map_index() == 113 then
- if is_test_server() then
- pc.setqf("ox_end_cooldown_time", get_time() + 0*0)
- else
- pc.setqf("ox_end_cooldown_time", get_time()+0*0) -----------------------------------15 Minuten nun
- end
- end
- end
- when 20011.chat.gameforge[get_lang()].oxevent._10_npcChat begin
- say_title(gameforge[get_lang()].main_quest_lv30._40_sayTitle)
- say(gameforge[get_lang()].oxevent._20_say)
- wait()
- if game.get_event_flag("oxevent_status") == 0 then
- say_title(gameforge[get_lang()].main_quest_lv30._40_sayTitle)
- say(gameforge[get_lang()].oxevent._30_say)
- elseif game.get_event_flag("oxevent_status") == 1 then
- say_title(gameforge[get_lang()].main_quest_lv30._40_sayTitle)
- say(gameforge[get_lang()].oxevent._40_say)
- local s = select(gameforge[get_lang()].buy_fishrod._120_select, gameforge[get_lang()].locale.cancel)
- if s == 1 then
- say_title(gameforge[get_lang()].main_quest_lv30._40_sayTitle)
- say(gameforge[get_lang()].oxevent._50_say)
- wait()
- -- read the limits that the admin set hopefully
- local min = game.get_event_flag("ox_map_level_min")
- local max = game.get_event_flag("ox_map_level_max")
- if pc.level < min or pc.level > max then
- say_title(gameforge[get_lang()].main_quest_lv30._40_sayTitle)
- say_reward(string.format(gameforge[get_lang()].entry_event_map._040_say, min, max))
- return
- end
- if get_time() < pc.getqf("ox_end_cooldown_time") then
- say_title(gameforge[get_lang()].main_quest_lv30._40_sayTitle)
- say(gameforge[get_lang()].locale.monkey_dungeon.cannot_enter_yet)
- return
- end
- -- check again the limit before we warp the player, maybe someone have trigger the limit
- if oxevent_manager.check_limit() == 0 then
- say_title(gameforge[get_lang()].main_quest_lv30._40_sayTitle)
- say(gameforge[get_lang()].entry_event_map._060_say)
- return
- end
- -- removed the random warp, cause the current binary checks the coordinates.
- --pc.warp(math.random(892973,899719), math.random(23256, 26044) )
- pc.warp(896500, 24600)
- elseif s == 2 then
- return
- end
- elseif game.get_event_flag("oxevent_status") == 2 then
- say_title(gameforge[get_lang()].main_quest_lv30._40_sayTitle)
- say(gameforge[get_lang()].oxevent._60_say)
- end
- end
- when 20358.chat.gameforge[get_lang()].oxevent._70_npcChat with pc.is_gm() begin
- local stat = oxevent.get_status()
- if stat == 0 then
- say(gameforge[get_lang()].entry_event_map._150_say)
- local choice = select ("1> min "..oxevent_manager.enter_level(1,1).." max "..oxevent_manager.enter_level(1,2),"2> min "..oxevent_manager.enter_level(2,1).." max "..oxevent_manager.enter_level(2,2), "3> min "..oxevent_manager.enter_level(3,1).." max "..oxevent_manager.enter_level(3,2), "4> min "..oxevent_manager.enter_level(4,1).." max "..oxevent_manager.enter_level(4,2), "5> min "..oxevent_manager.enter_level(5,1).." max "..oxevent_manager.enter_level(5,2), gameforge[get_lang()].locale.cancel)
- if choice == 6 then
- return
- end
- say(gameforge[get_lang()].entry_event_map._160_say)
- local amount_choice = input_number(gameforge[get_lang()].entry_event_map._240_say)
- if amount_choice > 200 or amount_choice <= 0 then
- say(gameforge[get_lang()].entry_event_map._250_say)
- return
- end
- say(gameforge[get_lang()].oxevent._80_say)
- say(gameforge[get_lang()].entry_event_map._180_say)
- say(gameforge[get_lang()].entry_event_map._190_say .. " " .. oxevent_manager.enter_level(choice,1).. " - " ..oxevent_manager.enter_level(choice,2))
- say(gameforge[get_lang()].entry_event_map._200_say .. " " .. amount_choice)
- local s = select(gameforge[get_lang()].oxevent._90_select, gameforge[get_lang()].locale.cancel)
- if s == 1 then
- local v = oxevent.open()
- if v == 0 then
- say(gameforge[get_lang()].oxevent._100_say)
- say_reward(gameforge[get_lang()].oxevent._110_sayReward)
- elseif v == 1 then
- say(gameforge[get_lang()].oxevent._120_say)
- notice_multiline(gameforge[get_lang()].oxevent._130_notice_all,notice_all)
- notice_multiline(gameforge[get_lang()].oxevent._131_notice_all,notice_all)
- -- set the limits we set previous asked
- game.set_event_flag("ox_map_level_min",oxevent_manager.enter_level(choice,1))
- game.set_event_flag("ox_map_level_max",oxevent_manager.enter_level(choice,2))
- game.set_event_flag("ox_map_player_max",amount_choice)
- else
- say(gameforge[get_lang()].oxevent._100_say)
- end
- end
- elseif stat == 1 then
- say(string.format(gameforge[get_lang()].oxevent._140_say, oxevent.get_attender()))
- local s = select(gameforge[get_lang()].oxevent._150_select, gameforge[get_lang()].locale.cancel)
- if s == 1 then
- oxevent.close()
- say(gameforge[get_lang()].oxevent._160_say)
- end
- elseif stat == 2 then
- say(gameforge[get_lang()].oxevent._170_say)
- local s = select(
- gameforge[get_lang()].oxevent._180_select,
- gameforge[get_lang()].oxevent._190_select,
- gameforge[get_lang()].oxevent._195_select,
- gameforge[get_lang()].locale.cancel
- )
- if s == 1 then
- local s_level = select("Normal", "Normal", "Hard", "Risk", locale.cancel)
- if s_level == 5 then return end
- local v = oxevent.quiz(s_level, 30)
- if v == 0 then
- say(gameforge[get_lang()].oxevent._200_say)
- elseif v == 1 then
- say(gameforge[get_lang()].oxevent._210_say)
- else
- say(gameforge[get_lang()].oxevent._220_say)
- end
- elseif s == 2 then
- oxevent_manager.cleanup_event()
- say(gameforge[get_lang()].oxevent._230_say)
- notice_multiline(gameforge[get_lang()].oxevent._240_notice_all,notice_all)
- notice_multiline(gameforge[get_lang()].oxevent._241_notice_all,notice_all)
- elseif s == 3 then
- oxevent_manager.cleanup_event()
- say(gameforge[get_lang()].oxevent._250_say)
- notice_multiline(gameforge[get_lang()].oxevent._260_notice_all,notice_all)
- notice_multiline(gameforge[get_lang()].oxevent._261_notice_all,notice_all)
- end
- elseif stat == 3 then
- say(gameforge[get_lang()].oxevent._270_say)
- say_reward(gameforge[get_lang()].oxevent._280_sayReward)
- else
- say(gameforge[get_lang()].oxevent._290_say)
- end
- end
- when 20358.chat.gameforge[get_lang()].oxevent._300_npcChat with pc.is_gm() begin
- say(gameforge[get_lang()].oxevent._310_say)
- local s = select(gameforge[get_lang()].oxevent._320_select, gameforge[get_lang()].locale.cancel)
- if s == 1 then
- oxevent.end_event_force()
- game.set_event_flag("ox_map_login_counter",0)
- say(gameforge[get_lang()].oxevent._330_say)
- end
- end
- when 20358.chat.gameforge[get_lang()].oxevent._340_npcChat with pc.is_gm() begin
- say(gameforge[get_lang()].oxevent._350_say)
- local item_vnum = input()
- say(gameforge[get_lang()].oxevent._360_say)
- local item_count = input()
- oxevent.give_item(item_vnum, item_count)
- say(string.format(gameforge[get_lang()].oxevent._370_say, oxevent.get_attender()))
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement