Nukayool Posted September 17, 2017 at 02:40 AM Share Posted September 17, 2017 at 02:40 AM (edited) Boas Malta, Procuro alguém que me consiga criar uma quest tipo torre. Pois tenho um mapa que têm várias salas e eu queria por a malta a fazer aquilo tipo a torre, 1 - Matar uma metin e sobem mas neste caso o grupo para uma lobby privada tipo nemere e isso 2 - Depois derrotar monstros 3 - Depois dropar algo e arrastar para os selos 5 - Depois derrotar monstros (pode ser a sala do 2 de novo) 4- Sala do boss Isto foi uma ideia, até aceito mais ideias para a quest, dai procurar alguem e pago pelo mesmo isso não há problema Deixo aqui print do mapa para verem Edited September 17, 2017 at 02:41 AM by pontofinal Link to comment Share on other sites More sharing options...
Requiem Posted September 18, 2017 at 09:54 AM Share Posted September 18, 2017 at 09:54 AM Isso não é nada de mais, podes usar a torre, nemere ou razador para teres uma ideia de como fazer Link to comment Share on other sites More sharing options...
F-Caneiras Posted September 18, 2017 at 11:01 PM Share Posted September 18, 2017 at 11:01 PM usando a quest da torre ou nemere podes mudar as cordeadas tempos etc e ficas com uma quest para o teu mapa em vez da chave add outro item para ir mudando de mapa em mapa Link to comment Share on other sites More sharing options...
Mário. Posted September 19, 2017 at 11:28 PM Share Posted September 19, 2017 at 11:28 PM (edited) Não precisas de pagar para tal coisa e rejeito qualquer tipo de recompensa por algo como isso. Tirei 30 minutos do meu tempo para analisar o que querias e fiz exatamente da forma como pedes. --[[ De: Mário Para: IPontoFinal Descrição: Dungeon com 4 pisos, lobby privada, derrotar monstros, dropar e arrastar selos, derrotar monstros (2 piso de novo), sala do boss ]] quest ipontofinal begin state start begin function settings() -- São as definições para a dungeon local ipontofinal_settings = {} ipontofinal_settings.map_index = 1 -- Número que está situado no MAP_INDEX ipontofinal_settings.coordenadas = {10,10} -- Coordenadas do mapa ipontofinal_settings.coordenadas1 = {20,20} -- Coordenadas do primeiro piso ipontofinal_settings.coordenadas2 = {30,30} -- Coordenadas do segundo piso ipontofinal_settings.coordenadas3 = {40,40} -- Coordenadas do terceiro piso ipontofinal_settings.coordenadas4 = {50,50} -- Coordenadas do piso final ipontofinal_settings.temporizador = 5 -- Tempo para o teleporte entre dois pisos ipontofinal_settings.conclusao = 60 -- Tempo que terão disponível dentro do mapa depois de completarem a dungeon return ipontofinal_settings end function apagar() -- Dá clear em todos os registros local mapa = d.get_map_index() clear_server_timer("piso_final4", mapa) clear_server_timer("piso_3", mapa) clear_server_timer("piso_2", mapa) clear_server_timer("falhou", mapa) clear_server_timer("ipontofinal", mapa) d.setf("piso",0) d.setf("piso_final",0) pc.setqf("ipontofinal",0) end when login begin -- Se desligarem o cliente com a personagem dentro do mapa mesmo quando o tempo ainda não tenha passado/com o tempo passado, serão teleportados para a cidade. if pc.get_map_index() == 1 and pc.getqf("ipontofinal") == 0 then -- Mudar o número do index pelo da dungeon warp_to_village() end end when falhou.timer begin -- Condição em caso de falharem if d.select(get_server_timer_arg()) then notice_multiline("Infelizmente o tempo já passou e não conseguiram concluir a dungeon.[ENTER]Fica para à próxima",d.notice) d.exit_all() pc.setqf("ipontofinal",0) end end when 9010.chat."Dungeon IPontoFinal" begin say_title("IPontoFinal:") say() say("Sentes-te preparado para enfrentares[ENTER]", "A melhor dungeon de sempre?") if select("Sim","Não") == 1 then -- Em caso de quereres que a dungeon seja só feita com grupo if not party.is_leader() then say_title("IPontoFinal:") say() say("Apesar de admirar a tua coragem,[ENTER]", "não poderás fazer a dungeon sem um grupo.") return end -- Em caso de quereres que a dungeon seja feita somente com um guerreiro disponível local personagem = pc.get_job() if personagem == 0 or personagem == 4 then -- Guerreiro Masculino/Feminino guerreiros = true end if guerreiro == false then say_title("IPontoFinal:") say() say("Não podes fazer a dungeon sem um guerreiro.") say("") return false end timer("ipontofinal",2) -- É ativado um timer. pc.setqf("ipontofinal",1) end end when ipontofinal.timer begin local settings = ipontofinal.settings() local mapa = settings.coordenadas local piso = settings.coordenadas1 d.new_jump_party(settings.map_index,(mapa[1] + piso[1]), (mapa[2] + piso[2])) d.regen_file("data/dungeon/ipontofinal/primeiro_piso.txt") -- Diretório da dungeon d.notice("Tens que matar a pedra de forma a subires para o próximo piso.[ENTER]Tens uma hora para completares a dungeon.") d.setf("piso",1) server_timer('falhou', 10*60, get_server_timer_arg()) chat("Estás no primeiro piso.") end when 2000.kill with d.getf("piso") == 1 begin -- ID da pedra a ser eliminada if pc.get_map_index() == 1 then -- Mudar o número do index do mapa pela da dungeon local settings = ipontofinal.settings() local tempo = settings.temporizador notice_multiline("Parabéns, a pedra foi eliminada com sucesso.[ENTER]Vais ser teleportado para o próximo piso", d.notice) d.set_regen_file("data/dungeon/ipontofinal/segundo_piso.txt") d.setf("piso",2) server_timer("piso_2",tempo,d.get_map_index()) end end when piso_2.timer begin local settings = ipontofinal.settings() local mapa = settings.coordenadas local piso = settings.coordenadas2 local monstros = d.count_monster() local tempo = settings.temporizador d.jump_all((mapa[1] + piso[1]), (mapa[2] + piso[2])) notice_multiline("Precisas de derrotar todos os monstros para seres teleportado para o próximo piso.[ENTER]Boa sorte", d.notice) chat("Estás no segundo piso.") if monstros <= 0 and d.getf("piso") == 2 then d.notice("Parabéns, todos os monstros foram eliminados com sucesso.[ENTER]Vais ser teleportado para o próximo piso.") d.setf("piso",3) d.clear_regen() d.kill_all() d.set_regen_file("data/dungeon/ipontofinal/terceiro_piso.txt") server_timer("piso_3",tempo,d.get_map_index()) end end when piso_3.timer begin local settings = ipontofinal.settings() local mapa = settings.coordenadas local piso = settings.coordenadas3 local monstros = d.count_monster() local tempo = settings.temporizador d.jump_all((mapa[1] + piso[1]), (mapa[2] + piso[2])) d.notice("Terás que dropar a chave para dares nos selos.") chat("Estás no terceiro piso.") end when 10.kill with d.getf("piso") == 3 begin -- ID do monstro que irá dropar local contagem = d.getf("chaves")+1 d.setf("chaves", contagem) if contagem == 10 then game.drop_item(10, 1) -- ID da chave d.setf("chaves", 0) end end when 9010.take with item.vnum == 10 begin -- ID do NPC a pedir o selo npc.purge() item.remove() d.setf("contagem", d.getf("contagem")-1) if d.getf("contagem") <= 0 then local settings = ipontofinal.settings() local mapa = settings.coordenadas local piso = settings.coordenadas2 local tempo = settings.temporizador d.setf("piso",4) -- Na verdade voltam para o piso 2 na mesma d.clear_regen() d.set_regen_file("data/dungeon/ipontofinal/segundo_piso.txt") d.notice("Parabéns, todos os selos foram eliminados. Serás teleportado para o próximo piso.") server_timer("piso_4",tempo,d.get_map_index()) end end when piso_4.timer begin local settings = ipontofinal.settings() local mapa = settings.coordenadas local piso = settings.coordenadas2 local monstros = d.count_monster() local tempo = settings.temporizador d.jump_all((mapa[1] + piso[1]), (mapa[2] + piso[2])) notice_multiline("Precisas de derrotar todos os monstros para seres teleportado para o próximo piso.[ENTER]Boa sorte", d.notice) chat("Estás no quarto piso.") if monstros <= 0 and d.getf("piso") == 2 then d.notice("Parabéns, todos os monstros foram eliminados com sucesso.[ENTER]Vais ser teleportado para o piso final.") d.setf("piso_final",1) d.clear_regen() d.kill_all() d.set_regen_file("data/dungeon/ipontofinal/piso_final.txt") server_timer("piso_final",tempo,d.get_map_index()) end end when piso_final4.timer begin local settings = ipontofinal.settings() local mapa = settings.coordenadas local piso = settings.coordenadas4 local tempo = settings.temporizador d.jump_all((mapa[1] + piso[1]), (mapa[2] + piso[2])) notice_multiline("Chegaste ao último piso.[ENTER]Foca-te apenas no boss e vencerás a dungeon.", d.notice) chat("Estás no último piso.") end when 100.kill with d.getf("piso_final") == 1 begin -- ID do boss local probabilidade = math.random(1, 100) -- Probabilidade de sair itens de 1 a 100 local settings = ipontofinal.settings() local tempo = settings.conclusao if probabilidade >= 10 then -- Se for inferior a 10 game.drop_item_with_ownership(279, 1) -- ID e quantidade elseif probabilidade <= 10 then -- Se for superior a 10 game.drop_item_with_ownership(289, 1) end d.notice("Parabéns, completaste a dungeon.[ENTER]Dentro de 60 segundos, serão teleportados para a cidade.") d.clear_regen() ipontofinal.apagar() server_timer("conclusao",tempo,d.get_map_index()) d.kill_all() -- Podes remover isto se quiseres que os monstros continuem lá mesmo depois de terem matado o boss notice_all("O grupo do "..pc.get_name().." matou o boss da nova dungeon!") end when conclusao.timer begin warp_to_village() end end end OBS: Não testei nem poderei dar prioridade visto que tenho outros trabalhos. Se alguma coisa estiver incorreto ou não estiver a funcionar, diz-me. Desculpa não ter deixado a quest mais esclarecedora do que aquilo que costumo fazer, mas penso que todos os passos são compreensíveis. Edited September 19, 2017 at 11:45 PM by Mário. Link to comment Share on other sites More sharing options...
Nukayool Posted September 20, 2017 at 01:43 AM Author Share Posted September 20, 2017 at 01:43 AM Boas, Fico muito agradecido. Pois de quests sei os básicos nunca aprofundei este tema, vá nunca precisava. Desta vez precisei e estava me a ver um pouco lixado. Vê a mensagem Privada sff Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now