antiblock
Rodnia | Alpha & Omega
  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  
CryptoMT2

Quest Cavalo Armado/militar

17 posts in this topic

Experimenta assim:

 

 pc.setqf("make_time", get_time()+4*60*0)

Funciona mas tenho que alterar personagem nao da para receber logo no jogo sem ter que alterar?

 

Ja agora fica aqui a quest que editei pela tua ja traduzi e mudei algumas coisas... obrigado

 

quest horse_upgrade begin
        state start begin
                when 20349.chat."Cavalo Armado" with horse.get_grade()==1 and horse.get_level()==10 begin
                        if horse.is_dead() then
                                say_title("Rapaz do Estabulo:")
                                say("")
----"123456789012345678901234567890123456789012345678901234567890"| 
                                say("O teu cavalo esta morto podes ir dropar a erva")
                                say("nos bosses da cave dos macacos facil, media e dificil.")
                                say("para reviver o teu cavalo e poderes fazer a missao")
say("Ou podes comprar na minha loja.")
say("")
                                say_item_vnum(50057)
                                say("")
                        elseif pc.level<=34 then
                                say_title("Rapaz do Estabulo:")
                                say("")
----"123456789012345678901234567890123456789012345678901234567890"|
                                say("Nivel demasiado baixo")
                                say("para melhorar o cavalo")
                                say("volta quando fores nivel 35.")
                                say("")
                        elseif pc.countitem("50050")<1 then
                                say_title("Rapaz do Estabulo:")
                                say("")
----"123456789012345678901234567890123456789012345678901234567890"| 
                                say("Se queres melhorar o teu cavalo tens que passar")
                                say("por um teste de adaptacao")
                                say("")
                                say("Para fazer o teste precisas de medalha de equitacao")
                                say("podes conseguilas nas cavernas dos macacos")
                                say("")
                                say_item_vnum(50050)
                                say("Claro que os macacos nao te vao dar uma facilmente.")
say("Se tiveres dinheiro podes sempre comprar na minha loja")
                                say("")
                                setstate(need_item50050)
                        elseif pc.countitem("50051")<1 then
                                say_title("Rapaz do Estabulo:")
                                say("")
----"123456789012345678901234567890123456789012345678901234567890"|
                                say("Nao quero dizer isto duas vezes:")
                                say("")
                                say_item_vnum(50051)
                                say("Tens que ter a tua Miniatura de Cavalo")
                                say("se quiseres montar!")
                                say("")
                        elseif horse.get_level()==10 and not horse.is_dead() and pc.countitem("50050")>=1 and pc.level>=35 then
                                say_title("Rapaz do Estabulo:")
                                say("")
----"123456789012345678901234567890123456789012345678901234567890"| 
                                say("Se conseguires o livro de Cavalo Armado")
say("podes atacar em cima do cavalo. Vou testar")
say("a sua experiencia de combate e equitacao. Vai")
say("ao deserto matar Arqueiro Escorpiao e Serpente Arqueiro.")
say("")
                                say("Podes ir para la com um grupo")
say("mas tens de ser o lider.")
                                say("")
                                local b=select("Aceito", "Cancelar")
                                if 1==b then
                                        if pc.countitem("50050")>=1 then
                                                pc.removeitem("50050", 1)
                                                setstate(test)
                                        end
                                elseif 2==b then
                                        say("Esta bem, volta mais tarde")
                                else
                                        say("UNKNOWN BUTTON ["..b.."]")
                                end
                        else
                                say_title("Rapaz do Estabulo:")
                                say("")
                                say("Eu acho que voce nao pode obter Cavalo Armado")
                                say("Isso é estranho, eu nao sei porque")
                                say("Voce deve perguntar a um Game Master o que esta acontecer")
                                say("")
                        end
                end
        end
        state need_item50050 begin
                when letter begin
                        setskin(NOWINDOW)
                        makequestbutton("Cavalo Armado")
                        q.set_title("Cavalo Armado!")
                        q.start()
                end
                when button or info begin
                        say_title("Cavalo Armado!")
                        say("")
