🤔 Para Refletir :
"Se é seu amigo, não peça uma key do jogo dele: compre para apoiá-lo!"
- HenriqueGibi

Ativar NPC ao se aproximar

Jerint

Novato
Membro
Membro
Juntou-se
18 de Setembro de 2017
Postagens
11
Bravecoins
0
Olá, gostaria de saber como, através de eventos, eu posso fazer um NPC se mover até mim quando se aproximar a uma certa distancia.
 
Com 4 variáveis, o senhor poderia fazer o seguinte:

  • Na variável 1, armazenar a coordenada X do personagem.
  • Na variável 2, armazenar a coordenada Y do personagem.
  • Na variável 3, armazenar a coordenada X do evento.
  • Na variável 4, armazenar a coordenada Y do evento.

Com esses valores, o senhor já pode criar uma condicional que leva em consideração a distância do evento para o personagem.

A fórmula para distância entre dois pontos é:

dist-2-points-equn.gif


Ou:

Código:
RAIZ_QUADRADA( ( P1.X - P1.Y )² + ( P2.X - P2.Y )² )

Mas fazer essas operações diretamente com variáveis é um pouco complicado. Por isso é melhor usar a função Chamar Script para calcular a distância entre os dois:

Código:
$game_variables[5] = Math.hypot($game_variables[1] - $game_variables[2], $game_variables[3] - $game_variables[4])

O resultado será a distância do evento e do personagem na variável 5. Com isso é só criar uma condicional com o valor dessa variável e, caso ela for menor a distância desejada para ativar o evento, chamar o comando Mover > Perseguir personagem.

Sugiro que a inicialização do evento esteja em Processo paralelo para que isso seja calculado sempre que o jogador mover o personagem.
 
Jerint comentou:
RgIyosZ.png



Eu fiz assim como na imagem, entretanto o personagem n se move, pode me dizer o que deu errado?

o movimento do evento está definido como fixo
se vc não quer que ele se mova antes do jogador se aproximar coloque movimento personalizado, esperar
 
Jerint comentou:
Matheus_B comentou:
o movimento do evento está definido como fixo
se vc não quer que ele se mova antes do jogador se aproximar coloque movimento personalizado, esperar

Ambos se movimentam agora, porém o evento n espera a aproximação.

Você pode fazer o seguinte,
1- crie eventos com a opção ao Tocar Heroi e com a Opção de Atravessar o evento, e nos comandos de evento crie uma switch. (Exemplo :Opções de Switch - Individual: 0001: l Com a operação Modo ON)
2- Copie e Cole esse evento por onde você quer q seja a area de detecção, ou seja quando o jogador pisar em cima desse evento a Switch será ativada.
3-Agora crie o NPC que você quer que corra, atrás do heroi com a primeira página pre-configurada por você mesmo, exemplo, na primeira página você pode colocar pra ele se movimentar aleatoriamente, ou ficar parado, e na segunda página nas Condições de Evento na parte superior esquerda coloque o Switch 0001 que você criou, ai toda vez que o heroi pisar no evento que ativa a switch, a segunda página do seu NPC será ativada. E na segunda página do NPC você pode fazer com que ele siga o heroi
 
Você tem que ativar uma Switch em que o movimento não seja um evento e sim ativa pelo quadro Movimento, tirando o tipo aleatório para o seguir jogador.

Crie uma nova página ativar por essa Switch e se for usar novamente o Processo Paralelo dele faça o contrário, se quiser pra desativar o NPC.
 
Voltar
Topo Inferior