Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[XP] Common Event Note Call

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Common Event Note Call

Mensaje por Wecoc el Sáb 22 Abr 2017 - 7:20

Éste script permite llamar a eventos comunes dada una condición concreta del juego; al cargar o guardar partida, al volver del menú, al ganar batalla, al perder batalla y al escapar.
Es compatible con prácticamente cualquier cosa.

Se llama con una condición, por ejemplo <CONDITION: Load>
Podéis ver aquí una imagen de ejemplo, en la que al cargar partida te da la opción de resumir lo que ocurrió en el juego hasta el momento.

Spoiler:

En realidad el engine en éste caso no puede ser más sencillo, pero se podría hacer por imágenes o de algún modo que quede más vistoso.

Mirad las instrucciones del script para más detalles.

Código:
#==============================================================================
# ** [XP] Common Event Note Call
#------------------------------------------------------------------------------
# Autor: Wecoc (no requiere créditos)
#==============================================================================
# Éste script permite llamar a eventos comunes dada una condición concreta
# del juego, por ejemplo al cargar partida o al volver del menú.
#
# Para hacerlo al principio del Evento Común hay que poner una anotación con
# el siguiente texto:
#
#  <CONDITION: (nombre)>
#
# Los siguientes son los que hay por defecto, se pueden asignar más ampliando
# el script, siempre considerando que por defecto los eventos comunes solo
# funcionan al estar en mapa o en batalla.
#
#  <CONDITION: Exit Menu>      # Al volver del menú
#  <CONDITION: Save>          # Al volver de guardar partida
#  <CONDITION: Save Cancel>    # Al volver de guardar partida (tras cancelar)
#  <CONDITION: Load>          # Al cargar partida guardada
#
#  <CONDITION: Win Battle>        # Al volver al mapa tras ganar batalla
#  <CONDITION: Win Battle - 1>    # Como el anterior pero asignando la tropa
#  <CONDITION: Lose Battle>        # Al volver al mapa tras perder batalla
#  <CONDITION: Lose Battle - 1>    # Como el anterior pero asignando la tropa
#  <CONDITION: Escape Battle>      # Al volver al mapa tras escapar
#  <CONDITION: Escape Battle - 1>  # Como el anterior pero asignando la tropa
#
#==============================================================================

module Kernel
  def call_common_notes(name)
    common_events = $game_map.instance_eval("@common_events")
    for i in 1..common_events.size
      event = common_events[i]
      if event.list[0].code == 108
        result = event.list[0].parameters[0]
        if result.upcase.include?("<CONDITION: ")
          if result[12...(result.size - 1)] == name
            $game_temp.common_event_id = i
          end
        end
      end
    end
  end
end

#==============================================================================
# * Scene_Menu
#==============================================================================

class Scene_Menu
  alias common_event_calling_upd update_command unless $@
  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      call_common_notes("Exit Menu")
      return
    end
    common_event_calling_upd
  end
end

#==============================================================================
# * Scene_Save
#==============================================================================

class Scene_Save < Scene_File
  alias common_event_calling_dec on_decision unless $@
  def on_decision(filename)
    common_event_calling_dec(filename)
    call_common_notes("Save")
  end
  alias common_event_calling_can on_cancel unless $@
  def on_cancel
    common_event_calling_can
    call_common_notes("Save Cancel")
  end
end

#==============================================================================
# * Scene_Load
#==============================================================================

class Scene_Load < Scene_File
  alias common_event_calling_dec on_decision unless $@
  def on_decision(filename)
    unless FileTest.exist?(filename)
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    common_event_calling_dec(filename)
    call_common_notes("Load")
  end
end

#==============================================================================
# * Scene_Battle
#==============================================================================

class Scene_Battle
  alias common_event_calling_end on_decision unless $@
  def battle_end(result)
    common_event_calling_end(result)
    case result
    when 0
      call_common_notes("Win Battle")
      call_common_notes("Win Battle - #{@troop_id}")
    when 1
      call_common_notes("Lose Battle")
      call_common_notes("Lose Battle - #{@troop_id}")
    when 2
      call_common_notes("Escape")
      call_common_notes("Escape - #{@troop_id}")
    end
  end
end
avatar
Wecoc
Administrador
Administrador



Créditos 12283

Gracias : 645

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Common Event Note Call

Mensaje por Ledai el Sáb 22 Abr 2017 - 15:07

Muy bueno, actualmente ya tengo un edit que me hiciste para realizar el ejemplo que has planteado, así que por ahora no lo usaré, pero reconozco que es muy útil y practico para poder personalizar las funciones del juego. Gracias!!
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5208

Gracias : 215

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Common Event Note Call

Mensaje por xXIsrael0499Xx el Sáb 22 Abr 2017 - 15:12

Esto me da ciertas ideas... con esto se puede hacer la idea del DLC, o por lo menos dar la impresión se que hay un DLC XDD, voy a probarlo aver que tal...

Y si consigo avances lo publico y podemos hacer un colectivo? para realizar esa idea....???

De todas maneras gracias por este Script que algo se aprende si lo analizas.... Baile
avatar
xXIsrael0499Xx
Veterano
Veterano

0/3

Créditos 2047

Gracias : 113

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Common Event Note Call

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.