Adicionar switch em dano por terreno.

7 Respostas   352 Visualizações

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

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Tópico criado em: 15/04/2018 às 10:07 - Última modificação por Corvo em 15/04/2018 às 11:41

Estou tentando ajudar um colega aqui.
Ele queria colocar o dano por terreno em 25% do max HP.
Isso eu ja fiz, porém ele queria poder desativar e ativar por switch, mas nao to conseguindo fazer.

tem um print aqui: https://prnt.sc/j5ir4k
Clique e conheça o meu canal - Canal RPG Maker Zone

Corvo

Resposta 1: 15/04/2018 às 10:11

Coloca esse if assim:
Código: [Selecionar]
if (damage > 0 && $gameSwitches[ID] == true) {
Lembrando que não testei nem sei mexer com Js. De gambiarra em gambiarra vamos dar jeito. o/

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 2: 15/04/2018 às 10:21

Coloca esse if assim:
Código: [Selecionar]
if (damage > 0 && $gameSwitches[ID] == true) {
Lembrando que não testei nem sei mexer com Js. De gambiarra em gambiarra vamos dar jeito. o/

Então, eu havia tentado isso, o que acontece é que eu acho que não pode usar game temp... ou algo assim.
Clique e conheça o meu canal - Canal RPG Maker Zone

Corvo


Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 4: 15/04/2018 às 10:28

Que erro aparece?

O codigo fica assim:
https://prnt.sc/j5ixie

Se eu adicionar somente a parte de cima que é o "perform damage" essa parte simplesmente é ignorada (ela é responsavel só pelo Flash vermeho, com ela funcionando ou não o dano continua)

Se eu adicionar um if .... la embaixo no basicfloordamage aí gera um erro a seguir:
https://prnt.sc/j5iydv
Clique e conheça o meu canal - Canal RPG Maker Zone

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 5: 15/04/2018 às 10:50

Então, um dos pontos é que o modo como chama a variável está errado. $gameSwitches não é mais uma array como era em RGSS, agora ela é uma classe que tem sua array de dados, mas possui funções para pegar seus valores. Aqui, a partir da linha 511 do rpg_objects tu acha ela, e na sequência a Game_Variables.

O modo correto de chamar o valor de uma switch seria:
Código: [Selecionar]
$gameSwitches.value(ID)
Quanto à posição da condição, seria melhor tu adicionar ela na função .checkFloorEffect, quando é checado se o personagem está sobre um terreno que aplica dano. Caso a switch não estivesse permitindo o dano, ali mesmo o código já parava e evitava processamento desnecessário do cálculo do dano, vez que a intenção era ele não ser aplicado mesmo.

Fiz um codigozinho que julgo fazer o que tu tá querendo. Dá pra pegar ele por aqui.

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 6: 15/04/2018 às 11:38

Então, um dos pontos é que o modo como chama a variável está errado. $gameSwitches não é mais uma array como era em RGSS, agora ela é uma classe que tem sua array de dados, mas possui funções para pegar seus valores. Aqui, a partir da linha 511 do rpg_objects tu acha ela, e na sequência a Game_Variables.

O modo correto de chamar o valor de uma switch seria:
Código: [Selecionar]
$gameSwitches.value(ID)
Quanto à posição da condição, seria melhor tu adicionar ela na função .checkFloorEffect, quando é checado se o personagem está sobre um terreno que aplica dano. Caso a switch não estivesse permitindo o dano, ali mesmo o código já parava e evitava processamento desnecessário do cálculo do dano, vez que a intenção era ele não ser aplicado mesmo.

Fiz um codigozinho que julgo fazer o que tu tá querendo. Dá pra pegar ele por aqui.

Muito obrigado. Funciona. deu pra aprender bastante.
Então seguindo esse .value
se fosse usando variaveis eu usaria $gameVariables.value(ID) === valor
Clique e conheça o meu canal - Canal RPG Maker Zone

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 7: 15/04/2018 às 11:47

[...] Então seguindo esse .value
se fosse usando variaveis eu usaria $gameVariables.value(ID) === valor
Exatamente.  :ok: