Cerere quest nemere/razador
Imi poate da cineva quest pentru blazing purgatory/ turnul lui nemer
Turnul lui nemere:
schimba snow_dungeon_settings.map_index cu indexul mapei tale
Blazing Purgatory:
schimba snow_dungeon_settings.map_index cu indexul mapei tale
Cod: Selectaţi tot
--[[
-- Turnul lui Nemere
-- lvl 100
-- Copyright CZymos/Risan, Modificat de Ra.
-- Need GameRevision: 40250
-- INFO: Aveti nevoie de un Ninja si un Saman pentru a intra in turn.
--]]
quest snow_dungeon begin
state start begin
when 9010.chat."Spawn Statuie" with snow_dungeon.is_nemeres_dungeon() == true begin
d.purge()
d.spawn_mob_dir(20397, 173,262,1)
setskin(NOWINDOW)
end
when 9010.chat."TESTSERVER: SnowD Jump level 9" with snow_dungeon.is_nemeres_dungeon() == true begin
local set = snow_dungeon.get_settings()
d.notice("Der Richtige Schlüssel wurde gefunden, in wenigen Sekunden geht es in den nächsten Stock.")
server_timer("Jp_9",6,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_9.txt")
setskin(NOWINDOW)
end
when 9010.chat."TESTSERVER: SnowD Jump level 10" with snow_dungeon.is_nemeres_dungeon() == true begin
local set = snow_dungeon.get_settings()
server_timer("Jp_Boss",3,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt")
local v = set.BossVnumGroup
d.spawn_group(v, 928, 335, 5 ,1, 1) -- (Input from SRC: argument: vnum,x,y,radius,aggressive,count)
setskin(NOWINDOW)
end
when 9010.chat."TESTSERVER: SnowD Spawn Boss" with snow_dungeon.is_nemeres_dungeon() == true begin
local set = snow_dungeon.get_settings()
local v = set.BossVnumGroup
d.spawn_group(v, 928, 335, 5 ,1, 1) -- (INFO from SRC: argument: vnum,x,y,radius,aggressive,count)
end
when 9010.chat."TESTSERVER: SnowD Ending" with snow_dungeon.is_nemeres_dungeon() == true begin
server_timer("Jp_OutAll",5,d.get_map_index())
say("done")
end
-- when 30331.use begin --key_level_2
-- LIB_writelog("{"..pc.get_local_x()..","..pc.get_local_y().."}",3,"snowcordis.txt")
-- d.spawn_mob(20399, pc.get_local_x(), pc.get_local_y())
-- chat("write north star coordinates")
-- end
when 9010.chat."TESTSERVER: SnowD Spawn create Cords Test level 5" with snow_dungeon.is_nemeres_dungeon() == true begin
snow_dungeon._Create_Stones_level5()
setskin(NOWINDOW)
end
when 9010.chat."TESTSERVER: SnowD Create Key level 5" with snow_dungeon.is_nemeres_dungeon() == true begin
snow_dungeon._DropKeyOnLevel5()
setskin(NOWINDOW)
end
when 9010.chat."TESTSERVER: SnowD Get cord from Level" with snow_dungeon.is_nemeres_dungeon() == true begin
local set = snow_dungeon.get_settings()
local warp_to_level = set.Position_level_1
local level = 2
say("old: x: "..warp_to_level[1].." y:"..warp_to_level[2].."")
local warp_to_level = set. _G[ "Position_level_"..level ]
say("new: x: "..warp_to_level[1].." y:"..warp_to_level[2].."")
--DONT WORKS!
end
function get_settings()
local snow_dungeon_settings = {}
snow_dungeon_settings.map_index = 352 --Mapindex
snow_dungeon_settings.base_cord = {5120, 1536 } --Base Kordinaten
snow_dungeon_settings.outside_entry_pos = {61,4321,1667} --Mapindex, Exit Position (Eisland)
snow_dungeon_settings.need_level = 100 --Ab wann ist der Dungeon betretbar.
snow_dungeon_settings.need_level_group = 100 --Benötigte Level für Gruppenmitglieder
snow_dungeon_settings.WaitBeforOutAllOnExit = 60 --Wartezeit bevor alle alle herausteleportiert werden bei einem erfolgreichen Run. (Empfohlen 60)
snow_dungeon_settings.NextJumpTime = 5 --Wann man zur nächsten ebene Gejumpt wird (timer) (Empfohlen 5)
snow_dungeon_settings.DurationLoopTimer = 45 --Welchen intervall die Level und Missionen geprüft werden sollen. (Empfohlen 45)
snow_dungeon_settings.wait_duration = 24 --Ab wann der Dungeon wieder betretbar ist (PartyLeader)
snow_dungeon_settings.maxlife_time_on_dungeon = 60*60*1 --Maximale Zeit für den Dungeon.
snow_dungeon_settings.DurationMaxOnReJoinGroup = 60*5 --Maximale Zeit innerhalb wann man wieder in die Gruppe joinen kann.
snow_dungeon_settings.key_level_2 = 30331 --KeyVnum für die 2.Ebene --Frostschlüssel
snow_dungeon_settings.NpcVnum_level_5 = 20398 --MobVnum von 5.Ebene --Würfel des Arktos
snow_dungeon_settings.StoneCount_level_5 = 6 --Wie viele Würfel des Arktos sollen erscheinen?
snow_dungeon_settings.Key_on_level_5 = 30332 --KeyVnum von 5.Ebene --Nordstern
snow_dungeon_settings.StoneCords_level_5 = {
{432,508},{437,493},{448,492},{448,476},{467,475},{466,464},
{462,450},{458,428},{446,439},{431,431},{415,416},{402,427},
{397,438},{375,434},{374,456},{390,468},{385,492},{402,505},
{404,489},{386,482}
} --Positionen von Würfel des Arktos
snow_dungeon_settings.MobVnum_level_6 = 8058 --MobVnum von 6.Ebene --Metin der Kälte
snow_dungeon_settings.MobVnum_level_7 = 6151 --MobVnum von 7.Ebene --Szel
snow_dungeon_settings.SzelCords_level_7 = {
{752,499},{758,479},{772,452},{763,444},{750,451},{728,441},
{726,455},{718,482},{715,491},{731,473},{748,429}
} --Positionen von Szel
snow_dungeon_settings.Key_on_level_8 = 30333 --KeyVnum von 8.Ebene --Eisblumenschlüssel
snow_dungeon_settings.NpcVnum_level_9 = 20399 --MobVnum von 9.Ebene --Säule des Norddrachen
snow_dungeon_settings.BossVnumGroup = 6062 --GroupMobVnum vom Boss --(Group.txt)
snow_dungeon_settings.BossVnum = 6191 --MobVnum von 10.Ebene --Nemere(6191)
snow_dungeon_settings.Position_level_1 = { 171,271 } --Position ebene 1 --Startposition --Töte alle Monster auf dieser Ebene.
snow_dungeon_settings.Position_level_2 = { 761,270 } --Position ebene 2 --Finde den richtigen Frostschlüssel, nur ein Schamane kann ihn benutzen.
snow_dungeon_settings.Position_level_3 = { 187,491 } --Position ebene 3 --Töte alle Monster auf dieser Ebene.
snow_dungeon_settings.Position_level_4 = { 421,259 } --Position ebene 4 --Töte alle Monster auf dieser Ebene.
snow_dungeon_settings.Position_level_5 = { 419,530 } --Position ebene 5 --Öffnet die Siegel an den Würfel des Arktos in der richtigen Reihenfolge. (Zieht Nordstern auf die Würfel)
snow_dungeon_settings.Position_level_6 = { 571,706 } --Position ebene 6 --Töte alle Monster auf dieser Ebene. Danach Zersöre den Metin der Kälte (Nur ein Schamane kann ihn Schaden)
snow_dungeon_settings.Position_level_7 = { 746,534 } --Position ebene 7 --Töte alle Monster auf dieser Ebene und Szel
snow_dungeon_settings.Position_level_8 = { 303,710 } --Position ebene 8 --Der Eisblumenschlüssel muss gedroppt werden, jedoch kann dieser nur von Schamanen und Ninja benutzt werden.
snow_dungeon_settings.Position_level_9 = { 848,693 } --Position ebene 9 --Zerstört die Säule des Norddrachen. Nur Ninjas und Schamanen können ihm Schaden zufügen.
snow_dungeon_settings.Position_level_10 = { 927,391 } --Position ebene 10 (BossZone) --Besiege Nemere, den König über Frost und Eis.
snow_dungeon_settings.Enable_TestServerMode = false --Ob TestServer mode aktiviert ist. Wenn ja werden die Aufgaben schneller beendet.
snow_dungeon_settings.IsNewGameRevision = true --Need GameRevision 40301
return snow_dungeon_settings
end
function is_TestServerMode()
local set = snow_dungeon.get_settings()
return set.Enable_TestServerMode
end
function is_nemeres_dungeon()
local set = snow_dungeon.get_settings()
local map = pc.get_map_index()
if map >= (set.map_index * 10000) and map < (set.map_index * 10000 + 9000) then
return true
else
return false
end
end
when 20395.chat."Alătură-te din nou grupei" with (party.is_party() and d.find(party.getf("ice_dungeon_map_index"))) begin
local set = snow_dungeon.get_settings()
local n = party.getf("ice_dungeon_map_index")
local cord = set.base_cord
local level = d.getf_from_map_index("level", n)
--say("News Dungeon Level your group: "..level.."")
if level == 0 then
say_npc_name()
say("Grupul tău a terminat deja dungeonul.")
return
end
if pc.getqf("out_party_time") < get_global_time() then
say_npc()
say("")
say("Ai mai mult de "..math.ceil(set.DurationMaxOnReJoinGroup /60) .." Minute")
say("Nu mai poţi intra acum!")
say(" ")
return
end
if n == 0 then
setskin(NOWINDOW)
return
else
say_npc()
say("")
say("Vrei să te alături din nou grupei?")
if select("Da","Nu") == 1 then
local warp_to_level = set.Position_level_1
local level = d.getf_from_map_index("level", n)
if level >= 1 and level <= 10 then
if level == 1 then warp_to_level = set.Position_level_1
elseif level == 2 then warp_to_level = set.Position_level_2
elseif level == 3 then warp_to_level = set.Position_level_3
elseif level == 4 then warp_to_level = set.Position_level_4
elseif level == 5 then warp_to_level = set.Position_level_5
elseif level == 6 then warp_to_level = set.Position_level_6
elseif level == 7 then warp_to_level = set.Position_level_7
elseif level == 8 then warp_to_level = set.Position_level_8
elseif level == 9 then warp_to_level = set.Position_level_9
elseif level == 10 then warp_to_level = set.Position_level_10
end
pc.warp((cord[1] + warp_to_level[1])*100,(cord[2] + warp_to_level[2])*100,n)
else
return
end
end
end
end
when 20395.chat."Turnul lui Nemere" begin
local set = snow_dungeon.get_settings()
local need_level = set.need_level
say_npc()
say("")
say("Esti sigur ca vrei sa intri ")
say("in Turnul lui Nemere?")
if select("Da! Vrem sa intram. "," Nu, e prea frig acolo ...") == 2 then
return
end
if (pc.is_gm() and pc.getf("snow_dungeon","duration") >= get_global_time()) then
say("Your are GameMaster, remove the duration?")
if select("Yes","No") == 1 then
pc.setf("snow_dungeon","duration",0)
return
end
end
if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
say("TestServer Mode is enable.")
say("Join now")
timer("make_dungeon",3)
return
end
if not party.is_leader() then
say_npc()
say("Iti apreciez curajul insa singur ")
say("nu poti intra in Turnul lui Nemere.")
say("Strange un grup puternic in care sa ai ")
say("un Ninja si un Saman si intoarcete la mine")
return
end
if pc.get_level() < need_level then
say("Trebuie sa ai cel putin nivelul "..need_level.."")
say("pentru a intra in Turnul lui Nemere.")
return
end
if pc.getf("snow_dungeon","duration") >= get_global_time() then
say_npc()
say("Timpul de asteptare pentru a intra dinou in ")
say("Turnul lui Nemere nu a expirat. ")
say("Timp de asteptare: "..LIB_duration(pc.getf("snow_dungeon","duration") - get_global_time()).."")
return
end
if snow_dungeon._CheckMembersLevel() == false then
return
else
timer("make_dungeon",2)
end
end
when 20397.chat."Batalia Incepe" begin --Eisiger Löwe
say_npc()
say("")
say("Esti sigur ca vrei sa incepi?")
if select("Da","Nu, Poate mai tarziu") == 1 then
local set = snow_dungeon.get_settings()
local loop_durr = set.DurationLoopTimer
local wait_durations = set.wait_duration
local t = get_global_time()
d.setf("LastTimeGetOutPut",0)
server_loop_timer("CheckLevelAndCountKillOnMobs",loop_durr,d.get_map_index())
d.regen_file("data/dungeon/ice_dungeon/zone_1.txt")
d.setf("Start_Time",t + set.maxlife_time_on_dungeon)
server_timer("Jp_OutAllFailNotice",(t + set.maxlife_time_on_dungeon) - t,d.get_map_index())
--pc.setqf("duration",t + wait_durations)
d.setqf2("snow_dungeon","duration",t + wait_durations)
d.setf("level",1)
d.notice("Primii monstri au aparut. Omoarai pe toti pentru a trece la nivelul urmator.")
npc.purge()
snow_dungeon._GetLastTime()
end
setskin(NOWINDOW)
end
when make_dungeon.timer begin
local set = snow_dungeon.get_settings()
local cord = set.base_cord
local start_pos = set.Position_level_1
local t = get_global_time()
d.new_jump_party(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
--d.new_jump_all(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
snow_dungeon._ClearAlls()
d.setf("party_leader_pid",party.get_leader_pid())
party.setf("ice_dungeon_map_index",d.get_map_index())
d.spawn_mob_dir(20397, 173,262,1) --Eisiger Löwe
end
function _ClearAlls()
local d_index = d.get_map_index()
clear_server_timer("CheckLevelAndCountKillOnMobs",d_index)
clear_server_timer("Jp_1",d_index)
clear_server_timer("Jp_2",d_index)
clear_server_timer("Jp_3",d_index)
clear_server_timer("Jp_4",d_index)
clear_server_timer("Jp_5",d_index)
clear_server_timer("Jp_6",d_index)
clear_server_timer("Jp_7",d_index)
clear_server_timer("Jp_8",d_index)
clear_server_timer("Jp_9",d_index)
clear_server_timer("Jp_10",d_index)
clear_server_timer("Jp_OutAll",d_index)
clear_server_timer("Jp_OutAllFail",d_index)
clear_server_timer("Jp_OutAllFailNotice",d_index)
d.setf("level",0)
d.setf("party_leader_pid",0)
d.setf("Start_Time",0)
d.setf("LastTimeGetOutPut",0)
d.setf("Stone_5_count",0)
d.setf("Stone_5_item_fail",0)
d.clear_regen()
d.kill_all()
end
function _CheckMembersLevel()
local set = snow_dungeon.get_settings()
local user_fail_level = {}
local pids = {party.get_member_pids()}
local need_level = set.need_level_group
local have_ninja = false
local have_shaman = false
for i = 1, table.getn(pids), 1 do
q.begin_other_pc_block(pids[i])
if pc.get_level() < need_level then
table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name())
end
local job = pc.get_job()
if job == 1 -- Ninja weiblich
or job == 5 --Ninja männlich
then
have_ninja = true
end
if job == 3 -- Schamane weiblich
or job == 7 --Schamane männlich
then
have_shaman = true
end
q.end_other_pc_block()
end
if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
--dchat("TestServer Mode is enable.")
return true
end
if have_ninja == false then
say("Nu poti intra in acest dungeon fara un Ninja.")
say("")
return false
end
if have_shaman == false then
say("Nu poti intra in acest dungeon fara un Saman.")
say("")
return false
end
if table.getn(user_fail_level) >= 1 then
say_npc()
say("")
say("Cativa membri din grup ")
say("nu au nivelul "..need_level..":")
for x = 1, table.getn(user_fail_level), 1 do
say(color(1,1,0), " "..user_fail_level[x])
end
return false
end
if table.getn(user_fail_level) == 0 then
return true
end
end
when logout begin
if snow_dungeon.is_nemeres_dungeon() == true then
local set = snow_dungeon.get_settings()
pc.setqf("out_party_time",get_global_time() + set.DurationMaxOnReJoinGroup)
--snow_dungeon.unregister_name()
end
end
when login begin
if snow_dungeon.is_nemeres_dungeon() == true then
local set = snow_dungeon.get_settings()
local backk = set.outside_entry_pos
pc.set_warp_location(backk[1], backk[2],backk[3])
if d.getf("party_leader_pid") != party.get_leader_pid() then
chat("nemeres_wait_dungeon #RAUS:# Grupul tau nu se afla in acest dungeon.")
chat("nemeres_wait_dungeon #RAUS:#debug -> "..d.getf("party_leader_pid").." != "..party.get_leader_pid().."")
d.exit()
return
end
if pc.get_level() < set.need_level_group then
chat("nemeres_wait_dungeon #RAUS:# My level is low")
d.exit()
return
end
--chat("Welcome to Nemeres waiting, you have "..math.ceil((d.getf("Start_Time") - get_global_time()) /60) .." Minutes Time.")
--notice("Kill all the monsters on this level to get to the next floor.")
--snow_dungeon._GetLastTime()
end
end
function _GetLastTime()
local c = get_global_time()
local t = d.getf("Start_Time") - c
local o = d.getf("LastTimeGetOutPut")
--d.notice("CurrentTime: "..c.." Last: "..o.."")
if c >= o then
if t >= 60 then
d.notice("Mai aveti "..math.ceil(t / 60).." Minute.")
else
d.notice("Mai aveti "..t .." Secunde.")
end
if t >= (60*10) then
d.setf("LastTimeGetOutPut",c + 60*5)
elseif t >= (60*5) then
d.setf("LastTimeGetOutPut",c + 60*2)
else
d.setf("LastTimeGetOutPut",c + 10)
end
--d.setf("LastTimeGetOutPut",c + 60*number(3,5)) -- Random
end
end
when Jp_OutAllFailNotice.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Timpul a expirat.")
server_timer("Jp_OutAll",1,d.get_map_index())
end
end
when CheckLevelAndCountKillOnMobs.server_timer begin
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
local level = d.getf("level")
local mob_count = d.count_monster()
local next_jump_time = set.NextJumpTime
--d.notice("level: "..level.." mob_count: "..mob_count.."")
if level == 1 and mob_count <= 0 then
d.notice("Ati infrant toti monstrii de la nivelul 1, in cateva secunde ve-ti fi teleportati la nivelul 2.")
d.notice("")
server_timer("Jp_2",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.set_regen_file("data/dungeon/ice_dungeon/zone_2.txt")
elseif level == 3 and mob_count <= 0 then
d.notice("Ati infrant toti monstrii, in cateva secunde ve-ti fi teleportati la nivelul urmator.")
d.notice("")
server_timer("Jp_4",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_4.txt")
elseif level == 4 and mob_count <= 0 then
d.notice("Ati infrant toti monstrii, in cateva secunde ve-ti fi teleportati la nivelul urmator.")
d.notice("")
server_timer("Jp_5",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.set_regen_file("data/dungeon/ice_dungeon/zone_5.txt")
elseif level == 6 and mob_count <= 0 then
local MobStonelvl6 = set.MobVnum_level_6
d.notice("Ati infrant toti monstrii, "..mob_name(MobStonelvl6).." v-a aparea..")
d.notice("")
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
d.spawn_mob(MobStonelvl6,570,649)
elseif level == 7 and mob_count <= 0 then
d.notice("Ati infrant toti monstrii, in cateva secunde ve-ti fi teleportati la nivelul urmator.")
d.notice("")
server_timer("Jp_8",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.set_regen_file("data/dungeon/ice_dungeon/zone_8.txt")
end
snow_dungeon._GetLastTime()
end
end
when Jp_2.server_timer begin --Jump Level 2
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
local v = set.key_level_2
d.setf("level",2)
local cord = set.base_cord
local pos = set.Position_level_2
d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
d.notice("finds the right "..item_name(v).." to get to on.")
d.notice("")
end
end
when 30331.use with snow_dungeon.is_nemeres_dungeon() == true begin --key_level_2
local set = snow_dungeon.get_settings()
local next_jump_time = set.NextJumpTime
local job = pc.get_job()
local level = d.getf("level")
if level == 2 then
if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
--dchat("SET VARIABLE JOB 3")
job = 3
end
if job == 3 -- Schamane weiblich
or job == 7 --Schamane männlich
then
if number(1,3) == 1 then --or d.count_monster() < 10 then
d.notice("Ati gasit cheia corecta, in cateva secunde veti fi teleportati la nivelul urmator.")
server_timer("Jp_3",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_3.txt")
item.remove()
else
d.notice("Aceasta este cheia gresita.")
item.remove()
end
else
d.notice("Numai Samanii pot folosi aceasta cheie.")
return
end
end
end
when Jp_3.server_timer begin --Jump Level 3
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
d.setf("level",3)
local cord_MQ = set.base_cord
local pos = set.Position_level_3
d.jump_all((cord_MQ[1] + pos[1]), (cord_MQ[2] + pos[2]))
d.notice("Omorati toti monstrii si veti trece la nivelul urmator.")
end
end
when Jp_4.server_timer begin --Jump Level 4
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
d.setf("level",4)
local cord = set.base_cord
local pos = set.Position_level_4
d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
d.notice("Omorati toti monstrii si veti trece la nivelul urmator..")
end
end
when Jp_5.server_timer begin --Jump Level 5
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
local v = set.NpcVnum_level_5
d.setf("level",5)
local cord = set.base_cord
local pos = set.Position_level_5
d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
d.notice("Deschide sigiilile "..mob_name(v).." in ordinea corecta.")
if set.IsNewGameRevision == true then
d.notice("Cheia va dropa la monstrii ...")
else
d.notice("Cheia se va pune automat la tine in inventar...")
end
snow_dungeon._Create_Stones_level5()
end
end
function _DropKeyOnLevel5()
if number(1,1000) >= 666 then --Abbruch der weiteren funtion -> Damit es spannend bleibt bei den würfeln... :P
return
end
local set = snow_dungeon.get_settings()
local count = set.StoneCount_level_5
local vnum = set.Key_on_level_5
local get_random_unique = d.get_unique_vid("stone5_"..number(1,count).."")
local fail_count = d.getf("Stone_5_item_fail") +1
local search = d.getf("Stone_5_count")
local search2 = d.get_unique_vid("stone5_"..search.."")
if search2 != get_random_unique then
d.setf("Stone_5_item_fail",fail_count)
end
--
if set.IsNewGameRevision == true then
--New function
game.drop_item_and_select(vnum,1)
else
pc.give_item2_select(vnum,1)
end
--dchat("Creaty Key fail_count: "..fail_count.."")
if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --Wenn TestServer Modus
item.set_socket(1,search2)
d.setf("Stone_5_item_fail",0)
elseif fail_count > 6 then --Wenn mehr wie x mal nicht richtig erstellt wird, dann kommt der richtige Key
item.set_socket(1,search2)
d.setf("Stone_5_item_fail",0)
else
item.set_socket(1,get_random_unique)
end
end
function _Create_Stones_level5()
local set = snow_dungeon.get_settings()
local stone_level5_count_MQ = set.StoneCount_level_5
local c = set.StoneCords_level_5 --{ {432,508},{437,493},{448,492},{448,476},{467,475},{466,464}}
local v = set.NpcVnum_level_5
for i = 1, stone_level5_count_MQ, 1 do
local n = number(1,table.getnC)
--d.spawn_mob(20398, c[n][1], c[n][2])
d.set_unique("stone5_"..i.."", d.spawn_mob(v, c[n][1], c[n][2]))
--d.set_unique("stone5_"..i.."", mob.spawn(20398, c[n][1], c[n][2],1,1,1)) --GEHT
--d.set_unique("stone5_"..i.."", d.spawn_mob_ac_dir(20398, c[n][1], c[n][2],i)) --GEHT
table.remove(c,n)
if i == 1 then
d.setf("Stone_5_count",1)
d.setf("Stone_5_item_fail",0)
end
end
end
when 20398.take begin --NpcVnum_level_5
if snow_dungeon.is_nemeres_dungeon() == true then
local set = snow_dungeon.get_settings()
local stone_level5_count = set.StoneCount_level_5
local next_jump_time = set.NextJumpTime
local vnum = item.get_vnum()
local key_level_5 = set.Key_on_level_5 --30332
local unique_item = item.get_socket(1)
--dchat("unique_item: "..unique_item.."")
if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
d.notice("TESTSERVERMODE, in a few seconds it goes to the next floor.")
npc.purge()
item.remove()
server_timer("Jp_6",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
return
end
if vnum == key_level_5 then
local npc_vid = npc.get_vid()
local search = d.getf("Stone_5_count")
local search2 = d.get_unique_vid("stone5_"..search.."")
--dchat("npc_vid: "..npc_vid.." search:"..search.." search2:"..search2.." ")
if npc_vid == search2 then
if unique_item == npc_vid then
local new = search +1
if new > stone_level5_count then
d.notice("Ai deschis ultima piatră. Te mai ţin aici.")
npc.purge()
item.remove()
server_timer("Jp_6",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_6.txt")
else
d.notice(""..search..". Ai deschis piatra, mişcă-te mai repede. Ai ".. stone_level5_count - search .." bucăţi.")
npc.purge()
item.remove()
end
d.setf("Stone_5_count",new)
else
chat("Aceasta este piatra corecta insa cheia este gresita.")
item.remove()
end
else
chat("Aceasta nu este piatra corecta.")
end
end
end --if is dungeon end
end --when end
when Jp_6.server_timer begin --Jump Level 6
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
local v = set.MobVnum_level_6
d.setf("level",6)
local cord = set.base_cord
local pos = set.Position_level_6
d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
d.notice("Ai distrus toti monstrii, acum distruge "..mob_name(v).."")
d.notice("Numai Samanii il pot distruge.")
--d.spawn_mob(v,570,649)
end
end
when Jp_7.server_timer begin --Jump Level 7
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
local v = set.MobVnum_level_7
d.setf("level",7)
local cord = set.base_cord
local pos = set.Position_level_7
d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
d.notice("Ai distrus piatra metin cu succes, acum distruge "..mob_name(v)..".")
end
end
when Jp_8.server_timer begin --Jump Level 8
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
local v = set.Key_on_level_8
d.setf("level",8)
local cord = set.base_cord
local pos = set.Position_level_8
d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
d.notice("Omoară monştrii cu "..item_name(v).."")
d.notice("Numai Ninja şi Şaman pot înţelege limba acestui obiect.")
end
end
when 30333.use with snow_dungeon.is_nemeres_dungeon() == true begin --Key_on_level_8
local set = snow_dungeon.get_settings()
local next_jump_time = set.NextJumpTime
local level = d.getf("level")
local job = pc.get_job()
if level == 8 then
if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then
--dchat("SET VARIABLE JOB 3")
job = 3
end
if job == 1 -- Ninja weiblich
or job == 5 --Ninja männlich
or job == 3 -- Schamane weiblich
or job == 7 --Schamane männlich
then
if number(1,3) == 1 then
d.notice("Ai găsit cheia bună. Vei urca mai departe în câteva secunde.")
server_timer("Jp_9",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_9.txt")
item.remove()
else
d.notice("Această cheie nu este corectă.")
item.remove()
end
else
d.notice("Poţi folosii numai caracterele Şaman şi Ninja.")
return
end
end
end
when Jp_9.server_timer begin --Jump Level 9
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
local v = set.NpcVnum_level_9
d.setf("level",9)
local cord = set.base_cord
local pos = set.Position_level_9
d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
d.notice("Omoară "..mob_name(v).." ")
d.notice("Se poate confrunta numai cu Saman si Ninja.")
d.notice("")
d.spawn_mob(v,849,655)
end
end
when Jp_Boss.server_timer begin --Jump Level BossZone
if d.select(get_server_timer_arg()) then
local set = snow_dungeon.get_settings()
local v = set.BossVnum
d.setf("level",10)
local cord = set.base_cord
local pos = set.Position_level_10
d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2]))
d.notice("Omoara "..mob_name(v)..", regele ghetii si zapezii.")
end
end
when kill begin
if snow_dungeon.is_nemeres_dungeon() == true then
local set = snow_dungeon.get_settings()
local next_jump_time = set.NextJumpTime
local level = d.getf("level")
local stone_level_6 = set.MobVnum_level_6
local stone_level_9 = set.NpcVnum_level_9
local boss_vnum = set.BossVnum
local wait_time = set.WaitBeforOutAllOnExit
local mobvnum = npc.get_race()
--dchat("nemeres_wait_dungeon MobVnum = "..mobvnum.."")
if level == 2 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then
local v = set.key_level_2
game.drop_item(v,1)
elseif level == 5 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,15) then
snow_dungeon._DropKeyOnLevel5()
elseif level == 6 and mobvnum == stone_level_6 then
d.notice(""..mob_name(stone_level_6).." este distrusă şi vei urca la nivelul următor.")
d.notice("")
server_timer("Jp_7",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_7.txt") --Szel
local v_MQv = set.MobVnum_level_7
local c = set.SzelCords_level_7
local n = number(1,table.getnC)
d.spawn_mob(v_MQv, c[n][1], c[n][2])
elseif level == 8 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then
local v = set.Key_on_level_8
game.drop_item(v,1)
elseif level == 9 and mobvnum == stone_level_9 then
d.notice(""..mob_name(stone_level_9).." este distrusă şi vei urca la nivelul următor.")
server_timer("Jp_Boss",next_jump_time,d.get_map_index())
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt")
local v = set.BossVnumGroup
d.spawn_group(v, 928, 335, 5 ,1, 1) -- (Input from SRC: argument: vnum,x,y,radius,aggressive,count)
elseif level == 10 and mobvnum == boss_vnum then
d.clear_regen()
d.kill_all()
d.notice("Felicitări războinicilor curajoşi! L-ai omorât pe "..mob_name(boss_vnum).." . In "..wait_time.." secunde veti fi teleportati afara.")
notice_all("Grupa lui "..pc.get_name().." l-a înfrânt pe Nemere!")
server_timer("Jp_OutAll",wait_time,d.get_map_index())
end
end
end
when Jp_OutAll.server_timer begin --Jump Out Bye bye ;D
if d.select(get_server_timer_arg()) then
snow_dungeon._ExitAll()
end
end
function _ExitAll()
d.exit_all()
end
end
end Cod: Selectaţi tot
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- Pentru acest mesaj, Bughy for the post:
- uzzyadelin
ai cumva si data/dungeon pt blazing purgatory?Bughy scrie:Turnul lui nemere:
schimba snow_dungeon_settings.map_index cu indexul mapei taleBlazing Purgatory:Cod: Selectaţi tot
--[[ -- Turnul lui Nemere -- lvl 100 -- Copyright CZymos/Risan, Modificat de Ra. -- Need GameRevision: 40250 -- INFO: Aveti nevoie de un Ninja si un Saman pentru a intra in turn. --]] quest snow_dungeon begin state start begin when 9010.chat."Spawn Statuie" with snow_dungeon.is_nemeres_dungeon() == true begin d.purge() d.spawn_mob_dir(20397, 173,262,1) setskin(NOWINDOW) end when 9010.chat."TESTSERVER: SnowD Jump level 9" with snow_dungeon.is_nemeres_dungeon() == true begin local set = snow_dungeon.get_settings() d.notice("Der Richtige Schlüssel wurde gefunden, in wenigen Sekunden geht es in den nächsten Stock.") server_timer("Jp_9",6,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_9.txt") setskin(NOWINDOW) end when 9010.chat."TESTSERVER: SnowD Jump level 10" with snow_dungeon.is_nemeres_dungeon() == true begin local set = snow_dungeon.get_settings() server_timer("Jp_Boss",3,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt") local v = set.BossVnumGroup d.spawn_group(v, 928, 335, 5 ,1, 1) -- (Input from SRC: argument: vnum,x,y,radius,aggressive,count) setskin(NOWINDOW) end when 9010.chat."TESTSERVER: SnowD Spawn Boss" with snow_dungeon.is_nemeres_dungeon() == true begin local set = snow_dungeon.get_settings() local v = set.BossVnumGroup d.spawn_group(v, 928, 335, 5 ,1, 1) -- (INFO from SRC: argument: vnum,x,y,radius,aggressive,count) end when 9010.chat."TESTSERVER: SnowD Ending" with snow_dungeon.is_nemeres_dungeon() == true begin server_timer("Jp_OutAll",5,d.get_map_index()) say("done") end -- when 30331.use begin --key_level_2 -- LIB_writelog("{"..pc.get_local_x()..","..pc.get_local_y().."}",3,"snowcordis.txt") -- d.spawn_mob(20399, pc.get_local_x(), pc.get_local_y()) -- chat("write north star coordinates") -- end when 9010.chat."TESTSERVER: SnowD Spawn create Cords Test level 5" with snow_dungeon.is_nemeres_dungeon() == true begin snow_dungeon._Create_Stones_level5() setskin(NOWINDOW) end when 9010.chat."TESTSERVER: SnowD Create Key level 5" with snow_dungeon.is_nemeres_dungeon() == true begin snow_dungeon._DropKeyOnLevel5() setskin(NOWINDOW) end when 9010.chat."TESTSERVER: SnowD Get cord from Level" with snow_dungeon.is_nemeres_dungeon() == true begin local set = snow_dungeon.get_settings() local warp_to_level = set.Position_level_1 local level = 2 say("old: x: "..warp_to_level[1].." y:"..warp_to_level[2].."") local warp_to_level = set. _G[ "Position_level_"..level ] say("new: x: "..warp_to_level[1].." y:"..warp_to_level[2].."") --DONT WORKS! end function get_settings() local snow_dungeon_settings = {} snow_dungeon_settings.map_index = 352 --Mapindex snow_dungeon_settings.base_cord = {5120, 1536 } --Base Kordinaten snow_dungeon_settings.outside_entry_pos = {61,4321,1667} --Mapindex, Exit Position (Eisland) snow_dungeon_settings.need_level = 100 --Ab wann ist der Dungeon betretbar. snow_dungeon_settings.need_level_group = 100 --Benötigte Level für Gruppenmitglieder snow_dungeon_settings.WaitBeforOutAllOnExit = 60 --Wartezeit bevor alle alle herausteleportiert werden bei einem erfolgreichen Run. (Empfohlen 60) snow_dungeon_settings.NextJumpTime = 5 --Wann man zur nächsten ebene Gejumpt wird (timer) (Empfohlen 5) snow_dungeon_settings.DurationLoopTimer = 45 --Welchen intervall die Level und Missionen geprüft werden sollen. (Empfohlen 45) snow_dungeon_settings.wait_duration = 24 --Ab wann der Dungeon wieder betretbar ist (PartyLeader) snow_dungeon_settings.maxlife_time_on_dungeon = 60*60*1 --Maximale Zeit für den Dungeon. snow_dungeon_settings.DurationMaxOnReJoinGroup = 60*5 --Maximale Zeit innerhalb wann man wieder in die Gruppe joinen kann. snow_dungeon_settings.key_level_2 = 30331 --KeyVnum für die 2.Ebene --Frostschlüssel snow_dungeon_settings.NpcVnum_level_5 = 20398 --MobVnum von 5.Ebene --Würfel des Arktos snow_dungeon_settings.StoneCount_level_5 = 6 --Wie viele Würfel des Arktos sollen erscheinen? snow_dungeon_settings.Key_on_level_5 = 30332 --KeyVnum von 5.Ebene --Nordstern snow_dungeon_settings.StoneCords_level_5 = { {432,508},{437,493},{448,492},{448,476},{467,475},{466,464}, {462,450},{458,428},{446,439},{431,431},{415,416},{402,427}, {397,438},{375,434},{374,456},{390,468},{385,492},{402,505}, {404,489},{386,482} } --Positionen von Würfel des Arktos snow_dungeon_settings.MobVnum_level_6 = 8058 --MobVnum von 6.Ebene --Metin der Kälte snow_dungeon_settings.MobVnum_level_7 = 6151 --MobVnum von 7.Ebene --Szel snow_dungeon_settings.SzelCords_level_7 = { {752,499},{758,479},{772,452},{763,444},{750,451},{728,441}, {726,455},{718,482},{715,491},{731,473},{748,429} } --Positionen von Szel snow_dungeon_settings.Key_on_level_8 = 30333 --KeyVnum von 8.Ebene --Eisblumenschlüssel snow_dungeon_settings.NpcVnum_level_9 = 20399 --MobVnum von 9.Ebene --Säule des Norddrachen snow_dungeon_settings.BossVnumGroup = 6062 --GroupMobVnum vom Boss --(Group.txt) snow_dungeon_settings.BossVnum = 6191 --MobVnum von 10.Ebene --Nemere(6191) snow_dungeon_settings.Position_level_1 = { 171,271 } --Position ebene 1 --Startposition --Töte alle Monster auf dieser Ebene. snow_dungeon_settings.Position_level_2 = { 761,270 } --Position ebene 2 --Finde den richtigen Frostschlüssel, nur ein Schamane kann ihn benutzen. snow_dungeon_settings.Position_level_3 = { 187,491 } --Position ebene 3 --Töte alle Monster auf dieser Ebene. snow_dungeon_settings.Position_level_4 = { 421,259 } --Position ebene 4 --Töte alle Monster auf dieser Ebene. snow_dungeon_settings.Position_level_5 = { 419,530 } --Position ebene 5 --Öffnet die Siegel an den Würfel des Arktos in der richtigen Reihenfolge. (Zieht Nordstern auf die Würfel) snow_dungeon_settings.Position_level_6 = { 571,706 } --Position ebene 6 --Töte alle Monster auf dieser Ebene. Danach Zersöre den Metin der Kälte (Nur ein Schamane kann ihn Schaden) snow_dungeon_settings.Position_level_7 = { 746,534 } --Position ebene 7 --Töte alle Monster auf dieser Ebene und Szel snow_dungeon_settings.Position_level_8 = { 303,710 } --Position ebene 8 --Der Eisblumenschlüssel muss gedroppt werden, jedoch kann dieser nur von Schamanen und Ninja benutzt werden. snow_dungeon_settings.Position_level_9 = { 848,693 } --Position ebene 9 --Zerstört die Säule des Norddrachen. Nur Ninjas und Schamanen können ihm Schaden zufügen. snow_dungeon_settings.Position_level_10 = { 927,391 } --Position ebene 10 (BossZone) --Besiege Nemere, den König über Frost und Eis. snow_dungeon_settings.Enable_TestServerMode = false --Ob TestServer mode aktiviert ist. Wenn ja werden die Aufgaben schneller beendet. snow_dungeon_settings.IsNewGameRevision = true --Need GameRevision 40301 return snow_dungeon_settings end function is_TestServerMode() local set = snow_dungeon.get_settings() return set.Enable_TestServerMode end function is_nemeres_dungeon() local set = snow_dungeon.get_settings() local map = pc.get_map_index() if map >= (set.map_index * 10000) and map < (set.map_index * 10000 + 9000) then return true else return false end end when 20395.chat."Alătură-te din nou grupei" with (party.is_party() and d.find(party.getf("ice_dungeon_map_index"))) begin local set = snow_dungeon.get_settings() local n = party.getf("ice_dungeon_map_index") local cord = set.base_cord local level = d.getf_from_map_index("level", n) --say("News Dungeon Level your group: "..level.."") if level == 0 then say_npc_name() say("Grupul tău a terminat deja dungeonul.") return end if pc.getqf("out_party_time") < get_global_time() then say_npc() say("") say("Ai mai mult de "..math.ceil(set.DurationMaxOnReJoinGroup /60) .." Minute") say("Nu mai poţi intra acum!") say(" ") return end if n == 0 then setskin(NOWINDOW) return else say_npc() say("") say("Vrei să te alături din nou grupei?") if select("Da","Nu") == 1 then local warp_to_level = set.Position_level_1 local level = d.getf_from_map_index("level", n) if level >= 1 and level <= 10 then if level == 1 then warp_to_level = set.Position_level_1 elseif level == 2 then warp_to_level = set.Position_level_2 elseif level == 3 then warp_to_level = set.Position_level_3 elseif level == 4 then warp_to_level = set.Position_level_4 elseif level == 5 then warp_to_level = set.Position_level_5 elseif level == 6 then warp_to_level = set.Position_level_6 elseif level == 7 then warp_to_level = set.Position_level_7 elseif level == 8 then warp_to_level = set.Position_level_8 elseif level == 9 then warp_to_level = set.Position_level_9 elseif level == 10 then warp_to_level = set.Position_level_10 end pc.warp((cord[1] + warp_to_level[1])*100,(cord[2] + warp_to_level[2])*100,n) else return end end end end when 20395.chat."Turnul lui Nemere" begin local set = snow_dungeon.get_settings() local need_level = set.need_level say_npc() say("") say("Esti sigur ca vrei sa intri ") say("in Turnul lui Nemere?") if select("Da! Vrem sa intram. "," Nu, e prea frig acolo ...") == 2 then return end if (pc.is_gm() and pc.getf("snow_dungeon","duration") >= get_global_time()) then say("Your are GameMaster, remove the duration?") if select("Yes","No") == 1 then pc.setf("snow_dungeon","duration",0) return end end if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then say("TestServer Mode is enable.") say("Join now") timer("make_dungeon",3) return end if not party.is_leader() then say_npc() say("Iti apreciez curajul insa singur ") say("nu poti intra in Turnul lui Nemere.") say("Strange un grup puternic in care sa ai ") say("un Ninja si un Saman si intoarcete la mine") return end if pc.get_level() < need_level then say("Trebuie sa ai cel putin nivelul "..need_level.."") say("pentru a intra in Turnul lui Nemere.") return end if pc.getf("snow_dungeon","duration") >= get_global_time() then say_npc() say("Timpul de asteptare pentru a intra dinou in ") say("Turnul lui Nemere nu a expirat. ") say("Timp de asteptare: "..LIB_duration(pc.getf("snow_dungeon","duration") - get_global_time()).."") return end if snow_dungeon._CheckMembersLevel() == false then return else timer("make_dungeon",2) end end when 20397.chat."Batalia Incepe" begin --Eisiger Löwe say_npc() say("") say("Esti sigur ca vrei sa incepi?") if select("Da","Nu, Poate mai tarziu") == 1 then local set = snow_dungeon.get_settings() local loop_durr = set.DurationLoopTimer local wait_durations = set.wait_duration local t = get_global_time() d.setf("LastTimeGetOutPut",0) server_loop_timer("CheckLevelAndCountKillOnMobs",loop_durr,d.get_map_index()) d.regen_file("data/dungeon/ice_dungeon/zone_1.txt") d.setf("Start_Time",t + set.maxlife_time_on_dungeon) server_timer("Jp_OutAllFailNotice",(t + set.maxlife_time_on_dungeon) - t,d.get_map_index()) --pc.setqf("duration",t + wait_durations) d.setqf2("snow_dungeon","duration",t + wait_durations) d.setf("level",1) d.notice("Primii monstri au aparut. Omoarai pe toti pentru a trece la nivelul urmator.") npc.purge() snow_dungeon._GetLastTime() end setskin(NOWINDOW) end when make_dungeon.timer begin local set = snow_dungeon.get_settings() local cord = set.base_cord local start_pos = set.Position_level_1 local t = get_global_time() d.new_jump_party(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2])) --d.new_jump_all(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2])) snow_dungeon._ClearAlls() d.setf("party_leader_pid",party.get_leader_pid()) party.setf("ice_dungeon_map_index",d.get_map_index()) d.spawn_mob_dir(20397, 173,262,1) --Eisiger Löwe end function _ClearAlls() local d_index = d.get_map_index() clear_server_timer("CheckLevelAndCountKillOnMobs",d_index) clear_server_timer("Jp_1",d_index) clear_server_timer("Jp_2",d_index) clear_server_timer("Jp_3",d_index) clear_server_timer("Jp_4",d_index) clear_server_timer("Jp_5",d_index) clear_server_timer("Jp_6",d_index) clear_server_timer("Jp_7",d_index) clear_server_timer("Jp_8",d_index) clear_server_timer("Jp_9",d_index) clear_server_timer("Jp_10",d_index) clear_server_timer("Jp_OutAll",d_index) clear_server_timer("Jp_OutAllFail",d_index) clear_server_timer("Jp_OutAllFailNotice",d_index) d.setf("level",0) d.setf("party_leader_pid",0) d.setf("Start_Time",0) d.setf("LastTimeGetOutPut",0) d.setf("Stone_5_count",0) d.setf("Stone_5_item_fail",0) d.clear_regen() d.kill_all() end function _CheckMembersLevel() local set = snow_dungeon.get_settings() local user_fail_level = {} local pids = {party.get_member_pids()} local need_level = set.need_level_group local have_ninja = false local have_shaman = false for i = 1, table.getn(pids), 1 do q.begin_other_pc_block(pids[i]) if pc.get_level() < need_level then table.insert(user_fail_level, table.getn(user_fail_level) +1, pc.get_name()) end local job = pc.get_job() if job == 1 -- Ninja weiblich or job == 5 --Ninja männlich then have_ninja = true end if job == 3 -- Schamane weiblich or job == 7 --Schamane männlich then have_shaman = true end q.end_other_pc_block() end if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --dchat("TestServer Mode is enable.") return true end if have_ninja == false then say("Nu poti intra in acest dungeon fara un Ninja.") say("") return false end if have_shaman == false then say("Nu poti intra in acest dungeon fara un Saman.") say("") return false end if table.getn(user_fail_level) >= 1 then say_npc() say("") say("Cativa membri din grup ") say("nu au nivelul "..need_level..":") for x = 1, table.getn(user_fail_level), 1 do say(color(1,1,0), " "..user_fail_level[x]) end return false end if table.getn(user_fail_level) == 0 then return true end end when logout begin if snow_dungeon.is_nemeres_dungeon() == true then local set = snow_dungeon.get_settings() pc.setqf("out_party_time",get_global_time() + set.DurationMaxOnReJoinGroup) --snow_dungeon.unregister_name() end end when login begin if snow_dungeon.is_nemeres_dungeon() == true then local set = snow_dungeon.get_settings() local backk = set.outside_entry_pos pc.set_warp_location(backk[1], backk[2],backk[3]) if d.getf("party_leader_pid") != party.get_leader_pid() then chat("nemeres_wait_dungeon #RAUS:# Grupul tau nu se afla in acest dungeon.") chat("nemeres_wait_dungeon #RAUS:#debug -> "..d.getf("party_leader_pid").." != "..party.get_leader_pid().."") d.exit() return end if pc.get_level() < set.need_level_group then chat("nemeres_wait_dungeon #RAUS:# My level is low") d.exit() return end --chat("Welcome to Nemeres waiting, you have "..math.ceil((d.getf("Start_Time") - get_global_time()) /60) .." Minutes Time.") --notice("Kill all the monsters on this level to get to the next floor.") --snow_dungeon._GetLastTime() end end function _GetLastTime() local c = get_global_time() local t = d.getf("Start_Time") - c local o = d.getf("LastTimeGetOutPut") --d.notice("CurrentTime: "..c.." Last: "..o.."") if c >= o then if t >= 60 then d.notice("Mai aveti "..math.ceil(t / 60).." Minute.") else d.notice("Mai aveti "..t .." Secunde.") end if t >= (60*10) then d.setf("LastTimeGetOutPut",c + 60*5) elseif t >= (60*5) then d.setf("LastTimeGetOutPut",c + 60*2) else d.setf("LastTimeGetOutPut",c + 10) end --d.setf("LastTimeGetOutPut",c + 60*number(3,5)) -- Random end end when Jp_OutAllFailNotice.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Timpul a expirat.") server_timer("Jp_OutAll",1,d.get_map_index()) end end when CheckLevelAndCountKillOnMobs.server_timer begin if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local level = d.getf("level") local mob_count = d.count_monster() local next_jump_time = set.NextJumpTime --d.notice("level: "..level.." mob_count: "..mob_count.."") if level == 1 and mob_count <= 0 then d.notice("Ati infrant toti monstrii de la nivelul 1, in cateva secunde ve-ti fi teleportati la nivelul 2.") d.notice("") server_timer("Jp_2",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.set_regen_file("data/dungeon/ice_dungeon/zone_2.txt") elseif level == 3 and mob_count <= 0 then d.notice("Ati infrant toti monstrii, in cateva secunde ve-ti fi teleportati la nivelul urmator.") d.notice("") server_timer("Jp_4",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_4.txt") elseif level == 4 and mob_count <= 0 then d.notice("Ati infrant toti monstrii, in cateva secunde ve-ti fi teleportati la nivelul urmator.") d.notice("") server_timer("Jp_5",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.set_regen_file("data/dungeon/ice_dungeon/zone_5.txt") elseif level == 6 and mob_count <= 0 then local MobStonelvl6 = set.MobVnum_level_6 d.notice("Ati infrant toti monstrii, "..mob_name(MobStonelvl6).." v-a aparea..") d.notice("") d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_6.txt") d.spawn_mob(MobStonelvl6,570,649) elseif level == 7 and mob_count <= 0 then d.notice("Ati infrant toti monstrii, in cateva secunde ve-ti fi teleportati la nivelul urmator.") d.notice("") server_timer("Jp_8",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.set_regen_file("data/dungeon/ice_dungeon/zone_8.txt") end snow_dungeon._GetLastTime() end end when Jp_2.server_timer begin --Jump Level 2 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local v = set.key_level_2 d.setf("level",2) local cord = set.base_cord local pos = set.Position_level_2 d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2])) d.notice("finds the right "..item_name(v).." to get to on.") d.notice("") end end when 30331.use with snow_dungeon.is_nemeres_dungeon() == true begin --key_level_2 local set = snow_dungeon.get_settings() local next_jump_time = set.NextJumpTime local job = pc.get_job() local level = d.getf("level") if level == 2 then if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --dchat("SET VARIABLE JOB 3") job = 3 end if job == 3 -- Schamane weiblich or job == 7 --Schamane männlich then if number(1,3) == 1 then --or d.count_monster() < 10 then d.notice("Ati gasit cheia corecta, in cateva secunde veti fi teleportati la nivelul urmator.") server_timer("Jp_3",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_3.txt") item.remove() else d.notice("Aceasta este cheia gresita.") item.remove() end else d.notice("Numai Samanii pot folosi aceasta cheie.") return end end end when Jp_3.server_timer begin --Jump Level 3 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() d.setf("level",3) local cord_MQ = set.base_cord local pos = set.Position_level_3 d.jump_all((cord_MQ[1] + pos[1]), (cord_MQ[2] + pos[2])) d.notice("Omorati toti monstrii si veti trece la nivelul urmator.") end end when Jp_4.server_timer begin --Jump Level 4 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() d.setf("level",4) local cord = set.base_cord local pos = set.Position_level_4 d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2])) d.notice("Omorati toti monstrii si veti trece la nivelul urmator..") end end when Jp_5.server_timer begin --Jump Level 5 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local v = set.NpcVnum_level_5 d.setf("level",5) local cord = set.base_cord local pos = set.Position_level_5 d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2])) d.notice("Deschide sigiilile "..mob_name(v).." in ordinea corecta.") if set.IsNewGameRevision == true then d.notice("Cheia va dropa la monstrii ...") else d.notice("Cheia se va pune automat la tine in inventar...") end snow_dungeon._Create_Stones_level5() end end function _DropKeyOnLevel5() if number(1,1000) >= 666 then --Abbruch der weiteren funtion -> Damit es spannend bleibt bei den würfeln... :P return end local set = snow_dungeon.get_settings() local count = set.StoneCount_level_5 local vnum = set.Key_on_level_5 local get_random_unique = d.get_unique_vid("stone5_"..number(1,count).."") local fail_count = d.getf("Stone_5_item_fail") +1 local search = d.getf("Stone_5_count") local search2 = d.get_unique_vid("stone5_"..search.."") if search2 != get_random_unique then d.setf("Stone_5_item_fail",fail_count) end -- if set.IsNewGameRevision == true then --New function game.drop_item_and_select(vnum,1) else pc.give_item2_select(vnum,1) end --dchat("Creaty Key fail_count: "..fail_count.."") if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --Wenn TestServer Modus item.set_socket(1,search2) d.setf("Stone_5_item_fail",0) elseif fail_count > 6 then --Wenn mehr wie x mal nicht richtig erstellt wird, dann kommt der richtige Key item.set_socket(1,search2) d.setf("Stone_5_item_fail",0) else item.set_socket(1,get_random_unique) end end function _Create_Stones_level5() local set = snow_dungeon.get_settings() local stone_level5_count_MQ = set.StoneCount_level_5 local c = set.StoneCords_level_5 --{ {432,508},{437,493},{448,492},{448,476},{467,475},{466,464}} local v = set.NpcVnum_level_5 for i = 1, stone_level5_count_MQ, 1 do local n = number(1,table.getnC) --d.spawn_mob(20398, c[n][1], c[n][2]) d.set_unique("stone5_"..i.."", d.spawn_mob(v, c[n][1], c[n][2])) --d.set_unique("stone5_"..i.."", mob.spawn(20398, c[n][1], c[n][2],1,1,1)) --GEHT --d.set_unique("stone5_"..i.."", d.spawn_mob_ac_dir(20398, c[n][1], c[n][2],i)) --GEHT table.remove(c,n) if i == 1 then d.setf("Stone_5_count",1) d.setf("Stone_5_item_fail",0) end end end when 20398.take begin --NpcVnum_level_5 if snow_dungeon.is_nemeres_dungeon() == true then local set = snow_dungeon.get_settings() local stone_level5_count = set.StoneCount_level_5 local next_jump_time = set.NextJumpTime local vnum = item.get_vnum() local key_level_5 = set.Key_on_level_5 --30332 local unique_item = item.get_socket(1) --dchat("unique_item: "..unique_item.."") if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then d.notice("TESTSERVERMODE, in a few seconds it goes to the next floor.") npc.purge() item.remove() server_timer("Jp_6",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_6.txt") return end if vnum == key_level_5 then local npc_vid = npc.get_vid() local search = d.getf("Stone_5_count") local search2 = d.get_unique_vid("stone5_"..search.."") --dchat("npc_vid: "..npc_vid.." search:"..search.." search2:"..search2.." ") if npc_vid == search2 then if unique_item == npc_vid then local new = search +1 if new > stone_level5_count then d.notice("Ai deschis ultima piatră. Te mai ţin aici.") npc.purge() item.remove() server_timer("Jp_6",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_6.txt") else d.notice(""..search..". Ai deschis piatra, mişcă-te mai repede. Ai ".. stone_level5_count - search .." bucăţi.") npc.purge() item.remove() end d.setf("Stone_5_count",new) else chat("Aceasta este piatra corecta insa cheia este gresita.") item.remove() end else chat("Aceasta nu este piatra corecta.") end end end --if is dungeon end end --when end when Jp_6.server_timer begin --Jump Level 6 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local v = set.MobVnum_level_6 d.setf("level",6) local cord = set.base_cord local pos = set.Position_level_6 d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2])) d.notice("Ai distrus toti monstrii, acum distruge "..mob_name(v).."") d.notice("Numai Samanii il pot distruge.") --d.spawn_mob(v,570,649) end end when Jp_7.server_timer begin --Jump Level 7 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local v = set.MobVnum_level_7 d.setf("level",7) local cord = set.base_cord local pos = set.Position_level_7 d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2])) d.notice("Ai distrus piatra metin cu succes, acum distruge "..mob_name(v)..".") end end when Jp_8.server_timer begin --Jump Level 8 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local v = set.Key_on_level_8 d.setf("level",8) local cord = set.base_cord local pos = set.Position_level_8 d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2])) d.notice("Omoară monştrii cu "..item_name(v).."") d.notice("Numai Ninja şi Şaman pot înţelege limba acestui obiect.") end end when 30333.use with snow_dungeon.is_nemeres_dungeon() == true begin --Key_on_level_8 local set = snow_dungeon.get_settings() local next_jump_time = set.NextJumpTime local level = d.getf("level") local job = pc.get_job() if level == 8 then if (is_test_server() and snow_dungeon.is_TestServerMode() == true ) then --dchat("SET VARIABLE JOB 3") job = 3 end if job == 1 -- Ninja weiblich or job == 5 --Ninja männlich or job == 3 -- Schamane weiblich or job == 7 --Schamane männlich then if number(1,3) == 1 then d.notice("Ai găsit cheia bună. Vei urca mai departe în câteva secunde.") server_timer("Jp_9",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_9.txt") item.remove() else d.notice("Această cheie nu este corectă.") item.remove() end else d.notice("Poţi folosii numai caracterele Şaman şi Ninja.") return end end end when Jp_9.server_timer begin --Jump Level 9 if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local v = set.NpcVnum_level_9 d.setf("level",9) local cord = set.base_cord local pos = set.Position_level_9 d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2])) d.notice("Omoară "..mob_name(v).." ") d.notice("Se poate confrunta numai cu Saman si Ninja.") d.notice("") d.spawn_mob(v,849,655) end end when Jp_Boss.server_timer begin --Jump Level BossZone if d.select(get_server_timer_arg()) then local set = snow_dungeon.get_settings() local v = set.BossVnum d.setf("level",10) local cord = set.base_cord local pos = set.Position_level_10 d.jump_all((cord[1] + pos[1]), (cord[2] + pos[2])) d.notice("Omoara "..mob_name(v)..", regele ghetii si zapezii.") end end when kill begin if snow_dungeon.is_nemeres_dungeon() == true then local set = snow_dungeon.get_settings() local next_jump_time = set.NextJumpTime local level = d.getf("level") local stone_level_6 = set.MobVnum_level_6 local stone_level_9 = set.NpcVnum_level_9 local boss_vnum = set.BossVnum local wait_time = set.WaitBeforOutAllOnExit local mobvnum = npc.get_race() --dchat("nemeres_wait_dungeon MobVnum = "..mobvnum.."") if level == 2 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then local v = set.key_level_2 game.drop_item(v,1) elseif level == 5 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,15) then snow_dungeon._DropKeyOnLevel5() elseif level == 6 and mobvnum == stone_level_6 then d.notice(""..mob_name(stone_level_6).." este distrusă şi vei urca la nivelul următor.") d.notice("") server_timer("Jp_7",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_7.txt") --Szel local v_MQv = set.MobVnum_level_7 local c = set.SzelCords_level_7 local n = number(1,table.getnC) d.spawn_mob(v_MQv, c[n][1], c[n][2]) elseif level == 8 and mobvnum >= 6101 and mobvnum <= 6108 and 1 == number(1,10) then local v = set.Key_on_level_8 game.drop_item(v,1) elseif level == 9 and mobvnum == stone_level_9 then d.notice(""..mob_name(stone_level_9).." este distrusă şi vei urca la nivelul următor.") server_timer("Jp_Boss",next_jump_time,d.get_map_index()) d.clear_regen() d.kill_all() d.regen_file("data/dungeon/ice_dungeon/zone_boss.txt") local v = set.BossVnumGroup d.spawn_group(v, 928, 335, 5 ,1, 1) -- (Input from SRC: argument: vnum,x,y,radius,aggressive,count) elseif level == 10 and mobvnum == boss_vnum then d.clear_regen() d.kill_all() d.notice("Felicitări războinicilor curajoşi! L-ai omorât pe "..mob_name(boss_vnum).." . In "..wait_time.." secunde veti fi teleportati afara.") notice_all("Grupa lui "..pc.get_name().." l-a înfrânt pe Nemere!") server_timer("Jp_OutAll",wait_time,d.get_map_index()) end end end when Jp_OutAll.server_timer begin --Jump Out Bye bye ;D if d.select(get_server_timer_arg()) then snow_dungeon._ExitAll() end end function _ExitAll() d.exit_all() end end endCod: Selectaţi tot
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
da, la mine e flamerun ( si regen-urile au doar 3 mobi in ele)Bughy scrie:Adica mapa?
o sa ti le las cand ajung acasa. #cluj_parzitii_concertuzzyadelin scrie:da, la mine e flamerun ( si regen-urile au doar 3 mobi in ele)Bughy scrie:Adica mapa?
[ Postat de pe Android ]
[ Postat de pe Android ] 
- FastReview
-

- Mesaje: 2624
- Membru din: 25 Oct 2015, 00:01
- Aprecieri: 77
- Mulţumiri: 111
- Discord: Copiază ID
Autorul are peste 3 zile de inactivitate, arhivat.
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Baidu [Spider] și 10 vizitatori