----"123456789012345678901234567890123456789012345678901234567890"|
                        say("Precisas de uma Medalha de Equitacao para fazer Cavalo Armado")
                        say("")
                        say_item_vnum(50050)
                        say("Podes encontralas nas caves dos macacos")
say("ou na minha loja mas tudo tem um custo.")
                        say("")
                        setstate(start)
                        q.done()
                end
        end
        state test begin
                when letter begin
                        q.set_counter("Arqueiro Escorpiao", 100-pc.getqf("kill_count"))
                end
                when 2105.party_kill begin
                        pc.setqf("kill_count", pc.getqf("kill_count")+1)
                        q.set_counter("Arqueiros em falta:", 100-pc.getqf("kill_count"))
                        if get_time()>=pc.getqf("limit_time") then
                                setstate(failure)
                        end
                end
                when 2107.party_kill begin
                        pc.setqf("kill_count", pc.getqf("kill_count")+1)
                        q.set_counter("Arqueiros em falta:", 100-pc.getqf("kill_count"))
                        if get_time()>=pc.getqf("limit_time") then
                                setstate(failure)
                                q.done()
                        end
                end
                when letter begin
                        q.set_clock("Tempo restante", pc.getqf("limit_time")-get_time())
                end
                when enter begin
                        pc.setqf("limit_time", get_time()+30*60)
                        pc.setqf("kill_count", 0)
                end
                when leave begin
                        q.done()
                end
                when letter begin
                        setskin(NOWINDOW)
                        makequestbutton("Teste Cavalo Armado")
                        q.set_title("Teste Cavalo Armado")
                        q.start()
                end
                when button or info begin
                        say_title("Teste Cavalo Armado")
                        say("")
                        say("Mata 100 Arqueiros Escorpiao ou Serpente Arqueiro em menos de 30 minutos")
                        say("e traz os resultados ao Rapaz do Estabulo.")
                        say("")
                        say("Podes fazer grupo com os teus amigos")
say("mas tens que ser o lider do grupo.")
                        say("")
                end
                when 2105.party_kill with pc.getf("horse_upgrade","kill_count") >= 100 and pc.getf("horse_upgrade","limit_time")>=get_time() begin
                        setstate(report)
                end
                when 2107.party_kill with pc.getf("horse_upgrade","kill_count") >= 100 and pc.getf("horse_upgrade","limit_time")>=get_time() begin
                        setstate(report)
                end
                when 20349.chat."Progresso Teste Cavalo Armado" begin
                        say_title("Rapaz do Estabulo:")
                        say("")
                        say("Mata 100 Arqueiros Escorpiao ou Serpente Arqueiro em menos de 30 minutos")
                        say("e traz os resultados ao Rapaz do Estabulo.")
                        say("")
                        say("Podes fazer grupo com os teus amigos")
say("mas tens que ser o lider do grupo.")
                        say("")
                        local b=select("Continuar", "Cancelar")
                        if 1==b then
                        elseif 2==b then
                                say_title("Rapaz do Estabulo:")
                                say("")
                                say("Tens a certeza que queres desistir?")
                                say("")
                                local b=select("Sim.", "Nao!")
                                if 1==b then
                                        say_title("Rapaz do Estabulo:")
                                        say("")
                                        say("Esta bem boa sorte da proxima vez")
                                        say("")
                                        setstate(start)
                                        q.done()
                                elseif 2==b then
                                        say_title("Rapaz do Estabulo:")
                                        say("")
                                        say("Nao tens tempo para isso!")
                                        say("")
                                        say("Vai o mais rapido possivel matar 100")
                                        say("Arqueiros Escorpiao ou Serpente Arqueiro!")
                                        say("")
                                else
                                        say("Unknown Button ["..b.."]")
                                end
                        else
                                say("Unknown Button ["..b.."]")
                        end
                end
        end
        state report begin
                when letter begin
                        setskin(NOWINDOW)
                        makequestbutton("Volta ao Rapaz do Estabulo")
                        q.set_title("Volta ao Rapaz do Estabulo")
                        q.start()
                end
                when button or info begin
                        say_title("Volta ao Rapaz do Estabulo")
                        say("")
                        say("Leva os resultados do teste ao Rapaz do Estabulo.")
                        say("")
                end
                when 20349.chat."Relatorio teste Cavalo Armado" with horse.get_grade()!=1 begin
                        setstate(start)
                        q.done()
                end
                when 20349.chat."Relatorio teste Cavalo Armado" with horse.get_grade()==1 begin
                        say_title("Rapaz do Estabulo:")
                        say("")
                        say("Bom trabalho.")
                        say("Se queres melhorar o teu cavalo agora")
                        say("tens que mudar a tua miniatura de cavalo por um livro")
