quest mission1 begin
state start begin
when letter with pc.get_level() >= 75 begin
send_letter("Azrail")
end
when button or info begin
say("Azrail'i Öldür ve Hediyeni Al.!")
pc.setf("kill",0)
q.counter("Azrail",0)
end
when 1093.kill begin
local azrail_kill = pc.getqf("kill") + 1
if azrail_kill <= 1 then
pc.setf("kill", count)
q.set_counter("Azrail", 1 - count)
end
if count == 1 then
say("Tamamlandı.!")
say("Hediyen: ")
local a = 30503
say_item_vnum(a)
pc.give_item2(a)
clear_letter()
end
end
end
end
quest nemere_kulesi begin
state start begin
when 9010.chat."Tasi indir" with nemere_kulesi.is_nemeres_dungeon() == true begin
d.purge()
d.spawn_mob_dir(20397, 173,262,1)
setskin(NOWINDOW)
end
when 9010.chat."TESTSERVER: SnowDungeon 9.seviye'ye git" with nemere_kulesi.is_nemeres_dungeon() == true begin
local set = nemere_kulesi.get_settings()
--- d.notice("Der Richtige Schlussel 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: SnowDungeon 10.seviye'ye git" with nemere_kulesi.is_nemeres_dungeon() == true begin
local set = nemere_kulesi.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: SnowDungeon boss at" with nemere_kulesi.is_nemeres_dungeon() == true begin
local set = nemere_kulesi.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: SnowDungeon'u bitir" with nemere_kulesi.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 Nordstern Kordinaten")
-- end
when 9010.chat."TESTSERVER: SnowDungeon test 5.kat" with nemere_kulesi.is_nemeres_dungeon() == true begin
nemere_kulesi._Create_Stones_level5()
setskin(NOWINDOW)
end
when 9010.chat."TESTSERVER: SnowDungeon 5.kat" with nemere_kulesi.is_nemeres_dungeon() == true begin
nemere_kulesi._DropKeyOnLevel5()
setskin(NOWINDOW)
end
when 9010.chat."TESTSERVER: SnowDungeon pozisyonlarım" with nemere_kulesi.is_nemeres_dungeon() == true begin
local set = nemere_kulesi.get_settings()
local warp_to_level = set.Position_level_1
local level = 2
say("Eski: x: "..warp_to_level[1].." y:"..warp_to_level[2].."")
local warp_to_level = set. _G[ "Position_level_"..level ]
say("Yeni: 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 = 90 --Ab wann ist der Dungeon betretbar.
snow_dungeon_settings.need_level_group = 90 --Benotigte Level fur 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 gepruft werden sollen. (Empfohlen 45)
snow_dungeon_settings.wait_duration = 60*60*4 --Ab wann der Dungeon wieder betretbar ist (PartyLeader)
snow_dungeon_settings.maxlife_time_on_dungeon = 60*60*1 --Maximale Zeit fur 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 fur die 2.Ebene --Frostschlussel
snow_dungeon_settings.NpcVnum_level_5 = 20398 --MobVnum von 5.Ebene --Wurfel des Arktos
snow_dungeon_settings.StoneCount_level_5 = 6 --Wie viele Wurfel 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 Wurfel 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 --Eisblumenschlussel
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 --Tote alle Monster auf dieser Ebene.
snow_dungeon_settings.Position_level_2 = { 761,270 } --Position ebene 2 --Finde den richtigen Frostschlussel, nur ein Schamane kann ihn benutzen.
snow_dungeon_settings.Position_level_3 = { 187,491 } --Position ebene 3 --Tote alle Monster auf dieser Ebene.
snow_dungeon_settings.Position_level_4 = { 421,259 } --Position ebene 4 --Tote alle Monster auf dieser Ebene.
snow_dungeon_settings.Position_level_5 = { 419,530 } --Position ebene 5 --offnet die Siegel an den Wurfel des Arktos in der richtigen Reihenfolge. (Zieht Nordstern auf die Wurfel)
snow_dungeon_settings.Position_level_6 = { 571,706 } --Position ebene 6 --Tote alle Monster auf dieser Ebene. Danach Zersore den Metin der Kälte (Nur ein Schamane kann ihn Schaden)
snow_dungeon_settings.Position_level_7 = { 746,534 } --Position ebene 7 --Tote alle Monster auf dieser Ebene und Szel
snow_dungeon_settings.Position_level_8 = { 303,710 } --Position ebene 8 --Der Eisblumenschlussel muss gedroppt werden, jedoch kann dieser nur von Schamanen und Ninja benutzt werden.
snow_dungeon_settings.Position_level_9 = { 848,693 } --Position ebene 9 --Zerstort die Säule des Norddrachen. Nur Ninjas und Schamanen konnen ihm Schaden zufugen.
snow_dungeon_settings.Position_level_10 = { 927,391 } --Position ebene 10 (BossZone) --Besiege Nemere, den Konig uber Frost und Eis.
snow_dungeon_settings.Enable_TestServerMode = false --Ob TestServer mode aktiviert ist. Wenn ja werden die Aufgaben schneller beendet.
snow_dungeon_settings.IsNewga_me_re_vi_sion = true --Need ga_me_re_vi_sion 40301
return snow_dungeon_settings
end
function is_TestServerMode()
local set = nemere_kulesi.get_settings()
return set.Enable_TestServerMode
end
function is_nemeres_dungeon()
local set = nemere_kulesi.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."Gruba tekrar katıl" with (party.is_party() and d.find(party.getf("ice_dungeon_map_index"))) begin
local set = nemere_kulesi.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("Aktuelles Dungeon Level deiner Gruppe: "..level.."")
if level == 0 then
say_npc_name()
say("Grubunuz zaten Buzdaği'ni fethetti.")
return
end
if pc.getqf("out_party_time") < get_global_time() then
say_npc()
say("")
say("Du hast länger als "..math.ceil(set.DurationMaxOnReJoinGroup /60) .." Minute(n) vor dem")
say("Eisberg verweilt und kannst jetzt nicht")
say("mehr eintreten.")
return
end
if n == 0 then
setskin(NOWINDOW)
return
else
say_npc()
say("")
say("Tekrar grubuna katılmak istiyor musun?")
if select("Evet","Hayır") == 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."Nemere'nin Gözetleme Kulesi" begin
local set = nemere_kulesi.get_settings()
local need_level = 35
say_npc()
say("")
say("Grubunuz ile gerçekten Nemere'nin")
say("Gözetleme Kulesi'ne girmek istiyor musunuz?")
if select("Evet, girmek istiyoruz.","Hayır, orası çok soğuk.") == 2 then
return
end
if (pc.is_gm() and pc.getf("nemere_kulesi","duration") >= get_global_time()) then
say("Game Master; süreyi sıfırlamak mı istiyorsun?")
if select("Evet","Hayır") == 1 then
pc.setf("nemere_kulesi","duration",0)
return
end
end
if (is_test_server() and nemere_kulesi.is_TestServerMode() == true ) then
say("Test server modu etkinleştirildi.")
say(" Şimdi ışınlanacksınız.")
timer("make_dungeon",3)
return
end
if not party.is_leader() and not pc.is_gm() then
say_npc()
say("Cesaretini takdir ediyorum ama")
say("yalnızca grup lideri giriş talebi yapabilir.")
return
end
if pc.get_level() < need_level then
say("Zindan'a girmek için en az "..need_level..".")
say("seviyede olmalisin.")
return
end
if pc.getf("nemere_kulesi","duration") >= get_global_time() then
say_npc()
say("Nemeres Gözetleme Kulesi'ne yeniden giriş ")
say("için bekleme süresi henüz dolmamış.")
say("Kalan süre: "..LIB_duration(pc.getf("nemere_kulesi","duration") - get_global_time()).."")
return
end
if nemere_kulesi._CheckMembersLevel() == false then
return
else
timer("make_dungeon",2)
end
end
when 20397.chat."Savaşı başlat" begin --Eisiger Lowe
say_npc()
say("")
say("Savaş'ı başlatmak istiyor musun?")
if select("Evet","Hayır, korkuyorum. ") == 1 then
local set = nemere_kulesi.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("nemere_kulesi","duration",t + wait_durations)
d.setf("level",1)
d.notice("Bir sonraki kata çıkmak için Tüm yaratıkları öldürmelisiniz.")
npc.purge()
nemere_kulesi._GetLastTime()
end
setskin(NOWINDOW)
end
when make_dungeon.timer begin
local set = nemere_kulesi.get_settings()
local cord = set.base_cord
local start_pos = set.Position_level_1
local t = get_global_time()
d.new_jump_all(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
--d.jump_all(set.map_index,(cord[1] + start_pos[1]), (cord[2] + start_pos[2]))
nemere_kulesi._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 Lowe
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 = nemere_kulesi.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 nemere_kulesi.is_TestServerMode() == true ) then
--dchat("TEST modu aktif.")
return true
end
if have_ninja == false and not pc.is_gm() then
say("Grubunuzda Ninja olmadan yukarı çıkamazsınız.")
return false
end
if have_shaman == false and not pc.is_gm() then
say("Grubunuzda Şaman olmadan yukarı çıkamazsınız.")
return false
end
if table.getn(user_fail_level) >= 1 then
say_npc()
say("")
say("Grubun bağzı üyeleri")
say("henüz "..need_level..". seviyeye ulaşmamış:")
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 nemere_kulesi.is_nemeres_dungeon() == true then
local set = nemere_kulesi.get_settings()
pc.setqf("out_party_time",get_global_time() + set.DurationMaxOnReJoinGroup)
--nemere_kulesi.unregister_name()
end
end
when login begin
if nemere_kulesi.is_nemeres_dungeon() == true then
local set = nemere_kulesi.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:# Sizin grubunuz içeride değil.")
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:# Benim seviyem düşük.")
d.exit()
return
end
--chat("Hos geldiniz. Burada "..math.ceil((d.getf("Start_Time") - get_global_time()) /60) .." dakikalik sureniz var.")
--notice("Sonraki kata cikmak icin Tum yaratiklari oldurun.")
--nemere_kulesi._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("Yaklaşık "..math.ceil(t / 60).." dakikanız kaldı...")
else
d.notice("Yaklaşık "..t .." saniyeniz kaldı...")
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("Zaman doldu.")
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 = nemere_kulesi.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("Tüm yaratıkları mağlup ettin. Bir kaç dakika içerisinde bir sonraki kata ışınlanacaksın.")
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("Tüm yaratıkları mağlup ettin. Bir kaç dakika içerisinde bir sonraki kata ışınlanacaksın.")
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("Tüm yaratıkları mağlup ettin. Bir kaç dakika içerisinde bir sonraki kata ışınlanacaksın.")
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("Tüm canavarları yok ettiniz. "..mob_name(MobStonelvl6).."'i öldürün.")
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("Tüm yaratıkları mağlup ettin. Bir kaç dakika içerisinde bir sonraki kata ışınlanacaksın.")
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
nemere_kulesi._GetLastTime()
end
end
when Jp_2.server_timer begin --Jump Level 2
if d.select(get_server_timer_arg()) then
local set = nemere_kulesi.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("Yukarı çıkmak için "..item_name(v).."'i bulun.")
end
end
when 30331.use with nemere_kulesi.is_nemeres_dungeon() == true begin --key_level_2
local set = nemere_kulesi.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 nemere_kulesi.is_TestServerMode() == true ) then
--dchat("SET VARIABLE JOB 3")
job = 3
end
if job == 3 -- Schamane weiblich
or job == 7 --Schamane männlich
or job == 0 --Schamane männlich
then
if number(1,3) == 1 then --or d.count_monster() < 10 then
d.notice("Doğru anahtarı buldunuz! Bir kaç saniye sonra ışınlanacaksınız.")
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("Bu yanlış anahtar.")
item.remove()
end
else
d.notice("Bunu sadece Şamanlar kullanabilir.")
return
end
end
end
when Jp_3.server_timer begin --Jump Level 3
if d.select(get_server_timer_arg()) then
local set = nemere_kulesi.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("Sonraki seviyeye ulaşmak için bütün yaratıkları öldürün!")
end
end
when Jp_4.server_timer begin --Jump Level 4
if d.select(get_server_timer_arg()) then
local set = nemere_kulesi.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("Sonraki seviyeye ulaşmak için bütün yaratıkları öldürün!")
end
end
when Jp_5.server_timer begin --Jump Level 5
if d.select(get_server_timer_arg()) then
local set = nemere_kulesi.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("Anahtar düşürerek "..mob_name(v).." isimli buz küpünden mühürü açın. ")
if set.IsNewga_me_re_vi_sion == true then
d.notice("Anahtarı canavarlardan düşürebilirsiniz.")
else
d.notice("Anahtarlar otomatikman envanterinize gelecek.")
end
nemere_kulesi._Create_Stones_level5()
end
end
function _DropKeyOnLevel5()
if number(1,1000) >= 666 then --Abbruch der weiteren funtion -> Damit es spannend bleibt bei den wurfeln... :P
return
end
local set = nemere_kulesi.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.IsNewga_me_re_vi_sion == true then
--New function
game.drop_item(vnum,1)
else
pc.give_item2_select(vnum,1)
end
--dchat("Creaty Key fail_count: "..fail_count.."")
if (is_test_server() and nemere_kulesi.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 = nemere_kulesi.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.getn(c))
--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 nemere_kulesi.is_nemeres_dungeon() == true then
local set = nemere_kulesi.get_settings()
local stone_level5_count = 6
local next_jump_time = 5
local vnum = item.get_vnum()
local key_level_5 = 30332
local search = d.getf("Stone_5_count")
if vnum == key_level_5 then
local new = search +1
if new > stone_level5_count then
d.notice("Son taşı açtınız, biraz sonra çıkacaksınız.")
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..". Taşı açtınız, biraz daha ilerlemeniz gerekmekte. ".. stone_level5_count - search .." Adet taşınız kaldı.")
npc.purge()
item.remove()
end
d.setf("Stone_5_count",new)
end --if is dungeon end
end --when end
end
end
state start begin
when Jp_6.server_timer begin --Jump Level 6
if d.select(get_server_timer_arg()) then
local set = nemere_kulesi.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("Tüm canavarları öldürdünüz. Şimdi bütün canavarları yok edin ve "..mob_name(v).."'i mağlup edin.")
--- d.notice("Nur Schamanen konnen ihm Schaden hinzufugen.")
--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 = nemere_kulesi.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("Metin taşarını başarıyla yok ettiniz. Şimdi "..mob_name(v).."'i ve tüm canavarları mağlup edin!")
end
end
when Jp_8.server_timer begin --Jump Level 8
if d.select(get_server_timer_arg()) then
local set = nemere_kulesi.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("Yaratıkları keserek "..item_name(v).." düşürün.")
d.notice("Bu nesnenin dilinden sadece Şaman ve Ninjalar anlayabiliyor...")
end
end
when 30333.use with nemere_kulesi.is_nemeres_dungeon() == true begin --Key_on_level_8
local set = nemere_kulesi.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 nemere_kulesi.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
or job == 0 --Schamane männlich
then
if number(1,3) == 1 then
d.notice("Doğru anahtarı buldunuz.Bir kaç saniye içinde ışınlanacaksınız.")
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("Bu anahtar yanlış.")
item.remove()
end
else
d.notice("Bunu sadece Şaman ve Ninja karakterleri kullanabilir.")
return
end
end
end
when Jp_9.server_timer begin --Jump Level 9
if d.select(get_server_timer_arg()) then
local set = nemere_kulesi.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(""..mob_name(v).."'yi mağlup edin!")
d.notice("Fakat ona sadece Şaman'ın tecrübesi ve Ninja'nın kuvveti karşı koyabilir.")
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 = nemere_kulesi.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(""..mob_name(v).."'yi dondurun ve mağlup edin!")
end
end
when kill begin
if nemere_kulesi.is_nemeres_dungeon() == true then
local set = nemere_kulesi.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
nemere_kulesi._DropKeyOnLevel5()
elseif level == 6 and mobvnum == stone_level_6 then
d.notice(""..mob_name(stone_level_6).." mağlup edildi ve bir sonraki seviyeye geçiyorsunuz.")
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.getn(c))
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).." mağlup edildi ve bir sonraki seviyeye geçiyorsunuz.")
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("Tebrikler cesur savaşçılar! "..mob_name(boss_vnum).."'yu mağlup ettiniz!.. Grup olarak "..wait_time.." saniye sonra ışınlanacaksınız.")
notice_all(""..pc.get_name().." ve grup arkadaşları Nemere'yi mağlup etti!")
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
nemere_kulesi._ExitAll()
end
end
function _ExitAll()
d.exit_all()
end
end
end
quest razador_kulesi begin
state start begin
when 20394.click with pc.get_level() >= 90 begin
--- pc.give_item2(149, 1)
set_state(run)
end
end
state run begin
function setting()
return
{
["bossroom_entry_pos"] = {8109,6867},
["boss_pos"] = {686,637},
["doors_pos"] = {
{320,394},
{293,359},
{333,321},
{378,320},
{400,355},
{394,401}
},
["idoors_pos"] = {
{268,447},
{234,359},
{300,264},
{454,217},
{470,355},
{467,469}
},
["doors_dir"] = {135,90,210,152,90,223},
["idoors_dir"] = {135,90,210,135,90,239},
["dungeon_entry_pos"] = {7766, 6719},-- ??? ?? ???? ?
["DUNGEON_MAN_bpos"] = {690,722},
["DUNGEON_MAN_pos"] = {354,362},
["LEVEL2_STONE_pos"] = {195,352},
["LEVEL4_TARGET_pos"] = {470,175},
["LEVEL5_STONE_pos"] = {
{486, 345},
{511, 336},
{525, 349},
{521, 365},
{503, 372},
{486, 365},
{500, 354}
},
["LEVEL6_TARGET_pos"] = {511,480},
["outside_entry_pos"] = {5980,7075}, --??????? ??? ?
}
end
function is_flamed(idx) -- ???? ??? ??
return idx >= 351 * 10000 and idx < (351 + 1) *10000
end
function make_dungeon() -- ?? ???
local setting = razador_kulesi.setting()
d.new_jump_all(351, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
d.regen_file("data/dungeon/razador_kulesi/npc.txt")
d.setf("level",0)
for i=1,6 do
d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))
end
for i=1,6 do
d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i]))
end
d.setf("clear_count",0)
d.setf("started",0)
d.setf("dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??
d.setf("counter_11", 180)
d.setf("counter_13", 180)
end
function go_boss() -- ??? ??
local setting = razador_kulesi.setting()
if pc.get_level() < 90 then --????
say("Sizin seviyeniz devam etmek için yeterli değil.[ENTER]104.Seviyeye ulaştığınız zaman tekrar gelin.")
return
else
--if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- ????? ??
say("Kaderini Karşilamak[ENTER]ileri gitmek istiyormusun ?")
local warp = select("Evet","Belki Daha Sonra")
if warp == 1 then
d.setf("level",17)
d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_fild_boss.txt")
d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
end
--else
-- say("Pode apenas avançar quando tiver[ENTER]concluído a missão de nível 103.")
-- return
--end
end
end
function level_clear() -- ?? ???, ?????, ?????
d.setf("level",0)
d.clear_regen()
d.purge_area(750000,620000,817400,689400) -- ??? -- d.purge() ????
end
function clear_timer(inx) -- ??? ????
clear_server_timer ("flame_dungeon_0m_left_timer", inx)
clear_server_timer ("flame_dungeon_1m_left_timer", inx)
clear_server_timer ("flame_dungeon_5m_left_timer", inx)
clear_server_timer ("flame_dungeon_10m_left_timer", inx)
clear_server_timer ("flame_dungeon_15m_left_timer", inx)
clear_server_timer ("flame_dungeon_30m_left_timer", inx)
clear_server_timer ("flame_dungeon_45m_left_timer", inx)
clear_server_timer ("flame_dungeon_ticket_remove", inx)
end
when login begin
local idx = pc.get_map_index()
local setting = razador_kulesi.setting()
if idx == 351 then
--pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
elseif razador_kulesi.is_flamed(idx) then -- ?? ??, ??? ?? ??
------------------------------------------------------------------------------------------------------------------------------------------------------
--??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
--???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
------------------------------------------------------------------------------------------------------------------------------------------------------
--pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
local ticketGroup = {71095, 1}
if d.getf("dungeon_enter") == 0 then -- ???? ???
local canPass = false
for i=1, table.getn(ticketGroup),2 do
if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
canPass = true
break
end
end
if get_global_time() - pc.getf("razador_kulesi","exit_time") < 30 * 60 then -- ??????? ????
notice(" İçeriye giriş yapabilmek için henüz süreniz dolmamış.[ENTER]Lütfen sürenizin dolmasını bekleyiniz.",d.notice)
say(" İçeriye giriş yapabilmek için henüz süreniz dolmamış.[ENTER]Lütfen sürenizin dolmasını bekleyiniz.")
timer("flame_dungeon_warp_timer", 5)
elseif not canPass then
notice("Bir grup ile Kızıl Ejder Kalesi'ne girebilirsiniz.[ENTER]Ve buna ek olarak, giriş için izin olmalıdır.",d.notice)
say("Geçiş Biletin Varsa [ENTER]Senide Işınlayabiliriz.")
timer("flame_dungeon_warp_timer", 5)
elseif pc.get_level() < 90 then
notice("Grubun tüm üyelerinin 90.seviyede[ENTER]olması gereklidir.Aksi takdirde[ENTER]devam edemezsiniz.",d.notice)
say("Devam edebilmek için tüm grup üyelerinin,[ENTER]90.Seviye'ye ulaşmış olması gerekli.")
timer("flame_dungeon_warp_timer", 5)
end
elseif pc.getf("razador_kulesi","ticket_delete") == 0 then -- ????? ??? ???????
for i=1, table.getn(ticketGroup),2 do
if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
pc.remove_item(ticketGroup[i], ticketGroup[i+1])
break
end
end
pc.setf("razador_kulesi","ticket_delete",1)
end
else
pc.setf("razador_kulesi","ticket_delete",0)
end
end
when flame_dungeon_warp_timer.timer begin
local setting = razador_kulesi.setting()
pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
end
when logout begin
local idx = pc.get_map_index()
if razador_kulesi.is_flamed(idx) then
if d.getf("dungeon_enter") == 1 then -- ???? ?? ?? ? ????
pc.setf("razador_kulesi","exit_time",get_global_time()) -- ???? ???? ??? ??? ??, ?? ???? ??? or ?? ???? ???
end
end
end
when 20394.chat."Kırmızı Ejderha Kulesi" begin
local setting = razador_kulesi.setting()
if party.is_party() then
local party_check = 0
if d.find(party.getf("dungeon_index")) then
party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
end
if d.find(party.getf("dungeon_index")) and party_check then
if get_global_time() - pc.getf("razador_kulesi","exit_time") < 5 * 60 then -- ?? ?? 5? ??
local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
if dungeon_level == 17 then -- ??
pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party.getf("dungeon_index"))
else
pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party.getf("dungeon_index"))
end
else -- 5? ???? ? ?? ??
say_title(mob_name(20394))
say(" Kırmızı Ejderha Kulesi'nin dışarısında[ENTER]5 dakikadan uzun süredir duruyorsunuz.[ENTER]Şimdi içeriye giremezsiniz.")
end
else
local pids = {party.get_member_pids()}
local noTicketMembers = {}
local notEnoughLevelMembers = {}
local ticketCheck = true
local levelCheck = true
local ticketGroup = {71095, 1}
for i, pid in next, pids, nil do
q.begin_other_pc_block(pid)
local canPass = false
for idx=1, table.getn(ticketGroup),2 do
if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
canPass = true
break
end
end
if not canPass then
table.insert(noTicketMembers, pc.get_name())
ticketCheck = false
end
if pc.level < 90 then
table.insert(notEnoughLevelMembers, pc.get_name())
levelCheck = false
end
q.end_other_pc_block()
end
if not ticketCheck then
say_title(mob_name(20394))
say("Uyarı! Kırmızı Ejderha Kulesi'ne girebilmek için,[ENTER]bütün grup üyelerinin[ENTER]geçiş biletine sahip olması gereklidir.[ENTER]Geçiş kartı olmayan üyeler:")
for i, name in next, noTicketMembers, nil do
say(color(1,1,0), " "..name)
end
if levelCheck then
return
else
wait()
end
end
if not levelCheck then
say_title(mob_name(20394))
say("Uyarı! Kırmızı Ejderha Kulesi'ne girebilmek için,[ENTER]bütün grup üyelerinin[ENTER]90.Seviye'ye ulaşmış olması gereklidir.[ENTER]Gerekli seviyede olmayan üyeler:")
for i, name in next, notEnoughLevelMembers, nil do
say(color(1,1,0), " "..name)
end
return
end
if party.is_leader() then
say("Kırmızı Ejderha Kulesi'ne girmek için emin misin?")
local warp = select("Evet.","Belki daha sonra...")
if warp == 1 then
if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then
razador_kulesi.make_dungeon()
else
say("Kırmızı Ejderha Kulesi'ne giriş yapabilmek için[ENTER]henüz süreniz dolmamış.")
end
end
party.setf("flame_dungeon_boss_kill_count", 0)
else
say("Sadece grup liderleri giriş izninde bulunabilir.")
end
end
else
say("Cesaretini takdir ediyorum.[ENTER]Fakat, Kırmızı Ejderha Kulesi'ne tek başına giremezsin.[ENTER]Güçlü bir grup kur ve daha sonra tekrar gel.")
end
end
when 20385.chat."Test : Bilgi" with pc.is_gm() begin -- ????
say("canavarlar_11 : "..d.getf("counter_11"))
say("canavarlar_13 : "..d.getf("counter_13"))
say("server saati : "..get_server_timer_arg())
say("toplam canavar sayısı : "..d.count_monster())
say("level : "..d.getf("level"))
say("Dmap index : "..d.get_map_index())
say("Pmap index : "..pc.get_map_index())
say("erişim süresi : "..pc.getf("razador_kulesi","exit_time"))
say("gerçek zaman : "..get_global_time())
if razador_kulesi.is_flamed(d.get_map_index()) then
say("in dungeon") -- is_flamed ?? ??
end
if d.is_unique_dead("stone1") then
say("taş 1 öldü ")
else
say("taş 1 yaşıyor")
end
end
when flame_dungeon_45m_left_timer.timer begin
notice(string.format("Kalan zaman: %d dakika(lar)", 45),d.notice)
notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
timer("flame_dungeon_30m_left_timer", 15*60)
end
when flame_dungeon_30m_left_timer.timer begin
notice(string.format("Kalan zaman: %d dakika(lar)", 30),d.notice)
notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
timer("flame_dungeon_15m_left_timer", 15*60)
end
when flame_dungeon_15m_left_timer.timer begin
notice(string.format("Kalan zaman: %d dakika(lar)", 15),d.notice)
notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
timer("flame_dungeon_5m_left_timer", 10*60)
end
when flame_dungeon_5m_left_timer.timer begin
notice(string.format("Kalan zaman: %d dakika(lar)", 5),d.notice)
notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
timer("flame_dungeon_1m_left_timer", 4*60)
end
when flame_dungeon_1m_left_timer.timer begin
notice(string.format("Kalan zaman: %d dakika(lar)", 1),d.notice)
notice("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)
timer("flame_dungeon_0m_left_timer", 60)
end
when flame_dungeon_0m_left_timer.timer begin
local setting = razador_kulesi.setting()
notice("Size ayırılan süre doldu.10 Saniye[ENTER]içinde kale'nin kapıları sizin için açılacak.",d.notice)
notice("10 Saniye içinde herkes ışınlanacak.",d.notice)
timer("exit_dungeon",10)
end
when 20385.chat." Am-heh Uyanış " with npc.lock() begin -- '0x'? x?? ?? ??? ?? ? ?? ?? , '1x'? x?? ?? ??? ???
local setting = razador_kulesi.setting()
if d.getf("started") == 0 then
say("Am-heh Uyandı!")
say("Kızıl Ejderha Kale'si bir saat boyunca[ENTER]başkalarına kapatıldı.")
wait()
d.setf("started",1)
timer("flame_dungeon_45m_left_timer",15*60)
notice("Kalan zaman: 60 Dakika(lar) ",d.notice)
notice("Süre dolduğunda bütün grup üyeleri dışarıya atılır.",d.notice)
local pids = {party.get_member_pids()}
local ticketGroup = {71095, 1}
for i, pid in next, pids, nil do
q.begin_other_pc_block(pid)
local canPass = false
for idx=1, table.getn(ticketGroup),2 do
if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
canPass = true
pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
break
end
end
if not canPass then
pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
end
q.end_other_pc_block()
end
d.setqf2("razador_kulesi","ticket_delete",1)
d.setf("dungeon_enter",1)
party.setf("dungeon_index", d.get_map_index())
d.setf("party_leader_pid", party.get_leader_pid())
end
if d.getf("level") < 7 then --???? ???
if d.getf("clear_count") == 6 then -- ? ??? ??? ???
d.setf("level",7)
else
local rand = number(1,6)--???? ????? ?? ???? ?? ?? ?????? ???
local setlev = 0
d.setf("level",7) -- ?? ?? ??? ?? ??? ?????? ??? ????? ????
for i=1,50 do
setlev = setlev + 1
if setlev > 6 then
setlev = 1
end
if not d.is_unique_dead("door"..setlev) then
rand = rand - 1
if rand == 0 then
d.setf("level",setlev)
d.setf("clear_count",d.getf("clear_count")+1)
break
end
end
end
end
end
if d.getf("level") == 1 then
say("Misyon: şeytanların ringe çıkın[ENTER]ve Hepsini oldurun")
notice("Bilgilendirme: Savaşçılar ve Ejderha kral arasındaki ayaklanma birazdan başlayacak.",d.notice)
d.kill_unique("door1")
d.kill_unique("idoor1")
d.setf("level",11)
local counter_11 = 180
d.regen_file ("data/dungeon/razador_kulesi/".."fd_a.txt")
elseif d.getf("level") == 11 then
say("Bütün şeytanlar yenilmedi.")
say_title("Kalan: ", counter_11)
elseif d.getf("level") == 2 then
say("Görev: stel ISFET gizli[ENTER]mekanizma yerine[ENTER]dişli altın bulun.")
notice("Görev: stel ISFET gizli mekanizma[ENTER] yerine dişli altın bulun.",d.notice)
d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ??? ??
d.kill_unique("door2")
d.kill_unique("idoor2")
d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_b.txt")
d.setf("level",12)
elseif d.getf("level") == 12 then
say("Görev başarıldı zaman[ENTER]ISFET stel mekanizma sadece[ENTER]Tur altın dişli tekerleği ile tetiklenebilir.")
elseif d.getf("level") == 3 then
say("Misyon: şeytanların ringe çıkın[ENTER]ve Hepsini oldurun")
notice("Misyon: şeytanların ringe çıkın[ENTER]ve Hepsini oldurun",d.notice)
d.kill_unique("door3")
d.kill_unique("idoor3")
d.setf("level",13)
local counter_13 = 180
d.regen_file ("data/dungeon/razador_kulesi/".."fd_c.txt")
elseif d.getf("level") == 13 then
say("Tum iblisler orada yenildiler.")
say_title("Diğer: ", counter_13)
elseif d.getf("level") == 4 then -- 474 178
say("Görev : Ignatoru Yenin Cehennem Bekcisi")
notice("Görev : Ignatoru Yenin Cehennem Bekcisi",d.notice)
d.setf("level",14)
d.kill_unique("door4")
d.kill_unique("idoor4")
d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_d.txt")
d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- ????? ??
elseif d.getf("level") == 14 then
say("Ignator Cehennem[ENTER]Bekcisi Hayla[ENTER]Yenilmemistir.")
elseif d.getf("level") == 5 then -- 510 355
say("Misyon: Maat taşları bulun[ENTER] ve 7 stelleri ISFET doğru sırayla koyun.")
say("Eğer yanlış olarak Maat taş [ENTER]yerine stel kullanırsanız, taş kıracak.")
notice("Misyon: Maat taşları bulun[ENTER] ve 7 stelleri ISFET doğru sırayla koyun.",d.notice)
notice("Eğer yanlış olarak Maat taş [ENTER]yerine stel kullanırsanız, taş kıracak.",d.notice)
d.kill_unique("door5")
d.kill_unique("idoor5")
d.setf("level",15)
d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
local vis = { 0,0,0,0,0,0,0}
for i=1,7 do
vis[i] = 0
end
for i = 1, 7 do -- ???? ???
local ran = number(1,7)
local st = 0
for j = 1, 50 do
st = st + 1
if st > 7 then
st = 1
end
if vis[st] == 0 then
ran = ran - 1
if ran == 0 then
vis[st] = 1
d.set_unique("stone5_"..st, d.spawn_mob(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
break
end
end
end
end
elseif d.getf("level") == 15 then
say("Hey Oyuncu! Görevini yerine[ENTER] gizemli sırı cözmek icin [ENTER]Yeni görev için Am-heh ile görüşün.")
elseif d.getf("level") == 6 then -- 507 490
say("Görev: Cehhenemim Kavurucu sıcagında [ENTER] Araf Metin yok edilecek.")
notice("Görev: Cehhenemim Kavurucu sıcagında [ENTER] Araf Metin yok edilecek.",d.notice)
d.setf("level",16)
d.kill_unique("door6")
d.kill_unique("idoor6")
d.set_regen_file ("data/dungeon/razador_kulesi/".."fd_f.txt")
d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??
elseif d.getf("level") == 16 then
say(" ")
say("Araf Metnini Yok Edin")
elseif d.getf("level") == 7 then
razador_kulesi.go_boss()
else
say(" ")
end
npc.unlock()
end
when kill with razador_kulesi.is_flamed(pc.get_map_index()) and d.getf("level") == 11 begin -- 2?? ??? ?? ??
if d.getf("counter_11") == 0 then -- 1?? ??? ???
notice("Bütün şeytanları yendiniz,",d.notice)
notice("Yeni görev için Am-heh ile görüşün...",d.notice)
razador_kulesi.level_clear()
else
d.setf("counter_11",d.getf("counter_11")-1)
end
end
when kill with razador_kulesi.is_flamed(pc.get_map_index()) and d.getf("level") == 13 begin -- 2?? ??? ?? ??
if d.getf("counter_13") == 0 then -- 1?? ??? ???
notice("Bütün şeytanları yendiniz,",d.notice)
notice("Yeni görev için Am-heh ile görüşün...",d.notice)
razador_kulesi.level_clear()
else
d.setf("counter_13",d.getf("counter_13")-1)
end
end
when kill with razador_kulesi.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2?? ??? ?? ??
local i = number(1, 100) -- 100?? 1 ??? ????
if i == 1 then
game.drop_item (30329, 1)
end
end
when 20386.take with razador_kulesi.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2?? ?? ????
local i = number(1, 5) -- 5?? 1 ??? ?? ??
if i == 1 then
npc.purge()
item.remove()
notice("Bütün şeytanları yendiniz,",d.notice)
notice("Yeni görev için Am-heh ile görüşün...",d.notice)
razador_kulesi.level_clear()
else
item.remove()
say("Bu parça yanlıştır.[ENTER]Özgün arama yıkıldı.")
end
end
when 6051.kill with razador_kulesi.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
notice("Bütün şeytanları yendiniz,",d.notice)
notice("Yeni görev için Am-heh ile görüşün...",d.notice)
razador_kulesi.level_clear()
end
when kill with razador_kulesi.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5?? ??? ?? ??
local i = number(1, 30) -- 30?? 1 ??? ????
if i == 1 then
game.drop_item (30330, 1)
end
end
when 20386.take with razador_kulesi.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5?? ???? ????
local setting = razador_kulesi.setting()
if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
npc.purge()
item.remove()
say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
d.setf("stonekill",2) -- 2? ?? ???
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_2") then
if d.getf("stonekill") == 2 then -- 2??? ?? ??? 2???? ??? ??? ?
npc.purge()
item.remove()
say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
d.setf("stonekill",3)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
end
else
item.remove()
say("Yanlış Düzen Maat Taşı Yok edildi.")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
if d.getf("stonekill") == 3 then
npc.purge()
item.remove()
say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
d.setf("stonekill",4)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
end
else
item.remove()
say("Yanlış Düzen Maat Taşı Yok edildi.")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
if d.getf("stonekill") == 4 then
npc.purge()
item.remove()
say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
d.setf("stonekill",5)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
end
else
item.remove()
say("Yanlış Düzen Maat Taşı Yok edildi.")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
if d.getf("stonekill") == 5 then
npc.purge()
item.remove()
say("Bu akıllıca bir seçim[ENTER] artık bir sonraki stel yok oldu.")
d.setf("stonekill",6)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
end
else
item.remove()
say("Yanlış Düzen Maat Taşı Yok edildi.")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
if d.getf("stonekill") == 6 then
npc.purge()
item.remove()
say("Bu akıllıca bir seçim oldu. Şimdi son [ENTER] stel yok ve Maat ISFET üzerinde zafer.")
d.setf("stonekill",7)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/razador_kulesi/".."fd_e.txt")
end
else
item.remove()
say("Yanlış Düzen Maat Taşı Yok edildi.")
end
else
if d.getf("stonekill") == 7 then
npc.purge()
item.remove()
notice("Stel ISFET yıkıldı.",d.notice)
notice("Yeni bir hedef açmak için Am-heh ile konuşun.",d.notice)
razador_kulesi.level_clear()
else
item.remove()
say("Yanlış Düzen Maat Taşı Yok edildi.")
end
end
end
when 8057.kill with razador_kulesi.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ??? ???? ?
notice("Araf Metin yıkıldı.",d.notice)
notice("Yeni bir hedef açmak için Am-heh ile konuşun.",d.notice)
razador_kulesi.level_clear()
end
when 6091.kill with razador_kulesi.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ?? ????
notice("Radazor Yıkıldı.",d.notice)
notice("Bir Dakika İçinde Tüm savaşcılar[ENTER]Köylerine ışınlanacaktır.",d.notice)
timer("exit_dungeon", 60)
razador_kulesi.level_clear()
if party.is_party() then
party.setf("flame_dungeon_boss_kill_count", 1)
end
end
when exit_dungeon.timer begin
local setting = razador_kulesi.setting()
razador_kulesi.clear_timer(d.get_map_index())
d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2])
d.exit_all()
d.setf("party_leader_pid", 0)
end
end
end
quest barones_kill begin
state start begin
when kill with npc.get_race() ==2092 begin
game.drop_item_with_ownership("71159",1)
game.drop_item_with_ownership("71160",1)
notice_all(""..pc.get_name().." grubu, Çöl Ortasında Güçlü Örümcek Baronesi Öldürmüştür.")
notice_all("2 Saat Sonra Tekrar Döneceğim.! < ÖRÜMCEK BARONES >")
end
end
end