priv_empire.quest
oxevent.quest
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] ={25,105}
lv_range[2] ={40,105}
lv_range[3] ={50,105}
lv_range[4] ={60,105}
lv_range[5] ={70,105}
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() + 10*1)
else
pc.setqf("ox_end_cooldown_time", get_time()+10*1) -----------------------------------15 Minuten nun
end
end
end
when 20011.chat.gameforge.oxevent._10_npcChat begin
say_title(gameforge.main_quest_lv30._40_sayTitle)
say(gameforge.oxevent._20_say)
wait()
if game.get_event_flag("oxevent_status") == 0 then
say_title(gameforge.main_quest_lv30._40_sayTitle)
say(gameforge.oxevent._30_say)
elseif game.get_event_flag("oxevent_status") == 1 then
say_title(gameforge.main_quest_lv30._40_sayTitle)
say(gameforge.oxevent._40_say)
local s = select(gameforge.buy_fishrod._120_select, gameforge.locale.cancel)
if s == 1 then
say_title(gameforge.main_quest_lv30._40_sayTitle)
say(gameforge.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.main_quest_lv30._40_sayTitle)
say_reward(string.format(gameforge.entry_event_map._040_say, min, max))
return
end
if get_time() < pc.getqf("ox_end_cooldown_time") then
say_title(gameforge.main_quest_lv30._40_sayTitle)
say(gameforge.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.main_quest_lv30._40_sayTitle)
say(gameforge.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.main_quest_lv30._40_sayTitle)
say(gameforge.oxevent._60_say)
end
end
when 20358.chat.gameforge.oxevent._70_npcChat with pc.is_gm() begin
local stat = oxevent.get_status()
if stat == 0 then
say(gameforge.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.locale.cancel)
if choice == 6 then
return
end
say(gameforge.entry_event_map._160_say)
local amount_choice = input_number(gameforge.entry_event_map._240_say)
if amount_choice > 200 or amount_choice <= 0 then
say(gameforge.entry_event_map._250_say)
return
end
say(gameforge.oxevent._80_say)
say(gameforge.entry_event_map._180_say)
say(gameforge.entry_event_map._190_say .. " " .. oxevent_manager.enter_level(choice,1).. " - " ..oxevent_manager.enter_level(choice,2))
say(gameforge.entry_event_map._200_say .. " " .. amount_choice)
local s = select(gameforge.oxevent._90_select, gameforge.locale.cancel)
if s == 1 then
local v = oxevent.open()
if v == 0 then
say(gameforge.oxevent._100_say)
say_reward(gameforge.oxevent._110_sayReward)
elseif v == 1 then
say(gameforge.oxevent._120_say)
notice_multiline(gameforge.oxevent._130_notice_all,notice_all)
notice_multiline(gameforge.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.oxevent._100_say)
end
end
elseif stat == 1 then
say(string.format(gameforge.oxevent._140_say, oxevent.get_attender()))
local s = select(gameforge.oxevent._150_select, gameforge.locale.cancel)
if s == 1 then
oxevent.close()
say(gameforge.oxevent._160_say)
end
elseif stat == 2 then
say(gameforge.oxevent._170_say)
local s = select(
gameforge.oxevent._180_select,
gameforge.oxevent._190_select,
gameforge.oxevent._195_select,
gameforge.locale.cancel
)
if s == 1 then
local v = oxevent.quiz(1, 30)
if v == 0 then
say(gameforge.oxevent._200_say)
elseif v == 1 then
say(gameforge.oxevent._210_say)
else
say(gameforge.oxevent._220_say)
end
elseif s == 2 then
oxevent_manager.cleanup_event()
say(gameforge.oxevent._230_say)
notice_multiline(gameforge.oxevent._240_notice_all,notice_all)
notice_multiline(gameforge.oxevent._241_notice_all,notice_all)
elseif s == 3 then
oxevent_manager.cleanup_event()
say(gameforge.oxevent._250_say)
notice_multiline(gameforge.oxevent._260_notice_all,notice_all)
notice_multiline(gameforge.oxevent._261_notice_all,notice_all)
end
elseif stat == 3 then
say(gameforge.oxevent._270_say)
say_reward(gameforge.oxevent._280_sayReward)
else
say(gameforge.oxevent._290_say)
end
end
when 20358.chat.gameforge.oxevent._300_npcChat with pc.get_gm_level()== 5 begin
say(gameforge.oxevent._310_say)
local s = select(gameforge.oxevent._320_select, gameforge.locale.cancel)
if s == 1 then
oxevent.end_event_force()
game.set_event_flag("ox_map_login_counter",0)
say(gameforge.oxevent._330_say)
end
end
when 20358.chat.gameforge.oxevent._340_npcChat with pc.get_gm_level()== 5 begin
say(gameforge.oxevent._350_say)
local item_vnum = input()
say(gameforge.oxevent._360_say)
local item_count = input()
oxevent.give_item(item_vnum, item_count)
say(string.format(gameforge.oxevent._370_say, oxevent.get_attender()))
end
end
end
quest priv_empire begin
state start begin
when guild_man1.chat.gameforge.priv_empire._10_npcChat or guild_man2.chat.gameforge.priv_empire._10_npcChat or guild_man3.chat.gameforge.priv_empire._10_npcChat with pc.get_gm_level() == 5 begin
say_title(gameforge.priv_empire._20_sayTitle)
say(gameforge.priv_empire._30_say)
local empire_names =
{
[0] = gameforge.priv_empire._33_array,
[1] = gameforge.locale.empire_names_2,
[2] = gameforge.locale.empire_names_3,
[3] = gameforge.locale.empire_names_4,
}
local e = select(empire_names[1], empire_names[2], empire_names[3], empire_names[0], gameforge.locale.cancel)
if 5 == e then
return
end
if 4 == e then
e = 0
end
say_title(gameforge.priv_empire._40_sayTitle)
say_reward(__get_empire_priv_string(e))
say(gameforge.priv_empire._50_say)
local titles =
{
gameforge.priv_empire._53_array,
gameforge.priv_empire._54_array,
gameforge.priv_empire._55_array,
gameforge.priv_empire._56_array,
}
local t = select(
titles[1],
titles[2],
titles[3],
titles[4],
gameforge.locale.cancel)
if 5 == t then
return
end
say_title(gameforge.priv_empire._40_sayTitle)
say_reward(string.format(gameforge.priv_empire._60_sayReward, empire_names[e], titles[t]))
say(gameforge.priv_empire._70_say)
local g={10, 20, 50, 100, 150, 200}
local p = select(g[1]..'%', g[2]..'%', g[3]..'%', g[4]..'%', g[5]..'%', g[6]..'%', gameforge.locale.cancel)
if p == 7 then
return
end
say_title(gameforge.priv_empire._40_sayTitle)
say_reward(string.format(gameforge.priv_empire._100_sayReward, empire_names[e], titles[t], g[p]))
say(gameforge.priv_empire._110_say)
local v = 0
local h = select (
gameforge.priv_empire._120_select,
gameforge.priv_empire._130_select,
gameforge.priv_empire._134_select,
gameforge.priv_empire._135_select,
gameforge.locale.cancel
)
if 5 == h then
return
elseif 4 == h then
say_title(gameforge.priv_empire._40_sayTitle)
say_reward(string.format(gameforge.priv_empire._100_sayReward, empire_names[e], titles[t], g[p]))
say(gameforge.priv_empire._140_say)
v=input()
if v == "" then
v = 0
else
v=tonumber(v)
end
elseif 3 == h then
v=24
elseif 2 == h then
v=12
elseif 1 == h then
v=6
end
say_title(gameforge.priv_empire._40_sayTitle)
say_reward(string.format(gameforge.priv_empire._150_sayReward, empire_names[e], titles[t], g[p], v))
say(gameforge.priv_empire._160_say)
local s = select(gameforge.locale.guild.yes, gameforge.locale.guild.no)
if 1 == s then
say_title(gameforge.priv_empire._40_sayTitle)
__give_empire_priv(e, t, g[p], v*60*60)
say_reward(gameforge.priv_empire._170_sayReward)
else
say_title(gameforge.priv_empire._40_sayTitle)
say_reward(gameforge.priv_empire._180_sayReward)
end
end
end
end
when input "30" or every number in "max_player" return to login