Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 4140 miembros registrados.
El último usuario registrado es ReyPizza.

Nuestros miembros han publicado un total de 84802 mensajes en 12071 argumentos.

evento colisiona con evento

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP evento colisiona con evento

Mensaje por Producciones The Golden el 2016-12-30, 00:45

Si, primero: "cuantos problemas tienes kavr0n!", y segundo: "pregunta muy típica, debe haber algo de esto en internet", pero no... no he encontrado ninguna solución a esta duda para el rpg maker xp; el problema:
Quiero que ocurra algo cuando un evento NO ATRAVESABLE COLISIONA CON OTRO NO ATRAVESABLE, lo único que se me ocurra es algo así como verificar para que dirección mira el primero y de ahí restar uno a la X y/o Y del otro para que así coincidan, pero habría que hacer como 8 cadenas de condiciones y efectos y sería una jodida locura XDDDDD, si al que lee esto no se le ocurre que hacer pero sabe de scripts, lo que se me ocurre es que traduzca este script del vx ace al XP:
http://pastebin.com/xP8YVFK6
EDIT: OTRA COSA! vi en otro post de este mismo tema que moghunter "halló una solución a esto" y la subió en comentarios, pero el link es de megaupload y se podrán imaginar que... muy bien no anda :v XD si alguien lo tiene o puede contactar con dicho usuario sería la solución.

Este post, una vez teniendo la solución servirá a MUCHA gente, es un problema muy típico y al que en el rpg maker xp no le hallé solución; muchas gracias de antemano!
Eso fue todo... hasta pronto! Warrior
avatar
Producciones The Golden
Veterano
Veterano

0/3

Créditos 639

Gracias : 60

Volver arriba Ir abajo

RPG Maker XP Re: evento colisiona con evento

Mensaje por Wecoc el 2016-12-30, 13:09

Ese script que has puesto estoy bastante seguro que es para XP, pero no hace lo que buscas.

Consejo:
Puede que me equivoque pero quizá estés intentando hacer cosas que sobrepasan un poco tu nivel actual, ¿no crees? Porque esas dudas que pides son aplicables pero su solución requiere buenos conocimientos de engines y scripts... Creo que te estás metiendo en camisas de once varas con ese proyecto y deberías frenar un poco hasta que tengas el maker suficientemente dominado. Porque luego muchas veces a uno se le ocurren formas de hacer lo mismo pero mucho más sencillo, y quizá ni necesites crear eventos o hacer colisiones entre ellos al final.

En fin, no recuerdo si la duda ya fue resuelta en el foro. Cuando al menos uno de los eventos es atravesable es muy fácil porque solo hay que obtener las coordenadas de ámbos y mirar si son iguales. En tu caso es imposible porque el movimiento random del evento está pensado para evitar cualquier choque automáticamente, así que no colisionarían jamás. Es distinto si ámbos tienen una ruta no aleatoria, pero en ese caso seguramente habría alguna forma de saber donde pueden chocar, y por lo tanto montar el engine de las coordenadas otra vez teniendo en cuenta ese patrón (que tampoco chocan, solo se quedan trabados justo antes de intentar ese movimiento no válido o bien abortan la ruta de evento, pero en fin, el engine se reduciría a un juego de coordenadas).

Pero ojo, chocar no significa lo mismo que tener justo al frente. Chocar es tener el evento al frente e intentar ir hacia ese evento. Eso, que en el personaje como lo controlas tú está tan claro, es una frontera más difusa entre eventos (aunque depende del caso), así que creo que lo suyo es activar algo simplemente cuando el evento tenga justo al frente el otro evento.

Si te sirve ese caso vuelve a ser más simple, solo tienes que usar éste pequeño script. Ni lo necesitarías pero te ahorras muchas variables.

Código:
class Game_Character
  def front_event(through=false)
    x, y, d = self.x, self.y, self.direction
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    for event in $game_map.events.values
      if event.x == new_x and event.y == new_y and event.through == through
        return event
      end
    end
    return nil
  end
end

La llamada se hace de ésta forma, supongamos que el evento que choca es éste:
$game_map.events[1]
Y con el que choca es éste:
$game_map.events[2]
Ese número es la ID del evento.

Pues entonces por engine en un evento en proceso paralelo (que podría ser uno de los dos que chocan) puedes hacer:

>Condiciones - Código: $game_map.events[1].front_event == $game_map.events[2]
>> (Aquí defines lo que pasa cuando ocurre el "choque", por ejemplo activar un interruptor para que se active uno de los eventos)
>Fin

Podrías hacerlo recíproco, comprobar que el que está en frente del primero es el segundo y a la vez el que está en frente del segundo es el primero, es decir, solo activarlo si se están mirando ámbos. Hay muchas posibilidades, pero como dije requieren cierto conocimiento de scripts y engines afrontarlas.
avatar
Wecoc
Administrador
Administrador



Créditos 9218

Gracias : 493

Volver arriba Ir abajo

RPG Maker XP Re: evento colisiona con evento

Mensaje por Producciones The Golden el 2016-12-30, 14:21

Entendí todo lo que dijiste y creo que ese script solucionará el problema; respecto a lo que dijiste al comienzo para mi nadie todos pueden aprender de todo, y yo sabré cuando ponerme el límite, pero lo que va del proyecto va bien, por lo que deduzco que en tan malas rutas no me estoy meniendo XD, además de que me considero un buen enginer, ya se usar variables, interruptores y alguna que otra cosa que antes no; de scripts ni sé nada, pero me las apañé para sustituir la scene_load del menú por la de un script que llama a una clase de "libro", y también me las apañé para poner un mensaje con instrucciones en el menu principal, muy ortero pero funciona XD. Puse un script que hace que un evento pueda dirigirse hacia otro, es decir que no hay movimiento aleatorio casi, ¿por qué todo esto? porque este es el resultado:
Una hiena que va hacia un lagarto y cuando está en frente a él lo "mata", si, quiero darle vida propia a los animales, y con este script que me has dado ahora creo que ya está terminado el tema animales X3.
Por cierto, ¿no hay forma de hacer que esto ocurra sin que estén "cara a cara"? vi que solo funciona si ambos eventos se están viendo, así: > <   si colisionan así: < > no ocurre nada.
Te lo agradezco demasiado Wecoc, eres el puto amo para todas mis dudas XD, te doy mi voto positivo y saludos, adiós!
avatar
Producciones The Golden
Veterano
Veterano

0/3

Créditos 639

Gracias : 60

Volver arriba Ir abajo

RPG Maker XP Re: evento colisiona con evento

Mensaje por silvanash el 2016-12-30, 14:38

La colisión < > no tiene sentido, y es fisicamente imposible, a menos que ambos caminen hacia atrás y decidan darse un cabezazo retrógrado.

Para comprobar la colisión si cualquier de ambos mira al otro debería servir algo así:

Condiciones y efectos, llamada de script: "$game_map.events[1].front_event == $game_map.events[2] or $game_map.events[2].front_event == $game_map.events[1]"

Todo ese blocazo. Ejecutará los efectos si se cumple la condición 1 ($game_map.events[1].front_event == $game_map.events[2]) or si se cumple la segunda ($game_map.events[2].front_event == $game_map.events[1]).
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 1605

Gracias : 225

Volver arriba Ir abajo

RPG Maker XP Re: evento colisiona con evento

Mensaje por Producciones The Golden el 2016-12-30, 14:55

silvanash escribió:La colisión < > no tiene sentido, y es fisicamente imposible, a menos que ambos caminen hacia atrás y decidan darse un cabezazo retrógrado.

Para comprobar la colisión si cualquier de ambos mira al otro debería servir algo así:

Condiciones y efectos, llamada de script: "$game_map.events[1].front_event == $game_map.events[2] or $game_map.events[2].front_event == $game_map.events[1]"

Todo ese blocazo. Ejecutará los efectos si se cumple la condición 1 ($game_map.events[1].front_event == $game_map.events[2]) or si se cumple la segunda ($game_map.events[2].front_event == $game_map.events[1]).
PERDÓN, LE DI A REPORTAR, enseguida volví hacia atrás por lo que espero que no te haya llegado el report XDDDDDDD; ahora pido perdón denuevo por no actualizar el mensaje de antes porque: ya solucioné el problema, hice lo que tu dijiste XD, ahora tengo otro par de problemillas que ya veré como los arreglo, y es que desactivo un par de interruptores que activan eventos comunes pero aún así estos siguen funcionando, por lo que al cambiar de mapa me generan conflictos... ya veré que hago XD; gracias Silvanash, como siempre atento, y perdón por el report, pensé que decía "responder" XD, saludos!
avatar
Producciones The Golden
Veterano
Veterano

0/3

Créditos 639

Gracias : 60

Volver arriba Ir abajo

RPG Maker XP Re: evento colisiona con evento

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.