say("")
                        if is_test_server() then
pc.setqf("make_time", get_time()+10)
                        else
                                pc.setqf("make_time", get_time()+4*60*0)
                        end
                        setstate(wait)
                end
        end
        state wait begin
                when letter begin
                        setskin(NOWINDOW)
                        makequestbutton("Espera pelo livro Cavalo Armado")
                        q.set_title("Espera pelo livro Cavalo Armado")
                        q.start()
                end
                when button or info begin
                        say_title("Espera pelo livro Cavalo Armado")
                        say("")
                        say("Espera que o Rapaz do Estabulo acabe o livro")
                        say("ele demora perto de 4 horas ate terminar.")
                        say("")
                end
                when login with get_time()>=pc.getf("horse_upgrade","make_time") begin
                        setstate(buy)
                end
                when 20349.chat."Melhorar o estado do cavalo" with horse.get_grade()!=1 begin
                        setstate(start)
                        q.done()
                end
                when 20349.chat."O meu livro esta pronto?" with horse.get_grade()==1 begin
                        say_title("Rapaz do Estabulo:")
                        say("")
                        say("Sinto muito mas tem que esperar mais um pouco")
say("")
                end
        end
        state buy begin
                when letter begin
                        setskin(NOWINDOW)
                        makequestbutton("Vai ao Rapaz do Estabulo")
                        q.set_title("Vai ao Rapaz do Estabulo")
                        q.start()
                end
                when button or info begin
                        say_title("Vai ao Rapaz do Estabulo")
                        say("")
                        say("Vai ate ao rapaz do estabulo buscar o livro de cavalo armado.")
                        say("")
                        say_item_vnum(50052)
                        say("")
                end
                when 20349.chat."Melhorar o estado do cavalo" with horse.get_grade()!=1 begin
                        setstate(start)
                        q.done()
                end
                when 20349.chat."Melhorar o estado do cavalo" with horse.get_grade()==1 and horse.get_level()!=10 begin
                        setstate(start)
                        q.done()
                end
                when 20349.chat."O livro esta pronto!" with horse.get_grade()==1 and horse.get_level()==10 begin
                        say_title("Rapaz do Estabulo:")
                        ----"123456789012345678901234567890123456789012345678901234567890"| 
                        say("")
                        say("Com Cavalo Armado, podes andar mais rapido")
                        say("e atacar em cima do cavalo.")
                        say("")
                        say("Foi um caminho complicado mas e para te preparar")
                        say("para o cavalo militar...")
                        say("")
                        local b=select("Cavalo Armado", "Nao quero agora")
                        if 1==b then
                                if pc.money>=0 then
                                        if pc.countitem("50051")>=1 then
                                                char_log(0, "HORSE_UPGRADE", "BEGIN")
                                                pc.changemoney(-500000)
                                                char_log(0, "HORSE_UPGRADE", "DEC money 500000")
                                                pc.removeitem("50051", 1)
                                                char_log(0, "HORSE_UPGRADE", "DEC 50051 1")
                                                horse.unride()
                                                horse.advance()
