Tipologie server:Pvm
*Resursă folosită: Fara
*ServerFiles utilizat:svf-pentru-resurse/serverfiles-craciun- ... 86495.html
*Syserr: Fara
Poză:
*Detalii suplimentare: Dupa ce scriu in Putty: cd /usr/home/game/share/locale/romania/quest
./qc crystal_dungeon.lua
Cod: Selectaţi tot
quest crystal_dungeon begin
state start begin
--Functions
function settings()
return
{
["map_index"] = 73,
["spawm_pos"] = {
[1] = {21272, 29576},
[2] = {21650, 29689},
[3] = {21232, 30067},
[4] = {21396, 30104},
[5] = {21765, 30187},
},
["level_check"] = {
["minimum"] = 105,
["maximum"] = 120
},
["keys"] = {30701, 30702, 30703},
["metin_stones"] = {8411, 8412, 8413, 8414},
};
end
function spawn_boss(level)
local boss_settings = {
[3] = {948, 741, 191},
[5] = {949, 431, 544},
[7] = {950, 773, 681}
};
return d.spawn_mob(boss_settings[level][1], boss_settings[level][2], boss_settings[level][3])
end
function spawn_metins_4thfloor()
local setting = crystal_dungeon.settings()
local r = number (1,8)
if r == 1 then
d.spawn_mob(setting["metin_stones"][3], 250, 659)
d.spawn_mob(setting["metin_stones"][2], 239, 714)
d.spawn_mob(setting["metin_stones"][2], 257, 745)
d.spawn_mob(setting["metin_stones"][2], 282, 777)
d.spawn_mob(setting["metin_stones"][2], 321, 767)
d.spawn_mob(setting["metin_stones"][2], 371, 770)
d.spawn_mob(setting["metin_stones"][2], 397, 737)
d.spawn_mob(setting["metin_stones"][2], 410, 714)
elseif r == 2 then
d.spawn_mob(setting["metin_stones"][2], 250, 659)
d.spawn_mob(setting["metin_stones"][3], 239, 714)
d.spawn_mob(setting["metin_stones"][2], 257, 745)
d.spawn_mob(setting["metin_stones"][2], 282, 777)
d.spawn_mob(setting["metin_stones"][2], 321, 767)
d.spawn_mob(setting["metin_stones"][2], 371, 770)
d.spawn_mob(setting["metin_stones"][2], 397, 737)
d.spawn_mob(setting["metin_stones"][2], 410, 714)
elseif r == 3 then
d.spawn_mob(setting["metin_stones"][2], 250, 659)
d.spawn_mob(setting["metin_stones"][2], 239, 714)
d.spawn_mob(setting["metin_stones"][3], 257, 745)
d.spawn_mob(setting["metin_stones"][2], 282, 777)
d.spawn_mob(setting["metin_stones"][2], 321, 767)
d.spawn_mob(setting["metin_stones"][2], 371, 770)
d.spawn_mob(setting["metin_stones"][2], 397, 737)
d.spawn_mob(setting["metin_stones"][2], 410, 714)
elseif r == 4 then
d.spawn_mob(setting["metin_stones"][2], 250, 659)
d.spawn_mob(setting["metin_stones"][2], 239, 714)
d.spawn_mob(setting["metin_stones"][2], 257, 745)
d.spawn_mob(setting["metin_stones"][3], 282, 777)
d.spawn_mob(setting["metin_stones"][2], 321, 767)
d.spawn_mob(setting["metin_stones"][2], 371, 770)
d.spawn_mob(setting["metin_stones"][2], 397, 737)
d.spawn_mob(setting["metin_stones"][2], 410, 714)
elseif r == 5 then
d.spawn_mob(setting["metin_stones"][2], 250, 659)
d.spawn_mob(setting["metin_stones"][2], 239, 714)
d.spawn_mob(setting["metin_stones"][2], 257, 745)
d.spawn_mob(setting["metin_stones"][2], 282, 777)
d.spawn_mob(setting["metin_stones"][3], 321, 767)
d.spawn_mob(setting["metin_stones"][2], 371, 770)
d.spawn_mob(setting["metin_stones"][2], 397, 737)
d.spawn_mob(setting["metin_stones"][2], 410, 714)
elseif r == 6 then
d.spawn_mob(setting["metin_stones"][2], 250, 659)
d.spawn_mob(setting["metin_stones"][2], 239, 714)
d.spawn_mob(setting["metin_stones"][2], 257, 745)
d.spawn_mob(setting["metin_stones"][2], 282, 777)
d.spawn_mob(setting["metin_stones"][2], 321, 767)
d.spawn_mob(setting["metin_stones"][3], 371, 770)
d.spawn_mob(setting["metin_stones"][2], 397, 737)
d.spawn_mob(setting["metin_stones"][2], 410, 714)
elseif r == 7 then
d.spawn_mob(setting["metin_stones"][2], 250, 659)
d.spawn_mob(setting["metin_stones"][2], 239, 714)
d.spawn_mob(setting["metin_stones"][2], 257, 745)
d.spawn_mob(setting["metin_stones"][2], 282, 777)
d.spawn_mob(setting["metin_stones"][2], 321, 767)
d.spawn_mob(setting["metin_stones"][2], 371, 770)
d.spawn_mob(setting["metin_stones"][3], 397, 737)
d.spawn_mob(setting["metin_stones"][2], 410, 714)
elseif r == 8 then
d.spawn_mob(setting["metin_stones"][2], 250, 659)
d.spawn_mob(setting["metin_stones"][2], 239, 714)
d.spawn_mob(setting["metin_stones"][2], 257, 745)
d.spawn_mob(setting["metin_stones"][2], 282, 777)
d.spawn_mob(setting["metin_stones"][2], 321, 767)
d.spawn_mob(setting["metin_stones"][2], 371, 770)
d.spawn_mob(setting["metin_stones"][2], 397, 737)
d.spawn_mob(setting["metin_stones"][3], 410, 714)
end
end
function make_dungeon()
local setting = crystal_dungeon.settings()
d.new_jump_party(setting["map_index"], setting["spawm_pos"][1][1], setting["spawm_pos"][1][2])
d.setf("lair_check", 1)
d.setf("level_four_login", 0)
crystal_dungeon.get_regens(1)
end
function get_regens(level)
local regens = {
[1] = "data/dungeon/crystal_dungeon/regen_1.txt",
[2] = "data/dungeon/crystal_dungeon/regen_2.txt",
[3] = "data/dungeon/crystal_dungeon/regen_3.txt",
[4] = "data/dungeon/crystal_dungeon/regen_4a.txt",
[5] = "data/dungeon/crystal_dungeon/regen_4b.txt",
[6] = "data/dungeon/crystal_dungeon/regen_5.txt",
[7] = "data/dungeon/crystal_dungeon/regen_5_metins.txt"};
return d.set_regen_file(regens[level])
end
function party_get_member_pids()
local pids = {party.get_member_pids()}
return pids
end
------
------[Dungeon enter]
------
when 20092.chat."Temnita de cristal" begin
local settings = crystal_dungeon.settings()
say_title(mob_name(9214))
say("")
if not party.is_party() then
say("Trebuie sa faci parte dintr-un grup")
say("sa poti intra in temnita de cristal .")
return
end
if not party.is_leader() then
say("Doar liderul grupului poate")
say("sa porneasca temnita de cristal .")
say("")
say("Vorbeste cu el intai .")
return
end
if party.get_near_count() < 2 then
say("Daca vrei sa intrii,")
say("grupa trebuie facuta din mai mult de 2 persoane .")
return
end
local levelCheck, maximlevelCheck = true, true
local notEnoughLevelMembers, notEnoughmaximLevelMembers = {}, {}
local pids = {party.get_member_pids()}
for i, pid in next, crystal_dungeon.party_get_member_pids(), nil do
q.begin_other_pc_block(pid)
if pc.get_level() < settings["level_check"]["minimum"] then
table.insert(notEnoughLevelMembers, pc.get_name())
levelCheck = false
end
if pc.get_level() > settings["level_check"]["maximum"] then
table.insert(notEnoughmaximLevelMembers, pc.get_name())
maximlevelCheck = false
end
q.end_other_pc_block()
end
if not levelCheck then
say("Daca iti doresti sa intrii in temnita de")
say("cristal, fiecare membru din grup trebuie")
say(string.format("sa aiba minim nivelul %s.", settings["level_check"]["minimum"]))
say("")
say("Urmatorii membrii nu au nivelul necesar:")
for i, name in next, notEnoughLevelMembers, nil do
say("- "..name)
end
return
end
if not maximlevelCheck then
say("If you wish to enter the Crystal dungeon,")
say("every each memeber of the group")
say(string.format("must have maximum level %s.", settings["level_check"]["maximum"]))
say("")
say("The following members don't have enough lvl:")
for i, name in next, notEnoughmaximLevelMembers, nil do
say("- "..name.."")
end
return
end
say("Dupa ce apesi pe continua,")
say("fiecare membru v-a fii teleportat.")
wait()
crystal_dungeon.make_dungeon()
end
----
----Dungeon start
----
when login begin
local get_flag = d.getf("lair_check")
local four_login = d.getf("level_four_login")
local six_login = d.getf("level_six_login")
if get_flag == 2 then
say_title("Al doilea etaj :")
say("")
say("Omora toti mobii, pentru a primi sigiliul.")
say("sa poti debloca altarul de crystal.")
say("Poti dropa un sigiliu fals.")
d.setf("crystal_seal", 0)
elseif get_flag == 3 then
say_title("Al treilea etaj :")
say("")
say("Omoara toti monstrii de la acest etaj .")
say("Ei sunt gardienii Monstrului de Cristal !")
say("Dupa ce omori toti monstri, Monstrul")
say("de Cristal se v-a trezii !")
say("")
say_title("REPEDE ! Aveti la dispozitie 10 minute .")
if four_login == 0 then
d.setf("level_four_login", 1)
d.setf("lair_check", 3)
clear_server_timer("level_four_timer", get_server_timer_arg())
clear_server_timer("exit_before", get_server_timer_arg())
server_timer("level_four_timer", 10 * 60, d.get_map_index())
end
elseif get_flag == 4 then
say_title("Etajul al 4 lea :")
say("")
say("Sunteti niste razboinici buni !")
say("Nu prea multi razboinici au reusit")
say("sa ajunga pana aici !")
say("REPEDE ! Trebuie sa spargeti metinul bun")
say("care dropeaza cheia care se potriveste .")
say("")
say_title("Sigiliul este plasat la sfarsitul")
say_title("acestui etaj !")
elseif get_flag == 5 then
say_title("Al 5 lea etaj :")
say("")
say(" OMOARA !")
say("Trebuie sa omori toti monstrii !")
say("Dino de Cristal o sa apara ! Nu poti supravietuii")
say("cu toti acesti monstrii !")
say("Dino de Cristal este aici !")
say("")
say_title("Multa bafta !")
elseif get_flag == 6 then
say_title("Al 6 lea etaj :")
say("")
say("Trebuie sa spargi toate pietrele metin !")
say("Aceste pietre metin sunt puternice !")
say("")
say_title("Ai la dispozitie 15 minute sa le spargi pe toate !")
say_title("metins!")
if six_login == 0 then
d.setf("level_six_login", 1)
d.setf("lair_check", 6)
clear_server_timer("level_six_timer", get_server_timer_arg())
clear_server_timer("exit_before2", get_server_timer_arg())
server_timer("level_six_timer", 15 * 60, d.get_map_index())
end
else
return
end
end
when kill with npc.get_race() == 940 or npc.get_race() == 941 or npc.get_race() == 942 begin
local count, check = d.getf("mobs") + 1, false;
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 1 then
--83
if count < 83 and check == false then
d.setf("mobs", count)
else
if d.getf("metin_stone") == 0 then
d.clear_regen()
d.kill_all()
d.spawn_mob(setting["metin_stones"][1], 261, 276)
d.spawn_mob(setting["metin_stones"][1], 242, 303)
d.spawn_mob(setting["metin_stones"][1], 293, 305)
d.notice(string.format(" %s s-a spawnat ! ", mob_name(8411)))
d.setf("metin_stone", 1)
end
check = true
end
end
end
when kill with npc.get_race() == 8411 and pc.in_dungeon() begin
local count, check_metin1 = d.getf("metins") + 1, false;
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 1 then
if count < 3 and check_metin1 == false then
d.setf("metins", count)
else
if d.getf("metin_stone1") == 0 then
d.notice("Te-ai descurcat de minune ! Acum vei fi teleportat !")
d.kill_all()
d.setf("lair_check", 2)
d.setf("metin_stone1", 1)
cleartimer("level_timer")
timer("level_timer", 7)
end
check_metin1 = true
end
end
end
when 942.kill or 943.kill or 944.kill begin
local count, check_2 = d.getf("mobs_2") + 1, false;
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 2 then
--73
if count < 73 and check_2 == false then
d.setf("mobs_2", count)
else
if d.getf("crystal_seal") == 0 then
game.drop_item(setting["keys"][1], 1)
d.setf("crystal_seal", 1)
end
check_2 = true
end
end
end
when 9210.take with item.vnum == 30701 and pc.in_dungeon() begin
local setting = crystal_dungeon.settings()
local n = number (1,2)
if n == 1 then
d.clear_regen()
pc.remove_item(setting["keys"][1], 1)
d.notice("Acesta nu este un sigiliu bun .")
d.notice("Du-te si cauta unul bun !")
d.spawn_mob(9211, 753, 172)
timer("effect_purge", 10)
d.setf("mobs_2", 1)
crystal_dungeon.get_regens(2)
d.setf("crystal_seal", 0)
else
d.notice("Este un sigiliu bun !")
d.kill_unique(9210)
d.clear_regen()
d.kill_all()
d.setf("lair_check", 3)
pc.remove_item(setting["keys"][1], 1)
cleartimer("level_timer")
timer("level_timer", 12)
end
end
when 940.kill or 943.kill or 944.kill or 945.kill begin
local count, check3 = d.getf("mobs_3") + 1, false;
if d.getf("lair_check") == 3 then
--105
if count < 105 and check3 == false then
d.setf("mobs_3", count)
else
if d.getf("crystal_boss1") == 0 then
d.kill_all()
d.clear_regen()
d.notice("Toti monstrii au fost infranti !")
d.notice("Bestia de Cristal o sa apara in curand !")
timer("third_boss", 10)
d.setf("third_boss", 1)
d.setf("crystal_boss1", 1)
end
check3 = true
end
end
end
when 948.kill begin
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 3 then
d.clear_regen()
d.kill_all()
d.setf("lair_check", 4)
d.notice("Monstrul de Cristal a fost omorat !")
d.notice("In 30 de secunde te teleportam la urmatorul nivel .")
cleartimer("level_four_timer")
cleartimer("level_timer")
timer("level_timer", 10)
else
return
end
end
when 8412.kill begin
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 4 then
game.drop_item(setting["keys"][2],1)
end
end
when 8413.kill begin
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 4 then
game.drop_item(setting["keys"][3],1)
end
end
when 9212.take with item.vnum == 30702 and pc.in_dungeon() begin
local setting = crystal_dungeon.settings()
pc.remove_item(setting["keys"][2], 1)
d.spawn_mob(9213, 405, 687)
timer("wait_eff1", 2)
end
when 9212.take with item.vnum == 30703 and pc.in_dungeon() begin
local setting = crystal_dungeon.settings()
pc.remove_item(setting["keys"][3], 1)
d.spawn_mob(9213, 405, 687)
timer("wait_eff2", 2)
end
when 944.kill or 945.kill or 946.kill begin
local count, check_4 = d.getf("mobs_5") + 1, false;
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 5 then
--75
if count < 75 and check_4 == false then
d.setf("mobs_5", count)
else
if d.getf("crystal_dino") == 0 then
d.clear_regen()
d.kill_all()
timer("crystal_dino", 10)
d.setf("crystal_dino", 1)
end
check_4 = true
end
end
end
when 949.kill with pc.in_dungeon() begin
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 5 then
d.clear_regen()
d.kill_all()
d.setf("lair_check", 6)
d.notice("Dino de Cristal a fost omorat !")
d.notice("In 10 secunde te teleportam la urmatorul nivel .")
cleartimer("level_timer")
timer("level_timer", 10)
else
return
end
end
when 8414.kill with pc.in_dungeon() begin
local count, check_5 = d.getf("metins_6") + 1, false;
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 6 then
if count < 7 and check_5 == false then
d.setf("metins_6", count)
else
if d.getf("crystal_dragon") == 0 then
d.notice("Toate pietrele metin au fost sparte inainte sa se termine timpul !")
d.notice("Dragonul de Cristal o sa apara in curand !")
cleartimer("level_six_timer")
cleartimer("level_timer")
d.kill_all()
d.setf("lair_check", 7)
d.setf("crystal_dragon", 1)
cleartimer("level_timer")
timer("level_timer", 7)
end
check_5 = true
end
end
end
when 950.kill with pc.in_dungeon() begin
local setting = crystal_dungeon.settings()
if d.getf("lair_check") == 7 then
d.clear_regen()
d.kill_all()
d.notice("Dragonul de Cristal a fost omorat !")
d.notice("Ai terminat temnita cu succes !")
d.notice("In 3 minute vei fi teleportat .")
cleartimer("level_timer")
server_timer("final", 3 * 60, d.get_map_index())
else
return
end
end
---
--- Dungeon end
---
---
--- TIMERS
---
when effect_purge.timer begin
d.kill_unique(9211)
end
when third_boss.timer begin
local setting = crystal_dungeon.settings()
if d.getf("third_boss") == 1 then
crystal_dungeon.spawn_boss(3)
d.setf("third_boss", 0)
else
return
end
end
when crystal_dino.timer begin
local setting = crystal_dungeon.settings()
if d.getf("crystal_dino") == 1 then
crystal_dungeon.spawn_boss(5)
d.notice(string.format(" %s a venit ! Omoara-l !", mob_name(949)))
d.setf("crystal_dino", 0)
else
return
end
end
when wait_eff1.timer begin
d.notice("Nu este buna !!")
d.notice("Cauta una buna .")
end
when wait_eff2.timer begin
d.notice("Ai pus piesa cu succes !")
d.notice("Te teleportam la urmatorul etaj .")
d.kill_unique(9212)
d.clear_regen()
d.kill_all()
d.setf("lair_check", 5)
cleartimer("level_timer")
timer("level_timer", 12)
end
when level_four_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.set_warp_location(41, 9694, 2786)
d.notice("Temnita nu a fost dusa pana la capat !")
d.notice("Timpul s-a terminat !")
server_timer("exit_before", 10, get_server_timer_arg())
end
end
when level_six_timer.server_timer begin
if d.select(get_server_timer_arg()) then
d.set_warp_location(41, 9694, 2786)
d.notice("Temnita nu a fost dusa pana la capat !")
d.notice("Timpul s-a terminat !")
server_timer("exit_before2", 10, get_server_timer_arg())
end
end
when final.server_timer begin
if d.select(get_server_timer_arg()) then
d.set_warp_location(41, 9694, 2786)
d.notice(" Cele 3 minute s-au terminat. Acum te teleportam .")
server_timer("final_warp", 10, get_server_timer_arg())
end
end
when exit_before.server_timer begin
if d.select(get_server_timer_arg()) then
clear_server_timer("exit_before", get_server_timer_arg())
clear_server_timer("final", get_server_timer_arg())
clear_server_timer("level_four_timer", get_server_timer_arg())
d.exit_all()
end
end
when exit_before2.server_timer begin
if d.select(get_server_timer_arg()) then
clear_server_timer("exit_before2", get_server_timer_arg())
clear_server_timer("final", get_server_timer_arg())
clear_server_timer("level_six_timer", get_server_timer_arg())
d.exit_all()
end
end
when final_warp.server_timer begin
if d.select(get_server_timer_arg()) then
clear_server_timer("final_warp", get_server_timer_arg())
clear_server_timer("final", get_server_timer_arg())
clear_server_timer("final", get_server_timer_arg())
d.exit_all()
end
end
when level_timer.timer begin
local get_flag = d.getf("lair_check")
local setting = crystal_dungeon.settings()
d.clear_regen()
d.kill_all()
if get_flag == 2 then
d.new_jump_party(setting["map_index"], setting["spawm_pos"][2][1], setting["spawm_pos"][2][2])
crystal_dungeon.get_regens(2)
d.spawn_mob(9210, 753, 172)
d.setf("lair_check", 2)
end
if get_flag == 3 then
d.new_jump_party(setting["map_index"], setting["spawm_pos"][2][1], setting["spawm_pos"][2][2])
crystal_dungeon.get_regens(3)
d.setf("lair_check", 3)
end
if get_flag == 4 then
d.new_jump_party(setting["map_index"], setting["spawm_pos"][3][1], setting["spawm_pos"][3][2])
crystal_dungeon.get_regens(4)
d.setf("lair_check", 4)
crystal_dungeon.spawn_metins_4thfloor()
end
if get_flag == 5 then
d.new_jump_party(setting["map_index"], setting["spawm_pos"][4][1], setting["spawm_pos"][4][2])
crystal_dungeon.get_regens(5)
d.setf("lair_check", 5)
end
if get_flag == 6 then
d.new_jump_party(setting["map_index"], setting["spawm_pos"][5][1], setting["spawm_pos"][5][2])
crystal_dungeon.get_regens(6)
crystal_dungeon.get_regens(7)
d.setf("lair_check", 6)
end
if get_flag == 7 then
crystal_dungeon.spawn_boss(7)
d.setf("lair_check", 7)
end
end
end
end Calls undeclared function! :
party.get_member_pids
q.begin_other_pc_block
q.end_other_pc_block
Abort (core dumped)
Cred ca nu este implantat in server sistemul de party
Astept raspusurile voastre multumesc




