- Mesaj
- 59
- Çözümler
- 2
- Beğeni
- 11
- Puan
- 424
- Ticaret Puanı
- 0
ŞEYTAN KULESİ 9 KAT VE BEN 6.KATTAN BAŞLATMAK İSTİYORUM QUESTİ NASIL AYARLIYABİLRİM BİLGİSİ OLAN VARMI YADA ELİNDE HAZIR OLAN PAYLAŞABİLİR Mİ
quest deviltower_zone begin
state start begin
when login begin
if pc.get_map_index() == 66 then
-- Nicht in einer Etage, die wieder nach drau¡¼n .
-- Layer Aralığı
-- 1F 88 577 236 737
-- 2F 91 343 238 504
-- 3F 104 107 248 269
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
pc.warp((5376+532)*100, (512+596+4)*100, 65)
end
pc.set_warp_location(65, 5376+532, 512+596+4)
elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
pc.set_warp_location(65, 5376+532, 512+596+4)
end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
if pc.get_level() < 40 then
say(locale.deviltower_man_say_you_cant)
else
say(locale.deviltower_man_say)
local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
if s == 1 then
-- warp into!
pc.removeitem("30300", 100)
pc.warp(216500,727000)
end
end
end
when devil_stone1.kill begin
timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
local mapto7= pc.count_item(30302) -- Ich weiß nicht, das wahre Tilgung der die Existenz der Seele des Turms
pc.remove_item(30302,mapto7)
local boxto7= pc.count_item(30300) -- Beseitigung des unbekannten weiß nicht, ob es sich um ein Feld
pc.remove_item(30300,boxto7)
d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
--d.set_exit_all_at_eliminate(6)
--d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
--d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
d.check_eliminated()
--d.exit_all()
end
function get_4floor_stone_pos()
local positions = {
{368, 629},
{419, 630},
{428, 653},
{422, 679},
{395, 689},
{369, 679},
{361, 658},
}
for i = 1, 6 do
local j = number(i, 7)
if i != j then
local t = positions[i];
positions[i] = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- positions[i][1] = positions[i][1] * 100
-- positions[i][2] = positions[i][2] * 100
-- end
return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.setf("level", 4)
-- Canavarlar ¡¼ Yeniden Gelcek Hiç Durmadan
--d.regen_file("data/dungeon/deviltower4_regen.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[i][1], positions[i][2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
end
chat(positions[7][1], positions[7][2])
local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
chat(vid)
d.set_unique("real", vid)
server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())
d.notice("Bu 4. Seviye,");
d.notice("Metinleri Kesmelisin");
d.notice("15 Dakikan Var");
d.notice("Aksi Taktirde Dışarı Atılacaksın.");
end
when devil_stone4_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("10 Dakika Kaldı!")
server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("5 Dakika Kaldı!")
server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone4_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Süre Bitti!!!!!!")
d.exit_all()
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
end
when devil_stone4_update.server_timer begin
if d.select(get_server_timer_arg()) then
if not d.is_unique_dead("real") then
for i = 1, 6 do
if d.getf("fakedead" .. i) == 0 then
if d.unique_get_hp_perc("fake" .. i) < 50 then
d.purge_unique("fake" .. i)
d.setf("fakedead" .. i, 1)
d.notice("Sahte Metin Kesildi.");
end
end
end
else
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
server_timer("devil_stone4_end", 5, get_server_timer_arg())
d.notice("Tebrikler Dogru Metini Kestiniz");
d.notice("Şimdi Kat Atlayacaksın,Sakın Kıpırdama.")
clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
clear_server_timer('devil_stone4_fail', get_server_timer_arg())
end
else
server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
end
end
when devil_stone4_stop_timer.server_timer begin
clear_server_timer('devil_stone4_update', get_server_timer_arg())
end
when devil_stone4_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("level", 5)
d.setf("stone_count", 5)
d.notice("5. Kata Hoş Geldin")
d.notice("Tüm Canavarları Öldürüp Kilit Anahtarını Alıp Mühürleri Açacaksın")
d.notice("Sonraki Kata Geçebilmek için Bunlari Yapman Sart")
d.notice("Mühürler Sadece Anahtarla Açılır (20 Dakikan Var)")
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
clear_server_timer('devil_stone4_update', get_server_timer_arg())
-- 5. Stock, weiter zu reproduzieren
d.set_regen_file("data/dungeon/deviltower5_regen.txt")
-- 5. Stock, Seal Stone Reproduktion
d.spawn_mob(20073, 421, 452)
d.spawn_mob(20073, 380, 460)
d.spawn_mob(20073, 428, 414)
d.spawn_mob(20073, 398, 392)
d.spawn_mob(20073, 359, 426)
end
end
when devil_stone5_fail1.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("15 Dakikan Kaldı!")
server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail2.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("10 Dakikan Kaldı!")
server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail3.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("5 Dakikan Kaldı!!!!")
server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
end
end
when devil_stone5_fail.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Süre Bitti!!!!!!.")
d.exit_all()
end
end
--when devil_stone4.kill begin
--d.setf("level", 5)
--d.setf("stone_count", 4)
--d.clear_regen()
--d.regen_file("data/dungeon/deviltower5_regen.txt")
--d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end
when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
local KILL_COUNT_FOR_DROP_KEY = 50
--if is_test_server() then
--KILL_COUNT_FOR_DROP_KEY = 1
--end
local n =d.getf("count") + 1
d.setf("count", n)
if n == KILL_COUNT_FOR_DROP_KEY then
-- Falling Tasten
game.drop_item(50084, 1)
d.setf("count", 0)
end
end
when devil_stone5.take with item.vnum == 50084 begin
npc.purge()
item.remove()
d.setf("stone_count", d.getf("stone_count") - 1)
if d.getf("stone_count") <= 0 then
d.setf("level", 6)
d.clear_regen()
d.regen_file("data/dungeon/deviltower6_regen.txt")
d.notice("Tebrikler Bütün Mühürleri Açtın")
d.notice("Şimdi BİR Sonraki Kata Çıkacaksın")
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
clear_server_timer('devil_stone5_fail', get_server_timer_arg())
else
d.notice("Säule entfernt... Noch "..d.getf("stone_count").." Viel Glück")
end
end
when devil_stone6.kill begin
-- Bir Harita Bulacaksın.
-- Aksi Takdirde Kuleden Atılacaksın
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end
--------------------------------------
-- 7 D kommt man aus dem Zugriff vor dem 8. Stock
--------------------------------------
when 20074.chat."Üst Katlar" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20074).."")
say("Devam Edecekmisiniz")
say("Çok Zor Olacak")
say("Ben Hep Burdayım 7/24 :D")
say("")
wait()
if pc.level >=85 then
say("Sen En En Büyüksün.")
say("Ama Cesur musun?")
say("Yalnız Çıkma Yoksa Rahat ölürsün.")
timer("devil_jump_7", 6)
return
end
say("Sen Ne Yazıkki Henüz")
say("Daha Yükselemeyeceksin")
say("Biraz Sonra Geri Gideceksin.")
say("İyi Şanslar.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20075.chat."Üst Kat İçin .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20075).."")
say("Devam Edecekmisin")
say("Çok Zor Olacak")
say("Ben Hep Buralardayim.")
say("")
wait()
if pc.level >=85 then
say("Sen En Büyüksün")
say("Ama Cesur Musun?")
say("Yalnız Çıkma Sakın Yoksa Rahat Ölürsün")
timer("devil_jump_7", 6)
return
end
say("Sen Ne yazıkkı ")
say("Daha Yükselemezzin")
say("Biraz Sonra...")
say("İyi Şanşlar")
say("")
wait()
pc.warp(590500, 110500)
return
end
when 20076.chat."Üst Kat İçin .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
say(""..mob_name(20076).."")
say("Devam Edecekmisin")
say("Çok Zor Olacak")
say("Ben Hep Buralardayim.")
say("")
wait()
if pc.level >=85 then
say("Sen En Büyüksün")
say("Ama Cesur Musun?")
say("Yalnız Çıkma Sakın Yoksa Rahat Ölürsün")
timer("devil_jump_7", 6)
return
end
say("Sen Ne yazıkkı ")
say("Daha Yükselemezzin")
say("Biraz Sonra...")
say("İyi Şanşlar.")
say("")
wait()
pc.warp(590500, 110500)
return
end
when devil_jump_7.timer begin
d.clear_regen()
d.spawn_mob(8018, 639, 658)
d.spawn_mob(8018, 611, 637)
d.spawn_mob(8018, 596, 674)
d.spawn_mob(8018, 629, 670)
d.setf("level", 7)
d.jump_all(2048+590, 6656+638)
end
when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local cont = d.getf("7_stone_kill") + 1
d.setf("7_stone_kill", cont)
if cont >= 4 then
d.setf("7_stone_kill", 0)
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
end
end
when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
game.drop_item(30300, 1)
end
when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
pc.remove_item("30300", 1)
local pct = number(1,10)
if pct == 1 then
-- Fall wahr Karte
game.drop_item(30302, 1)
d.clear_regen()
else
-- Fall wahr Karte
game.drop_item(30301, 1)
end
end
when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
-- An der 8th Floor
say("Gerçek Haritayı Buldun İyi Şanslar.")
pc.remove_item("30302", 1)
timer("devil_jump_8", 6)
d.clear_regen()
end
--------------------------------------------
-- Von 8 F vor der Ankunft geben Sie die 9 F
--------------------------------------------
when devil_jump_8.timer begin
d.setf("level", 8)
d.jump_all(2048+590, 6656+403)
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
d.spawn_mob(20366, 640, 460)
local _count= pc.count_item(30302)-- True Tilgung Dead Turm
pc.remove_item(30302,_count)
end
when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
local pct1 = number(1, 5)
if pct1 == 1 then
local pct2 = number(1, 10)
if pct2 == 1 then
-- Fall wahre Schl¡¼sel
game.drop_item(30304, 1)
else
-- Keys fiel
game.drop_item(30303, 1)
end
else
return
end
end
when 20366.take with item.vnum == 30304 begin
-- 9 F-Zeichen aufgehoben
npc.purge()
item.remove()
timer("devil_jump_9", 6)
end
---------------------------------------------
-- 9 F ein Ende, indem Sie
---------------------------------------------
when devil_jump_9.timer begin
d.setf("level", 9)
d.jump_all(2048+590, 6656+155)
d.regen_file("data/dungeon/deviltower9_regen.txt")
end
when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
d.kill_all()
timer("devil_end_jump", 60)
end
when devil_end_jump.timer begin
d.exit_all()
end
end
end
else
say_title("Şeytan Kulesi Gardiyanı:")
say("Şeytan kulesine girmek istiyor musun ?")
say("2. Kattan devam etmek isterseniz 50M Yang ödemelisiniz.")
local s = select("Gir.", "2.Kat'a Giriş Yap.", "Vazgeç.")
if s == 1 then
pc.warp(216500,727000)
elseif s == 2 then
if pc.get_money() < 50000000 then
say("Hay Aksi!")
say("Envanterine 50M yang olmadan seni içeri alamam.")
say("50M yang yaptığında tekrar uğra.")
else
pc.change_money(-50000000)
d.new_jump(66, special.devil_tower[1][1] * 100, special.devil_tower[1][2] * 100)
d.regen_file("data/dungeon/deviltower2_regen.txt")
d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
elseif s == 3 then
return
end
end
Şeytan Kulesinin 7.Kattında başlamak için yapılması Gereken Kodlar altaki sıralanmış şekildedir.
-- asenis_dungeon_75
quest dungeon_kule begin
state start begin
---------------------------------------------------------------------------------------------------------FUNCTIONS START
function isSystemOpen() return (game.get_event_flag("dungeon_kule_sys")!=1) end
function testMode() return false end
function is_this_dungeon()
if not pc.in_dungeon() then return false end
local set = dungeon_kule.getSetting()
return (d.get_orig_map_index()==set.map_index)
end
function isOutside()
local set = dungeon_kule.getSetting()
return (pc.get_map_index()==set.out_map_index)
end
function isValidCahnnel(ch) return true end
function check_pc(ctype) -- remove items!
local set = dungeon_kule.getSetting()
local needs = set.needs
if ctype == 1 then
if pc.get_level() < needs[2] then return 2 end
if needs[3] < pc.get_level() then return 3 end
if pc.get_gold() < needs[1] then return 4 end
if pc.is_busy() then return 6 end
return 1
elseif ctype == 2 then
if pc.is_busy() then return false end
pc.change_gold(-needs[1])
return true
end
end
function getSetting()
return {
["map_index"] = 613,
["base_coor_local"] = {155, 101},
["out_map_index"] = 65,
["out_coor_local"] = {529, 597},
["open_time"] = 60*15,
["remain_time"] = 1800,
["needs"] = {0, 75, 120, 0, 1},
--Level 1
["boss_lib"] = {1093, 109, 141}
}
end
function sendRemainWhisper()
local set = dungeon_kule.getSetting()
local rem = (set.remain_time+pc.getqf("dungeon_kule_time"))-get_global_time()
if rem > 0 then timer("Whisper_Kule", rem) end -- V4
end
---------------------------------------------------------------------------------------------------------FUNCTIONS END
---------------------------------------------------------------------------------------------------------LOGIN-LOGOUT START
when login begin
local pindex = pc.get_map_index()
clear_letter()
local set = dungeon_kule.getSetting()
if pindex == set.map_index then
if pc.get_local_x() < 160 and pc.get_local_y() > 910 then
warp_to_village()
else
dungeon_kule.sendRemainWhisper()
end
elseif dungeon_kule.is_this_dungeon() then
if not d.is_registered_pc() then
warp_to_village()
return
end
else
dungeon_kule.sendRemainWhisper()
end
end
---------------------------------------------------------------------------------------------------------LOGIN-LOGOUT END
---------------------------------------------------------------------------------------------------------NPC START
when 20348.chat."Beni içeri gönder..." with dungeon_kule.isValidCahnnel(pc.get_channel_id()) and dungeon_kule.isOutside() begin
if not dungeon_kule.isSystemOpen() then
setskin(0)
syschat("Sistem, yönetici tarafından kapatılmıştır.")
return
end
if (game.get_event_flag("dungeon_channel_login") == 1) then
if pc.get_channel_id() != 1 then
say("Zindanlara 1. kanal üzerinden giriş yapılabilir. ")
return
end
end
say_title("Merhabalar "..pc.get_name())
say("")
local set = dungeon_kule.getSetting()
-- Remain Time Disabled -- --
local remainTime = pc.getqf("dungeon_kule_time")+set.remain_time-get_global_time()
if remainTime>0 then
say("Bir oda açtıktan sonra toplam "..LIB_duration(set.remain_time).."beklemelisin.")
say("")
say("Tekrar oda açman için kalan bekleme süren: "..LIB_duration(remainTime))
say("")
wait()
return
end
say_reward("Gerekenleri sagliyorsaniz direkt odaya isinlanacaksiniz!")
setskin(0)
local control = dungeon_kule.check_pc(1)
if control == 1 then
if not dungeon_kule.check_pc(2) then return end
local x = get_map_base_x(set.map_index)+set.base_coor_local[1]*100
local y = get_map_base_y(set.map_index)+set.base_coor_local[2]*100
d.new_jump(set.map_index, x, y, true)
d.register_pc()
-- Remain Time -- --
pc.setqf("dungeon_kule_time", get_global_time())
d.setf("level", 1)
d.setf("creator", pc.get_player_id())
local blib = set.boss_lib
d.spawn_mob(blib[1], blib[2], blib[3])
return
elseif control == 2 then
syschat("<Giris Kontrolü> Oda kurmak için leveliniz yeterli degil.")
return
elseif control == 3 then
syschat("<Giris Kontrolü> Oda kurmak için leveliniz çok fazla.")
return
elseif control == 4 then
syschat("<Giris Kontrolü> Oda kurmak için yeterli yanginiz bulunmuyor.")
return
elseif control == 5 then
syschat("<Giris Kontrolü> Oda kurmak için gerekli nesneye/nesne sayısına sahip değilsiniz.")
return
elseif control == 6 then
syschat("<Giris Kontrolü> Ticaret pencerelerini kapatmalisiniz.")
return
end
end
when Whisper_Kule.timer begin -- V4
send_whisper(pc.get_player_id(), "[Zindan Bilgilendirme]", "Şeytan Kulesi Zindanı'ndaki bekleme süreniz dolmuştur, tekrar oda açabilirsiniz.")
end
when 20348.chat."GM:: Bekleme Süresi Sıfırla" with pc.is_gm() and dungeon_kule.isValidCahnnel(pc.get_channel_id()) and dungeon_kule.isOutside() begin
setskin(0)
pc.delqf("dungeon_kule_time")
cleartimer("Whisper_Kule") -- V4
end
when 1093.kill with dungeon_kule.is_this_dungeon() and d.getf("level") == 1 begin
d.setf("level", 0)
-- if d.getf("notSelf") == 1 then notice_all(pc.get_name().." ve odasındakiler, Korku Zindanı Başkanı'nı öldürdü!")
-- else notice_all(pc.get_name()..", Korku Zindanı Başkanı'nı tek başına öldürdü!")
-- end -- V3
d.big_notice("3 dakika sonra oda kapatılacak!")
----d.exit_all2(60*3)
timer('exit_d_kule', 60*3)
end
when exit_d_kule.timer begin
d.exit_all_to_start_position()
end
end
end