¡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 3393 miembros registrados.
El último usuario registrado es nino34.

Nuestros miembros han publicado un total de 79784 mensajes en 11253 argumentos.
Navega con Google Chrome
[DESCARGA]

Encuentros/Evento común.

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Encuentros/Evento común.

Mensaje por Ledai el 2016-04-22, 17:40

¿Existe algún modo de hacer que los pasos configurados en las preferencias de cada mapa, activen un evento común o llamen a un evento común, en vez de detonar una batalla tradicional?

Gracias ^_^por el interés.

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Encuentros/Evento común.

Mensaje por Alex_Game_Maker el 2016-04-22, 18:31

Mmm, no creo que sea muy dificil, especialmente para ti.
No podrias modificar tu "Engine de Dormir al pasar de X pasos" para que en lugar de dormir suceda otra cosa? (En este caso llamar un evento común)

Te lo diria de una manera mas "especifica" pero estoy desde el telefono y tengo flojera de encender el pc.
De todas maneras, si no puedes dime y me encargo mas tarde

Alex_Game_Maker
Soñador
Soñador

0/3

Créditos 173

Gracias : 16

Volver arriba Ir abajo

RPG Maker XP Re: Encuentros/Evento común.

Mensaje por Ledai el 2016-04-22, 18:53

Sí, eso es precisamente lo que estoy haciendo, pero me he dando cuenta de que a largo plazo daría error...

Pues si se trata de un juego muy largo o en le que se anda mucho puede que la variable que registra los pasos y los suma supere, en algún momento, el limite propio de las variables y llegaría un punto en el que el evento estaría procesándose continuamente y buguearía una partida con un montón de horas de juego...
Según creo, pues no he podido probarlo ya que no puedo perder el tiempo dando 99999999 pasos para comprobar si da error o no; pero por lógica así sucedería.

Que sí, que ya se que son muchos pasos y que lo más probable es que ningún jugador llegue a darlos en ninguna partida... pero, y si sí?

Otra opción es hacer que cuando los pasos generales del juego lleguen al tope de una variable se reinicien; pero tampoco sé como hacer eso.

Y de todos modos era por aprovechar el sistema por defecto de configuración de pasos por mapa; supongo que editando algún script en la base de datos se podría hacer; pero no tengo ni idea de cómo hacerlo



Edt:
He estado investigando y supongo que tiene que ver con el script Scene Map en sus lineas 114 al 118, en las que habrá que cambiarlas por la llamada a un evento común especifico.

Pero no conozco dicho código así que @~@ mejor no toco nada.

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Encuentros/Evento común.

Mensaje por Wecoc el 2016-04-22, 20:48

Ya te lo he hecho. El problema es que edita una parte del update de Scene_Map que con la de scripts que tienes que afectan al mapa seguramente sea incompatible con alguno. Habrá que verlo.

Código:
#==============================================================================
# ** [XP] Common Event 'Encounters'
#==============================================================================

class Scene_Map
  def update
    loop do
      $game_map.update
      $game_system.map_interpreter.update
      $game_player.update
      $game_system.update
      $game_screen.update
      unless $game_temp.player_transferring
        break
      end
      transfer_player
      if $game_temp.transition_processing
        break
      end
    end
    @spriteset.update
    @message_window.update
    if $game_temp.gameover
      $scene = Scene_Gameover.new
      return
    end
    if $game_temp.to_title
      $scene = Scene_Title.new
      return
    end
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        Graphics.transition(40, "Graphics/Transitions/" +
          $game_temp.transition_name)
      end
    end
    if $game_temp.message_window_showing
      return
    end
    # --------------------- EDIT ----------------------------------
    if $game_player.encounter_count == 0 and $game_map.encounter_step > 1
      unless $game_system.map_interpreter.running? or
             $game_system.encounter_disabled
        common_event = $data_common_events[1] # ID del evento común
        $game_system.map_interpreter.call_common_event(common_event, 1)
        $game_player.make_encounter_count
      end
    end
    # --------------------- EDIT ----------------------------------
    if Input.trigger?(Input::B)
      unless $game_system.map_interpreter.running? or
             $game_system.menu_disabled
        $game_temp.menu_calling = true
        $game_temp.menu_beep = true
      end
    end
    if $DEBUG and Input.press?(Input::F9)
      $game_temp.debug_calling = true
    end
    unless $game_player.moving?
      if $game_temp.battle_calling
        call_battle
      elsif $game_temp.shop_calling
        call_shop
      elsif $game_temp.name_calling
        call_name
      elsif $game_temp.menu_calling
        call_menu
      elsif $game_temp.save_calling
        call_save
      elsif $game_temp.debug_calling
        call_debug
      end
    end
  end
end

class Interpreter
  def call_common_event(common_event, event_id = nil)
    if event_id == nil
      event_id = @event_id
    end
    if common_event != nil
      @child_interpreter = Interpreter.new(@depth + 1)
      @child_interpreter.setup(common_event.list, event_id)
    end
    return true
  end
end

Funciona con el encounter_count por defecto, lo hice así porque sé que en tu juego las batallas son en mapa.
Para que no funcione en cierto mapa solo tienes que ponerle de número de pasos 1 (porque no puedes ponerle 0).
Dentro del script en la línea 47 defines qué evento común se llama, por defecto puse el 1.
El comando de evento Cambiar permisos de encuentros sigue funcionando igual, así que puedes activar y desactivar esa llamada por pasos.

Wecoc
Administrador
Administrador



Créditos 8265

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: Encuentros/Evento común.

Mensaje por Ledai el 2016-04-22, 21:44

He estado revisando el funcionamiento y parece que todo marcha bien, al parecer los otros script no pisan ninguna cosa importante del Scene map que yo halla visto; excepto un detalle insignificante; una llamada al menú, que edité por el Scene End y la verdad es que ni siquiera lo altera, así que por ahora son buenas noticias... Si me saltara algún error próximamente, te lo comento y en el caso de que sea incorregible, pues tendré que pensar en cómo solucionarlo. Siempre hay más opciones ^_^

Gracias mil por el esfuerzo ^_^ la verdad es que resulta de un Script MUY útil así que me lo guardaré igualmente en la base de datos.

Salu2!!!!

Ledai
Aventurero
Aventurero

0/3

Créditos 1368

Gracias : 126

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: Encuentros/Evento común.

Mensaje por Contenido patrocinado Hoy a las 14:00


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

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