antiblock
Elveron
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
Sign in to follow this  
Frotaz

[Problema] Quest Duelos

21 posts in this topic

Boas pessoal,
Eu instalei uma quest de duelos e correu tudo bem.
 
Meto o nome da outra personagem para duelo, aceito e corre tudo na mior
Depois sou teleportado para a arena, mas mal entro lá sou outravez teleportado para a cidade...
 
Alguem me pode ajudar ?
 
Quest


 

quest arena_manager begin
        state start begin
                when 20017.chat."Combate de Treino" begin
                        if game.get_event_flag("arena_close") > 0 then
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("O Combate de Treino está desativado de momento")
                                say("")
                                return
                        end

                        if not npc.lock() then
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("Outro alguém já se registou num combate.")
                                say("")
                                say("")
                                return
                        end

                        local useMinLevel = game.get_event_flag("arena_use_min_level")

                        if useMinLevel == 0 then
                                useMinLevel = 25 ;
                        end

                        if pc.get_level() < useMinLevel then
                                say_title("Yuhwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("Precisas de atingir o nível "..useMinLevel..";")
                                say("Só depois poderás entrar na Arena.")
                                say("")
                                npc.unlock()
                                return
                        else
                                say_title("Yuhwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("Por favor escreve o nome da pessoa com quem")
								say("desejas treinar.")
                                say("")
                                say("")

                                local sname = input()

                                if sname == "" then
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("Não sabes com quem queres lutar?")
                                say("")
                                        npc.unlock()
                                        return
                                else
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say(pc.name.." registou-se para uma luta")
                                say("contra "..sname..".")
                                wait("")

                                        local opp_vid = find_pc_by_name(sname)

                                        if opp_vid == 0 then
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say(sname.." não está disponível.")
                                say("")
                                                npc.unlock()
                                                return
                                        elseif opp_vid == pc.get_vid() then
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("Tens a certeza? Queres lutar contra ti mesmo?")
                                say("")
                                say("")
                                                npc.unlock()
                                                return
                                        end

                                        local old = pc.select(opp_vid)
                                        local opp_level = pc.get_level()
                                        pc.select(old)

                                        if opp_level < useMinLevel then
                                say_title("Yuhwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("O nível do teu oponente não é igual ou maior a "..useMinLevel..".")
                                say("")
                                                npc.unlock()
                                                return
                                        end
                                        if not npc.is_near_vid(opp_vid, 10) then
                                say_title("Yuhwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("O teu oponente está demasiado longe de ti.")
                                say(sname.." tem de se chegar mais perto.")
                                say("")
                                                npc.unlock()
                                                return ;
                                        end

                                        local a = arena.is_in_arena(opp_vid)
                                        if a == 0 then
                                say_title("Yuhwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say(sname.." está já atualmente na Arena.")
                                say("")
                                                npc.unlock()
                                                return ;
                                        end
                                say_title("Decisão")
                                say("")
                                say(pc.name.." à espera que "..sname.." aceite um desafio.")
                                        local agree = confirm(opp_vid, sname.." quer lutar contra "..pc.name.."", 30)
                                        if agree!= CONFIRM_OK then
                                say_title("Yuhwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say(sname.." não quer lutar contra ti.")
                                say("")
                                                npc.unlock()
                                                return
                                        end

                                        s = arena.start_duel(sname, 3)

                                        if s == 0 then
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("Ocorreu um problema.")
                                say("Queres tentar mais tarde?")
                                say("")
                                        elseif s == 2 then
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("Outro grupo já está numa Luta de Arena.")
                                say("")
                                        elseif s == 3 then
                                say_title("Yu-Hwan:")
                                say("")
                                ----"12345678901234567890123456789012345678901234567890"|
                                say("A Arena de Combate já está em uso.")
                                say("Por favor tenta registar-te mais logo.")
                                say("")
                                        end
                                end
                        end
                        npc.unlock()
                end

                when 20017.chat."Observar um combate de treino" begin
                        local g = arena.get_duel_list()
                        local arena_name = {}
                        local arena_observer = {}

                        table.foreachi(g,
                                function(n, p)
                                        arena_name[n] = p[1].." vs "..p[2]
                                        arena_observer[n] = { p[3], p[4], p[5] }
                                end
                        )

                        table.insert(arena_name, "Fechar")
                        table.insert(arena_observer, 0)

                        local count = table.getn(g)
                        if count == 0 then
                        say_title("Yu-Hwan:")
                        say("")
                        ----"12345678901234567890123456789012345678901234567890"|
                        say("Não estão a decorrer combates.")
                        say("")
                        return ;
                        else
                        say_title("Yu-Hwan:")
                        say("")
                        ----"12345678901234567890123456789012345678901234567890"|
                        say("Estão atualmente a decorrer "..count.." combates.")
                        say("")
                        wait()
                        end

                        if table.getn(g)!= 0 then
                                local s = select_table(arena_name)

                                if table.getn(arena_observer) == s then
                                        return ;
                                end

                                if table.getn(arena_observer) >= s then
                                        arena.add_observer(arena_observer[s][1], arena_observer[s][2], arena_observer[s][3])
                                end
                        end
                end
        end
end 

 

Agradecia ter respostas..

 

Cumprimentos,

[GA]Daphine

 

Share this post


Link to post
Share on other sites
antiblock
Elveron

BUMP

Share this post


Link to post
Share on other sites

Explica ao pormenor o que acontece quando clicas no Npc

Share this post


Link to post
Share on other sites

É assim, eu vou ao npc, meto o jogador com quem quero duelar.

Ele diz para esperar, e na outra char que foi desafiada, aparece uma janela para aceitar ou recusar o duelo.

Carrego em aceitar e o npc teleporta para o mapa 4 arenas, mas quando lá chegam são teleportadas again para a cdd... 

E o duelo começa na cdd

Share this post


Link to post
Share on other sites

É um erro na tradução, mete a quest que veio again e vais ver que funciona.

 

Vê ao pormenor o que fizeste de mal, já me aconteceu o mesmo.

Share this post


Link to post
Share on other sites

Um a cena é que já não tenho a quest incial, mas vou tentar arranjar again...

 

Se funcionar eu meto +1 e meto resolvido, obrigado, irei tentar

Share this post


Link to post
Share on other sites

É assim, eu vou ao npc, meto o jogador com quem quero duelar.

Ele diz para esperar, e na outra char que foi desafiada, aparece uma janela para aceitar ou recusar o duelo.

Carrego em aceitar e o npc teleporta para o mapa 4 arenas, mas quando lá chegam são teleportadas again para a cdd... 

E o duelo começa na cdd

 

Verifica se o id do mapa de duelos está no MAP_ALLOW.  (112)

Share this post


Link to post
Share on other sites

Verifica se o id do mapa de duelos está no MAP_ALLOW.  (112)

Não é o ID do mapa, se não ele nem teleportaria, isso pode ser ou a quest ou o serv_attr se não me engano, não me lembro o nome.

Share this post


Link to post
Share on other sites

Não é o ID do mapa, se não ele nem teleportaria, isso pode ser ou a quest ou o serv_attr se não me engano, não me lembro o nome.

Pelo menos a quest parece-me estar 100% correcta

Share this post


Link to post
Share on other sites

É um erro na tradução, mete a quest que veio again e vais ver que funciona.

 

Vê ao pormenor o que fizeste de mal, já me aconteceu o mesmo.

 

Não funcionou... 

Pelo menos a que arranjei (arranjei 3 diferentes) e quando carregava em aceitar o duelo, não fazia mais nada....

 

 

Verifica se o id do mapa de duelos está no MAP_ALLOW.  (112)

 

Sim está !

 

Pelo menos a quest parece-me estar 100% correcta

 

Pois a mim também

Share this post


Link to post
Share on other sites

Fiz uma coisa e agora acontece o mesmo com as 3 quests.. 

Teleporta para as arenas e teleporta denovo para a cidade...

Share this post


Link to post
Share on other sites

Que coisa fizeste?

Share this post


Link to post
Share on other sites

Eu tinha alterado, na pasta map um ficheiro onde tinha o index do mapa, para 12 e voltei a alterar para 112 e deu pa teleportar..

Mas volta para a cidade á mesma

Share this post


Link to post
Share on other sites

Esse mapa é do evento PvP certo? Vê se não tem quests em conflito, isto é, como podes não ter as entradas abertas para o evento pvp, como o mapa pode ser o mesmo ele assume que como não está aberto tem de sair dali.

Share this post


Link to post
Share on other sites

Sim eu tenho uma quest de torneio pvp !

Se eu a apagar fica bem ?

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this