¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [XP] Super-Sensor Event Range 1.3 el Vie Ene 06, 2012 4:53 am

Neoking-Jaas

avatar
Sensor Event Range


Hola gente con problemas mentales :trollface aquí les traigo una actualización de mi script del sensor para los eventos.

simula un sensor, rango de visión o como prefieran llamarlo dentro de los eventos.

Su función es simple, activa un interruptor del evento (A, B, C o D) cuando el héroe se acerca a cierta distancia del evento. Exactamente lo mismo que hace el xas con el rango de visión de los enemigos.

Por defecto activara el interruptor D pero pueden cambiarlo dentro del script.

Esta nueva versión incluye 2 nuevos tipos de sensores, que son en cuadro y en cruz, ademas de algunas correcciones y actualizaciones para que consuma un poco menos de recursos y tambien es posible activar y desactivar el sistema de sensor a través de un interruptor.

Para colocar un evento con sensor, colocan un comentario (anotación o nota según la versión del maker que usen) así:

Sensor circular
Código:

sensor_circle x

Sensor en cuadro
Código:

sensor_square x

Sensor en cruz
Código:

sensor_cross x


siendo x el rango del sensor.

Los sensores se comportan asi:
Spoiler:









Aquí el script:


Código:

#-------------------------------------------------------------------------------
#--------------------Super-Sensor Event Range (XP/VX/ACE)-----------------------
# By:Super Shooter
# 11/01/2012 - V 1.3
# Establece un sensor en los eventos
#-------------------------------------------------------------------------------
# Los eventos con sensor activo deben llevar un comentario (nota o anotacion, el
# nombre cambia segun la version de maker que uses) el cual variara segun el
# tipo de sensor que quieras colocar, a continuacion los tipos de sensores y los
# comentarios que se deben incluir:
# sensor_circle x => este es el sensor el forma de circulo
# sensor_square x => sensor cuadrado
# sensor_cross x => sensor en forma de cruz
# siendo x la vision que tendran.
#-------------------------------------------------------------------------------
class Game_Event
  LocalSwitch = 'D'#Interruptor que se activara cuando el heroe este en el rango
  ActiveSensor = 1 #Interruptor que activa el sensor
#-------------------------------------------------------------------------------
# alias a los metodos initialize y update
#-------------------------------------------------------------------------------
  alias supersensorevents_initialize initialize unless $@
  alias supersensorevents_update update unless $@
#-------------------------------------------------------------------------------
# Modificacion al metodo initialize, para verificar si usa el sensor, su tipo y
# rango de funcionamiento
#-------------------------------------------------------------------------------
  def initialize(map_id, event)
    @sensor = check_sensor event
    @range = range(@sensor[:sensor]) if @sensor
    @range = @range.to_s.to_i if @range
    supersensorevents_initialize(map_id, event)
  end
#-------------------------------------------------------------------------------
# Modificacion al metodo update para actualizar el sensor en caso que este
# activo.
#-------------------------------------------------------------------------------
  def update
    supersensorevents_update
  case @sensor[:type]
    when 1
      update_sensor_circle
    when 2
      update_sensor_square
    when 3
      update_sensor_cross
    end if $game_switches[ActiveSensor] and @sensor[:type] and @sensor[:type] < 4 and @range
  end
#-------------------------------------------------------------------------------
# update para el sensor cuando su tipo de rango es circular
#-------------------------------------------------------------------------------
  def update_sensor_circle
    sx = ($game_player.x - @x).abs
    sy = ($game_player.y - @y).abs
    key = [@map_id, @event.id, LocalSwitch]
    if sx + sy <= @range
      $game_self_switches[key] = true
      $game_map.need_refresh = true
    else
      $game_self_switches[key] = false
      $game_map.need_refresh = true
    end
  end
