Essa quest peguei na epvp e traduzi, no andar das pedras eu quebrei elas tals quando quebrer a certa tomei dc e a conta bug e no virtual pc deu uns erros lá tipo quando agente traduz muita quest e vira da erros deu e paro mais a conbta bug no mapa, ai não sei se o problema é na quest ou no mapa deioxo a quest pra quem entende me tirar esta dúvida.
-- Monumentos: Monumento 30101 primeiro andar, segundo andar monumento 30103, 20367 Monumento quarto andar, quinto andar monumento 30102
-- As coordenadas de cada plano são calculadas automaticamente pelo script, você só tem que escrever as coordenadas do mapa base na função GetScriptData
-- As coordenadas do segundo andar deve ser incluído no "town.txt 'do mapa, e 545 são 43
-- Os nomes dos arquivos são regen: piano_2_catacombe.txt, piano_3_catacombe.txt, piano_5_catacombe.txt, piano_6_catacombe.txt
-- O quarto andar (um dos portais) tem 4 regen diferente: piano_4_1_catacombe.txt, piano_4_2_catacombe.txt, piano_4_3_catacombe.txt, piano_4_4_catacombe.txt. Uma delas será carregado aleatoriamente
-- A regeneração no primeiro andar devem ser inseridos na pasta do mapa (o regen.txt classic)
-- NOTA 1: Tártaro e Metin de retaliação NÃO DEVE SER COLOCADO NA REGEN, porque eles são gerados pelo script
-- NOTA 2: Azrael é o tesouro de Caiu do quest, você não deve entrar em mob_drop_item
-- NOTA 3: Eu recomendo os portais do piso 4 deve ser como os de macacos, que são atravessados ??quando a tela de carregamento não for exibido, caso contrário você vai jogar fora do calabouço
quest catacombe begin
state start begin
-- Funções
-- Configure as principais coisas aqui, as mudanças são aplicadas automaticamente ao longo do roteiro
function GetScriptData(data)
local map_data = {['map_index'] = 209, -- index do mapa das DevilCatacomb
['x'] = 3072, ['y'] = 12032, -- coordenadas x e y base do mapa (aqueles escritos na posição de base para falar)
['drop_frequency'] = 500, -- quantos mobs você tem que matar o primeiro andar para cair o cristal chave almas
['min_lev'] = 75, -- nível mínimo exigido para entrar nas catacumbas,
['close_time'] = 60, -- tempo (em minutos) que vai ser fechado catacumbas
['testa_ristretta'] = 30320, -- Id do item cabeça restrito
['chiave_anime_cristallo'] = 30311, -- Id da chavealmas cristal
['totem_smorfia'] = 30312, -- Id do totem corecto
['forziere_azrael'] = 50186, -- Id do item a dropar do Azrael
['min_drop_lev'] = 75, -- nível mínimo para dropar o bau do Azrael
['max_drop_lev'] = 120} -- nível maximo para dropar o bau do Azrael
return rawget(map_data, data)
end
function IsInDungeon(pc_index)
local map_index = catacombe.GetScriptData('map_index')
return (pc.in_dungeon() and pc_index >= map_index*10000 and pc_index < (map_index+1)*10000)
end
function CanDrop(pc_level)
return (pc_level >= catacombe.GetScriptData('min_drop_lev') and pc_level <= catacombe.GetScriptData('max_drop_lev'))
end
-- NPC - Guardião da entrada a catacumbas
when 20367.chat."Abrir The Devils CataComb" with pc.is_gm() begin
say_title("Abrir The Devils Catacomb")
say("Quer abrir The Devils CataComb?[ENTER]")
local s = select("Sim","Não")
if s == 2 then
return
end
say_title("Abrir The Devils Catacomb")
say("Operação Completa.[ENTER]")
say("The Devils CataComb Aberta.[ENTER]")
game.set_event_flag("catacomb_next_open", 0)
end
when 20367.chat."The Devils Catacomb" begin
local mob_race = npc.get_race()
local min_lev = catacombe.GetScriptData('min_lev')
say_title(mob_name(mob_race))
if pc.get_level() < min_lev then
say("Necessario ter level "..min_lev)
say("Para entrar.[ENTER]")
return
end
if pc.count_item(catacombe.GetScriptData('testa_ristretta')) == 0 then
when 30101.take with item.get_vnum() == catacombe.GetScriptData('chiave_anime_cristallo') and pc.get_map_index() == catacombe.GetScriptData('map_index') begin
say_title(mob_name(30101))
if get_time() < game.get_event_flag("catacomb_next_open") then
say("As catacumbas estão fechadas.[ENTER]")
return
end
if party.is_party() and not party.is_leader() then
when 30103.take with item.get_vnum() == catacombe.GetScriptData('testa_ristretta') and catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 2 begin
if pc.getqf("is_master") == 1 then
pc.remove_item(item.get_vnum(), 1)
d.notice("Em breve você será levado para o próximo nível")
Essa quest peguei na epvp e traduzi, no andar das pedras eu quebrei elas tals quando quebrer a certa tomei dc e a conta bug e no virtual pc deu uns erros lá tipo quando agente traduz muita quest e vira da erros deu e paro mais a conbta bug no mapa, ai não sei se o problema é na quest ou no mapa deioxo a quest pra quem entende me tirar esta dúvida.
--------------------------------------------------------------------------------------------
----------------------------Quest The Devils catacomb ----------------------------
--------------------------------------------------------------------------------------------
-- Valor utilizado no roteiro (a ser alterada se diferente):
-- Artigo: 30320 Cabeça restrita, Chave Alma de Cristal 30311, 30312 Totem de Careta, cofre 50.186 Azrael
-- Mob: catacumbas Guardião 20367, multidão no primeiro andar 2501 2502 2503 2504 Metin em Retaliation (3 º andar) 8035
-- Boss: Tartaros (piano 5) 2591, Charon (piano 6) 2597, Azrael (piano 7) 2598
-- Monumentos: Monumento 30101 primeiro andar, segundo andar monumento 30103, 20367 Monumento quarto andar, quinto andar monumento 30102
-- As coordenadas de cada plano são calculadas automaticamente pelo script, você só tem que escrever as coordenadas do mapa base na função GetScriptData
-- As coordenadas do segundo andar deve ser incluído no "town.txt 'do mapa, e 545 são 43
-- Os nomes dos arquivos são regen: piano_2_catacombe.txt, piano_3_catacombe.txt, piano_5_catacombe.txt, piano_6_catacombe.txt
-- O quarto andar (um dos portais) tem 4 regen diferente: piano_4_1_catacombe.txt, piano_4_2_catacombe.txt, piano_4_3_catacombe.txt, piano_4_4_catacombe.txt. Uma delas será carregado aleatoriamente
-- A regeneração no primeiro andar devem ser inseridos na pasta do mapa (o regen.txt classic)
-- NOTA 1: Tártaro e Metin de retaliação NÃO DEVE SER COLOCADO NA REGEN, porque eles são gerados pelo script
-- NOTA 2: Azrael é o tesouro de Caiu do quest, você não deve entrar em mob_drop_item
-- NOTA 3: Eu recomendo os portais do piso 4 deve ser como os de macacos, que são atravessados ??quando a tela de carregamento não for exibido, caso contrário você vai jogar fora do calabouço
quest catacombe begin
state start begin
-- Funções
-- Configure as principais coisas aqui, as mudanças são aplicadas automaticamente ao longo do roteiro
function GetScriptData(data)
local map_data = {['map_index'] = 209, -- index do mapa das DevilCatacomb
['x'] = 3072, ['y'] = 12032, -- coordenadas x e y base do mapa (aqueles escritos na posição de base para falar)
['drop_frequency'] = 500, -- quantos mobs você tem que matar o primeiro andar para cair o cristal chave almas
['min_lev'] = 75, -- nível mínimo exigido para entrar nas catacumbas,
['close_time'] = 60, -- tempo (em minutos) que vai ser fechado catacumbas
['testa_ristretta'] = 30320, -- Id do item cabeça restrito
['chiave_anime_cristallo'] = 30311, -- Id da chavealmas cristal
['totem_smorfia'] = 30312, -- Id do totem corecto
['forziere_azrael'] = 50186, -- Id do item a dropar do Azrael
['min_drop_lev'] = 75, -- nível mínimo para dropar o bau do Azrael
['max_drop_lev'] = 120} -- nível maximo para dropar o bau do Azrael
return rawget(map_data, data)
end
function IsInDungeon(pc_index)
local map_index = catacombe.GetScriptData('map_index')
return (pc.in_dungeon() and pc_index >= map_index*10000 and pc_index < (map_index+1)*10000)
end
function CanDrop(pc_level)
return (pc_level >= catacombe.GetScriptData('min_drop_lev') and pc_level <= catacombe.GetScriptData('max_drop_lev'))
end
-- NPC - Guardião da entrada a catacumbas
when 20367.chat."Abrir The Devils CataComb" with pc.is_gm() begin
say_title("Abrir The Devils Catacomb")
say("Quer abrir The Devils CataComb?[ENTER]")
local s = select("Sim","Não")
if s == 2 then
return
end
say_title("Abrir The Devils Catacomb")
say("Operação Completa.[ENTER]")
say("The Devils CataComb Aberta.[ENTER]")
game.set_event_flag("catacomb_next_open", 0)
end
when 20367.chat."The Devils Catacomb" begin
local mob_race = npc.get_race()
local min_lev = catacombe.GetScriptData('min_lev')
say_title(mob_name(mob_race))
if pc.get_level() < min_lev then
say("Necessario ter level "..min_lev)
say("Para entrar.[ENTER]")
return
end
if pc.count_item(catacombe.GetScriptData('testa_ristretta')) == 0 then
say("Você deve possuir o item para")
say("Entrar:[ENTER]")
say_item_vnum(catacombe.GetScriptData('testa_ristretta'))
return
end
if get_time() < game.get_event_flag("catacomb_next_open") then
say("As catacumbas estão fechadas.[ENTER]")
return
end
say("Olá aventureiro. Catacumbas do diabo")
say("é um lugar muito perigoso.[ENTER]")
local s = select("Entrar","Não Entrar")
if s == 2 then
return
end
say_title(mob_name(mob_race))
say("Ok Traveler, agora será teletransportado.")
say("Preste muita atenção.[ENTER]")
wait()
pc.warp((catacombe.GetScriptData('x')+80)*100, (catacombe.GetScriptData('y')+60)*100)
end
-- 1º Piso
when login with pc.get_map_index()== catacombe.GetScriptData('map_index') begin
pc.set_warp_location(209, 5908, 1112)
end
when logout with pc.get_map_index()== catacombe.GetScriptData('map_index') begin
pc.delqf("mob_killed")
end
when 2501.kill or 2502.kill or 2503.kill or 2504.kill with pc.get_map_index()== catacombe.GetScriptData('map_index') begin
pc.setqf("mob_killed", pc.getqf("mob_killed")http://cyber-gamers.org/public/style_emoticons/default/451960.gif)
if math.mod(pc.getqf("mob_killed"), catacombe.GetScriptData('drop_frequency')) == 0 then
game.drop_item_with_ownership(catacombe.GetScriptData('chiave_anime_cristallo'), 1)
end
end
when 30101.take with item.get_vnum() == catacombe.GetScriptData('chiave_anime_cristallo') and pc.get_map_index() == catacombe.GetScriptData('map_index') begin
say_title(mob_name(30101))
if get_time() < game.get_event_flag("catacomb_next_open") then
say("As catacumbas estão fechadas.[ENTER]")
return
end
if party.is_party() and not party.is_leader() then
say("Basta arrastar o objeto em")
say("o NPC.[ENTER]")
return
end
pc.remove_item(item.get_vnum(), 1)
say("Eles abriram o selo.")
say("O paso pro segundo piso.[ENTER]")
if party.is_party() then
say("Seu grupo será teletransportado")
say("com você.[ENTER]")
end
wait()
game.set_event_flag("catacomb_next_open", get_time()+60*catacombe.GetScriptData('close_time'))
pc.setqf("is_master", 1)
timer("enter_floor_2", 2)
end
--Masmorra entrada e temporizador
when login with catacombe.IsInDungeon(pc.get_map_index()) begin
pc.set_warp_location(209, 5908, 1112)
if pc.getqf("is_master") == 1 then
timer("start_timer", 2)
end
end
when logout with catacombe.IsInDungeon(pc.get_map_index()) begin
pc.remove_item(catacombe.GetScriptData('totem_smorfia'), pc.count_item(catacombe.GetScriptData('totem_smorfia')))
pc.remove_item(catacombe.GetScriptData('chiave_anime_cristallo'), pc.count_item(catacombe.GetScriptData('chiave_anime_cristallo')))
pc.delqf("is_master")
end
when start_timer.timer begin
d.notice("A partir de agora você tem "..catacombe.GetScriptData('close_time').." minutos de tempo")
d.notice("para completar a The Devils Catacomb!")
notice_all("As catacumbas estará fechado para "..catacombe.GetScriptData('close_time').." minutos a partir de agora")
server_timer("catacomb_open", 60*catacombe.GetScriptData('close_time'), pc.get_map_index())
end
when catacomb_open.server_timer begin
notice_all("As catacumbas são abertas novamente!")
if d.select(get_server_timer_arg()) then
clear_server_timer("catacomb_open", get_server_timer_arg())
d.notice("Tempo expirado, você será levado para fora")
d.exit_all()
end
end
-- 2º Piso
when enter_floor_2.timer begin
d.join(catacombe.GetScriptData('map_index'))
d.regen_file("data/dungeon/catacombs/piano_2_catacombe.txt")
d.setf("catacomb_floor", 2)
end
when 30103.take with item.get_vnum() == catacombe.GetScriptData('testa_ristretta') and catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 2 begin
if pc.getqf("is_master") == 1 then
pc.remove_item(item.get_vnum(), 1)
d.notice("Em breve você será levado para o próximo nível")
timer("enter_floor_3", 3)
else
d.notice("Apenas o líder pode arrastar o objeto")
end
end
-- 3º Piso
when enter_floor_3.timer begin
d.jump_all(catacombe.GetScriptData('x')+1339, catacombe.GetScriptData('y')+250)
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/catacombs/piano_3_catacombe.txt")
d.setf("catacomb_floor", 3)
d.notice("Encontre metin correto para subir!")
local coord_metin = {{1340,348},{1243,357},{1334,151},{1252,148},{1149,148},{1139,244},{1148,355}}
local right_metin = math.mod(os.time(),table.getn(coord_metin)http://cyber-gamers.org/public/style_emoticons/default/451960.gif)
for i = 1,table.getn(coord_metin) do
if i == right_metin then
local v = d.spawn_mob(8035, coord_metin[1], coord_metin[2])
d.set_unique("real", v)
chat(coord_metin[1].." "..coord_metin[2])
else
d.spawn_mob(8035, coord_metin[1], coord_metin[2])
end
end
end
when 8035.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 3 begin
if d.is_unique_dead("real") then
d.notice("O metin correta foi destruída!")
d.notice("Em breve você será levado para o próximo nível")
timer("enter_floor_4", 3)
else
d.notice("O metin destruído é falsa")
end
end
-- 4º Piso
when enter_floor_4.timer begin
d.jump_all(catacombe.GetScriptData('x')+70, catacombe.GetScriptData('y')+580)
d.clear_regen()
d.kill_all()
local map_n = math.mod(os.time(),4)http://cyber-gamers.org/public/style_emoticons/default/451960.gif
d.regen_file("data/dungeon/catacombs/piano_4_"..map_n.."_catacombe.txt")
d.setf("catacomb_floor", 4)
d.notice("Encontre o caminho correto para subir!")
end
when 20367.chat."Atualize plano" with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 4 begin
if pc.getqf("is_master") == 1 then
say("Molto bene, siete riusciti ad arrivare fin qui.")
say("Muito bem, você conseguiu chegar até aqui")
say("chefe das catacumbas.[ENTER]")
wait()
setskin(0)
d.notice("Em breve você será levado para o próximo nível")
timer("enter_floor_5", 3)
else
say("Apenas o líder pode me «up.[ENTER]")
end
end
-- 5º Piso
when enter_floor_5.timer begin
d.jump_all(catacombe.GetScriptData('x')+845, catacombe.GetScriptData('y')+900)
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/catacombs/piano_5_catacombe.txt")
d.setf("catacomb_floor", 5)
d.setf("correct_killed", 0)
d.notice("Encontrar e matar o Tártaro correto para continuar!")
local coord_boss = {{848,570},{678,832},{685,632},{1031,637},{1003,856}}
local right_boss = math.mod(os.time(),table.getn(coord_boss)http://cyber-gamers.org/public/style_emoticons/default/451960.gif)
for i = 1,table.getn(coord_boss) do
if i == right_boss then
local v = d.spawn_mob(2591, coord_boss[1], coord_boss[2])
d.set_unique("real", v)
chat(coord_boss[1].." "..coord_boss[2])
else
d.spawn_mob(2591, coord_boss[1], coord_boss[2])
end
end
end
when 2591.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 5 begin
if d.is_unique_dead("real") and d.getf("correct_killed") == 0 then
d.setf("correct_killed", 1)
d.notice("O Tártaro correto foi morto!")
d.notice("Arraste o objeto no totem para continuar!")
game.drop_item_with_ownership(catacombe.GetScriptData('totem_smorfia'), 1)
else
d.notice("O Tártaro mortos não correta")
end
end
when 30102.take with item.get_vnum() == catacombe.GetScriptData('totem_smorfia') begin
pc.remove_item(item.get_vnum(), 1)
d.notice("Em breve você será levado para o andar de cima!")
timer("enter_floor_6", 3)
end
-- 6º Piso
when enter_floor_6.timer begin
d.jump_all(catacombe.GetScriptData('x')+1300, catacombe.GetScriptData('y')+700)
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/catacombs/piano_6_catacombe.txt")
d.setf("catacomb_floor", 6)
d.notice("Mortos Charon continuar!")
end
when 2597.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 6 begin
d.notice("Charon e 'morto!")
d.notice("Em breve você será levado para o andar de cima!")
timer("enter_floor_7", 3)
end
-- 7º Piso
when enter_floor_7.timer begin
d.jump_all(catacombe.GetScriptData('x')+75, catacombe.GetScriptData('y')+1155)
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/catacombs/piano_7_catacombe.txt")
d.setf("catacomb_floor", 7)
d.notice("Mate o Azrael mal!")
end
when 2598.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 7 begin
if catacombe.CanDrop(pc.get_level()) then
game.drop_item_with_ownership(catacombe.GetScriptData('forziere_azrael'), 1)
end
notice_all("Um grupo de heróis lançou as catacumbas por Azreal!")
d.clear_regen()
d.notice("Você já divulgou as catacumbas pela Azrael mal!")
d.notice("Em 1 minuto, você será levado para fora")
timer("exit_catacomb", 60)
end
when exit_catacomb.timer begin
d.exit_all()
end
end
end
Share this post
Link to post
Share on other sites