quest blazingpurgatory begin
state start begin
when 20394.chat."Fortareata Dragonului Rosu" with pc.get_map_index() == 62 begin
say_title("Gardianul iadului")
say("Zeul tuturor demonilor, Sung Mahi, s-a ridicat - sfarsitul umanitatii se apropie!")
say("Puterile sale distrugatoare sunt inca slabite iar ochii sai inca vad in ceata.")
say("Dar slujitorii acestuia nu vor avea odihna pana ce stapanul lor va reusi sa se")
say("ridice contra umanitatii cu toate puterile sale.")
say_reward("Esti pregatit sa il infrunti ?")
if select("Da!","Nu") == 1 then
if pc.get_level() >= 91 then
pc.warp(776500,673200)
else
syschat("Nu esti destul de puternic. Revino cand ajungi la nivelul 91.")
end
else
syschat("Revino cand esti pregatit")
end
end
when 20394.chat."Fortareata Dragonului Rosu" with pc.get_map_index() == 235 begin
say_title("Gardianul iadului")
say("Eu sunt paznicul grotei lui Razador,")
say("zeul iadului, el ma tine sub sclavie")
say("elibereazama si vei fi rasplatit")
say("Ca sa'l poti distrugi trebuie sa-ti formezi")
say("o echipa de luptatori curajosi")
say("Voi fi alaturi de tine!")
say("")
wait()
say_title("Gardianul Iadului")
say("Razador are multi monstri sub sclavia lui,")
say("ei vor fi mai greu de ucis daca esti singur,")
say("dar daca ai o echpia va fi mult mai usor")
say("Trebuie sa-ti zic ca el e foarte puternic")
say("si drumul pana la el e foarte greu.")
say("")
wait()
say_title("Gardianul Iadului")
if pc.get_level() >= 91 then
if party.is_party() or pc.is_gm() then
if party.is_leader() or pc.is_gm() then
if pc.count_item(71095) > 0 or pc.is_gm() then
say_reward("Vrei sa intri sa'l distrugi pe Razador?")
if select("Da!","Nu") == 1 then
pc.remove_item(71095,1)
d.join(235)
end
else
say_reward("Ai nevoie de itemul!")
say_item_vnum(71095)
end
else
say_reward("Trebuie sa fi tu liderul grupului!")
end
else
say_reward("Trebuie sa faci parte dintr-un grup!")
end
else
say_reward("Trebuie sa ai nivelul 91!")
end
end
when login with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin
say("Sper ca vati pregatit")
say("de lupta cu Razador, Succes!")
say("")
if party.is_party() then
if party.is_leader() then
blazingpurgatory.start()
end
else
if pc.is_gm() then
blazingpurgatory.start()
end
end
end
function start()
d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
d.setf("purgatory_gate_sequence",number(1,7))
local sequence = {{1,2,3,4,5,6},{4,1,3,2,5,6},{2,5,3,1,4,6},{3,1,6,2,4,5},{5,3,2,4,6,1},{6,1,5,2,4,3},{6,3,5,3,1,4}}
for i = 1, 6 do
d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt")
end
d.setf("acutal_round",0)
d.setf("time", get_time()+60*60*1)
server_timer("purgatorytime",3600,pc.get_map_index())
server_loop_timer("purgatorytimenotice",300,pc.get_map_index()<= 2355000 )
blazingpurgatory.NoticeTime()
end
when purgatorytimenotice.server_timer begin
if d.select(get_server_timer_arg()) then
blazingpurgatory.NoticeTime()
end
end
when purgatorytime.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Ai la dispozitie!")
d.exit_all()
end
end
when 20385.click with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 and d.getf("block_altar") == 0 begin
if d.getf("purgatory_level") == 7 then
d.setf("block_altar",1)
d.setf("actual_round",7)
d.notice("[Fortareata Dragonului Rosu]Felicitari ai terminat de facut prima parte ,")
d.notice("[Fortareata Dragonului Rosu]Lupta cu Razador va incepe esti pregatit!")
timer("warp_to_boss",5)
else
d.setf("purgatory_level",d.getf("purgatory_level")+1)
blazingpurgatory.purge()
blazingpurgatory.LoadStage()
d.setf("block_altar",1)
blazingpurgatory.NoticeTime()
d.notice("[Fortareata Dragonului Rosu] O camera a fost deschisa !")
end
end
when warp_to_boss.timer begin
d.jump_all(8111,6864)
d.notice("[Fortareata Dragonului Rosu]Razador")
d.notice("[Fortareata Dragonului Rosu]Ma voi ridica din nou daca nu esti destul de puternic sa ma invingi!")
d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_7.txt")
blazingpurgatory.NoticeTime()
end
when kill with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin
if d.getf("actual_round") == 1 or d.getf("actual_round") == 3 then
d.setf("kill_count_bp1",d.getf("kill_count_bp1") +1)
if d.getf("kill_count_bp1") == d.getf("bp_kill_to_next") then
d.notice("[Fortareata Dragonului Rosu] Revino la Altar pentru noua camera!")
blazingpurgatory.purge()
end
elseif d.getf("actual_round") == 2 or d.getf("actual_round") == 5 then
d.setf("kill_count_bp",d.getf("kill_count_bp") +1)
if d.getf("kill_count_bp") == d.getf("kill_to_drop_key") then
game.drop_item_with_ownership(50084,50)
d.setf("kill_count_bp",0)
end
elseif d.getf("actual_round") == 4 and npc.get_race() == 6009 then
if number(1,5) == 1 then
d.notice("[Fortareata Dragonului Rosu] Revino la Altar pentru noua camera!")
blazingpurgatory.purge()
end
elseif d.getf("actual_round") == 6 and npc.get_race() == 8034 then
d.notice("[Fortareata Dragonului Rosu] Revino la Altar pentru noua camera!")
blazingpurgatory.purge()
elseif d.getf("actual_round") == 7 and npc.get_race() == 6091 then
d.notice("[Fortareata Dragonului Rosu]Felicitari lai invins pe Razador!")
notice_all("Cu o ultimã suflare de speranþã liderul "..pc.get_name().."")
notice_all("Urmat de rãzboinici lui de încredere, au reuºit sã-l învingã pe Razador.")
local time = get_time()
d.setqf2("blazingpurgatory","daily_razador_last_kill", time)
d.setqf2("blazingpurgatory","daily_razador", 1)
d.clear_regen()
d.kill_all()
d.spawn_mob(9012, 64, 142)
end
end
when 20081.take with pc.get_map_index() >= 2350000 and pc.get_map_index() <= 2355000 begin
if item.get_vnum() == 50084 then
if d.getf("actual_round") == 2 then
pc.remove_item(item.get_vnum(),1)
if number(1,8) == 1 then
npc.purge()
d.notice("[Fortareata Dragonului Rosu] Revino la Altar pentru noua camera!")
blazingpurgatory.purge()
else
syschat("Aceasta cheie nu a fost buna adu alta.!")
end
elseif d.getf("actual_round") == 5 then
local sequence = {{1,2,3,4,5,5},{4,3,2,1,5,5},{4,5,3,1,2,2},{5,3,4,2,1,1},{5,1,3,4,2,2}}
if blazingpurgatory.GetPillarID() == sequence[d.getf("sequence")][d.getf("pillarcount")] then
pc.remove_item(item.get_vnum(),1)
npc.purge()
d.setf("pillarcount", d.getf("pillarcount")+1)
if d.getf("pillarcount") == 6 then
d.notice("[Fortareata Dragonului Rosu] Revino la Altar pentru noua camera!")
blazingpurgatory.purge()
else
d.notice("[Fortareata Dragonului Rosu]Mai ai "..6-d.getf("pillarcount").." sigili de deschis!")
end
elseif blazingpurgatory.GetPillarID() == false then
syschat("Dute mai aproape si trage piatra cheie!")
elseif blazingpurgatory.GetPillarID() != sequence[d.getf("sequence")][d.getf("pillarcount")] then
pc.remove_item(item.get_vnum(),1)
syschat("[Fortareata Dragonului Rosu]Nu ai pus piatra cheie pe sigiliul corect, cautal!")
end
end
end
end
function LoadStage()
if d.getf("actual_round") == 1 then -- Alle Monster tötenw
d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_1.txt")
d.setf("bp_kill_to_next",100)
d.setf("kill_count_bp1",0)
elseif d.getf("actual_round") == 2 then
d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_2.txt")
d.setf("kill_to_drop_key",50)
d.spawn_mob(20081,195,352)
elseif d.getf("actual_round") == 3 then
d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_3.txt")
d.setf("bp_kill_to_next",100)
d.setf("kill_count_bp1",0)
elseif d.getf("actual_round") == 4 then
d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_4.txt")
elseif d.getf("actual_round") == 5 then
d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_5.txt")
local sequence = {{1,2,3,4,5},{4,3,2,1,5},{4,5,3,1,2},{5,3,4,2,1},{5,1,3,4,2}}
local n = number(1,5)
local coords = {{502,354},{517,354},{487,354},{502,339},{502,369}}
for i = 1, 5 do
d.spawn_mob(20081, coords[i][1],coords[i][2])
end
d.setf("pillarcount", 1)
d.setf("sequence",n)
d.setf("kill_to_drop_key",100)
elseif d.getf("actual_round") == 6 then
d.set_regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_monster_6.txt")
d.spawn_mob(8034,507,509)
end
end
function purge()
d.setf("block_altar",0)
d.clear_regen()
d.kill_all()
blazingpurgatory.LoadGates()
d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_flamenpc.txt")
if d.getf("purgatory_level") == 6 then
d.setf("purgatory_level",7)
end
end
function LoadGates()
local sequence = {{1,2,3,4,5,6},{4,1,3,2,5,6},{2,5,3,1,4,6},{3,1,6,2,4,5},{5,3,2,4,6,1},{6,1,5,2,4,3},{6,3,5,3,1,4}}
for i = 1, 6-d.getf("purgatory_level") do
d.regen_file("data/dungeon/blazingpurgatory/blazingpurgatory_gate_"..sequence[d.getf("purgatory_gate_sequence")][i]..".txt")
end
d.setf("actual_round",sequence[d.getf("purgatory_gate_sequence")][7-d.getf("purgatory_level")])
end
function NoticeTime()
local secondsLeft = (d.getf("time") - get_time())
local minutesLeft = math.ceil(secondsLeft / 60)
d.notice("[Fortareata Dragonului Rosu]Timp Ramas: "..minutesLeft.." Minute!")
end
function GetPillarID()
if pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then
return 1
elseif pc.get_local_x() >= 517 - 5 and pc.get_local_x() <= 517 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then
return 2
elseif pc.get_local_x() >= 487 - 5 and pc.get_local_x() <= 487 + 5 and pc.get_local_y() >= 354 - 5 and pc.get_local_y() <= 354 + 5 then
return 3
elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 339 - 5 and pc.get_local_y() <= 339 + 5 then
return 4
elseif pc.get_local_x() >= 502 - 5 and pc.get_local_x() <= 502 + 5 and pc.get_local_y() >= 369 - 5 and pc.get_local_y() <= 369 + 5 then
return 5
else
return false
end
end
end
end
Tutorial instalare quest:
Salvaţi conţinutul quest-ului într-un fişier text numit de exemplu nume_quest.quest
Vă conectaţi la filezilla / winscp şi întrati în /usr/home/game/share/locale/germany/quest (depinde ce server aveţi).
Îl puneţi acolo (să fie .quest sau .lua).
Te loghezi în FreeBSD / putty şi scrii în felul următor: cd /usr/home/game/share/locale/germany/questapoi ./qc nume_quest.quest
Intraţi pe server şi scrieţi /reload q