Marco Posted January 10, 2018 at 05:39 PM Share Posted January 10, 2018 at 05:39 PM Boas pessoal, tenho uma pequena questão, gostaria de saber se alguém me poderia ajudar numa quest. Quest do dragão azul, é possível verificar se todos os membros do grupo estão online? Isto pq? Porque eu tenho 1 hora para poderem entrar no dragão após entrar 1 vez, no entanto imaginemos um grupo de 3 pessoas, 1 delas altera, o líder pede para entrar, as 2 personagens online entram e a que estava alterada não entrou, no entanto após aqueles 2 saírem do dragão e a que estava alterada fizer grupo as outras 2 podem entrar de novo, e deveria aparecer que eles tinham de esperar :/ Não sei se conseguiram entender.. ( mas se estiverem os 3 on e forem os 3 para o dragão ao saírem já diz que têm de esperar, só acontece se estiver 1 off e depois esse off ficar grupo já podem entrar, dai querer saber se é possível "verificar" se o todos os membros estão ligados ) Caso não tenham entendido eu tento explicar melhor... Cumprimentos, Link to comment Share on other sites More sharing options...
PACI Posted January 10, 2018 at 06:28 PM Share Posted January 10, 2018 at 06:28 PM 47 minutos atrás, L2P disse: Caso não tenham entendido eu tento explicar melhor... ^this E deixa para aí a quest. Link to comment Share on other sites More sharing options...
Marco Posted January 10, 2018 at 06:32 PM Author Share Posted January 10, 2018 at 06:32 PM (edited) 16 minutos atrás, PACI disse: ^this E deixa para aí a quest. @PACI Imagina... 3 jogadores, 2 Guerreiros e 1 shaman. Eu tu e o tierri (foi o que me veio á cabeça) O tierri altera, ficamos nós 2 on certo? Entramos nós 2 no dragão, o tierri não entrou, alterou ou desligou o char ( mas continuamos os 3 em grupo ) . Matámos o Dragão... supostamente nós já não poderíamos entrar logo, teríamos de esperar 1 hora ( na quest está 5 minutos, mas pronto é suposto ser 1 hora ) No entanto se o tierri entrar no char, sair do grupo e fizer grupo connosco, nós podemos entrar de novo com ele. O que queria era tipo, obrigar a pedir que estejam todos os jogadores on se fosse possível :/ Qualquer dúvida diz A quest salvo erro até foi feita por ti, para o nexus/quantum na altura Quest: quest dragonlair begin state start begin when 30121.chat."Quero enfrentar o Beran-Setaou" begin say_title("Fantasma de um Sura:") say("") if pc.count_item(30179) < 3 then say("Calma! Achas que isto é assim, sem mais, nem menos? ") say("Precisas de 3 "..item_name(30179)..", tu e os membros ") say("da tua guild! Derrotem o Capitão Yonghan!") say_item_vnum(30179) return elseif not party.is_party() then say("Pensas enfrentar-te a este monstro sozinho? Não sejas") say("imprudente! Vai, obtém um grupo forte e venham!") return elseif not party.is_leader() then say("Apenas o Líder do Grupo deve pedir entrada para este") say("inferno gelado.") return end local pids = {party.get_member_pids()} local cantEnter = {{},{}} for _, pid in ipairs(pids) do q.begin_other_pc_block(pid) if pc.count_item(30179) < 3 then table.insert(cantEnter[1], pc.get_name()) elseif pc.getqf("entry_time") > get_time() then table.insert(cantEnter[2], pc.get_name()) end q.end_other_pc_block(pid) end if table.getn(cantEnter[1]) > 0 then say("Lamento "..pc.get_name().."," ) say("Alguns membros do teu grupo não têm o item.") say("Eu não posso deixar ninguém entrar sem o item!") say_reward("Os membros que não têm o item são:") for i = 1, table.getn(cantEnter[1]) do say(color(1,1,0), " "..cantEnter[1][i]) end return elseif table.getn(cantEnter[2]) > 0 then say("Lamento "..pc.get_name().."," ) say("Alguns membros do teu grupo á passaram por cá.") say("Eu não os posso deixar entrar, visto que já cá,") say("estiverem à menos de uma hora.") say_reward("Os membros que não podem entrar:") for i = 1, table.getn(cantEnter[2]) do say(color(1,1,0), " "..cantEnter[2][i]) end return end say("Aparentas ser uma pessoa forte "..pc.get_name().."... ") say("Mas tentar entrar no Templo do Dragão? ") say("É muito perigoso, mas ... " ) say("Posso deixar-vos ir caso tenham todas as Chaves Torcidas. ") say("Lembra-te que o poder das Chaves dura apenas 60 minutos. " ) say("Até lá terás de ter derrotado o Dragão. ") say("") say("") wait() say_title("Fantasma de um Sura:") say("") say("Hmmm... "..pc.get_name()..", "..pc.get_name().."...") say("Levar-te-ei a ti e aos teus companheiros até lá.") say("Mas tem em conta uma coisa, Beran-Setaou não irá ") say("estar logo presente na sala, terás algumas etapas. ") say("Possuem 1 hora para completar esta tarefa. ") say("Ainda querem ir? ") local s = select("Sim, claro! " , "Não, ainda não estou preparado. " ) if s == 1 then d.new_jump_party(207, 8435, 10666) else end end function in_lair() return pc.get_map_index() >= 207*10000 and pc.get_map_index() < 209*10000 end when logout with dragonlair.in_lair() begin pc.set_warp_location(73, 1807, 12208) pc.setqf("entry_time", get_time()+60*5) end when login with dragonlair.in_lair() begin if pc.count_item(30179) < 3 then pc.set_warp_location(73, 1807, 12208) d.exit() return end pc.remove_item(30179, 3) if d.getf("first") == 0 then d.regen_file("locale/portugal/map/metin2_map_skipia_dungeon_boss/regen.txt") mob.spawn(8058, 212, 143, 0, 0) mob.spawn(8058, 152, 143, 0, 0) mob.spawn(8058, 152, 202, 0, 0) mob.spawn(8058, 212, 203, 0, 0) server_timer("dragonlair_45m_remaining", 60*45, d.get_map_index()) d.notice("|cFF32CD32[Templo do Dragão] |cFFFFA500|hParte todas as metins existentes!") d.setf("first", 1) end end when 8058.kill or 8058.kill or 8058.kill or 8058.kill with dragonlair.in_lair() begin local count = d.getf("metin") + 1 d.setf("metin", count) if count >= 4 then d.kill_all() d.clear_regen() notice_multiline("|cFF32CD32[Templo do Dragão] |cFFFFA500|hAguardem pela chegada Bruxa de Gelo!", d.notice) notice_multiline("|cFF32CD32[Templo do Dragão] |cFFFFA500|hUm rugido enorme ouve-se no fundo da Gruta...", d.notice) server_timer("dragonlair_next_step", 20*1, d.get_map_index()) end end when 1191.kill with dragonlair.in_lair() begin d.kill_all() d.clear_regen() notice_multiline("|cFF32CD32[Templo do Dragão] |cFFFFA500|hA temperatura dentro da gruta diminuiu drásticamente!", d.notice) notice_multiline("|cFF32CD32[Templo do Dragão] |cFFFFA500|hBeran-Setaou está furioso!", d.notice) server_timer("dragonlair_final_step", 10*1, d.get_map_index()) end when dragonlair_next_step.server_timer begin if d.select(get_server_timer_arg()) then d.notice("|cFF32CD32[Templo do Dragão] |cFFFFA500|hA Bruxa de Gelo chegou!") d.regen_file("locale/portugal/map/metin2_map_skipia_dungeon_boss/regen.txt") d.spawn_mob(1191, 182, 173, 0, 0) end end when dragonlair_final_step.server_timer begin if d.select(get_server_timer_arg()) then d.notice("|cFF32CD32[Templo do Dragão] |cFFFFA500|hA raiva de Beran-Setaou sente-se desde o início do Gruta!") d.regen_file("locale/portugal/map/metin2_map_skipia_dungeon_boss/regen2.txt") d.spawn_mob(2493, 175, 172, 0, 0) end end when 8031.kill or 8032.kill or 8033.kill or 8034.kill with dragonlair.in_lair() begin if (number(1,3) <= 2) then local group_group = {2425, 2425,2426, 2426,2427} local group_vnum = group_group[number(1,table.getn(group_group))] mob.spawn_group(group_vnum, pc.get_local_x(), pc.get_local_y(), 1, 1, 1) end end when 2493.kill with dragonlair.in_lair() begin d.kill_all() notice_all("|cFF32CD32[Templo do Dragão] |cFFFFA500|hO grupo de "..pc.get_name().." derrotou o Beran-Setaou!") game.drop_item_with_ownership(71123, 1) game.drop_item_with_ownership(71129, 1) server_timer("dragonlair_end_timer", 60*1, d.get_map_index()) end when dragonlair_45m_remaining.server_timer begin if d.select(get_server_timer_arg()) then d.notice("|cFF32CD32[Templo do Dragão] |cFFFFA500|hRestam 45 minutos.") server_timer("dragonlair_30m_remaining", 60*30, d.get_map_index()) end end when dragonlair_30m_remaining.server_timer begin if d.select(get_server_timer_arg()) then d.notice("|cFF32CD32[Templo do Dragão] |cFFFFA500|hRestam 30 minutos.") server_timer("dragonlair_15m_remaining", 60*15, d.get_map_index()) end end when dragonlair_15m_remaining.server_timer begin if d.select(get_server_timer_arg()) then d.notice("|cFF32CD32[Templo do Dragão] |cFFFFA500|hRestam 15 minutos.") server_timer("dragonlair_5m_remaining", 60*5, d.get_map_index()) end end when dragonlair_5m_remaining.server_timer begin if d.select(get_server_timer_arg()) then d.notice("|cFF32CD32[Templo do Dragão] |cFFFFA500|hRestam 5 minutos.") server_timer("dragonlair_10s_remaining", 60*5, d.get_map_index()) end end when dragonlair_10s_remaining.server_timer begin if d.select(get_server_timer_arg()) then d.notice("|cFF32CD32[Templo do Dragão] |cFFFFA500|hO tempo terminou! ") server_timer("dragonlair_end_timer", 3*1, d.get_map_index()) end end when dragonlair_end_timer.server_timer begin if d.select(get_server_timer_arg()) then d.set_warp_location(73, 1807, 12208) d.exit_all() end end end end Edited January 10, 2018 at 06:55 PM by L2P Link to comment Share on other sites More sharing options...
PACI Posted January 10, 2018 at 07:10 PM Share Posted January 10, 2018 at 07:10 PM Coloca o seguinte na zona dos table.insert() e vê o que te dá. say("debug - pc cant enter: "..pc.get_name()) Link to comment Share on other sites More sharing options...
Marco Posted January 10, 2018 at 07:25 PM Author Share Posted January 10, 2018 at 07:25 PM (edited) 42 minutos atrás, PACI disse: Coloca o seguinte na zona dos table.insert() e vê o que te dá. say("debug - pc cant enter: "..pc.get_name()) continua igual * Edited January 10, 2018 at 07:53 PM by L2P Link to comment Share on other sites More sharing options...
[Admin] tierrilopes Posted January 10, 2018 at 09:47 PM Share Posted January 10, 2018 at 09:47 PM Se fizerem logout dentro da dungeon, isso não deve acontecer pois: when logout with dragonlair.in_lair() begin pc.set_warp_location(73, 1807, 12208) pc.setqf("entry_time", get_time()+60*5) end Vejo estas três soluções ;Líder do grupo ao abrir quest, adiciona logo o quest state ao grupo inteiro (party.setfqf). ;Crias nova função para verificar se jogador está online ;Usas o loop para fazer por exemplo pc.can_warp() a cada jogador, caso algum dos jogadores não possa (se estiver offline também deverá dar false), não fazes o jump A última parece ser a mais rápida Link to comment Share on other sites More sharing options...
Marco Posted January 10, 2018 at 10:13 PM Author Share Posted January 10, 2018 at 10:13 PM É antes, alterar o char antes de clicar no npc. Consegues ajudar @Tierri Lopes? com o que seja mais fácil, pelo que testei, penso é possível fazer esse ( "bug" se é que se pode chamar de "bug" ) em todas as dungeons :/ 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