Merhaba, bilişimden files aldım ve zindanlar tek katlı değildi tek kat zindan yapmak istedim forumdaki questi indirdim quest çalıştı zindan direkt bossa atıyor ama bossu kesince geri sayım yapmıyor.
[CODE title="Bu eski quest (zindan bilgide kalan süresi gözüken)"]quest flame_dungeon begin
state start begin
when 20394.click with pc.get_level() >= 90 begin
--pc.give_item2(71175, 1)
set_state(run)
end
when login with flame_dungeon.is_flamed(pc.get_map_index()) begin
--pc.give_item2(71175, 1)
set_state(run)
flame_dungeon.entry_setting()
end
when flame_dungeon_45m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika", 45),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
end
end
when flame_dungeon_30m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika", 30),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
end
end
when flame_dungeon_15m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika", 15),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
end
end
when flame_dungeon_5m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika", 5),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
end
end
when flame_dungeon_1m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika(lar)", 1),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
end
end
when flame_dungeon_0m_left_timer.server_timer begin
local setting = flame_dungeon.setting()
if d.select(get_server_timer_arg()) then
notice_multiline("Size ayırılan süre doldu.10 Saniye[ENTER]içinde kale'nin kapıları sizin için açılacak.",d.notice)
notice_multiline("10 Saniye içinde herkes ışınlanacak.",d.notice)
server_timer("dungeon_end_timer",10,d.get_map_index())
end
end
when dungeon_end_timer.server_timer begin -- ?? ??? (??? ????)
local setting = flame_dungeon.setting()
if d.select(get_server_timer_arg()) then
flame_dungeon.clear_timer(d.get_map_index())
d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2])
d.exit_all()
end
end
when killed_A_1.server_timer begin -- ??? ???1 (level1,level3)
if d.select(get_server_timer_arg()) then
if d.count_monster() <= 0 then -- 1?? ??? ???
if d.getf("level") == 11 then
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
else
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
end
d.setf("level",0)
else
server_timer ("killed_A_2", 6, get_server_timer_arg())
end
end
end
when killed_A_2.server_timer begin -- ??? ???2 (1? 2 ?????? ???)
if d.select(get_server_timer_arg()) then
if d.count_monster() <= 0 then -- 1?? ??? ???
if d.getf("level") == 11 then
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
else
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
end
d.setf("level",0)
else
server_timer ("killed_A_1", 6, get_server_timer_arg())
end
end
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"] = {7762, 6739},-- ??? ?? ???? ?
["20385_bpos"] = {690,722},
["20385_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"] = {6142,7068}, --??????? ??? ?
["YAK_pos"] = {376, 397} -- ?? ??
}
end
function is_flamed(idx) -- ???? ??? ??
return (idx >= 351 * 10000 and idx < (351 + 1) *10000) or idx==351
end
function make_dungeon() -- ?? ???
local setting = flame_dungeon.setting()
d.new_jump(351, setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100)
d.regen_file("data/dungeon/flame_dungeon/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[1], setting.doors_pos[2],setting.doors_dir))
d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[1], setting.idoors_pos[2],setting.idoors_dir))
end
d.setf("clear_count",0)
d.setf("started",0)
pc.setf("flame_dungeon","dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??
end
function go_boss() -- ??? ??
local setting = flame_dungeon.setting()
if pc.get_level() < 90 then --????
say("Sizin seviyeniz devam etmek için yeterli değil.[ENTER]90.Seviyeye ulaştığınız zaman tekrar gelin.")
return
else
say("Kaderinle karşılaşmak için hazır mısın?")
local warp = select("Devam Et","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/flame_dungeon/".."fd_fild_boss.txt")
d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
end
end
end
function level_clear()
d.setf("level",0)
d.clear_regen()
d.purge_area(750000,620000,817400,689400)
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 ("killed_A_1", inx)
clear_server_timer ("killed_A_2", inx)
end
function map_index_compare()
if flame_dungeon.is_flamed(pc.getf("flame_dungeon","dungeon_index")) then
return (pc.getf("flame_dungeon","dungeon_index") == pc.getf("flame_dungeon","dungeon_index"))
end
end
function entry_setting()
local idx = pc.get_map_index()
local setting = flame_dungeon.setting()
if idx == 351 then
pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
elseif flame_dungeon.is_flamed(idx) then
if not flame_dungeon.map_index_compare() and pc.getf("flame_dungeon","dungeon_enter") == 1 then
pc.setf("flame_dungeon","dungeon_index", d.get_map_index())
end
------------------------------------------------------------------------------------------------------------------------------------------------------
--??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
--???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
------------------------------------------------------------------------------------------------------------------------------------------------------
-- pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
elseif not d.find(pc.getf("flame_dungeon","dungeon_index"))then
pc.setf("flame_dungeon","dungeon_index",0)
end
end
when login begin --
flame_dungeon.entry_setting()
local idx = pc.get_map_index()
if flame_dungeon.is_flamed(idx) and flame_dungeon.map_index_compare() then
d.setqf2("flame_dungeon","exit_time",get_global_time() + 60*60*1)
end
if flame_dungeon.is_flamed(idx) then
d.setqf2("flame_dungeon","exit_time",get_global_time() + 60*60*1)
end
end
when logout begin
local idx = pc.get_map_index()
if flame_dungeon.is_flamed(idx) and flame_dungeon.map_index_compare() then
d.setqf2("flame_dungeon","exit_time",get_global_time() + 60*60*1)
end
if flame_dungeon.is_flamed(idx) then
------------ Dungeon Turn Back System ----------------------
pc.setf("flame_dungeon","dungeon_turn",1)
------------------------------------------------------------
d.setqf2("flame_dungeon","exit_time",get_global_time() + 60*60*1)
end
end
when 20394.chat."Razadör Kulesi (Bireysel)" begin
addimage(35,35,'razador.tga')
if game.get_event_flag("enable_flame_dungeon") == 1 then
say_title_center(mob_name(20394))
say_center("")
say_center("")
say_center("")
say_center("")
say_center("")
say_center("Harita şuanda bakım modunda.")
say_center("")
return
end
if party.is_leader() or party.is_party() then
say("")
say("")
say("")
say("")
say("")
say_reward_center("Bu zindana grup halinde giremezsin")
say_reward_center("lütfen önce bulundugun grupdan ayril !")
return
end
--sys_log(0,"flame_dungeon quest open")
local setting = flame_dungeon.setting()
if (game.get_event_flag("enable_time_flame") == 1 and pc.getf("flame_dungeon","exit_time") >= get_global_time()) then
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Beta Server; süreyi sıfırlamak mı istiyorsun?")
say_center("Kalan süre: "..dungeon_get_duration(pc.getf("flame_dungeon","exit_time") - get_global_time()).."")
if select("Evet","Hayır") == 1 then
pc.setf("flame_dungeon","exit_time",0)
return
end
end
if pc.getf("flame_dungeon","exit_time") >= get_global_time() then
say_title_center(mob_name(20394))
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Soguma sureniz henuz dolmadi!")
say_center("Kalan süre: "..dungeon_get_duration(pc.getf("flame_dungeon","exit_time") - get_global_time()).."")
return
end
if pc.level < 90 then
say_title_center(mob_name(20394))
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Zindana giris icin seviyeniz yetersiz!")
return
end
if pc.count_item(71175) < 1 then
say_title_center(mob_name(20394))
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Envanterinde yeterli miktarda yok:")
say_center(string.format("%s.", item_name(71175)))
say("")
return
end
say_title_center(mob_name(20394))
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Kırmızı Ejderha Kulesi'ne girmek için emin misin?")
local warp = select("Evet.","Belki daha sonra...")
if warp == 1 then
-- ------------ Dungeon Turn Back System ----------------------
-- pc.remove_turn_back_dungeon()
-- ------------------------------------------------------------
pc.remove_item(71175, 1)
flame_dungeon.make_dungeon()
end
pc.setf("flame_dungeon","flame_dungeon_boss_kill_count", 0)
end
when 20394.chat."TEST : Init time limit init" with is_test_server() begin -- ????
pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
say("Done")
end
when 20385.chat."Test : Boss Room" with is_test_server() begin -- ????
flame_dungeon.go_boss()
end
when 20385.chat."Am-heh Uyanış " with npc.lock() begin
local setting = flame_dungeon.setting()
if d.getf("started") == 0 then
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'STARTED')
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)
-- ???? ?????? ??? ??? exit timer? ???? ???? ????? ????? ????? ?
server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
notice_multiline("Kalan zaman: 60 Dakika(lar) ",d.notice)
notice_multiline("Süre dolduğunda disariya gönderileceksiniz.",d.notice)
pc.setf("flame_dungeon","dungeon_enter",1)
end
if d.getf("level") == 0 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("Şeytanlar kilitli kapının arkasında[ENTER]gidin ve onları mağlup edin.")
notice_multiline("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)
d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt")
server_timer ("killed_A_1", 12, d.get_map_index())
elseif d.getf("level") == 11 then
say("Bütün şeytanlar yenilmedi.")
say_title("Kalan: " .. d.count_monster())
elseif d.getf("level") == 2 then
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 2 started')
say("Altın Dişli Çarkı bul ve mührü aç.")
notice_multiline("Altın Dişli Çarkı ele geçirmek için yaratıkları öldür ve mührü aç.",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/flame_dungeon/".."fd_b.txt")
d.setf("level",12)
elseif d.getf("level") == 12 then
say("Altın dişli çark ile mührü açmadan ilerleyemezsin.")
elseif d.getf("level") == 3 then
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 3 started')
say("Tüm yaratıkları öldürün.[ENTER]Kaderinizi belirleyin.")
notice_multiline("Tüm yaratıkları öldürün ve kaderinizi belirleyin.",d.notice)
d.kill_unique("door3")
d.kill_unique("idoor3")
d.setf("level",13)
d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")
server_timer ("killed_A_1", 12, d.get_map_index())
elseif d.getf("level") == 13 then
say("Yaratıkların hepsi ölmedi.")
say_title("Kalan: "..d.count_monster())
elseif d.getf("level") == 4 then -- 474 178
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 4 started')
say("Devam edebilmek için, Ignator'u yok edin.")
d.notice("Gidin ve Ignatoru mağlup edin.")
d.setf("level",14)
d.kill_unique("door4")
d.kill_unique("idoor4")
d.set_regen_file ("data/dungeon/flame_dungeon/".."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 hala Yaşıyor.[ENTER]Kendinizi güclendirin ve tekrar deneyin.[ENTER]Ebedi lanetten temizlenin.")
elseif d.getf("level") == 5 then -- 510 355
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 5 started')
say("Maat Taş'larını bulunuz ve tek tek açın.")
notice_multiline("Maat Taşlarını bulunuz ve[ENTER]7 Maat Taşını sırasıyla ve doğru şekilde açınız.",d.notice)
d.kill_unique("door5")
d.kill_unique("idoor5")
d.setf("level",15)
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
local vis = { 0,0,0,0,0,0,0}
for i=1,7 do
vis = 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[1], setting.LEVEL5_STONE_pos[2]))
break
end
end
end
end
elseif d.getf("level") == 15 then
say("Ey Savaşcı! Gizemi Bulmak için [ENTER]doğru Secim yapın ve[ENTER]görev yerine gelin.")
elseif d.getf("level") == 6 then -- 507 490
say("Sıcak ve korku dolu [ENTER]Cehennem Ateşi Metin Taşı'nı bulun ve yok edin.")
notice_multiline("Sıcak ve korku dolu [ENTER]Cehennem Ateşi Metin taşını bulun ve yok edin.",d.notice)
d.setf("level",16)
d.kill_unique("door6")
d.kill_unique("idoor6")
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt")
d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??
elseif d.getf("level") == 16 then
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 6 started')
say("Cehennem Ateşi Metini Henuz yok edilmedi.[ENTER]Görev Tamamlanınca Tekrar Gel.")
elseif d.getf("level") == 7 then
flame_dungeon.go_boss()
else
say("Geçersiz Parametre Yöneticiye Bildirin!")
end
npc.unlock()
end
when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin
local i = number(1, 20)
if i == 1 then
game.drop_item (30329, 1)
end
end
when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin
local i = number(1, 3)
if i == 1 then
npc.purge()
item.remove()
notice_multiline("Maat mekanızmasını açıldı,",d.notice)
notice_multiline("Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
else
item.remove()
say("Bu parça yanlış yok oldu.[ENTER]Doğru Altın Dişli Çarkı bul.")
end
end
when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
notice_multiline("Tebrikler!.. Ignator yok edildi.",d.notice)
notice_multiline("Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
end
when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin
local i = number(1, 6) -- 30?? 1 ??? ????
if i == 1 then
game.drop_item (30330, 1)
end
end
when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin
local setting = flame_dungeon.setting()
if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
npc.purge()
item.remove()
say("Bu akıllıca bir seçim oldu.[ENTER]Şimdi diğerlerinide yok et.")
d.setf("stonekill",2) -- 2? ?? ???
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."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 oldu.[ENTER]Şimdi diğerlerinide yok et.")
d.setf("stonekill",3)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı yok oldu.")
if is_test_server() then
say("2")
end
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 oldu.[ENTER]Şimdi diğer mühürleri yok et.")
d.setf("stonekill",4)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("3")
end
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 oldu.[ENTER]Şimdi diğer mühürleri yok et.")
d.setf("stonekill",5)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("4")
end
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 oldu.[ENTER]Şimdi diğer mühürleri yok et.")
d.setf("stonekill",6)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("5")
end
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.[ENTER]Şimdi son mührü yok et.")
d.setf("stonekill",7)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("6")
end
end
else
if d.getf("stonekill") == 7 then
npc.purge()
item.remove()
notice_multiline("Maat taşları yok edildi!",d.notice)
notice_multiline("Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
--d.kill_all_mob()
d.kill_all()
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("7")
end
end
end
end
when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', '8057 KILLED')
notice_multiline("Araf Metini Yok Edildi.",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
--d.kill_all()
flame_dungeon.level_clear()
d.kill_all()
end
when 6091.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'BOSS KILLED')
notice_all("Razador "..pc.get_name().." tarafından yok edildi.")
notice_multiline("Ejderha Tapınağı içindeki Tüm Savaşcılar [ENTER]Bir dakika içerisinde ışınlanacaktır.",d.notice)
d.notice("Razadör yok edildi.")
d.notice("Bütün savaşçılar 60 saniye içerisinde Ejderha")
d.notice("Tapınağı'ndan dışarı ışınlanacak.")
server_timer("dungeon_end_timer", 60,d.get_map_index())
flame_dungeon.level_clear()
d.setf("level",8)
end
end
end
[/CODE]
[CODE title="Bu yeni eklediğim tek kat zindan razadör (geri sayım yapmayan)"]quest flame_dungeon begin
state start begin
function setting()
return
{
["base"]={["x"] = 3072 , ["y"]= 12032 ,},
["floor1_s"] = { ["x"] = 20, ["y"] = 20, },
["floor1_e"] = { ["x"] = 500, ["y"] = 470,},
["floor2_s"] = { ["x"] = 510, ["y"] = 18, },
["floor2_e"] = { ["x"] = 978, ["y"] = 470,},
["floor1_entry"] = {["x"] = 73, ["y"] = 63,},
["floor2_entry"] = {["x"] = 550, ["y"] = 45,},
["floor3_entry"] = {["x"] = 1378, ["y"] = 249,},
["floor4_entry"] = {["x"] = 70, ["y"] = 592,},
["floor5_entry"] = {["x"] = 846, ["y"] = 898},
["floor6_entry"] = {["x"] = 1362, ["y"] = 666},
["water_entry"] = {["x"] = 73, ["y"] = 1156},
["map_idx"] = 215,
["rag"] = 30311,
["devil_king"] = 2591,
["reapers_credit1"] = 31324,
["reapers_credit2"] = 30320,
["reapers_credit3"] = 76002,
["reapers_credit4"] = 79001,
["floor3_stone"] = 8038,
["floor3_stone_pos"] = {
{1366, 150},
{1366, 351},
{1234, 365},
{1234, 140},
{1150, 135},
{1130, 365},
{1135, 253}
},
["mob_regen_file_path"] = "data/dungeon/devilwater/",
["floor4_regen_file"] = {"devilwater_floor4_regen1.txt",
"devilwater_floor4_regen2.txt",
"devilwater_floor4_regen3.txt",
"devilwater_floor4_regen4.txt",
"devilwater_floor4_regen5.txt"} ,
["credit_stone"] = 30101,
["credit_stone_pos"] = {307,323},
["floor2_stone"] = 30103,
["floor2_stone_pos"] = {741,217},
["floor2_merchant_npc"] = 20368,
["floor2_merchant_npc_pos"] = {734,214},
["floor4_npc"] = 30104,
["floor4_npc_pos"] = {75, 592},
["devil_king_pos"] = {{673,829},{691,638},{848,568},{1026,642},{1008,862}},
["unlock_stone"] = 30312,
["floor5_stone"] = 30102,
["floor5_stone_pos"] = {848, 735},
["devil_great_king"] = 2597 ,
["devil_great_king_pos"] = {1303,704},
["devil_emperor"] = 3964,
["devil_emperor_pos"] = {74,1103},
["dc2_door_set_size"] = {4,2,3,2},
["dc2_door_set1"] = {
{{30111, 566, 117, 5},{30112, 562, 311, 5,},{30118, 663, 434, 7},{30119, 881, 434, 7}},
{{30116, 743, 390, 3},{30119, 612, 251, 1,}},
{{30113, 654, 211, 5},{30111, 707, 338, 7,},{30112, 775, 336, 7}},
{{30117, 733, 294, 3},{30113, 694, 271, 1,}}
},
["dc2_door_set2"] = {
{{30115, 942, 141, 5},{30116, 942, 245, 5},{30117, 942, 321, 5},{30115, 763, 64, 7}},
{{30118, 643, 116, 3},{30114, 900, 167, 1}},
{{30114, 850, 293, 5},{30113, 715, 164, 7},{30114, 817, 162, 7}},
{{30111, 802, 277, 1},{30112, 800, 241, 1}}
},
}
end
when logout begin
local idx = 351
local map = pc.get_map_index()
if map >= (idx * 10000) and map < (idx * 10000 + 9000) then
pc.setf("razo","dungeon_time",get_global_time() + 60*60*1)
end
end
when 20394.chat."Kırmızı Ejderha Kalesi(90.Seviye)" begin
local setting = flame_dungeon.setting()
if pc.get_level() < 90 then
say_title("Bekci:")
say("")
say("90. seviyenin altinda oldugun icin ")
say("zindana giremezsin...")
return
end
if pc.count_item(71175) < 1 then
say_item_vnum(71175)
say("Gerekli esya olmadan giris yapamazsin.")
return
end
if party.is_party() then
say("Grubun varken giris yapamazsin.")
return
end
if pc.getf("razo","dungeon_time") > get_time() and not pc.is_gm() then
say_npc()
say("")
say("Henüz odaya giremezsin.")
say("Bekleme süren dolunca tekrar gel.")
say("")
say_reward("Kalan Süre : "..LIB_duration(pc.getf("razo","dungeon_time")-get_time()))
return
end
say_title("Bekci:")
say("")
say("zindana girmek istiyor musun?")
local s = select("Evet!","Hayir,girmek istemiyorum.")
if s == 1 then
pc.remove_item(71175,1)
timer("razo_sologiris",2)
else
return
end
end
when razo_sologiris.timer begin
d.new_jump(351, 8109 * 100, 6867 * 100)
d.spawn_mob_dir(6091,682,636,1)
--d.set_regen_file("data/dungeon/water_dungeon_regens/boss.txt")
--d.jump_all (setting.water_entry.x + setting.base.x, setting.water_entry.y + setting.base.y )
--water.Temizle()
server_timer("razo_timeup",60*30*1,d.get_map_index())
end
-- 6Ãş°ú ¸¶Âù°¡Áö·Î »ç¸¶ÈÖ(3964)ÀÌ Á×À¸¸é
-- 7ÃşÀÇ Å¸À̸Ӱ¡ ÀÛµ¿ÇÑ´Ù.
when kill with npc.get_race() == 6091 begin
d.setf("razo_dead",1)
--notice_all(pc.get_name().."'s party has defeated Lord Gahnasel!")
notice_all("|cff00ff00 Patron Avcısı "..pc.get_name().." grubu, Razödor'u Mağlup etti!")
server_timer ("razo_eli_check_timer_1", 3, d.get_map_index())
end
-- 7ÃşÀÇ Å¸À̸Ӵ 6Ãş ŸÀÌ¸Ó¿Í ºñ½ÁÇϸç,
-- ¸ó½ºÅÍ ¼ıÀÚ°¡ 0À̸é exit ŸÀ̸Ӹ¦ ¹ß»ı½ÃŲ´Ù.
-- ¹Ù·Î exitÇÏÁö ¾Ê´Â ÀÌÀ¯´Â, À¯Àúµé¿¡°Ô ÁغñÇÒ ½Ã°£À» ÁÖ±â À§ÇؼÀÌ´Ù.
when razo_eli_check_timer_1.server_timer begin
if d.select(get_server_timer_arg()) then
d.set_warp_location (62, 5990, 7070)
--say_in_map(get_server_timer_arg(),"Azrail yenildi. ?ytan Katakombu'na nihayet[ENTER]huzur hakim. ?mdi yer y??e ış?lanacaks?. ")
server_timer ("razo_eli_check_timer_2", 3, get_server_timer_arg())
end
end
when razo_eli_check_timer_2.server_timer begin
if d.select(get_server_timer_arg()) then
d.set_warp_location (62, 5990, 7070)
--say_in_map(get_server_timer_arg(),"Azrail yenildi. ?ytan Katakombu'na nihayet[ENTER]huzur hakim. ?mdi yer y??e ış?lanacaks?. ")
server_timer("razo_exit_timer", 62, get_server_timer_arg())
else
server_timer ("razo_eli_check_timer_1", 3, get_server_timer_arg())
end
end
when razo_timeup.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Zaman doldu.")
d.setf("sure_doldu",1)
d.exit_all()
end
end
when razo_exit_timer.server_timer begin
if d.select(get_server_timer_arg()) then
clear_server_timer("razo_eli_check_timer_1", get_server_timer_arg())
clear_server_timer("razo_eli_check_timer_2", get_server_timer_arg())
clear_server_timer("razo_sologiris", get_server_timer_arg())
d.clear_regen()
d.exit_all()
end
end
end --state
end --quest
[/CODE]
Nasıl çözebilirim arkadaşın bile questflag falan demiş anlamadım.
[CODE title="Bu eski quest (zindan bilgide kalan süresi gözüken)"]quest flame_dungeon begin
state start begin
when 20394.click with pc.get_level() >= 90 begin
--pc.give_item2(71175, 1)
set_state(run)
end
when login with flame_dungeon.is_flamed(pc.get_map_index()) begin
--pc.give_item2(71175, 1)
set_state(run)
flame_dungeon.entry_setting()
end
when flame_dungeon_45m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika", 45),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
end
end
when flame_dungeon_30m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika", 30),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
end
end
when flame_dungeon_15m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika", 15),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
end
end
when flame_dungeon_5m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika", 5),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
end
end
when flame_dungeon_1m_left_timer.server_timer begin
if d.select(get_server_timer_arg()) then
notice_multiline(string.format("Kalan zaman: %d dakika(lar)", 1),d.notice)
notice_multiline("Süre bitince kale'nin dışına atılacaksınız.",d.notice)
server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
end
end
when flame_dungeon_0m_left_timer.server_timer begin
local setting = flame_dungeon.setting()
if d.select(get_server_timer_arg()) then
notice_multiline("Size ayırılan süre doldu.10 Saniye[ENTER]içinde kale'nin kapıları sizin için açılacak.",d.notice)
notice_multiline("10 Saniye içinde herkes ışınlanacak.",d.notice)
server_timer("dungeon_end_timer",10,d.get_map_index())
end
end
when dungeon_end_timer.server_timer begin -- ?? ??? (??? ????)
local setting = flame_dungeon.setting()
if d.select(get_server_timer_arg()) then
flame_dungeon.clear_timer(d.get_map_index())
d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2])
d.exit_all()
end
end
when killed_A_1.server_timer begin -- ??? ???1 (level1,level3)
if d.select(get_server_timer_arg()) then
if d.count_monster() <= 0 then -- 1?? ??? ???
if d.getf("level") == 11 then
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
else
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
end
d.setf("level",0)
else
server_timer ("killed_A_2", 6, get_server_timer_arg())
end
end
end
when killed_A_2.server_timer begin -- ??? ???2 (1? 2 ?????? ???)
if d.select(get_server_timer_arg()) then
if d.count_monster() <= 0 then -- 1?? ??? ???
if d.getf("level") == 11 then
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
else
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
end
d.setf("level",0)
else
server_timer ("killed_A_1", 6, get_server_timer_arg())
end
end
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"] = {7762, 6739},-- ??? ?? ???? ?
["20385_bpos"] = {690,722},
["20385_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"] = {6142,7068}, --??????? ??? ?
["YAK_pos"] = {376, 397} -- ?? ??
}
end
function is_flamed(idx) -- ???? ??? ??
return (idx >= 351 * 10000 and idx < (351 + 1) *10000) or idx==351
end
function make_dungeon() -- ?? ???
local setting = flame_dungeon.setting()
d.new_jump(351, setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100)
d.regen_file("data/dungeon/flame_dungeon/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[1], setting.doors_pos[2],setting.doors_dir))
d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[1], setting.idoors_pos[2],setting.idoors_dir))
end
d.setf("clear_count",0)
d.setf("started",0)
pc.setf("flame_dungeon","dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??
end
function go_boss() -- ??? ??
local setting = flame_dungeon.setting()
if pc.get_level() < 90 then --????
say("Sizin seviyeniz devam etmek için yeterli değil.[ENTER]90.Seviyeye ulaştığınız zaman tekrar gelin.")
return
else
say("Kaderinle karşılaşmak için hazır mısın?")
local warp = select("Devam Et","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/flame_dungeon/".."fd_fild_boss.txt")
d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
end
end
end
function level_clear()
d.setf("level",0)
d.clear_regen()
d.purge_area(750000,620000,817400,689400)
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 ("killed_A_1", inx)
clear_server_timer ("killed_A_2", inx)
end
function map_index_compare()
if flame_dungeon.is_flamed(pc.getf("flame_dungeon","dungeon_index")) then
return (pc.getf("flame_dungeon","dungeon_index") == pc.getf("flame_dungeon","dungeon_index"))
end
end
function entry_setting()
local idx = pc.get_map_index()
local setting = flame_dungeon.setting()
if idx == 351 then
pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
elseif flame_dungeon.is_flamed(idx) then
if not flame_dungeon.map_index_compare() and pc.getf("flame_dungeon","dungeon_enter") == 1 then
pc.setf("flame_dungeon","dungeon_index", d.get_map_index())
end
------------------------------------------------------------------------------------------------------------------------------------------------------
--??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
--???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
------------------------------------------------------------------------------------------------------------------------------------------------------
-- pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
elseif not d.find(pc.getf("flame_dungeon","dungeon_index"))then
pc.setf("flame_dungeon","dungeon_index",0)
end
end
when login begin --
flame_dungeon.entry_setting()
local idx = pc.get_map_index()
if flame_dungeon.is_flamed(idx) and flame_dungeon.map_index_compare() then
d.setqf2("flame_dungeon","exit_time",get_global_time() + 60*60*1)
end
if flame_dungeon.is_flamed(idx) then
d.setqf2("flame_dungeon","exit_time",get_global_time() + 60*60*1)
end
end
when logout begin
local idx = pc.get_map_index()
if flame_dungeon.is_flamed(idx) and flame_dungeon.map_index_compare() then
d.setqf2("flame_dungeon","exit_time",get_global_time() + 60*60*1)
end
if flame_dungeon.is_flamed(idx) then
------------ Dungeon Turn Back System ----------------------
pc.setf("flame_dungeon","dungeon_turn",1)
------------------------------------------------------------
d.setqf2("flame_dungeon","exit_time",get_global_time() + 60*60*1)
end
end
when 20394.chat."Razadör Kulesi (Bireysel)" begin
addimage(35,35,'razador.tga')
if game.get_event_flag("enable_flame_dungeon") == 1 then
say_title_center(mob_name(20394))
say_center("")
say_center("")
say_center("")
say_center("")
say_center("")
say_center("Harita şuanda bakım modunda.")
say_center("")
return
end
if party.is_leader() or party.is_party() then
say("")
say("")
say("")
say("")
say("")
say_reward_center("Bu zindana grup halinde giremezsin")
say_reward_center("lütfen önce bulundugun grupdan ayril !")
return
end
--sys_log(0,"flame_dungeon quest open")
local setting = flame_dungeon.setting()
if (game.get_event_flag("enable_time_flame") == 1 and pc.getf("flame_dungeon","exit_time") >= get_global_time()) then
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Beta Server; süreyi sıfırlamak mı istiyorsun?")
say_center("Kalan süre: "..dungeon_get_duration(pc.getf("flame_dungeon","exit_time") - get_global_time()).."")
if select("Evet","Hayır") == 1 then
pc.setf("flame_dungeon","exit_time",0)
return
end
end
if pc.getf("flame_dungeon","exit_time") >= get_global_time() then
say_title_center(mob_name(20394))
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Soguma sureniz henuz dolmadi!")
say_center("Kalan süre: "..dungeon_get_duration(pc.getf("flame_dungeon","exit_time") - get_global_time()).."")
return
end
if pc.level < 90 then
say_title_center(mob_name(20394))
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Zindana giris icin seviyeniz yetersiz!")
return
end
if pc.count_item(71175) < 1 then
say_title_center(mob_name(20394))
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Envanterinde yeterli miktarda yok:")
say_center(string.format("%s.", item_name(71175)))
say("")
return
end
say_title_center(mob_name(20394))
addimage(35,35,'razador.tga')
say("")
say("")
say("")
say("")
say("")
say_center("Kırmızı Ejderha Kulesi'ne girmek için emin misin?")
local warp = select("Evet.","Belki daha sonra...")
if warp == 1 then
-- ------------ Dungeon Turn Back System ----------------------
-- pc.remove_turn_back_dungeon()
-- ------------------------------------------------------------
pc.remove_item(71175, 1)
flame_dungeon.make_dungeon()
end
pc.setf("flame_dungeon","flame_dungeon_boss_kill_count", 0)
end
when 20394.chat."TEST : Init time limit init" with is_test_server() begin -- ????
pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
say("Done")
end
when 20385.chat."Test : Boss Room" with is_test_server() begin -- ????
flame_dungeon.go_boss()
end
when 20385.chat."Am-heh Uyanış " with npc.lock() begin
local setting = flame_dungeon.setting()
if d.getf("started") == 0 then
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'STARTED')
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)
-- ???? ?????? ??? ??? exit timer? ???? ???? ????? ????? ????? ?
server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
notice_multiline("Kalan zaman: 60 Dakika(lar) ",d.notice)
notice_multiline("Süre dolduğunda disariya gönderileceksiniz.",d.notice)
pc.setf("flame_dungeon","dungeon_enter",1)
end
if d.getf("level") == 0 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("Şeytanlar kilitli kapının arkasında[ENTER]gidin ve onları mağlup edin.")
notice_multiline("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)
d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt")
server_timer ("killed_A_1", 12, d.get_map_index())
elseif d.getf("level") == 11 then
say("Bütün şeytanlar yenilmedi.")
say_title("Kalan: " .. d.count_monster())
elseif d.getf("level") == 2 then
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 2 started')
say("Altın Dişli Çarkı bul ve mührü aç.")
notice_multiline("Altın Dişli Çarkı ele geçirmek için yaratıkları öldür ve mührü aç.",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/flame_dungeon/".."fd_b.txt")
d.setf("level",12)
elseif d.getf("level") == 12 then
say("Altın dişli çark ile mührü açmadan ilerleyemezsin.")
elseif d.getf("level") == 3 then
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 3 started')
say("Tüm yaratıkları öldürün.[ENTER]Kaderinizi belirleyin.")
notice_multiline("Tüm yaratıkları öldürün ve kaderinizi belirleyin.",d.notice)
d.kill_unique("door3")
d.kill_unique("idoor3")
d.setf("level",13)
d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")
server_timer ("killed_A_1", 12, d.get_map_index())
elseif d.getf("level") == 13 then
say("Yaratıkların hepsi ölmedi.")
say_title("Kalan: "..d.count_monster())
elseif d.getf("level") == 4 then -- 474 178
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 4 started')
say("Devam edebilmek için, Ignator'u yok edin.")
d.notice("Gidin ve Ignatoru mağlup edin.")
d.setf("level",14)
d.kill_unique("door4")
d.kill_unique("idoor4")
d.set_regen_file ("data/dungeon/flame_dungeon/".."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 hala Yaşıyor.[ENTER]Kendinizi güclendirin ve tekrar deneyin.[ENTER]Ebedi lanetten temizlenin.")
elseif d.getf("level") == 5 then -- 510 355
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 5 started')
say("Maat Taş'larını bulunuz ve tek tek açın.")
notice_multiline("Maat Taşlarını bulunuz ve[ENTER]7 Maat Taşını sırasıyla ve doğru şekilde açınız.",d.notice)
d.kill_unique("door5")
d.kill_unique("idoor5")
d.setf("level",15)
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
local vis = { 0,0,0,0,0,0,0}
for i=1,7 do
vis = 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[1], setting.LEVEL5_STONE_pos[2]))
break
end
end
end
end
elseif d.getf("level") == 15 then
say("Ey Savaşcı! Gizemi Bulmak için [ENTER]doğru Secim yapın ve[ENTER]görev yerine gelin.")
elseif d.getf("level") == 6 then -- 507 490
say("Sıcak ve korku dolu [ENTER]Cehennem Ateşi Metin Taşı'nı bulun ve yok edin.")
notice_multiline("Sıcak ve korku dolu [ENTER]Cehennem Ateşi Metin taşını bulun ve yok edin.",d.notice)
d.setf("level",16)
d.kill_unique("door6")
d.kill_unique("idoor6")
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt")
d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??
elseif d.getf("level") == 16 then
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'LEVEL 6 started')
say("Cehennem Ateşi Metini Henuz yok edilmedi.[ENTER]Görev Tamamlanınca Tekrar Gel.")
elseif d.getf("level") == 7 then
flame_dungeon.go_boss()
else
say("Geçersiz Parametre Yöneticiye Bildirin!")
end
npc.unlock()
end
when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin
local i = number(1, 20)
if i == 1 then
game.drop_item (30329, 1)
end
end
when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin
local i = number(1, 3)
if i == 1 then
npc.purge()
item.remove()
notice_multiline("Maat mekanızmasını açıldı,",d.notice)
notice_multiline("Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
else
item.remove()
say("Bu parça yanlış yok oldu.[ENTER]Doğru Altın Dişli Çarkı bul.")
end
end
when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
notice_multiline("Tebrikler!.. Ignator yok edildi.",d.notice)
notice_multiline("Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
end
when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin
local i = number(1, 6) -- 30?? 1 ??? ????
if i == 1 then
game.drop_item (30330, 1)
end
end
when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin
local setting = flame_dungeon.setting()
if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
npc.purge()
item.remove()
say("Bu akıllıca bir seçim oldu.[ENTER]Şimdi diğerlerinide yok et.")
d.setf("stonekill",2) -- 2? ?? ???
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."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 oldu.[ENTER]Şimdi diğerlerinide yok et.")
d.setf("stonekill",3)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı yok oldu.")
if is_test_server() then
say("2")
end
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 oldu.[ENTER]Şimdi diğer mühürleri yok et.")
d.setf("stonekill",4)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("3")
end
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 oldu.[ENTER]Şimdi diğer mühürleri yok et.")
d.setf("stonekill",5)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("4")
end
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 oldu.[ENTER]Şimdi diğer mühürleri yok et.")
d.setf("stonekill",6)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("5")
end
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.[ENTER]Şimdi son mührü yok et.")
d.setf("stonekill",7)
if d.count_monster() < 100 then
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
end
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("6")
end
end
else
if d.getf("stonekill") == 7 then
npc.purge()
item.remove()
notice_multiline("Maat taşları yok edildi!",d.notice)
notice_multiline("Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
--d.kill_all_mob()
d.kill_all()
else
item.remove()
say("Yanlış seçim. Maat Taşı Yok Oldu.")
if is_test_server() then
say("7")
end
end
end
end
when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', '8057 KILLED')
notice_multiline("Araf Metini Yok Edildi.",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
--d.kill_all()
flame_dungeon.level_clear()
d.kill_all()
end
when 6091.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin
char_log(pc.get_channel_id().. ''..d.get_map_index(), 'BP', 'BOSS KILLED')
notice_all("Razador "..pc.get_name().." tarafından yok edildi.")
notice_multiline("Ejderha Tapınağı içindeki Tüm Savaşcılar [ENTER]Bir dakika içerisinde ışınlanacaktır.",d.notice)
d.notice("Razadör yok edildi.")
d.notice("Bütün savaşçılar 60 saniye içerisinde Ejderha")
d.notice("Tapınağı'ndan dışarı ışınlanacak.")
server_timer("dungeon_end_timer", 60,d.get_map_index())
flame_dungeon.level_clear()
d.setf("level",8)
end
end
end
[/CODE]
[CODE title="Bu yeni eklediğim tek kat zindan razadör (geri sayım yapmayan)"]quest flame_dungeon begin
state start begin
function setting()
return
{
["base"]={["x"] = 3072 , ["y"]= 12032 ,},
["floor1_s"] = { ["x"] = 20, ["y"] = 20, },
["floor1_e"] = { ["x"] = 500, ["y"] = 470,},
["floor2_s"] = { ["x"] = 510, ["y"] = 18, },
["floor2_e"] = { ["x"] = 978, ["y"] = 470,},
["floor1_entry"] = {["x"] = 73, ["y"] = 63,},
["floor2_entry"] = {["x"] = 550, ["y"] = 45,},
["floor3_entry"] = {["x"] = 1378, ["y"] = 249,},
["floor4_entry"] = {["x"] = 70, ["y"] = 592,},
["floor5_entry"] = {["x"] = 846, ["y"] = 898},
["floor6_entry"] = {["x"] = 1362, ["y"] = 666},
["water_entry"] = {["x"] = 73, ["y"] = 1156},
["map_idx"] = 215,
["rag"] = 30311,
["devil_king"] = 2591,
["reapers_credit1"] = 31324,
["reapers_credit2"] = 30320,
["reapers_credit3"] = 76002,
["reapers_credit4"] = 79001,
["floor3_stone"] = 8038,
["floor3_stone_pos"] = {
{1366, 150},
{1366, 351},
{1234, 365},
{1234, 140},
{1150, 135},
{1130, 365},
{1135, 253}
},
["mob_regen_file_path"] = "data/dungeon/devilwater/",
["floor4_regen_file"] = {"devilwater_floor4_regen1.txt",
"devilwater_floor4_regen2.txt",
"devilwater_floor4_regen3.txt",
"devilwater_floor4_regen4.txt",
"devilwater_floor4_regen5.txt"} ,
["credit_stone"] = 30101,
["credit_stone_pos"] = {307,323},
["floor2_stone"] = 30103,
["floor2_stone_pos"] = {741,217},
["floor2_merchant_npc"] = 20368,
["floor2_merchant_npc_pos"] = {734,214},
["floor4_npc"] = 30104,
["floor4_npc_pos"] = {75, 592},
["devil_king_pos"] = {{673,829},{691,638},{848,568},{1026,642},{1008,862}},
["unlock_stone"] = 30312,
["floor5_stone"] = 30102,
["floor5_stone_pos"] = {848, 735},
["devil_great_king"] = 2597 ,
["devil_great_king_pos"] = {1303,704},
["devil_emperor"] = 3964,
["devil_emperor_pos"] = {74,1103},
["dc2_door_set_size"] = {4,2,3,2},
["dc2_door_set1"] = {
{{30111, 566, 117, 5},{30112, 562, 311, 5,},{30118, 663, 434, 7},{30119, 881, 434, 7}},
{{30116, 743, 390, 3},{30119, 612, 251, 1,}},
{{30113, 654, 211, 5},{30111, 707, 338, 7,},{30112, 775, 336, 7}},
{{30117, 733, 294, 3},{30113, 694, 271, 1,}}
},
["dc2_door_set2"] = {
{{30115, 942, 141, 5},{30116, 942, 245, 5},{30117, 942, 321, 5},{30115, 763, 64, 7}},
{{30118, 643, 116, 3},{30114, 900, 167, 1}},
{{30114, 850, 293, 5},{30113, 715, 164, 7},{30114, 817, 162, 7}},
{{30111, 802, 277, 1},{30112, 800, 241, 1}}
},
}
end
when logout begin
local idx = 351
local map = pc.get_map_index()
if map >= (idx * 10000) and map < (idx * 10000 + 9000) then
pc.setf("razo","dungeon_time",get_global_time() + 60*60*1)
end
end
when 20394.chat."Kırmızı Ejderha Kalesi(90.Seviye)" begin
local setting = flame_dungeon.setting()
if pc.get_level() < 90 then
say_title("Bekci:")
say("")
say("90. seviyenin altinda oldugun icin ")
say("zindana giremezsin...")
return
end
if pc.count_item(71175) < 1 then
say_item_vnum(71175)
say("Gerekli esya olmadan giris yapamazsin.")
return
end
if party.is_party() then
say("Grubun varken giris yapamazsin.")
return
end
if pc.getf("razo","dungeon_time") > get_time() and not pc.is_gm() then
say_npc()
say("")
say("Henüz odaya giremezsin.")
say("Bekleme süren dolunca tekrar gel.")
say("")
say_reward("Kalan Süre : "..LIB_duration(pc.getf("razo","dungeon_time")-get_time()))
return
end
say_title("Bekci:")
say("")
say("zindana girmek istiyor musun?")
local s = select("Evet!","Hayir,girmek istemiyorum.")
if s == 1 then
pc.remove_item(71175,1)
timer("razo_sologiris",2)
else
return
end
end
when razo_sologiris.timer begin
d.new_jump(351, 8109 * 100, 6867 * 100)
d.spawn_mob_dir(6091,682,636,1)
--d.set_regen_file("data/dungeon/water_dungeon_regens/boss.txt")
--d.jump_all (setting.water_entry.x + setting.base.x, setting.water_entry.y + setting.base.y )
--water.Temizle()
server_timer("razo_timeup",60*30*1,d.get_map_index())
end
-- 6Ãş°ú ¸¶Âù°¡Áö·Î »ç¸¶ÈÖ(3964)ÀÌ Á×À¸¸é
-- 7ÃşÀÇ Å¸À̸Ӱ¡ ÀÛµ¿ÇÑ´Ù.
when kill with npc.get_race() == 6091 begin
d.setf("razo_dead",1)
--notice_all(pc.get_name().."'s party has defeated Lord Gahnasel!")
notice_all("|cff00ff00 Patron Avcısı "..pc.get_name().." grubu, Razödor'u Mağlup etti!")
server_timer ("razo_eli_check_timer_1", 3, d.get_map_index())
end
-- 7ÃşÀÇ Å¸À̸Ӵ 6Ãş ŸÀÌ¸Ó¿Í ºñ½ÁÇϸç,
-- ¸ó½ºÅÍ ¼ıÀÚ°¡ 0À̸é exit ŸÀ̸Ӹ¦ ¹ß»ı½ÃŲ´Ù.
-- ¹Ù·Î exitÇÏÁö ¾Ê´Â ÀÌÀ¯´Â, À¯Àúµé¿¡°Ô ÁغñÇÒ ½Ã°£À» ÁÖ±â À§ÇؼÀÌ´Ù.
when razo_eli_check_timer_1.server_timer begin
if d.select(get_server_timer_arg()) then
d.set_warp_location (62, 5990, 7070)
--say_in_map(get_server_timer_arg(),"Azrail yenildi. ?ytan Katakombu'na nihayet[ENTER]huzur hakim. ?mdi yer y??e ış?lanacaks?. ")
server_timer ("razo_eli_check_timer_2", 3, get_server_timer_arg())
end
end
when razo_eli_check_timer_2.server_timer begin
if d.select(get_server_timer_arg()) then
d.set_warp_location (62, 5990, 7070)
--say_in_map(get_server_timer_arg(),"Azrail yenildi. ?ytan Katakombu'na nihayet[ENTER]huzur hakim. ?mdi yer y??e ış?lanacaks?. ")
server_timer("razo_exit_timer", 62, get_server_timer_arg())
else
server_timer ("razo_eli_check_timer_1", 3, get_server_timer_arg())
end
end
when razo_timeup.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Zaman doldu.")
d.setf("sure_doldu",1)
d.exit_all()
end
end
when razo_exit_timer.server_timer begin
if d.select(get_server_timer_arg()) then
clear_server_timer("razo_eli_check_timer_1", get_server_timer_arg())
clear_server_timer("razo_eli_check_timer_2", get_server_timer_arg())
clear_server_timer("razo_sologiris", get_server_timer_arg())
d.clear_regen()
d.exit_all()
end
end
end --state
end --quest
[/CODE]
Nasıl çözebilirim arkadaşın bile questflag falan demiş anlamadım.
Ekli dosyalar
Son düzenleme: