🤔 Para Refletir :
"A vida é a caçada e o agora é o nosso campo de caça, os nossos sonhos são o alvo e as nossas lembranças são os troféus... Pois o nosso destino é sermos caçadores."
- Frank

RPG Maker MV Javascript MV - Choices via Script

DanTheLion Masculino

Conde
Administração
Administração
♫ in the jungle, the mighty jungle, the lion sleeps tonight ♫
Juntou-se
10 de Janeiro de 2016
Postagens
464
Soluções
1
Bravecoins
2.413
Javascript MV
Choices via Script



Olá a todos, neste tópico vou ensinar a como utilizar os scripts que têm função de criar aquela janela de escolhas (ou Choices) do RPG Maker MV.



Para diversos programadores (ainda mais aqueles que ainda estão aprendendo sobre a API do RPG Maker MV), esse conjunto de scripts sempre foi complicado de entender (nem tanto assim) a como mexer neles, especialmente a como fazer com que haja execução de outros scripts quando aquele botão é escolhido. Este tópico vai se basear nisso.

O grupo de códigos que iremos utilizar é esse:

$gameMessage.setChoices(escolhas, padrão, cancelamento);
$gameMessage.setChoiceCallback(function(responseIndex){});
this.setWaitMode('message');



Vamos por partes:

1. $gameMessage.setChoices(escolhas, padrão, cancelamento);

Esse código tem como sua função criar a janela com as escolhas inseridas nele, inserir o primeiro botão selecionado e o botão cujo o objetivo é cancelar a escolha. Entre parênteses, é definido a lista dos botões.

Escolhas: São todos os botões de escolha, em forma de script, você pode colocar quantos botões de escolha quiser, diferente do padrão do RPG Maker MV que te permite só colocar 6 deles. Para definir os nomes dos botões, deve-se criar uma Array com todos os nomes dentro, assim: ["Sim", "Não", "Talvez", "Gosto de Pizza", "Ninguém te perguntou ¬_¬"]

Padrão: Este define qual botão da lista será selecionado primeiro, como número, o primeiro botão começa pelo número 0, já o segundo é pelo nº 1, e depois pelo nº 2 e assim vai, isso vai depender de quantos botões você inseriu. Exemplo: 0

Cancelamento: Este define qual botão é diferente e que vai executar outro tipo de comando que vai definir o cancelamento dessa escolha, como número. Exemplo: 1

Como exemplo, podemos fazer assim:

var e = ["Sim", "Não"];
$gameMessage.setChoices(e, 0, 1);

Teremos dois botões: Sim e Não representado pela variável e igualando a uma Array com os nomes dos botões, o botão padrão é o primeiro representado pelo 0 (o botão Sim) e o botão de cancelamento é o segundo representado pelo 1 (O botão Não).
Utilizaremos esse script no final.


2. $gameMessage.setChoiceCallback(function(responseIndex){});

Esse script tem função a dar função aos botões, quando um deles for escolhido este vai executar um conjunto de comandos, e através da função com o parâmetro responseindex será fácil ver qual botão foi escolhido e executar seus comandos.

Para definir os comandos, precisamos colocar os comandos certos dentro da função. Você pode fazer de duas maneiras: Utilizar o comando If ou Switch. Ambos têm a mesma função de analisar um valor de uma variável ou de um parâmetro de uma função e decidir o que fazer com ela. O parâmetro da função responseindex é utilizado para definir qual botão foi escolhido pelo usuário através de um número, por exemplo: se for 0, vai entender que o primeiro botão é o que foi escolhido. Então vamos formular. Sabendo que nossa lista feita anteriormente só tem dois botões, utiliza-se apenas dois comandos condicionais para verificar qual dos botões foi escolhido. Pode ser feito dessa forma:


a) Pelo comando If

$gameMessage.setChoiceCallback(function(responseIndex){
  If(responseIndex == 0) {
    $gameVariables.setValue(1, 1);
  }
  If(responseIndex == 1) {
    $gameVariables.setValue(1, 2);
  }
});


b) Pelo comando Switch