#-------------------------------------------------------------------------------
# update para el sensor cuando su tipo de rango es el cuadro
#-------------------------------------------------------------------------------
  def update_sensor_square
    sx = $game_player.x
    sy = $game_player.y
    key = [@map_id, @event.id, LocalSwitch]
    if sx >= @x - @range and sx <= @x + @range and sy >= @y - @range and sy <= @y + @range
      $game_self_switches[key] = true
      $game_map.need_refresh = true
    else
      $game_self_switches[key] = false
      $game_map.need_refresh = true
    end
  end
#-------------------------------------------------------------------------------
# update para el sensor cuando su tipo es en cruz
#-------------------------------------------------------------------------------
  def update_sensor_cross
    sx = $game_player.x
    sy = $game_player.y
    key = [@map_id, @event.id, LocalSwitch]
    if sx == @x and sy <= @y + @range and sy >= @y - @range or
      sy == @y and sx <= @x + @range and sx >= @x - @range
      $game_self_switches[key] = true
      $game_map.need_refresh = true
    else
      $game_self_switches[key] = false
      $game_map.need_refresh = true
    end
  end
#-------------------------------------------------------------------------------
# Metodo que verifica su el evento usa o no el sensor, retorna un booleano
#-------------------------------------------------------------------------------
  def check_sensor(event)
    event.pages.each do |i|
    i.list.each do |a|
    return {:sensor => a.parameters[0], :type => 1} if a.code == 108 and /sensor.circle/.match a.parameters[0]
    return {:sensor => a.parameters[0], :type => 2} if a.code == 108 and /sensor.square/.match a.parameters[0]
    return {:sensor => a.parameters[0], :type => 3} if a.code == 108 and /sensor.cross/.match a.parameters[0]
    end
    end
    return {}
  end
#-------------------------------------------------------------------------------
# Metodo que retorna el rango, retorna MatchData por lo que se debe cambiar a
# String y luego a entero para usarse
#-------------------------------------------------------------------------------
  def range(sensor)
    return /\d+/.match sensor.to_s
  end
end


Y la demo:
Demo XP Version 1.3
Demo ACE 1.3
Demo VX 1.3
La demo para VX me ha dado algo de pereza hacerla pero si lo quieren ver en marcha bajen la de XP o Ace. Ademas que no es tan necesaria consierando que el uso el simple.



Última edición por Neoking-Jaas el Sáb Ene 28, 2012 5:56 pm, editado 2 veces

#2 Re: [XP] Super-Sensor Event Range 1.3 el Miér Ene 11, 2012 10:25 pm

Neoking-Jaas

avatar
update
añadida demo para el ace. El script es compatible con cualquier maker, es decir XP, VX o ACE

#3 Re: [XP] Super-Sensor Event Range 1.3 el Miér Ene 11, 2012 10:39 pm

Razor

avatar
Justo lo acabo de implementar a mi proyecto y funciona de maravilla, buen aporte jaas, ademas le diste compatibilidad con las tres plataformas vigentes y mas activas del maker, por ello te dejo:

+30 Makedas

Un Saludo
Out~





Todos mis aportes por Mediafire tienen contraseña, esa es: www.universomaker.net
Esto es para evitar plagio, asegúrense de copiar y pegar la contraseña.

#4 Re: [XP] Super-Sensor Event Range 1.3 el Jue Ene 12, 2012 5:53 am

Cuervoso

avatar
Oh, que coincidencia, hace unos dias, en uno de mis guiones (para otro proyecto), decidi colocar una escena donde tenias que esquivar la vista de los guardias, y ahora, colocas una actualizacion de este xD.

En fin, me gusta este Script, gracias por pasarlo a Vx Ace, será de mucha ayuda, además, con este se pueden hacer escenas como la mencionada anteriormente, que hacen el juego menos repetitivo.

Saludos!






Cuervoso! No te pases ¬_¬

#5 Re: [XP] Super-Sensor Event Range 1.3 el Jue Ene 12, 2012 6:00 am

Makera

avatar
no se para que entro si no uso el VX , XD pero quisas quisiste decir :trollface: igual , supongo que alguna ves si es que cambio de maker seguro que lo uso:D

