Como fazer um evento ser interagível e atravessável?

12 Respostas   968 Visualizações

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

Kazzter

Tópico criado em: 24/07/2019 às 14:22

Foi mal por estar criando outro tópico aqui

Basicamente, tem um evento, e eu queria que tivesse uma ação ao tocar nele, mas ao mesmo tempo atravessável, ou seja, que a sua rota de trajeto não fosse interrompida pela minha presença.

Quando eu coloco o evento atravessável, ele não executa ação ao tocar em mim, porque ele não toca em mim, como faço pra que ele permaneça atravessável mas que aconteça algo ao tocar em mim? Se é que isso é possível.
        

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 1: 24/07/2019 às 14:31 - Última modificação por Kyo Panda em 24/07/2019 às 14:32

Tópicos nunca são demais.

Código: [Selecionar]
class Game_Event

  def check_event_trigger_touch(x, y)
    return if $game_map.interpreter.running?
    if @trigger == 2 && $game_player.pos?(x, y)
      start if !jumping?
    end
  end
end

EDIT.: Provavelmente zoaria algo com o código anterior.

Kazzter

Resposta 2: 24/07/2019 às 14:41

Tópicos nunca são demais.

Código: [Selecionar]
class Game_Event

  def check_event_trigger_touch(x, y)
    return if $game_map.interpreter.running?
    if @trigger == 2 && $game_player.pos?(x, y)
      start if !jumping?
    end
  end
end

EDIT.: Provavelmente zoaria algo com o código anterior.

Opa, Kyo, aparentemente nenhum dos dois funcionou :/
        

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 3: 24/07/2019 às 14:52

Adiciona mais essa peça aqui:

Código: [Selecionar]
class Game_Player

  def start_map_event(x, y, triggers, normal)
    return if $game_map.interpreter.running?
    $game_map.events_xy(x, y).each do |event|
      if event.trigger_in?(triggers)
        event.start
      end
    end
  end
end

Kazzter

Resposta 4: 24/07/2019 às 15:05

Bom... Funciona, mas também não funciona.
Aqui um gif:


        

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 5: 24/07/2019 às 15:36

Os dois scripts estão no projeto? Pelo GIF, o do Game_Player parece estar ativo, já que quando o senhor caminha para a chama dá certo. Mas o do Game_Event não, já que é a chama que caminha ao jogador.  :sera:

Kazzter

Resposta 6: 24/07/2019 às 15:42

Os dois scripts estão no projeto? Pelo GIF, o do Game_Player parece estar ativo, já que quando o senhor caminha para a chama dá certo. Mas o do Game_Event não, já que é a chama que caminha ao jogador.  :sera:

Yep, estão todos ali.
        

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 7: 24/07/2019 às 16:22

Como é que o senhor está movendo a chama? Processo paralelo no evento da chama?

Kazzter

Resposta 8: 24/07/2019 às 16:46

Como é que o senhor está movendo a chama? Processo paralelo no evento da chama?

Usando uma rota no tipo de movimento customizado.
        

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 9: 24/07/2019 às 17:00

Mas é um outro evento controlando o evento da chama ou o mesmo evento?

Kazzter

Resposta 10: 24/07/2019 às 17:37

Mas é um outro evento controlando o evento da chama ou o mesmo evento?

É o mesmo evento.
        

Ludo

  • Veterano
  • *
  • Posts: 873
  • Ouros: 1227
  • Um homem não moldado pela dor, ainda é um menino
Resposta 11: 24/07/2019 às 19:39

vc pode fazer isso usando variaveis e coordenadas.
nao sei como vc esta fazendo aí mas vc pode remover a opção de tocar nele, nao sera mais necessario.

no evento paralelo vc poe
> variavel heroX = posição X do heroi
> variavel heroY = posição Y do heroi
> variavel eventX = posição X do evento
> variavel eventY = posição Y do evento

condição
> se variavel heroX igual a eventX
    > se variavel heroY igual a eventY
        [aqui acontece o que vc quer quando tocar no heroi
    >
>

Clique e conheça o meu canal - Canal RPG Maker Zone

Kyo Panda

  • Mito
  • *
  • Posts: 259
  • Ouros: 195
Resposta 12: 25/07/2019 às 08:47

Tente usar um outro evento para controlar a chama.