https://mega.nz/#!awEWkK5a!HadPbhlmULvT ... gamZntEoIc
quest automatic_ox begin
state start begin
when 20011.chat."Nu functioneaza" begin
local data = AutomaticOxEvent.ReturnData();
say_title(string.format("%s:[ENTER]", mob_name(20011)))
if AutomaticOxEvent.isInMapIndex() then
local att = oxevent.get_attender();
say(string.format("Jucatori inregistrati in concursul ox: %d.", att))
return
end
if data["minimum_level_check"] then
if pc.get_level() < data["minimum_level"] then
say(string.format("Nu poti intra la ox decat de la nivelul %d.", data["minimum_level"]))
return
end
end
if not AutomaticOxEvent.isOx() then
say("Competitia OX nu este inca activa...")
if AutomaticOxEvent.isTimerOn() then
say(string.format("Acesta este totusi programat pentru deschidere[ENTER]in %s", get_time_format(AutomaticOxEvent.TimeRemaining())))
end
return
end
horse.unride();
horse.unsummon();
if AutomaticOxEvent.isSpectateRound() then
say("Competitia OX este deja in desfasurare,[ENTER]doresti sa te uiti la aceasta?")
if (select("Da", "Nu") == 1) then
if AutomaticOxEvent.isSpectateRound() then
pc.warp(896800, 20700);
else
say("Competitia a luat sfarsit, nu mai poti spectata.")
end
end
return
end
say("Competitia ox este un concurs foarte important[ENTER]pentru toti jucatorii, acesta oferind diferite premii[ENTER]jucatorilor ce raspund corect intrebarilor![ENTER]Doresti sa intri in concurs?")
if (select("Da", "Nu") == 1) then
if AutomaticOxEvent.isOx() then
pc.warp(896500, 24600);
else
say("Competitia ox a inceput...")
end
end
end
when 20358.chat."GM: Competitie Ox" with pc.get_name() == "[SA]Damien" begin
local AutomaticOxStatus = oxevent.get_status();
local data = AutomaticOxEvent.ReturnData();
local AutomaticOxOpen = oxevent.open();
say_title(string.format("%s:[ENTER]", mob_name(20358)))
if pc.get_channel_id() != data["config_ch"] then
say(string.format("Nu poti modifica evenimentul decat[ENTER]de pe canalul %d.", data["config_ch"]))
return
end
if pc.get_map_index() != data["map_index"] then
say(string.format("Nu poti modifica evenimentul decat[ENTER]daca te afli in mapa ox-ului.", data["config_ch"]))
return
end
if AutomaticOxStatus == 0 then
say("Alege ce doresti sa faci:")
local AutomaticOxOptions = select("Deschiderea Portilor", "Programarea Evenimentului", "Curatare Eveniment / Renunta")
if AutomaticOxOptions == 3 then
AutomaticOxEvent.ClearContest(true)
return
elseif AutomaticOxOptions == 1 then
say_title(string.format("%s:[ENTER]", mob_name(20358)))
say("Doresti sa deschizi Portile competitiei OX?")
if (select("Da", "Nu") == 1) then
if AutomaticOxOpen == 0 then
say("Nu am putut incarca intrebarile!")
elseif AutomaticOxOpen == 1 then
say_title(string.format("%s:[ENTER]", mob_name(20358)))
say("Portile Competitiei au fost deschise!")
game.set_event_flag("automatic_ox_status", 1);
game.set_event_flag("automatic_OxPartRound", 1);
server_timer("AutomaticOxPartRewards", data["gates_close_after"], get_server_timer_arg());
notice_all("[OX Contest]: Evenimentul OX este acum deschis, intrarile se fac la Uriel...")
notice_all(string.format("[OX Contest]: Portile vor fi deschise pentru %s, graviti-va!", get_time_format(data["gates_close_after"])))
end
else
AutomaticOxEvent.ClearContest(true)
end
elseif AutomaticOxOptions == 2 then
say_title(string.format("%s:[ENTER]", mob_name(20358)))
say("Insereaza in cat timp doresti ca portile[ENTER]evenimentului sa se deschida:")
local AutomaticOxStrInput = input();
if AutomaticOxEvent.SchInput(AutomaticOxStrInput) then
say_title(string.format("%s:[ENTER]", mob_name(20358)))
say("Eveniment programat cu succes!")
game.set_event_flag("automatic_OxTimer", get_time() + time_min_to_sec(tonumber(AutomaticOxStrInput)));
server_timer("AutomaticOxSchelTimer", time_min_to_sec(tonumber(AutomaticOxStrInput)), get_server_timer_arg());
notice_all("[OX Contest]: Evenimentul OX a fost programat pentru deschidere, acesta")
notice_all(string.format("[OX Contest]: se va deschide peste %s, va multumim.", get_time_format(time_min_to_sec(tonumber(AutomaticOxStrInput)))))
else
AutomaticOxEvent.ClearContest(true)
end
end
elseif AutomaticOxStatus == 1 and AutomaticOxEvent.isTimerOn() then
say(string.format("Timerul pentru deschiderea portilor este[ENTER]activ, mai sunt %s pana la[ENTER]activarea acestuia doresti sa inchizi timerul?", get_time_format(AutomaticOxEvent.TimeRemaining())))
if (select("Da", "Nu") == 1) then
AutomaticOxEvent.ClearContest(true)
end
elseif AutomaticOxStatus == 1 and not AutomaticOxEvent.isTimerOn() then
say("Evenimentul este in desfasurare, doresti[ENTER]ca acesta sa fie inchis de urgenta?")
if (select("Da", "Nu") == 1) then
AutomaticOxEvent.ClearContest(true)
notice_all("[OX Contest]: Evenimentul OX a fost inchis de urgenta de catre un Admin.")
end
end
end
when AutomaticOxSchelTimer.server_timer begin
local data = AutomaticOxEvent.ReturnData();
game.set_event_flag("automatic_ox_status", 1);
game.set_event_flag("automatic_OxPartRound", 1);
game.set_event_flag("automatic_OxTimer", 0);
server_timer("AutomaticOxPartRewards", data["gates_close_after"], get_server_timer_arg());
notice_all("[OX Contest]: Evenimentul OX este acum deschis, intrarile se fac la Uriel...")
notice_all(string.format("[OX Contest]: Portile vor fi deschise pentru %s, graviti-va!", get_time_format(data["gates_close_after"])))
end
when AutomaticOxPartRewards.server_timer begin
local data = AutomaticOxEvent.ReturnData();
if AutomaticOxEvent.isOx() then
if AutomaticOxEvent.EnoughAttenders() then
if AutomaticOxEvent.isPartRound() then
if AutomaticOxEvent.isPartReward() then
local Reward_Tab = data["part_rewards"];
local GetRandom_Reward = AutomaticOxEvent.GetRandomReward(Reward_Tab);
local index = 0;
if (AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward]) <= 1) then
oxevent.give_item(Reward_Tab[GetRandom_Reward][1], Reward_Tab[GetRandom_Reward][2]);
else
for i = 1, AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward])/2 do
oxevent.give_item(Reward_Tab[GetRandom_Reward][i+index], Reward_Tab[GetRandom_Reward][i+1+index]);
index = index + 1;
end
end
notice_all("[OX Contest]: In 20 secunde vor fi activate intrebarile!")
server_timer("AutomaticOxQuiz", 20, get_server_timer_arg());
game.set_event_flag("automatic_OxPartRound", 0);
else
notice_all("[OX Contest]: Premiile de participare sunt dezactivate!")
notice_all("[OX Contest]: In 20 secunde vor fi activate intrebarile!")
server_timer("AutomaticOxQuiz", 20, get_server_timer_arg());
end
game.set_event_flag("automatic_ox_status", 2);
end
else
notice_all("[OX Contest]: Nu sunt destui jucatori pentru a incepe Competitia Ox,")
notice_all(string.format("[OX Contest]: trebuie sa fie cel putin %d jucatori pentru a incepe evenimentul!", data["minimum_attenders"]))
notice_all("[OX Contest]: Competitia ox se va inchide automat in 10 secunde!")
server_timer("AutomaticOxEndContest", 10, get_server_timer_arg());
end
end
end
when AutomaticOxInitReward.server_timer begin
local data = AutomaticOxEvent.ReturnData();
local att = oxevent.get_attender();
if (att ~= nil or att ~= 0) then
if (att <= data["final_reward_to_players"]) then
if AutomaticOxEvent.isFinalReward() then
local Reward_Tab = data["final_rewards"];
local GetRandom_Reward = AutomaticOxEvent.GetRandomReward(Reward_Tab);
local index = 0;
if (AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward]) <= 1) then
oxevent.give_item(Reward_Tab[GetRandom_Reward][1], Reward_Tab[GetRandom_Reward][2]);
else
for i = 1, AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward])/2 do
oxevent.give_item(Reward_Tab[GetRandom_Reward][i+index], Reward_Tab[GetRandom_Reward][i+1+index]);
index = index + 1;
end
end
notice_all("[OX Contest]: Competitia ox are un castigator, felicitari!")
notice_all("[OX Contest]: In 20 de secunde evenimentul va lua sfarsit, va multumim!")
server_timer("AutomaticOxEndContest", 20, get_server_timer_arg());
else
notice_all("[OX Contest]: Premiile de final sunt dezactivate!")
notice_all("[OX Contest]: In 20 de secunde evenimentul va lua sfarsit, va multumim!")
server_timer("AutomaticOxEndContest", 20, get_server_timer_arg());
end
else
if AutomaticOxEvent.isPartReward() then
local AutOxRs = game.get_event_flag("AutomaticOxRewardState");
if AutOxRs == data["reward_once_at"] then
local Reward_Tab = data["question_rewards"];
local GetRandom_Reward = AutomaticOxEvent.GetRandomReward(Reward_Tab);
local index = 0;
if (AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward]) <= 1) then
oxevent.give_item(Reward_Tab[GetRandom_Reward][1], Reward_Tab[GetRandom_Reward][2]);
else
for i = 1, AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward])/2 do
oxevent.give_item(Reward_Tab[GetRandom_Reward][i+index], Reward_Tab[GetRandom_Reward][i+1+index]);
index = index + 1;
end
end
game.set_event_flag("AutomaticOxRewardState", 0);
end
notice_all("[OX Contest]: In 10 secunde o noua intrebare va fi afisata!")
clear_server_timer("AutomaticOxQuiz", get_server_timer_arg());
server_timer("AutomaticOxQuiz", 10, get_server_timer_arg());
else
notice_all("[OX Contest]: Premiile de dintre runde sunt dezactivate!")
notice_all("[OX Contest]: Intrebarile continua in mod normal...")
clear_server_timer("AutomaticOxQuiz", get_server_timer_arg());
server_timer("AutomaticOxQuiz", 10, get_server_timer_arg());
end
end
else
notice_all("[OX Contest]: Nu mai exista participanti la aceasta competitie...")
notice_all("[OX Contest]: Competitia ox se va inchide automat in 10 secunde!")
server_timer("AutomaticOxEndContest", 10, get_server_timer_arg());
end
end
when AutomaticOxQuiz.server_timer begin
AutomaticOxEvent.AskQuiz();
clear_server_timer("AutomaticOxInitReward", get_server_timer_arg());
server_timer("AutomaticOxInitReward", 35, get_server_timer_arg());
game.set_event_flag("AutomaticOxRewardState", game.get_event_flag("AutomaticOxRewardState")+1);
end
when AutomaticOxEndContest.server_timer begin
AutomaticOxEvent.ClearContest(true)
end
end
end
state start begin
when 20011.chat."Nu functioneaza" begin
local data = AutomaticOxEvent.ReturnData();
say_title(string.format("%s:[ENTER]", mob_name(20011)))
if AutomaticOxEvent.isInMapIndex() then
local att = oxevent.get_attender();
say(string.format("Jucatori inregistrati in concursul ox: %d.", att))
return
end
if data["minimum_level_check"] then
if pc.get_level() < data["minimum_level"] then
say(string.format("Nu poti intra la ox decat de la nivelul %d.", data["minimum_level"]))
return
end
end
if not AutomaticOxEvent.isOx() then
say("Competitia OX nu este inca activa...")
if AutomaticOxEvent.isTimerOn() then
say(string.format("Acesta este totusi programat pentru deschidere[ENTER]in %s", get_time_format(AutomaticOxEvent.TimeRemaining())))
end
return
end
horse.unride();
horse.unsummon();
if AutomaticOxEvent.isSpectateRound() then
say("Competitia OX este deja in desfasurare,[ENTER]doresti sa te uiti la aceasta?")
if (select("Da", "Nu") == 1) then
if AutomaticOxEvent.isSpectateRound() then
pc.warp(896800, 20700);
else
say("Competitia a luat sfarsit, nu mai poti spectata.")
end
end
return
end
say("Competitia ox este un concurs foarte important[ENTER]pentru toti jucatorii, acesta oferind diferite premii[ENTER]jucatorilor ce raspund corect intrebarilor![ENTER]Doresti sa intri in concurs?")
if (select("Da", "Nu") == 1) then
if AutomaticOxEvent.isOx() then
pc.warp(896500, 24600);
else
say("Competitia ox a inceput...")
end
end
end
when 20358.chat."GM: Competitie Ox" with pc.get_name() == "[SA]Damien" begin
local AutomaticOxStatus = oxevent.get_status();
local data = AutomaticOxEvent.ReturnData();
local AutomaticOxOpen = oxevent.open();
say_title(string.format("%s:[ENTER]", mob_name(20358)))
if pc.get_channel_id() != data["config_ch"] then
say(string.format("Nu poti modifica evenimentul decat[ENTER]de pe canalul %d.", data["config_ch"]))
return
end
if pc.get_map_index() != data["map_index"] then
say(string.format("Nu poti modifica evenimentul decat[ENTER]daca te afli in mapa ox-ului.", data["config_ch"]))
return
end
if AutomaticOxStatus == 0 then
say("Alege ce doresti sa faci:")
local AutomaticOxOptions = select("Deschiderea Portilor", "Programarea Evenimentului", "Curatare Eveniment / Renunta")
if AutomaticOxOptions == 3 then
AutomaticOxEvent.ClearContest(true)
return
elseif AutomaticOxOptions == 1 then
say_title(string.format("%s:[ENTER]", mob_name(20358)))
say("Doresti sa deschizi Portile competitiei OX?")
if (select("Da", "Nu") == 1) then
if AutomaticOxOpen == 0 then
say("Nu am putut incarca intrebarile!")
elseif AutomaticOxOpen == 1 then
say_title(string.format("%s:[ENTER]", mob_name(20358)))
say("Portile Competitiei au fost deschise!")
game.set_event_flag("automatic_ox_status", 1);
game.set_event_flag("automatic_OxPartRound", 1);
server_timer("AutomaticOxPartRewards", data["gates_close_after"], get_server_timer_arg());
notice_all("[OX Contest]: Evenimentul OX este acum deschis, intrarile se fac la Uriel...")
notice_all(string.format("[OX Contest]: Portile vor fi deschise pentru %s, graviti-va!", get_time_format(data["gates_close_after"])))
end
else
AutomaticOxEvent.ClearContest(true)
end
elseif AutomaticOxOptions == 2 then
say_title(string.format("%s:[ENTER]", mob_name(20358)))
say("Insereaza in cat timp doresti ca portile[ENTER]evenimentului sa se deschida:")
local AutomaticOxStrInput = input();
if AutomaticOxEvent.SchInput(AutomaticOxStrInput) then
say_title(string.format("%s:[ENTER]", mob_name(20358)))
say("Eveniment programat cu succes!")
game.set_event_flag("automatic_OxTimer", get_time() + time_min_to_sec(tonumber(AutomaticOxStrInput)));
server_timer("AutomaticOxSchelTimer", time_min_to_sec(tonumber(AutomaticOxStrInput)), get_server_timer_arg());
notice_all("[OX Contest]: Evenimentul OX a fost programat pentru deschidere, acesta")
notice_all(string.format("[OX Contest]: se va deschide peste %s, va multumim.", get_time_format(time_min_to_sec(tonumber(AutomaticOxStrInput)))))
else
AutomaticOxEvent.ClearContest(true)
end
end
elseif AutomaticOxStatus == 1 and AutomaticOxEvent.isTimerOn() then
say(string.format("Timerul pentru deschiderea portilor este[ENTER]activ, mai sunt %s pana la[ENTER]activarea acestuia doresti sa inchizi timerul?", get_time_format(AutomaticOxEvent.TimeRemaining())))
if (select("Da", "Nu") == 1) then
AutomaticOxEvent.ClearContest(true)
end
elseif AutomaticOxStatus == 1 and not AutomaticOxEvent.isTimerOn() then
say("Evenimentul este in desfasurare, doresti[ENTER]ca acesta sa fie inchis de urgenta?")
if (select("Da", "Nu") == 1) then
AutomaticOxEvent.ClearContest(true)
notice_all("[OX Contest]: Evenimentul OX a fost inchis de urgenta de catre un Admin.")
end
end
end
when AutomaticOxSchelTimer.server_timer begin
local data = AutomaticOxEvent.ReturnData();
game.set_event_flag("automatic_ox_status", 1);
game.set_event_flag("automatic_OxPartRound", 1);
game.set_event_flag("automatic_OxTimer", 0);
server_timer("AutomaticOxPartRewards", data["gates_close_after"], get_server_timer_arg());
notice_all("[OX Contest]: Evenimentul OX este acum deschis, intrarile se fac la Uriel...")
notice_all(string.format("[OX Contest]: Portile vor fi deschise pentru %s, graviti-va!", get_time_format(data["gates_close_after"])))
end
when AutomaticOxPartRewards.server_timer begin
local data = AutomaticOxEvent.ReturnData();
if AutomaticOxEvent.isOx() then
if AutomaticOxEvent.EnoughAttenders() then
if AutomaticOxEvent.isPartRound() then
if AutomaticOxEvent.isPartReward() then
local Reward_Tab = data["part_rewards"];
local GetRandom_Reward = AutomaticOxEvent.GetRandomReward(Reward_Tab);
local index = 0;
if (AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward]) <= 1) then
oxevent.give_item(Reward_Tab[GetRandom_Reward][1], Reward_Tab[GetRandom_Reward][2]);
else
for i = 1, AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward])/2 do
oxevent.give_item(Reward_Tab[GetRandom_Reward][i+index], Reward_Tab[GetRandom_Reward][i+1+index]);
index = index + 1;
end
end
notice_all("[OX Contest]: In 20 secunde vor fi activate intrebarile!")
server_timer("AutomaticOxQuiz", 20, get_server_timer_arg());
game.set_event_flag("automatic_OxPartRound", 0);
else
notice_all("[OX Contest]: Premiile de participare sunt dezactivate!")
notice_all("[OX Contest]: In 20 secunde vor fi activate intrebarile!")
server_timer("AutomaticOxQuiz", 20, get_server_timer_arg());
end
game.set_event_flag("automatic_ox_status", 2);
end
else
notice_all("[OX Contest]: Nu sunt destui jucatori pentru a incepe Competitia Ox,")
notice_all(string.format("[OX Contest]: trebuie sa fie cel putin %d jucatori pentru a incepe evenimentul!", data["minimum_attenders"]))
notice_all("[OX Contest]: Competitia ox se va inchide automat in 10 secunde!")
server_timer("AutomaticOxEndContest", 10, get_server_timer_arg());
end
end
end
when AutomaticOxInitReward.server_timer begin
local data = AutomaticOxEvent.ReturnData();
local att = oxevent.get_attender();
if (att ~= nil or att ~= 0) then
if (att <= data["final_reward_to_players"]) then
if AutomaticOxEvent.isFinalReward() then
local Reward_Tab = data["final_rewards"];
local GetRandom_Reward = AutomaticOxEvent.GetRandomReward(Reward_Tab);
local index = 0;
if (AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward]) <= 1) then
oxevent.give_item(Reward_Tab[GetRandom_Reward][1], Reward_Tab[GetRandom_Reward][2]);
else
for i = 1, AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward])/2 do
oxevent.give_item(Reward_Tab[GetRandom_Reward][i+index], Reward_Tab[GetRandom_Reward][i+1+index]);
index = index + 1;
end
end
notice_all("[OX Contest]: Competitia ox are un castigator, felicitari!")
notice_all("[OX Contest]: In 20 de secunde evenimentul va lua sfarsit, va multumim!")
server_timer("AutomaticOxEndContest", 20, get_server_timer_arg());
else
notice_all("[OX Contest]: Premiile de final sunt dezactivate!")
notice_all("[OX Contest]: In 20 de secunde evenimentul va lua sfarsit, va multumim!")
server_timer("AutomaticOxEndContest", 20, get_server_timer_arg());
end
else
if AutomaticOxEvent.isPartReward() then
local AutOxRs = game.get_event_flag("AutomaticOxRewardState");
if AutOxRs == data["reward_once_at"] then
local Reward_Tab = data["question_rewards"];
local GetRandom_Reward = AutomaticOxEvent.GetRandomReward(Reward_Tab);
local index = 0;
if (AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward]) <= 1) then
oxevent.give_item(Reward_Tab[GetRandom_Reward][1], Reward_Tab[GetRandom_Reward][2]);
else
for i = 1, AutomaticOxEvent.GetTableCount(Reward_Tab[GetRandom_Reward])/2 do
oxevent.give_item(Reward_Tab[GetRandom_Reward][i+index], Reward_Tab[GetRandom_Reward][i+1+index]);
index = index + 1;
end
end
game.set_event_flag("AutomaticOxRewardState", 0);
end
notice_all("[OX Contest]: In 10 secunde o noua intrebare va fi afisata!")
clear_server_timer("AutomaticOxQuiz", get_server_timer_arg());
server_timer("AutomaticOxQuiz", 10, get_server_timer_arg());
else
notice_all("[OX Contest]: Premiile de dintre runde sunt dezactivate!")
notice_all("[OX Contest]: Intrebarile continua in mod normal...")
clear_server_timer("AutomaticOxQuiz", get_server_timer_arg());
server_timer("AutomaticOxQuiz", 10, get_server_timer_arg());
end
end
else
notice_all("[OX Contest]: Nu mai exista participanti la aceasta competitie...")
notice_all("[OX Contest]: Competitia ox se va inchide automat in 10 secunde!")
server_timer("AutomaticOxEndContest", 10, get_server_timer_arg());
end
end
when AutomaticOxQuiz.server_timer begin
AutomaticOxEvent.AskQuiz();
clear_server_timer("AutomaticOxInitReward", get_server_timer_arg());
server_timer("AutomaticOxInitReward", 35, get_server_timer_arg());
game.set_event_flag("AutomaticOxRewardState", game.get_event_flag("AutomaticOxRewardState")+1);
end
when AutomaticOxEndContest.server_timer begin
AutomaticOxEvent.ClearContest(true)
end
end
end
*Resursă folosită:
*ServerFiles utilizat:
*Syserr:
Poză:
*Detalii suplimentare:





