Ofical kırmızı ejderha kalesi questi

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 68

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
[TABLE=full][TR][TD]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
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 = flame_dungeon.setting()
d.new_jump_party(351, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
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))
end
for i=1,6 do
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)
d.setf("dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??
d.setf("counter_11", 180)
d.setf("counter_13", 180)
end
function go_boss() -- ??? ??
local setting = flame_dungeon.setting()
if pc.get_level() < 104 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("Será que você quer avançar[ENTER]para conhecer o seu destino?")
local warp = select("Avançar","Talvez mais tarde")
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
--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 = 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 -- ?? ??, ??? ?? ??
------------------------------------------------------------------------------------------------------------------------------------------------------
--??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.
--???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.
------------------------------------------------------------------------------------------------------------------------------------------------------
--pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????
local ticketGroup = {71175, 1}
if d.getf("dungeon_enter") == 0 then -- ???? ???
local canPass = false
for i=1, table.getn(ticketGroup),2 do
if pc.count_item(ticketGroup) >= ticketGroup[i+1] then
canPass = true
break
end
end

if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then -- ??????? ????
notice_multiline(" İç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_multiline("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("Eu posso deixar você entrar se[ENTER]você tiver em posse de um passe.")
timer("flame_dungeon_warp_timer", 5)
elseif pc.get_level() < 100 then
notice_multiline("Grubun tüm üyelerinin 100.seviyede[ENTER]olması gereklidir.Aksi takdirde[ENTER]devam edemezsiniz.",d.notice)
say("Devam edebilmek için tüm grup üyelerinin,[ENTER]100.Seviye'ye ulaşmış olması gerekli.")
timer("flame_dungeon_warp_timer", 5)
end
elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ????? ??? ???????

for i=1, table.getn(ticketGroup),2 do
if pc.count_item(ticketGroup) >= ticketGroup[i+1] then
pc.remove_item(ticketGroup, ticketGroup[i+1])
break
end
end
pc.setf("flame_dungeon","ticket_delete",1)
end
else
pc.setf("flame_dungeon","ticket_delete",0)
end
end
when flame_dungeon_warp_timer.timer begin
local setting = flame_dungeon.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 flame_dungeon.is_flamed(idx) then
if d.getf("dungeon_enter") == 1 then -- ???? ?? ?? ? ????
pc.setf("flame_dungeon","exit_time",get_global_time()) -- ???? ???? ??? ??? ??, ?? ???? ??? or ?? ???? ???
end


end
end
when 20394.chat."Kırmızı Ejderha Kulesi" begin

local setting = flame_dungeon.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("flame_dungeon","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 = {71175, 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 < 100 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]100.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
flame_dungeon.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 20394.chat."Test : Işınla " with pc.is_gm() begin -- ????
local setting = flame_dungeon.setting()
pc.setf("flame_dungeon","fdRtest",1)
pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, 351)
end


when 20394.chat."TEST : Süreyi değiştir " with pc.is_gm() begin -- ????
pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
say("Geri")
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("flame_dungeon","exit_time"))
say("gerçek zaman : "..get_global_time())
if flame_dungeon.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 20385.chat." Örnegi etkinleştir " with pc.is_gm() begin -- ????
say("??? ???")
flame_dungeon.clear_timer(d.get_map_index())
flame_dungeon.make_dungeon()
end
when 20385.chat."Test : Patron odası " with pc.is_gm() begin -- ????
flame_dungeon.go_boss()
end

when 20385.chat."Test et" with pc.is_gm() begin -- ???? ??? ?? ? ?? ???
local setting = flame_dungeon.setting()
say("??? ????????")
local warp = select("Evet","Hayır")
if warp == 1 then
pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
end
end
when flame_dungeon_45m_left_timer.timer begin
notice_multiline(string.format("Kalan zaman: %d dakika(lar)", 45),d.notice)
notice_multiline("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_multiline(string.format("Kalan zaman: %d dakika(lar)", 30),d.notice)
notice_multiline("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_multiline(string.format("Kalan zaman: %d dakika(lar)", 15),d.notice)
notice_multiline("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_multiline(string.format("Kalan zaman: %d dakika(lar)", 5),d.notice)
notice_multiline("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_multiline(string.format("Kalan zaman: %d dakika(lar)", 1),d.notice)
notice_multiline("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 = flame_dungeon.setting()
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)
timer("exit_dungeon",10)
end


when 20385.chat." Am-heh Uyanış " with npc.lock() begin -- '0x'? x?? ?? ??? ?? ? ?? ?? , '1x'? x?? ?? ??? ???
local setting = flame_dungeon.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_multiline("Kalan zaman: 60 Dakika(lar) ",d.notice)
notice_multiline("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 = {71175, 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("flame_dungeon","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("Missão: Aventure-se no anel de demônios[ENTER]e surja como vencedor.")
notice_multiline("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/flame_dungeon/".."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("Tarefa: Encontre a engrenagem de ouro,[ENTER]substituindo o mecanismo oculto[ENTER]na estela de Isfet.")
notice_multiline("Tarefa: Encontre a engrenagem de ouro, substituindo [ENTER] o mecanismo oculto na estela de Isfet.",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("O mecanismo na estela de Isfet só pode ser[ENTER]acionado com a roda de engrenagem de ouro.[ENTER]Volta quando a tarefa foi cumprida.")
elseif d.getf("level") == 3 then
say("Missão: Aventure-se no anel de demônios e[ENTER]surja como vencedor.")
notice_multiline("Missão: Aventure-se no anel de demônios e[ENTER]surja como vencedor.",d.notice)
d.kill_unique("door3")
d.kill_unique("idoor3")
d.setf("level",13)
local counter_13 = 180
d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")
elseif d.getf("level") == 13 then
say("Não foram derrotados todos os demônios.")
say_title("Restantes: ", counter_13)
elseif d.getf("level") == 4 then -- 474 178
say("Tarefa: Derrote Ignator, guarda das brasas.")
notice_multiline("Tarefa: Derrote Ignator, guarda das brasas.",d.notice)
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 ainda não foi derrotado.[ENTER]Fortaleça-se ou receberá a condenação eterna.[ENTER]Volte se a tarefa for cumprida.")
elseif d.getf("level") == 5 then -- 510 355
say("Missão: Procurar as Pedras de Maat e coloca-as[ENTER]na ordem correta nas 7 estelas de Isfet.")
say("Se usares a Pedra de Maat na estela errada,[ENTER]a pedra irá partir-se.")
notice_multiline("Missão: Procurar as Pedras de Maat e coloca-as[ENTER]na ordem correta nas 7 estelas de Isfet.",d.notice)
notice_multiline("Se usares a Pedra de Maat na estela errada,[ENTER]a pedra irá partir-se.",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("Errar é humano! Portanto, escolha com sabedoria[ENTER]para resolver o mistério. Volte se a tarefa[ENTER]for cumprida.")
elseif d.getf("level") == 6 then -- 507 490
say("Tarefa: Só quem não tem medo do calor abrasador,[ENTER]irá destruir a Metin do purgatório.")
notice_multiline("Tarefa: Só quem não tem medo do calor abrasador,[ENTER]irá destruir a Metin do purgatório.",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
say(" ")
say("Vamos colocar a Metin do purgatório em cinzas.[ENTER]Volta se a tarefa for cumprida.")
elseif d.getf("level") == 7 then
flame_dungeon.go_boss()
else
say(" ")
end
npc.unlock()
end

when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 11 begin -- 2?? ??? ?? ??
if d.getf("counter_11") == 0 then -- 1?? ??? ???
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
else
d.setf("counter_11",d.getf("counter_11")-1)
end
end

when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 13 begin -- 2?? ??? ?? ??
if d.getf("counter_13") == 0 then -- 1?? ??? ???
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
else
d.setf("counter_13",d.getf("counter_13")-1)
end
end

when kill with flame_dungeon.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 flame_dungeon.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_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)
flame_dungeon.level_clear()
else
item.remove()
say("Esta peça é falsa e foi destruida.[ENTER]Procura a original.")
end
end

when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
notice_multiline("Bütün şeytanları yendiniz,",d.notice)
notice_multiline("Yeni görev için 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 -- 5?? ??? ?? ??
local i = number(1, 30) -- 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 -- 5?? ???? ????
local setting = flame_dungeon.setting()
if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????
npc.purge()
item.remove()
say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")
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("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")
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("Ordem errada. A Pedra de Maat foi destruída.")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
if d.getf("stonekill") == 3 then
npc.purge()
item.remove()
say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")
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("Ordem errada. A Pedra de Maat foi destruída.")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
if d.getf("stonekill") == 4 then
npc.purge()
item.remove()
say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")
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("Ordem errada. A Pedra de Maat foi destruída.")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
if d.getf("stonekill") == 5 then
npc.purge()
item.remove()
say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")
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("Ordem errada. A Pedra de Maat foi destruída.")
end
elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
if d.getf("stonekill") == 6 then
npc.purge()
item.remove()
say("Essa foi uma escolha sábia. Destrua agora a última[ENTER]estela e Maat triunfará sobre Isfet.")
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("Ordem errada. A Pedra de Maat foi destruída.")
end
else
if d.getf("stonekill") == 7 then
npc.purge()
item.remove()
notice_multiline("A estela de Isfet foi destruída.",d.notice)
notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)
flame_dungeon.level_clear()
else
item.remove()
say("Ordem errada. A Pedra de Maat foi destruída.")
end
end
end

when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ??? ???? ?
notice_multiline("A Metin do purgatório foi destruída.",d.notice)
notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)
flame_dungeon.level_clear()
end

when 6091.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ?? ????
notice_multiline("Razador foi destruído.",d.notice)
notice_multiline("Todos os lutadores seram teleportados[ENTER]em um minuto do Templo do Dragão.",d.notice)
timer("exit_dungeon", 60)
flame_dungeon.level_clear()

if party.is_party() then
party.setf("flame_dungeon_boss_kill_count", 1)
end

end

when exit_dungeon.timer begin
local setting = flame_dungeon.setting()
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()
d.setf("party_leader_pid", 0)
end

end
end
[/TD][/TR][/TABLE]


[TABLE=full][TR][TD]quest flame_dungeon_leave begin
state start begin
when login or enter begin
set_state(leave)
end
end

state leave begin
when letter begin
if pc.get_map_index() == 351 then
send_letter("Bölgeden çık")
end
end

when button or info begin
say_title("Kırmızı Ejderha Kalesi")
say("Kırmızı Ejderha Kalesi'nden")
say("çıkmak mı istiyorsun?")
local warp = select("Evet","Hayır")
if warp == 1 then
clear_letter()
q.done()
pc.warp(5980*100, 7075*100, 62)
else
say("İyi şanslar!")
end
end

when logout begin
clear_letter()
q.done()
end
end
end
[/TD][/TR][/TABLE] Mt2 dosyalar dan alıntıdır
Ahmet Zeki Tasgar 'a teşekkürler

Ofical Kırmızı Ejderha Kalesi Questi Hakkında Bilgi
Metin2 dünyasında oynarken birçok oyuncu özel quest sistemlerine ilgi duyar. Bu sistemler, oyunun tekrarlayan yönlerini azaltarak daha keyifli ve gelişime açık bir deneyim sunar. Özellikle Ofical Kırmızı Ejderha Kalesi Questi, Metin2 serverları arasında popüler olan ve karakter gelişimine katkı sağlayan önemli bir özelliktir. Bu yazıda, bu questin ne olduğunu, nasıl çalıştığını ve neden bu kadar değerli olduğundan bahsedeceğiz.

Ofical Kırmızı Ejderha Kalesi Nedir?
Kırmızı Ejderha Kalesi, Metin2 oyununda bulunan özel bir dungeon'dur. Bu alan, yüksek seviye oyuncuların zorlu rakiplerle savaşarak ganimet elde ettiği bir mekandır. Quest sistemi sayesinde, oyuncular bu kaleye giriş yapabilmektedir. Ofical olarak sunulan versiyonlar, genellikle sunucunun ana sistemine entegre edilmiş ve test edilmiş kaliteli scriptlerdir. Bu tür questler, Metin2 quest sistemine örnek teşkil eder.

Questin Amacı ve Özellikleri
Ofical Kırmızı Ejderha Kalesi Questi, oyunculara belirli bir seviyeye ulaşana kadar erişim sağlamaz. Questin amacı, oyuncuların kaledeki boss Ejderha ile savaşarak gelişmesini sağlamaktır. Quest tamamlandığında oyuncuya özel itemler, EXP kazanımı ve nadir eşyalar verilir. Bu questin Metin2 quest reward sistemi oldukça dikkat çekicidir. Oyuncular, başarılı bir şekilde questi bitirdiğinde, hem materyal hem de stat kazanımı sağlar.

Quest Script Yapısı ve Lua Kullanımı
Metin2 quest sistemi genellikle Lua dilinde yazılır. Metin2 quest lua dosyaları, sunucuda çalışan scriptlerdir. Ofical versiyonlar, genellikle doğru syntax ve akıcı bir yapıya sahiptir. Metin2 quest script dosyaları, questin başlangıcından bitişine kadar geçen süreçteki tüm eylemleri içerir. Bu scriptler, quest begin, quest end, quest trigger gibi komutlarla yönetilir. Ayrıca, quest timer veya quest flag gibi özelliklerle zamanlanmış eylemler ve durum kontrolleri sağlanabilir.

Quest Dosyası ve Kurulum
Metin2 quest dosyası, genellikle .lua uzantılıdır ve sunucu dosyalarına entegre edilir. Ofical Kırmızı Ejderha Kalesi Questi için doğru bir kurulum, questin sorunsuz çalışması açısından kritik öneme sahiptir. Yanlış bir Metin2 quest hata yönetimi, oyuncularda sistemsel sorunlara yol açabilir. Doğru kurulum için Metin2 quest debug işlemleri yapılmalıdır. Bu işlem, scriptin hatalarını tespit ederek düzeltmeler yapılmasını sağlar.

NPC ve Mob Etkileşimleri
Bu questte, oyuncular belirli NPC'lerle konuşarak questi başlatır. Ardından, özel düşmanlarla yani mob’larla savaşarak ilerler. Metin2 quest npc sistemleri, questin başlaması ve devam etmesi için kritik öneme sahiptir. Her NPC, belirli görevleri yerine getirir ve oyunculara yönlendirme yapar. Aynı zamanda, düşmanlar da belirli davranışlara sahiptir ve.quest sistemine göre hareket ederler.

Daily ve Özel Questler
Ofical Kırmızı Ejderha Kalesi Questi, genellikle daily (günlük) olmayan bir sistemdir. Ancak bazı sunucularda, bu queste sınırlı giriş hakkı verilerek günlük sistemlere entegre edilir. Metin2 daily quest sistemleri, oyunculara her gün farklı ödüller sunar. Bu tür questler, oyuncuların düzenli olarak oyuna giriş yapmasını teşvik eder. Custom quest olarak tasarlanan alternatif versiyonlar da bulunabilir. Bu versiyonlar, sunucuya özgü özelleştirilmiş quest sistemleridir.

Sonuç
Ofical Kırmızı Ejderha Kalesi Questi, Metin2 oyununda yüksek seviyedeki oyuncular için hem zorlu hem de ödüllendirici bir sistemdir. Metin2 quest geliştirme konusunda bilgi sahibi olmak isteyenler için harika bir öğrenme alanıdır. Bu quest, hem teknik hem de oyun içi açıdan dikkate değer bir örnektir. Daha fazla quest bilgisi ve script paylaşımı için Metin2Lobby sitemizi takip edin.


Information About Official Red Dragon Castle Quest
While playing in the world of Metin2, many players are interested in special quest systems. These systems reduce the repetitive aspects of the game, providing a more enjoyable and development-friendly experience. Especially the Official Red Dragon Castle Quest, which is popular among Metin2 servers and contributes significantly to character progression. In this article, we will discuss what this quest is, how it works, and why it is so valuable.

What is the Red Dragon Castle?
The Red Dragon Castle is a special dungeon found in the Metin2 game. This area is a place where high-level players fight tough opponents to gain rewards. With the quest system, players can enter this castle. The official versions are usually well-tested and integrated into the server's main system. Such quests serve as examples for the Metin2 quest system.

Purpose and Features of the Quest
The Official Red Dragon Castle Quest does not allow access until players reach a certain level. The goal of the quest is to enable players to fight against the boss dragon within the castle and grow stronger. Upon completion, players receive special items, EXP gains, and rare equipment. The Metin2 quest reward system is particularly impressive. Successfully completing the quest provides both material and stat bonuses.

Quest Script Structure and Lua Usage
The Metin2 quest system is generally written in Lua. Metin2 quest lua files are scripts running on the server. Official versions typically feature correct syntax and fluid structure. Metin2 quest script files contain all actions from the beginning to the end of the quest. These scripts are managed through commands like quest begin, quest end, and quest trigger. Additionally, features like quest timer or quest flag enable timed events and state controls.

Quest File and Installation
Metin2 quest files are typically .lua extensions and integrated into server files. Correct installation of the Official Red Dragon Castle Quest is critical for smooth operation. Incorrect Metin2 quest error handling may cause systemic issues for players. To ensure proper installation, Metin2 quest debug procedures must be performed. This process helps detect and fix script errors.

NPC and Mob Interactions
In this quest, players start by talking to specific NPCs. Then, they progress by fighting special enemies, known as mobs. Metin2 quest NPCs are crucial for starting and continuing the quest. Each NPC performs specific tasks and guides the player. Meanwhile, enemies also behave according to the quest system.

Daily and Custom Quests
The Official Red Dragon Castle Quest is generally not a daily quest. However, some servers integrate it with daily systems by limiting entry. Metin2 daily quests provide different rewards each day and encourage regular gameplay. Alternative versions designed as custom quests also exist. These are specially tailored quest systems unique to specific servers.

Conclusion
The Official Red Dragon Castle Quest is a challenging and rewarding system for high-level players in Metin2. It serves as a great learning resource for those interested in Metin2 quest development. This quest is notable both technically and within the game. For more quest information and script sharing, follow our site Metin2Lobby.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt