Cod: Selectaţi tot
-- Quest scris de Exygo
-- Data creeari: 12 Decembrie 2015 5:21 PM - Ora Romaniei
-- Numar de linii: 164
----------------------------------------------------------
-- Caracteristici:
-- + Panou administrare (NPC 9004)
-- + Mod de echilibrare drop (se seteaza de la activare_esuare_drop)
-- + Mentiuni: Nu include functie npc_get_level pentru verificare nivel player <=> nivel mob
-- + 1) Trebuie pus Mos Craciun in map1
-- + 2) Trebuie facut drop in special_item_group.txt pentru cufarul de craciun (71144)
-- + VNUM NPC Mos Craciun = 20126
-- + VNUM Cufar de Craciun = 71144
-- + VNUM Soseta de Craciun = 50010
-- + Varianta simpla & FREE
quest event_craciun begin
state __FUNC__ begin
function return_status_event(event_flag)
if event_flag == 1 then return_status = "Activ"
elseif event_flag == 0 then return_status = "Inactiv"
else return_status = event_flag
end
return return_status
end
end -- s
state start begin
when 9004.chat."* Event Craciun" with pc.is_gm() begin
local alege = select("Status","Rata drop","Anuleaza")
if alege == 1 then
say_title(mob_name(npc.get_race()).." - Event Craciun - Status:[ENTER]")
local eveniment_status = event_craciun.return_status_event(game.get_event_flag("event_craciun_status"))
say("Evenimentul este: "..eveniment_status.."[ENTER]")
if game.get_event_flag("event_craciun_status") == 0 then
say_reward("Vrei sa activezi evenimentul ?")
local activeaza = select("Da","Nu")
if activeaza == 1 then
say_title("Evenimentul a fost activat[ENTER]")
say("Nota: In caz ca doriti sa resetati flagul,")
say("folositi comanda /e event_craciun_status 0")
game.set_event_flag("event_craciun_status", 1)
end
else
say_reward("Vrei sa dezactivezi flagul ?")
local dezactiveaza = select("Da","Nu")
if dezactiveaza == 1 then
say_title("Evenimentul a fost dezactivat![ENTER]")
game.set_event_flag("event_craciun_status", 0)
end
say("[ENTER]Nota: In caz ca doriti sa resetati flagul,")
say("folositi comanda /e event_craciun_status 0")
end -- if
elseif alege == 2 then
say_title(mob_name(npc.get_race()).." - Event Craciun - Rata drop:[ENTER]")
say("Rata actuala: "..game.get_event_flag("event_craciun_rata").."")
say_reward("Rata recomandata: 1 cel mult 2")
local schimba_rata = tonumber(input())
if schimba_rata > 0 and schimba_rata < 101 then
--char_log(0, "Event Craciun - Rata drop setata de" ..pc.get_name().. " la valoarea " ..schimba_rata.. "%")
game.set_event_flag("event_craciun_rata", schimba_rata)
say_title("Event Craciun - Rata drop:[ENTER]")
say("Dropul actual " ..schimba_rata.. " setat.")
else
say_title("Event Craciun - Rata drop:[ENTER]")
say_reward("Ati introdus o valoare neacceptata!")
end
end
end -- w
when 20126.chat."Ajuta-l pe Mos sa stranga sosete" with pc.getf("event_craciun","prima_data_la_mos") == 0 begin
say_title(mob_name(npc.get_race())..":[ENTER]")
say("In timp ce veneam din Laponia, renii mei")
say("s-au speriat de ceva si sania mea, s-a")
say("inclinat si astfel am pierdut toate sosetele,")
say("pe care trebuia sa le umplu cu dulciuri pentru")
say("a le da copiilor de Craciun. Acestea au cazut")
say("[ENTER]si probabil ca acum sunt la monstrii.")
say_reward("Ajuta-ma sa le strang si te voi rasplati cu un cadou")
local teajut = select("Poti conta pe mine","Scuze Mosule, nu pot")
if teajut == 1 then
say_title(mob_name(npc.get_race())..":[ENTER]")
say("Oh, iti multumesc foarte mult!")
pc.setf("event_craciun","prima_data_la_mos", 1)
end
end
when 20126.chat."Sosete" with pc.getf("event_craciun","prima_data_la_mos") == 1 begin
say_title(mob_name(npc.get_race())..":[ENTER]")
if get_time() < pc.getf("event_craciun","timp_sosete") then
say("Ho Ho Ho! Trebuie sa duc sosetele")
say("copiilor asa ca asteapta te rog.")
say("Revino in "..pc.getf("event_craciun","timp_sosete").." secunde")
else
if pc.count_item(50010) < 1 then
say("Numai pierde vremea, fugi si fa rost de sosete[ENTER]de la monstrii pentru a salva Craciunul!")
elseif pc.count_item(50010) < 5 then
if pc.count_item(50010) == 1 then
say("Ai doar o singura soseta, fa-mi rost de 5!")
else
say("Ai doar "..(pc.count_item(50010)).." sosete, fa-mi rost de 5!")
end
elseif pc.count_item(50010) >= 5 then
say("Ho Ho Ho ai facut rost de sosete, foarte bine!")
local poftim = select("Poftim sosetele","Anulare")
if poftim == 1 then
say_title(mob_name(npc.get_race())..":[ENTER]")
say("Acum trebuie doar sa le umplu cu dulciuri si sa[ENTER]le dau copiilor, vor fi foarte fericiti.[ENTER]")
say_reward("Poftim cadoul tau:")
say_item_vnum(71144)
pc.remove_item(50010,5)
pc.setf("event_craciun","timp_sosete", 30) -- 30 STELUTA 60
pc.give_item2(71144, 1)
end
end
end
end
-- # IN CAZ CA VREI SA FOLOSESTI ITEMUL CU TYPE 18 SI DROP PE QUEST
--[[
when 71144.use begin
-- #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
-- tabel iteme random
tabel_iteme = {
--[VNUM] count
[1] = { 70031, 1 },
[2] = { 50055, 1 },
[3] = { 27003, 40 },
[4] = { 27004, 30 },
[5] = { 25040, 2 },
}
-- #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
tabel_linii_c = 5 --------------------------------------------#
-- #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#
pc.remove_item(71144,1)
local aleatoriu = math.random(1,tabel_linii_c)
local random_i = tabel_iteme[aleatoriu][1]
local random_c = tabel_iteme[aleatoriu][2]
pc.give_item2(random_i, random_c)
end
--]]
when kill with not npc.is_pc() and game.get_event_flag("event_craciun_status") == 1 begin
if game.get_event_flag("event_craciun_rata") or game.get_event_flag("event_craciun_rata") != 0 then
local random = math.random(1, 100)
if random <= game.get_event_flag("event_craciun_rata") then
local activare_esuare_drop = 1 ------------------<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ATENTIE ATENTIE ATENTIE
if activare_esuare_drop == 1 then
local r_esuare = math.random(1, 5)
if r_esuare < 5 then -- esuare drop pentru balansare drop
game.drop_item_with_ownership(50010)
--pc.give_item2(50011)
--else -- test
-- chat("drop esuat")
end
else
game.drop_item_with_ownership(50010)
--pc.give_item2(50011)
end
end
end
end
end -- s
end -- q