horse.advance()
horse.advance()
horse.advance()
horse.advance()
horse.advance()
horse.advance()
horse.advance()
horse.advance()
horse.advance()
                                                horse.ride()
                                                char_log(0, "HORSE_UPGRADE", "INC horse_advance 1")
                                                pc.give_item2("50052", 1)
                                                char_log(0, "HORSE_UPGRADE", "INC 50052 1")
                                                char_log(0, "HORSE_UPGRADE", "END")
                                                say_title("Rapaz do Estabulo:")
                                                say("")
                                                say("Agora podes chamar o teu cavalo armado")
                                                say("mas se perderes o livro que te dei")
                                                say("tens que comprar outro")
                                                say("por isso cuida bem dele.")
say("")
                                                setstate(start)
                                                q.done()
                                        else
                                                say_title("Rapaz do Estabulo:")
                                                say("")
                                                say("Voce precisa de Miniatura de Cavalo")
                                                say("para receber Livro Cavalo Armado.")
                                        end
                                else
                                        say_title("Rapaz do Estabulo:")
                                        say("")
                                        say("Precisas de 0 para ganhar o cavalo")
                                        say("e a miniatura de cavalo. Volta quando tiveres.")
                                        say("")
                                end
                        else
                                say_title("Rapaz do Estabulo:")
                                say("")
                                say("Volta novamente se quiseres obter o livro.")
                                say("")
                        end
                end
        end
        state failure begin
                when letter begin
                        setskin(NOWINDOW)
                        makequestbutton("Tempo Acabou!")
                        q.set_title("Tempo Acabou!")
                        q.start()
                end
                when button or info begin
                        say_title("Tempo Acabou!")
                        say("")
----"123456789012345678901234567890123456789012345678901234567890"|                                           l
                        say("Infelizmente nao conseguiste matar 100")
                        say("Arqueiros Escorpiao ou Serpente Arqueiro")
                        say("Por isso o teste falhou.")
say("")
                        say("Se quiseres voltar a tentar")
                        say("leva outra medalha ao Rapaz do Estabulo")
                        say("")
                        setstate(start)
                        q.done()
                end
        end
        state __COMPLETE__ begin
                when enter begin
                        q.done()
                end
        end
end

Share this post


Link to post
Share on other sites
antiblock
Cyphriun

Topico movido de Metin2 - Quests para Metin2 - Pedidos

Ponto de aviso dado.

Sobre a Quest:

state mester begin
local d = find_npc_by_vnum(20349)
if d != 0 then
target.vid("__TARGET__", d, "Consegue o teu cavalo armado")
end

O state primário a ser executado chama-se "start", têm atenção que se a quest é autónoma

(não mudado o state viaoutra quest) ela somente se iniciará por start.

 

Não especificaste o when state, presumo que seja login?

when __TARGET__.target.click or 20349.chat."Consegue o teu cavalo armado" with pc.get_level() < 25 begin

Aconselho a fazeres a verificação do nível logo no target, evita mandares fazer um novo target sem necessidade, consome menos recursos(mesmo não tendo muito interesse visto a quest que é)

Onde está a contagem de kills? Somente vejo quando chegar a 0 restantes, ele a dar o prêmio, e:

when 2105.kill with q.set_counter("Arqueiro Escorpiao") == 0 begin

q.set_counter como diz é função de "set", por isso não retorna nada, simplesmente atribui,

e a mesma leva dois argumentos(nome(str), valor(int))

Convêm que faças um state entre iniciar e completar a missão, senão vai continuar sempre igual as kills porque nunca irás sair do mesmo state, e também limpares os counters.

E também convêm limpares os timers.

Aqui está a quest corrigida e melhorada a meu ver:

http://pastebin.com/wZFtzQC6

Não a testei, tenho algumas duvidas em quanto a nomes de 1 ou 2 funções e estrutura, mas se não funcionar é facil de arranjar/ver.

boas uma dúvida aqui :

 

local killed = q.get_counter("Arqueiro Demonio")

            q.set_counter("Arqueiro Demonio", killed - 1)
 
posso  usar :
 
q.set_counter("Arqueiro Demonio",q.get_counter("arqueiro Demonio")-1) ?

Share this post


Link to post
Share on other sites
Sign in to follow this