Ok, vamos lá!
Armadilha nº 1 - Espinhos
O problema dessa armadilha é que o personagem só leva dano quando ele atualiza o próprio movimento, ou seja, ele só leva dano quando o personagem se move, quando parado, ele não apresenta qualquer atualização de seu movimento no mapa, assim nada acontecendo.
Sugestão: Tente criar um evento paralelo que irá fazer a animação dos espinhos subirem, dentro dela, crie duas variáveis que pegue a posição do jogador no mapa (X e Y) e crie condições a seguir que siga essa lógica: Quando os espinhos subirem, o evento vai detectar o jogador através de Derivação Condicional em que vai estar configurado assim: Se a variável 1 (por exemplo) for igual à 8 e Y a variável 2 for igual a 8, perderá 10 de HP, como mostra a imagem abaixo:
(A imagem é do RPG Maker MV, mas é a mesma coisa fazendo no VX Ace.)
P.S.: Os números colocados nas condições foram exemplos, você pode substituir pelo número das posições dos espinhos no seu mapa.
Armadilha nº 2 - Fogo
O problema está na configuração do evento do fogo. Se a prioridade do evento está
"Junto ao Herói" o evento vira um objeto com "física" (que tem um corpo tocável por qualquer outro evento e pelo jogador.) O que acontece é que: Quando o fogo encosta no jogador, ele para pois o jogador impede o evento de fazer seu caminho, por isso ele ignora o comando seguinte e pula para o próximo.
Sugestão 1: Coloque a prioridade do evento para
"Abaixo do Herói", assim, o fogo passará pelo jogador sem que interrompa o caminho programado para ele seguir.
Sugestão 2: Quando o evento encostar no jogador, ative o movimento "Atravessar" do evento para que ele possa passar por cima do jogador e em seguida desativá-la.
É isso. Espero ter ajudado. Até mais