$gameMessage.setChoiceCallback(function(responseIndex){
  switch(responseIndex) {
    case 0:
    $gameVariables.setValue(1, 1);
    break;
    case 1:
    $gameVariables.setValue(1, 2);
    break;
  }
});


Vendo nos dois sentidos, o script vai identificar o botão escolhido através do número registrado no parâmetro responseIndex. Se for o primeiro botão, o responseIndex será 0, ou se for o segundo botão, o responseIndex será 1. Sabendo disso, se o primeiro botão for escolhido, o comando de variáveis do RPG Maker MV será ativado, definindo o valor da Variável 1 da lista para 1, e se o segundo botão for escolhido, a mesma coisa vai acontecer, porém o valor da Variável 1 será definido para 2. Simples assim.
Dependendo de quantos botões a sua lista tiver, seu comando também vai aumentar, tendo que inserir cada comando para cada uma. Se caso fizer uma lista melhor, recomendo utilizar o comando Switch para isso, ele é mais organizado e é rápido de digitar.


3. this.setWaitMode('message');

Este é mais simples e mais importante de todo esse script para fazer sua lista de escolhas funcionar. Então adicione ela no final.



O resultado final fica assim:

var e = ["Sim", "Não"];
$gameMessage.setChoices(e, 0, 1);
$gameMessage.setChoiceCallback(function(responseIndex){
  if(responseIndex == 0) {
    $gameVariables.setValue(1, 1);
  }
  if(responseIndex == 1) {
    $gameVariables.setValue(1, 2);
  }
});
this.setWaitMode('message');


Testando esse código, aparecerá a lista normalmente, e sempre que escolher um dos botões, ele executará os códigos exercidos pelo botão e inseridos por você.



Por hoje é só, desculpem a demora, estava guardando esse tutorial faz um tempinho, mas eu não terminava devido às coisas do meu colégio, mas enfim ele está aqui. Se quiser mais tutoriais, acompanhe a lista de tutoriais de Javascript & Javascript MV, qualquer dúvida poste-a abaixo para tentar-mos resolvê-la. Até mais! :)
 
Muito bom! Parabéns man, eu estava em busca de algo exatamente assim porque queria evitar de usar a chamada pelo evento.
Obrigado. :D
 
Aqui deu erro o this.setWaitMode('message'), pois quem é ele? Coloquei no meu próprio script e isso não pode dar certo se não defini isso. Como posso arrumar?

Edit.:
Consegui fazer funcionar. Fui ver como era criado esses métodos e deu certo. Não precisei usar esse final, funcionou perfeitamente.
 
Javascript MV
Choices via Script



Olá a todos, neste tópico vou ensinar a como utilizar os scripts que têm função de criar aquela janela de escolhas (ou Choices) do RPG Maker MV.



Para diversos programadores (ainda mais aqueles que ainda estão aprendendo sobre a API do RPG Maker MV), esse conjunto de scripts sempre foi complicado de entender (nem tanto assim) a como mexer neles, especialmente a como fazer com que haja execução de outros scripts quando aquele botão é escolhido. Este tópico vai se basear nisso.

O grupo de códigos que iremos utilizar é esse:

$gameMessage.setChoices(escolhas, padrão, cancelamento);
$gameMessage.setChoiceCallback(function(responseIndex){});
this.setWaitMode('message');



Vamos por partes:

1. $gameMessage.setChoices(escolhas, padrão, cancelamento);

Esse código tem como sua função criar a janela com as escolhas inseridas nele, inserir o primeiro botão selecionado e o botão cujo o objetivo é cancelar a escolha. Entre parênteses, é definido a lista dos botões.

Escolhas: São todos os botões de escolha, em forma de script, você pode colocar quantos botões de escolha quiser, diferente do padrão do RPG Maker MV que te permite só colocar 6 deles. Para definir os nomes dos botões, deve-se criar uma Array com todos os nomes dentro, assim: ["Sim", "Não", "Talvez", "Gosto de Pizza", "Ninguém te perguntou ¬_¬"]

