CryptoMT2 7 Posted April 2, 2016 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
Mago_pt 27 Posted August 5, 2016 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