Mudar gráfico enquanto botão estiver apertado.

5 Respostas   333 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

HammerStrike

  • Veterano
  • *
  • Posts: 333
  • Ouros: 280
  • "Quando vou terminar?quando estiver pronto!"
  • Equipamentos "Manejar espadas está lhe dando calos nas mãos? Uma bela luva pode ser uma boa saída, além de prover um manejo melhor das lâminas." "O norte sempre me surpreende, e este escudo não foi uma exceção. Em uma de minhas viagens lá vi ele, muito bonito e resistente, claro que não poderia deixar de trazer um." "Um dos melhores trabalhos dos povos das terras da noite é esse metal, que na escuridão mais gelada aquece o corpo que protege."
Tópico criado em: 25/07/2018 às 08:31 - Última modificação por King Gerar em 25/07/2018 às 23:44

Olá. to criando uma habilidade que é ativada ao apertar um botão, porem eu queria que deixar uma a condição de que quando o jogador apertar o botão "X" e o mantiver pressionado o charset vai mudar para outro com animação parada ativa, e ao para de pressionar o botão o charset deveria voltar ao gráfico original.

Como posso fazer isso por script?
1 Bit Estúdio

makergame2000

Resposta 1: 25/07/2018 às 08:42

é mesmo preciso fazer isso por script?

os eventos também podem ser chamados em script por comandos, se for um evento comum.

A Menos que isto seja para um sistema de batalha como por exemplo batalha de primeira pessoa do VX Ace não vejo a necessidade de usar um script.

HammerStrike

  • Veterano
  • *
  • Posts: 333
  • Ouros: 280
  • "Quando vou terminar?quando estiver pronto!"
  • Equipamentos "Manejar espadas está lhe dando calos nas mãos? Uma bela luva pode ser uma boa saída, além de prover um manejo melhor das lâminas." "O norte sempre me surpreende, e este escudo não foi uma exceção. Em uma de minhas viagens lá vi ele, muito bonito e resistente, claro que não poderia deixar de trazer um." "Um dos melhores trabalhos dos povos das terras da noite é esse metal, que na escuridão mais gelada aquece o corpo que protege."
Resposta 2: 25/07/2018 às 08:49

é mesmo preciso fazer isso por script?

os eventos também podem ser chamados em script por comandos, se for um evento comum.

A Menos que isto seja para um sistema de batalha como por exemplo batalha de primeira pessoa do VX Ace não vejo a necessidade de usar um script.

Script de comando deve funcionar também. Eu tentei fazer por condições e tal mais não funciona direito, mas não precisa necessariamente ser script.
1 Bit Estúdio

makergame2000

Resposta 3: 25/07/2018 às 08:56

Eu há uns bons anos fiz um sistema de eventos +- parecido com o que está pedir, eu até poderia adaptar para você mas só tenho o RMXP instalado.

https://centrorpg.com/index.php?topic=4556.0
Tente talvez o adaptar.



Agora se quer por scripts, eu já algum tempo que não mexo em Ruby portanto não poderei fazer muito agora.

Mas se você quiser fazer por Evento Comum e chamar por script existe um comando simples para isto, pode saber mais dele neste tópico https://www.rpgmakercentral.com/topic/19427-calling-a-common-event-from-a-script/

Geraldo de Rívia

  • Mito
  • *
  • Posts: 4452
  • Ouros: 3887
  • O vento está sibilando.
  • Medalhas Vencedor do Protótipo Premiado Participantes do Maps Together 2
Resposta 4: 25/07/2018 às 20:40

Então, não sabendo redigir códigos, seria uma boa tentar fazer mesclando os comandos por eventos e os chamar script, como o makergame falou.

De início seria bom ser em evento comum, para que funcione em todos os mapas sem a necessidade de ter um evento em cada um. Processo paralelo para não impedir ou ser impedido por outros eventos e uma switch para tu ter controle; talvez em alguma cutscene tu não queira este evento funcionando, ou mesmo para testar incompatibilidades.

Primeiro tu vai criar a condição que checa se a tecla X está pressionada, afinal é o ativador do sistema. Isso é feito pelo código abaixo e tu vai por ele na condição, por script. Deixa a exceção dessa condição aberta, pois precisaremos dela.

Código: [Selecionar]
Input.press?(:X)
Dentro da condição, caso seja verdadeira, tu vai verificar se o gráfico do jogador já foi mudado, pois caso já tenha sido, significa que a tecla X já está sendo pressionada há algum tempo. Isso evita que o gráfico fique sendo mudado insistentemente, comendo processamento e pesando o sistema. Essa condição evitará que a mudança de gráfico seja lida repetidamente e pode ser feita pelo código abaixo. Só que, ao invés de verificar se o gráfico do jogador é o especificado, verificaremos se o gráfico é diferente do especificado.

Código: [Selecionar]
$game_player.character_name != "Nome_do_gráfico"
"Nome_do_gráfico" será o nome do arquivo correspondente ao que o personagem irá assumir enquanto a tecla estiver pressionada. Dentro desta condição tu vai colocar um Mudar Gráficos do Jogador, que mudará para o gráfico desejado, e um Definir Rota de Movimento, em que tu ativará a animação fixa.

Na exceção da primeira condição, tu vai colocar uma condição semelhante à feita anteriormente, porém, verificando se o gráfico é igual ao desejado quando o jogador estiver com o botão pressionado. Ele servirá para, quando o botão não estiver pressionado, verificar se o gráfico ainda está alterado. Se tiver, ele irá "resetar" o gráfico, se não, irá ignorar e continuar o processamento. Assim como a condição anterior, é bem útil para evitar processamento desnecessário. Para verificar se o jogador está com um gráfico em específico é o mesmo código de antes, só que com o sinal trocado.

Código: [Selecionar]
$game_player.character_name == "Nome_do_gráfico"
Dentro dessa condição tu reseta o gráfico e desativa a animação fixa. Por fim, a pequena programação deve ficar similar à da imagem. Espero que seja o que esteja procurando. Qualquer problema que tiver ao replicar tu manda aí, talvez queira adicionar mais algo. Um sonzinho, talvez? Mas antes de olhar na imagem e fazer igual, peço que tente bolar o sistema a partir do prescrito no tópico, seria bom pro entendimento.  :ok:


HammerStrike

  • Veterano
  • *
  • Posts: 333
  • Ouros: 280
  • "Quando vou terminar?quando estiver pronto!"
  • Equipamentos "Manejar espadas está lhe dando calos nas mãos? Uma bela luva pode ser uma boa saída, além de prover um manejo melhor das lâminas." "O norte sempre me surpreende, e este escudo não foi uma exceção. Em uma de minhas viagens lá vi ele, muito bonito e resistente, claro que não poderia deixar de trazer um." "Um dos melhores trabalhos dos povos das terras da noite é esse metal, que na escuridão mais gelada aquece o corpo que protege."
Resposta 5: 25/07/2018 às 22:53

Funcionou Gerar! Vlw pela dica.
1 Bit Estúdio