*Problemă/Întrebare: Cum fac sa am timp de asteptare la un npc dupa ce termin un dungeon?
Exista quest la npc de la piramida din cate stiu de intrii cu tichet si cand ai terminat daca doresti sa intrii ai impusa o valoare de timp, cum fac sa pun si eu ca nu stiu?
Tipologie server(PvM / PvP):
*Resursă folosită: -
*ServerFiles utilizat: Propriu
*Syserr: -
Poză:
*Detalii suplimentare:
Timp de asteptare dupa run la npc.
- virgil.tsk
-

- Mesaje: 8
- Membru din: 30 Mai 2021, 19:31
- Server: TerrorStruck
- Regat: Jinno
- Aprecieri: 67
- Mulţumiri: 1
- Discord: Copiază ID
- Contact:
- [HF]White
-

- Mesaje: 2684
- Membru din: 03 Iul 2018, 13:40
- Regat: Jinno
- Aprecieri: 338
- Mulţumiri: 5331
- Rezolvări prob.: 13
- Discord: Copiază ID
- Contact:
foloseste functia de la lottery
if 20 = 20 secunde
Cod: Selectaţi tot
.
.
.
when 20094.chat."Dungeon" begin
if 20 > get_global_time() - pc . getqf ( "timp_asteptare" ) then
say ("Trebuie sa astepti 20 secunde ca sa faci asta.")
return
end
.
.
.
bla bla bla - questul tau aici
pc.setqf("timp_asteptare" , get_global_time())
.
.
.
endif 20 = 20 secunde
- virgil.tsk
-

- Mesaje: 8
- Membru din: 30 Mai 2021, 19:31
- Server: TerrorStruck
- Regat: Jinno
- Aprecieri: 67
- Mulţumiri: 1
- Discord: Copiază ID
- Contact:
Cod: Selectaţi tot
quest crystal_dungeon begin
state start begin
--Functions
function settings()
return
{
["map_index"] = 9,
["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- [HF]White
-

- Mesaje: 2684
- Membru din: 03 Iul 2018, 13:40
- Regat: Jinno
- Aprecieri: 338
- Mulţumiri: 5331
- Rezolvări prob.: 13
- Discord: Copiază ID
- Contact:
Cod: Selectaţi tot
quest crystal_dungeon begin
state start begin
--Functions
function settings()
return
{
["map_index"] = 9,
["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
if 3600 > get_global_time() - pc . getqf ( "timp_asteptare" ) then
say ("Trebuie sa astepti 1 ora ca sa participi din nou la Dungeon.")
return
end
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 .")
pc.setqf("timp_asteptare" , get_global_time())
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- virgil.tsk
-

- Mesaje: 8
- Membru din: 30 Mai 2021, 19:31
- Server: TerrorStruck
- Regat: Jinno
- Aprecieri: 67
- Mulţumiri: 1
- Discord: Copiază ID
- Contact:
Asa am facut si eu si nu merge, dupa ce ies din run ma lasa sa reintru normal.
Runul este bagat partial, nu este bagat inca bossul si mobii, dar am pus la npc si cand ies din run in map 1 si dau sa intru ma lasa simplu, vreo rezolvare?
Runul este bagat partial, nu este bagat inca bossul si mobii, dar am pus la npc si cand ies din run in map 1 si dau sa intru ma lasa simplu, vreo rezolvare?
- [HF]White
-

- Mesaje: 2684
- Membru din: 03 Iul 2018, 13:40
- Regat: Jinno
- Aprecieri: 338
- Mulţumiri: 5331
- Rezolvări prob.: 13
- Discord: Copiază ID
- Contact:
atunci vezi asa:
Cod: Selectaţi tot
quest crystal_dungeon begin
state start begin
--Functions
function settings()
return
{
["map_index"] = 9,
["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
if 3600 > get_global_time() - pc . getqf ( "timp_asteptare" ) then
say ("Trebuie sa astepti 1 ora ca sa participi din nou la Dungeon.")
return
end
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()
pc.setqf("timp_asteptare" , get_global_time())
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- iMerv3
-

- Mesaje: 86
- Membru din: 20 Mai 2020, 23:25
- Aprecieri: 85
- Mulţumiri: 159
- Discord: Copiază ID
- Contact:
Ți-am creat un mic exemplu pentru turnul demonilor, nu am testat dar dacă ai probleme cu el, revino cu un reply.
Cod: Selectaţi tot
quest deviltower_zone begin
state start begin
function cooldown()
return 5*60 -- 5 minute
end
when login begin
local idx = pc.get_map_index()
if idx >= 660000 and idx < 670000 then
if d.select(idx) then
if d.getf("complete") == 0 then
pc.setf("deviltower_zone", "cooldown", get_global_time() + deviltower_zone.cooldown())
end
end
end
end
when 1093.kill begin
local idx = pc.get_map_index()
if idx >= 660000 and idx < 670000 then
if d.select(idx) then
if d.getf("complete") == 0 then
d.setf("complete", 1)
if party.is_party() then
local pids = {party.get_member_pids()}
for i, pid in next, pids, nil do
q.begin_other_pc_block(pid)
pc.setf("deviltower_zone", "cooldown", get_global_time() + deviltower_zone.cooldown())
q.end_other_pc_block()
end
else
pc.setf("deviltower_zone", "cooldown", get_global_time() + deviltower_zone.cooldown())
end
end
end
end
end
when 20348.chat."Bla bla" begin
say_title(string.format("%s:[ENTER]", mob_name(20348)))
local cooldown = pc.getf("deviltower_zone", "cooldown") - get_global_time()
if cooldown > 0 then
local h = cooldown / 3600
local m = cooldown - (3600 * h) / 60
say(string.format("Trebuie sa astepti inca %d ore si %d minute.[ENTER]", h, m))
else
say("bla bla")
end
end
end
end
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 121 vizitatori