#6 Re: [XP] Super-Sensor Event Range 1.3 el Lun Ene 16, 2012 2:39 am

Neoking-Jaas

avatar
@Makera escribió:no se para que entro si no uso el VX , Ópalo Sonrisa Grande pero quisas quisiste decir :trollface: igual , supongo que alguna ves si es que cambio de maker seguro que lo uso:D

que maker usas? si te fijas es para los ultimos 3, el unico que no es el 2k3 que no tiene rgss

En fin que bueno que les guste Ópalo Contento

#7 Re: [XP] Super-Sensor Event Range 1.3 el Lun Ene 16, 2012 3:03 am

FIGO

avatar
APORTASO!!!

#8 Re: [XP] Super-Sensor Event Range 1.3 el Lun Ene 16, 2012 10:46 am

orochii

avatar
SuperJaasShooter, ahora que ví esto, quería avisarte que usé tu script en un proyecto corto de RMXP =D, y pues bueno, cumplió bien a lo que requería, que era hacer un sistema ARPG bien sencillo por engines.
Después pongo el juego, nada más que pase un cierto evento por el cual he hecho el juego =D.

EDIT: Oh bueno, recordé algo... Ví que el switch de activar/desactivar sensor sólo desactiva el proceso de detección.
Si el héroe ya ha sido detectado por el sensor de un enemigo, y desactivo los sensores con dicho interruptor, los enemigos que me tienen bajo mira me siguen detectando hasta que salga de su rango. Para solucionar dicha cosa igual, agregué una página al final (después de "la del interruptor D") en el enemigo que me daba más problemas xD (uno con un rango enorme), con un interruptor global como condición.

Nada más quería decirlo, para agradecer entonces, ya que me ha ido perfecto tu script, suerte,
Orochii Zouveleki

Edit: Sólo una línea agregué, pero era por una cosilla que me daba pereza agregarla manualmente a cada evento por separado xDDD. Un cambio en un interruptor xD.

#9 Re: [XP] Super-Sensor Event Range 1.3 el Lun Ene 16, 2012 1:25 pm

*****

avatar
¡Otras! ¡A esto lo llamo yo un script útil! Me encantan los scripts que aumentan las posibilidades del Maker de manera tan versátil como este.

Muchas gracias por el aporte, es posible que lo use en un futuro próximo para mi sistema de Aciton-RPG. Con esto, determinados enemigos pueden ponerse "alerta" cuando te acercas a ellos.

¡Muchas gracias!

#10 Re: [XP] Super-Sensor Event Range 1.3 el Lun Ene 16, 2012 5:39 pm

~Newa

avatar
Bueno, muy buen aporte, pero no se si pudieras subir un demo para el vx porque no entiendo como hacer para que al acercar el prota que el evento lo detecte.
*Lo que yo entendí fue que en el "enemigo" que detecta al prota debe tener en su evento el comentario y en una nueva página, con el condicional del interruptor local D activo crear lo que pasaría si me acerco, si estoy mal agradecería que me ayuden porque este script es escencial para mi.
De todas maneras un gran aporte!

#11 Re: [XP] Super-Sensor Event Range 1.3 el Sáb Ene 28, 2012 5:55 pm

Neoking-Jaas

avatar
@Newarmagedon: ya agregue la demo para VX y funciona así como dices.

@orochii: gracias por el aviso bueno veré si luego soluciono eso para algún update, y haber si se me ocurre otra forma de algún nuevo sensor o quizás que detecte paredes, aunque esto ultimo no se me ocurre una forma de hacerlo sin que genere otros errores.

El script fue ideado precisamente para ABS, y pues asi los enginers podrían usarlo lo que creo daria buenas posibilidades en ellos, ademas de otras cosas mas que se pueden hacer.

#12 Re: [XP] Super-Sensor Event Range 1.3 el Sáb Ene 28, 2012 8:02 pm

~Newa

avatar
Muchas gracias Neoking-Jaas, aora ya no pondré mil eventos como sensores
Gracias por la ayuda!!!

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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