Padrão: Este define qual botão da lista será selecionado primeiro, como número, o primeiro botão começa pelo número 0, já o segundo é pelo nº 1, e depois pelo nº 2 e assim vai, isso vai depender de quantos botões você inseriu. Exemplo: 0

Cancelamento: Este define qual botão é diferente e que vai executar outro tipo de comando que vai definir o cancelamento dessa escolha, como número. Exemplo: 1

Como exemplo, podemos fazer assim:

var e = ["Sim", "Não"];
$gameMessage.setChoices(e, 0, 1);

Teremos dois botões: Sim e Não representado pela variável e igualando a uma Array com os nomes dos botões, o botão padrão é o primeiro representado pelo 0 (o botão Sim) e o botão de cancelamento é o segundo representado pelo 1 (O botão Não).
Utilizaremos esse script no final.


2. $gameMessage.setChoiceCallback(function(responseIndex){});

Esse script tem função a dar função aos botões, quando um deles for escolhido este vai executar um conjunto de comandos, e através da função com o parâmetro responseindex será fácil ver qual botão foi escolhido e executar seus comandos.

Para definir os comandos, precisamos colocar os comandos certos dentro da função. Você pode fazer de duas maneiras: Utilizar o comando If ou Switch. Ambos têm a mesma função de analisar um valor de uma variável ou de um parâmetro de uma função e decidir o que fazer com ela. O parâmetro da função responseindex é utilizado para definir qual botão foi escolhido pelo usuário através de um número, por exemplo: se for 0, vai entender que o primeiro botão é o que foi escolhido. Então vamos formular. Sabendo que nossa lista feita anteriormente só tem dois botões, utiliza-se apenas dois comandos condicionais para verificar qual dos botões foi escolhido. Pode ser feito dessa forma:


a) Pelo comando If

$gameMessage.setChoiceCallback(function(responseIndex){
If(responseIndex == 0) {
$gameVariables.setValue(1, 1);
}
If(responseIndex == 1) {
$gameVariables.setValue(1, 2);
}
});


b) Pelo comando Switch

$gameMessage.setChoiceCallback(function(responseIndex){
switch(responseIndex) {
case 0:
$gameVariables.setValue(1, 1);
break;
case 1:
$gameVariables.setValue(1, 2);
break;
}
});


Vendo nos dois sentidos, o script vai identificar o botão escolhido através do número registrado no parâmetro responseIndex. Se for o primeiro botão, o responseIndex será 0, ou se for o segundo botão, o responseIndex será 1. Sabendo disso, se o primeiro botão for escolhido, o comando de variáveis do RPG Maker MV será ativado, definindo o valor da Variável 1 da lista para 1, e se o segundo botão for escolhido, a mesma coisa vai acontecer, porém o valor da Variável 1 será definido para 2. Simples assim.
Dependendo de quantos botões a sua lista tiver, seu comando também vai aumentar, tendo que inserir cada comando para cada uma. Se caso fizer uma lista melhor, recomendo utilizar o comando Switch para isso, ele é mais organizado e é rápido de digitar.


3. this.setWaitMode('message');

Este é mais simples e mais importante de todo esse script para fazer sua lista de escolhas funcionar. Então adicione ela no final.



O resultado final fica assim:

var e = ["Sim", "Não"];
$gameMessage.setChoices(e, 0, 1);
$gameMessage.setChoiceCallback(function(responseIndex){
if(responseIndex == 0) {
$gameVariables.setValue(1, 1);
}
if(responseIndex == 1) {
$gameVariables.setValue(1, 2);
}
});
this.setWaitMode('message');


Testando esse código, aparecerá a lista normalmente, e sempre que escolher um dos botões, ele executará os códigos exercidos pelo botão e inseridos por você.



Por hoje é só, desculpem a demora, estava guardando esse tutorial faz um tempinho, mas eu não terminava devido às coisas do meu colégio, mas enfim ele está aqui. Se quiser mais tutoriais, acompanhe a lista de tutoriais de Javascript & Javascript MV, qualquer dúvida poste-a abaixo para tentar-mos resolvê-la. Até mais! :)
Você me ajuda tanto, valeu cara
 
Voltar
Topo Inferior