Jump to content
Sign in to follow this  
Stalker

[Resolvido] Duvida quanto a um npc.

Recommended Posts

A todos que me ajudarem, eu agradeço antecipadamente.

Primeiramente, vou avisar que sou novato na area de script, mas estou tentando aprender e peço ajuda porque realmente não encontrei na documentação.

Minha duvida é em relação ao novo modelo de menus, antigamente usavamos o "menu" e guiavamos o npc para as labels sem muitos problemas.

Porém, utilizando o switch eu não entendo como fazer esta função:

Switch(select("Quero ser um espadachim","Quero ser um arqueiro")){case 1:          set, .summon,1           mes "Olá, você gostaria de fazer o teste?"            Switch(select("Sim","Não")){    monster "mapaX",160,160,"Poring",1,"nome do npc::morreu";morreu:set, .summon,-1;if (.summon <1) {mes "Você passou no teste, pode se tornar um arqueiro, receba estes itens!";

Até aqui tudo certo. o problema é que aparentemente, para cada case eu vou ter que criar essa função. existe um modo mais prático, digo otimizado, para resolver esta questão?

Porque eu não consigo ver, com o nível de "scriptagem" atual

Edited by Stalker

Share this post


Link to post
Share on other sites

Opa, Amigo vou ajuda-lo sim, principalmente porque tu quer aprender, é o seguinte colega eu não entendi muito bem o que você quer fazer , poderia especificar melhor a descrição do npc/script ?

Mas se for o que eu entendi tem como tu fazer uma function e passar parâmetros fica mais clean.

ex:

function classe {if(getarg(0) == idClasse) { } }

Com function da para fazer uma optimizada geral, mas detalha mais sobre o script que fica mais fácil

Edited by Robert M
  • Love 1

Share this post


Link to post
Share on other sites

A funcao morreu nao precisa ser criada em cada case, ela precisa estar no NPC, entao voce pode criar 3 cases e nos 3 chamar a funçao!!

  • Love 1

Share this post


Link to post
Share on other sites

A funcao morreu nao precisa ser criada em cada case, ela precisa estar no NPC, entao voce pode criar 3 cases e nos 3 chamar a funçao!!

LABEL != função

o certo seria label

rsrs...

mas o que felpys disse está correto

Edited by Robert M
  • Love 1

Share this post


Link to post
Share on other sites

É bem simples, você vai falar com ele no inicio do jogo, ele vai te perguntar qual caminho quer seguir, depois de escolhido, ele vai perguntar se você aceita o teste para receber o pacote.

o problema é que, quando eu faço a opção para aceitar o desafio.

eu faço desse jeito:

monster "mapaX",150,150,Poring,1002,1,"nome do npc::morreu";

por exemplo.

Eu queria fazer algo dinamico, mandar essa label "morreu" pra fora das chaves, depois de ela fazer a checagem (se os monstros morreram ou não) retorar para a label da classe.

Entendeu?

ex:

switch(select("Quero A", "Quero B")){case 1:set, .monstro,5mes "Se você quer A, então precisa matar os 5 porings que eu vou sumonar";monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"break;case 2:set, .monstro,10mes "Se você quer B, então precisa matar 10 porings que eu sumonarei";monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"monster "mapaX",150,150,Poring,1002,1, "NPC::morreu"close;}morreu:set, .monstro-1if (.monstro > 1){mes "você cumpriu o teste, receba os itens";close;

O problema, é que essa função não vai distinguir qual das duas case enviou para lá.

Queria saber se tem como, depois de enviar, para a label morreu, retornar para a o case original.

Se não tem, como eu faço isso, poupando o máximo de linhas possível?

Share this post


Link to post
Share on other sites

Voce pode utilizar callfunc tmb, nele voce passa argumentos, nao sei muito dessa funcao, o Robert deve saber mais haha

@Robert

Eh que estou no celular rsrs saiu sem querer a funcao :p

Mas nao deixa de ser uma funcao? Ou nao? rsrs

@edit

Outra coisa, voce nao precisa usar "monster" 10 vezes, pode sumonar 10 em apenas uma "funcao", e cada monstro que ele matar, voce conta+1 em uma variavel.

Pode criar outra variavel pra armazenar o case, por exemplo:

case 1:

set .@temp,0;

case 2:

set .@temp,1;

case 3:

set .@temp,2;

Agora na LABEL morreu, voce pode utilizar um if

if(.@temp == ) executa tal coisa...

Edited by Felpys
  • Love 1

Share this post


Link to post
Share on other sites

tenta o seguinte:

case 1:mes "Se você quer A, então precisa matar os 5 porings que eu vou sumonar";close2;set @teste,1;monster "mapaX",150,150,Poring,1002,5, "NPC::morreu"break;case 2:mes "Se você quer B, então precisa matar 10 porings que eu sumonarei";close2;set @teste,2;monster "mapaX",150,150,Poring,1002,10, "NPC::morreu"}morreu:set @matou, @matou+1if ( @teste == 2 && @matou == 10 ){mes "você cumpriu o teste, receba os itens";close2;getitem x,y;}elseif(@teste == 1 && @matou == 5) {mes "você cumpriu o teste, receba os itens";close2;getitem x,y;}

Seria isso ?

  • Love 1

Share this post


Link to post
Share on other sites

Isso, só que eu farei com 6 variaveis hahaha, e o valor da variavel vai ser igual,
mas ja sei como fazer, obrigado pessoal, ajudaram muito!

Share this post


Link to post
Share on other sites

6 variaveis? Pra que? Faz 1 variavel com 6 valores :)

Share this post


Link to post
Share on other sites

Ainda não entendi muito bem as arrays, estou tentando aprender ainda, por hora farei deste modo, quando aprender arrays, otimizarei.
Acredito que em um ou dois dias, postarei o npc para avaliação da comunidade =)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...