Buscador avanzado
Navegación
 Portal
 Índice
 Miembros
 Perfil
 FAQ
 Buscar
¿Quién está en línea?
En total hay 4 usuarios en línea: 0 Registrados, 0 Ocultos y 4 Invitados

Ninguno

[ Ver toda la lista ]


La mayor cantidad de usuarios en línea fue 30 el Lun Dic 21, 2015 12:37 am.
Últimos temas
» MundoDeluxe cierra - Muchas Gracias a todos
por ZAnimeMaker Miér Mar 02, 2016 3:45 pm

» Recomendaciones para subir aportes
por Xpe Mar Ene 05, 2016 5:00 pm

» dUDA Sobre mi Rpg maker XP en ES
por SketchDeluxe Sáb Ene 02, 2016 7:26 pm

» Arruina el anterior y pide un deseo
por asdseba123 Mar Dic 29, 2015 11:07 pm

» ¿Qué haremos en nuestros días libres?
por bathory123 Sáb Dic 26, 2015 4:02 pm

» Monster Strike (Anime)
por kyonides Sáb Dic 26, 2015 3:33 am

» Galeria de avatares
por bathory123 Vie Dic 25, 2015 6:57 pm

» Feliz Navidad 2015
por kyonides Vie Dic 25, 2015 2:18 am

» Battlers laterales(Ragnarok)
por Maghno Miér Dic 23, 2015 6:57 pm

» Buenas a todos!
por SketchDeluxe Mar Dic 22, 2015 4:36 pm

Publicidad
Afiliados


Kyonides's Respawn Point VX y VX Ace

Ver el tema anterior Ver el tema siguiente Ir abajo

Kyonides's Respawn Point VX y VX Ace

Mensaje por kyonides el Lun Nov 09, 2015 4:10 pm

Kyonides's Respawn Point VX y VX Ace
v 1.0.2


por Kyonides-Arkanthos
 
Este sencillo script les permitirá no solo configurar cuál será el punto de encuentro (o resurrección) de sus héroes en caso de morir en batalla o por un estado de salud precario como el estar envenenados sino que también les ofrece otras dos cosas más. Pueden configurarlo para que los héroes pierdan una parte de la experiencia obtenida o para que les muestre una imagen de transición entre el citado menú y el mapa donde revivirán. (Dicha imagen puede servir como alguna clase de propaganda...)

Por si surgen dudas sobre sus características, aquí se las listaré en orden.


  • Les permite revivir a sus héroes en el lugar donde eligieron hacerlo en caso de ser derrotados. (Si no lo han elegido y no hay una partida guardada, pues, pierden.)
  • Pueden utilizar una imagen de transición, no de figuras geométricas sino de propaganda o meras ilustraciones que quizás estén relacionadas con su proyecto, su trama, etc.
  • Pueden perder algo de puntos de experiencia por revivir de esta manera.
  • Pueden perder algo de dinero (Oro o Gil o Zeny) por revivir de esta manera.
  • Pueden optar por visitar a un Sanador. Opcionalmente este puede reenviarlos al mapa donde murieron.



LLAMADOS A SCRIPT

Regresar al Punto de Encuentro o Respawn Point sin ver el menú de mi script


KRP.moveto_respawn_point
(Daría error si nunca lo configuraron...)
 
Visitar a un Sanador
KRP.visit_healer
 
Volver al mapa en el que murieron despuès de que hablaron con el Sanador
KRP.visit_previous_map


Para Configurar cuál será el Punto de Encuentro o Retorno

Método # 1
KRP.set_respawn_point(ID_mapa, x, y)

Método # 2
$game_system.set_respawn_point(ID_mapa, x, y)

Método # 3
Variables de Control [Primer ID] : ID de Mapa
Variables de Control [Segundo ID] : Coordenada X
Variables de Control [Tercer ID] : Coordenada Y

Explicación de la CONFIGURACIÓN del SCRIPT

# ID del Mapa, Coordenada X, Coordenada Y del Sanador a visitar
HEALERMAPIDXY = [1, 1, 1]


# ID de Variables para guardar ID de Mapa, Coordenada X, Coordenada Y - Optional
RESPAWNVARIDS = [1, 2, 3]

# Dirección en la que debe ver el personaje (Vean los números en teclado numérico)
PLAYERDIRECTION = 8

# Porcentaje de Recuperación de PV - Valor entre 0.01 y 1 (incluidos)
HPRECOVERYPERCENT = 0.1

# Porcentaje de Pérdida de EXP - Valor entre 0 y 1 incluidos (en decimales si no es 0 o 1)
LOSEEXPPERCENT = 0.1

# Porcentaje de Pérdida de Dinero - Valor entre 0 y 1 incluidos (en decimales si no es 0 o 1)
LOSEGOLDPERCENT = 0.1

# Texto de Opciones para Menú de Respawn
RESPAWNOPTIONS = ['Punto de Encuentro', 'Cargar Partida', 'Morir en paz...']

# Usar Transición : true o false
USETRANSITION = true

# Nombre de la Imagen de la Transición
TRANSITIONBG = '001-Title01'

# Número de Cuadros o Frames de Espera
TRANSITIONFRAMES = 40
 
SCRIPT

Versión para VX

Código:
#  Kyonides's Respawn Point VX
#  v 1.0.2 - 2012-12-10
#  v 1.0.0 - 2012-12-06
#  Scripter : Kyonides-Arkanthos

#  Este Script les permite configurar un punto de retorno específico para sus
#  héroes. Sirve para cuando sus héroes hayan muerto en batalla o para llevar
#  al grupo donde un NPC que los pueda restaurar.

#  También incluye la opción de mostrar una transición en caso de que deseen
#  mostrar alguna clase de imagen de fondo que tenga que ver con su juego.

#  ¡ATENCIÓN! Si la constante LOSEEXPPERCENT tiene un valor de 0 o superior
#            los héroes perderán algo de experiencia al revivir.

#  Llamados a Script

#    Para ir al Punto de Retorno en Situación Normal o Derrota Inevitable
#      KRP.moveto_respawn_point  o  KRP.moveto_respawn_point(true)

#    Para Visitar al Sanador : (Sin afectar el Punto de Retorno)
#      KRP.visit_healer

#    Para Visitar el Mapa Anterior luego de ir donde el Sanador
#      KRP.visit_previous_map

#    Especifica un Nuevo Punto de Retorno (de ser necesario)
#      Método 1 - KRP.set_respawn_point(map_id, x, y)
#      Método 2 - $game_system.set_respawn_point(map_id, x, y)
#      Método 3 - Variable de Control [Primer ID]  : ID del Mapa
#                  Variable de Control [Segundo ID] : Coord X del Héroe
#                  Variable de Control [Tercer ID]  : Coord Y del Héroe
#      Esos IDs de las variables se definen en RESPAWNVARIDS, pero resulta ser
#      más rápido con los Métodos 1 o 2.

module KRP
  HEALERMAPIDXY = [1, 1, 1] # Sanador: ID Mapa, Coord-X, Coord-Y
  RESPAWNVARIDS = [1, 2, 3] # ID Mapa, Coord-X, Coord-Y - Opcional
  PLAYERDIRECTION = 8
  HPRECOVERYPERCENT = 0.1 # Valor entre 0.01 y 1 (1 es igual a 100%)
  LOSEEXPPERCENT = 0.1 # Valor entre 0.01 y 1
  LOSEGOLDPERCENT = 0.1 # Valor entre 0.01 y 1
  RESPAWNOPTIONS = ['Punto de Encuentro', 'Visitar a un Sanador',
                    'Cargar Partida', 'Morir en paz...']
  USETRANSITION = true
  TRANSITIONBG = '001-Title01' # Imagen de Fondo para Transición
  TRANSITIONFRAMES = 40

  def self.gameover_disabled() @gameover_disabled end
  def self.gameover_disabled=(bool) @gameover_disabled = bool end
  def self.set_respawn_point(id,x,y) $game_system.set_respawn_point(id,x,y) end

  def self.moveto_respawn_point(reset=nil)
    $game_map.setup($game_system.map_id)
    $game_player.moveto($game_system.map_x, $game_system.map_y)
    $game_player.direction = PLAYERDIRECTION
    self.reload_map_player(true)
    $scene = USETRANSITION ? Scene_KRPTransition.new : Scene_Map.new
  end

  def self.visit_healer
    @omapid = $game_system.map_id
    @ox, @oy = $game_system.map_x, $game_system.map_y
    $game_map.setup(HEALERMAPIDXY[0])
    $game_player.moveto(HEALERMAPIDXY[1], HEALERMAPIDXY[2])
    self.reload_map_player(true)
    $scene = USETRANSITION ? Scene_KRPTransition.new : Scene_Map.new
  end
   
  def self.visit_previous_map
    $game_map.setup(@omapid)
    $game_player.moveto(@ox, @oy)
    @omapid = @ox = @oy = nil
    self.reload_map_player
    $scene = USETRANSITION ? Scene_KRPTransition.new : Scene_Map.new
  end

  def self.reload_map_player(reset=nil)
    $game_player.refresh
    $game_map.autoplay
    $game_map.update
    return unless reset
    $game_temp = Game_Temp.new
    $game_map.reset_interpreter
  end

  def self.no_respawn_point(map_id)
    !File.exist?("Data/Map#{map_id}.rvdata") or
      $game_system.map_x == nil or $game_system.map_y == nil
  end
end

class Game_System
  attr_accessor :map_id, :map_x, :map_y
  alias kyon_krp_gm_sys_init initialize
  def initialize
    kyon_krp_gm_sys_init
    @map_id, @map_x, @map_y = 0, nil, nil
  end

  def set_respawn_point(id, x, y) @map_id, @map_x, @map_y = id, x, y end
end

class Game_Map
  def reset_interpreter() @interpreter = Game_Interpreter.new(0, true) end
end

class Game_Actor
  def lose_exp
    return if @level == 1
    self.exp -= (@exp_list[@level] * KRP::LOSEEXPPERCENT).round
  end
end

class Game_Player; attr_writer :direction end

class Scene_Gameover
  def main
    @spriteset = Spriteset_Map.new
    @command_window = Window_Command.new(220, KRP::RESPAWNOPTIONS)
    @command_window.x, @command_window.y = 210, 240 - @command_window.height / 2
    if KRP.no_respawn_point(sprintf("%03d", $game_system.map_id))
      $game_system.map_id = $game_variables[KRP::RESPAWNVARIDS[0]]
      $game_system.map_x = $game_variables[KRP::RESPAWNVARIDS[1]]
      $game_system.map_y = $game_variables[KRP::RESPAWNVARIDS[2]]
      KRP::RESPAWNVARIDS.each {|varid| $game_variables[varid] = 0 }
      if KRP.no_respawn_point(sprintf("%03d", $game_system.map_id))
        @command_window.draw_item(0, false)
        @no_respawn_point = true
      end
    end
    if Dir.glob("Save?.rvdata").empty?
      @command_window.draw_item(1, false)
      @no_savedata = true
    end
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      break if $scene != self
    end
    Graphics.freeze
    @command_window.dispose if @command_window
    @spriteset.bitmap.dispose if @spriteset.is_a?(Sprite)
    @spriteset.dispose
  end

  def update
    @command_window.update if @command_window
    if Input.trigger?(Input::B)
      ($scene = nil; return) if @cancel_enabled
      Sound.play_cancel
      terminate
    elsif Input.trigger?(Input::C)
      ($scene = nil; return) if @cancel_enabled
      case @command_window.index
      when 0 # To Respawn Point
        (Sound.play_buzzer; return) if @no_respawn_point
        Sound.play_decision
        $game_party.members.each {|actor| actor.lose_exp
          actor.hp = (actor.maxhp * KRP::HPRECOVERYPERCENT).round }
        $game_party.lose_gold(($game_party.gold * KRP::LOSEGOLDPERCENT).round)
        KRP.moveto_respawn_point(true)
      when 1 # Visit Healer
        Sound.play_decision
        $game_party.members.each {|actor| actor.lose_exp }
        $game_party.lose_gold(($game_party.gold * KRP::LOSEGOLDPERCENT).round)
        KRP.visit_healer
      when 2 # Load Saved Game
        (Sound.play_buzzer; return) if @no_savedata
        Sound.play_decision
        $scene = Scene_Load.new
      when 3 # Game Over and Shutdown
        Sound.play_decision
        terminate
      end
    end
  end

  def terminate
    @cancel_enabled = true
    @command_window.visible = @command_window.active = nil
    Graphics.freeze
    @spriteset.dispose
    @spriteset = Sprite.new
    @spriteset.bitmap = Cache.system("GameOver")
    RPG::BGM.stop
    RPG::BGS.stop
    Graphics.transition(60)
  end
end

class Scene_KRPTransition
  def main
    @sprite = Sprite.new
    @sprite.bitmap = Cache.picture(KRP::TRANSITIONBG)
    $scene = Scene_Map.new
    Graphics.transition(KRP::TRANSITIONFRAMES)
    KRP::TRANSITIONFRAMES.times { Graphics.update }
    Graphics.freeze
    @sprite.bitmap.dispose
    @sprite.dispose
    Graphics.transition(KRP::TRANSITIONFRAMES)
  end
end

Versión para VX Ace

Código:
#  Kyonides's Respawn Point ACE
#  v 1.0.2 - 2012-12-10
#  v 1.0.1 - 2012-12-06
#  Scripter : Kyonides-Arkanthos

#  Este Script les permite configurar un punto de retorno específico para sus
#  héroes. Sirve para cuando sus héroes hayan muerto en batalla o para llevar
#  al grupo donde un NPC que los pueda restaurar.

#  También incluye la opción de mostrar una transición en caso de que deseen
#  mostrar alguna clase de imagen de fondo que tenga que ver con su juego.

#  ¡ATENCIÓN! Si la constante LOSEEXPPERCENT tiene un valor de 0 o superior
#            los héroes perderán algo de experiencia al revivir.

#  Llamados a Script

#    Para ir al Punto de Retorno en Situación Normal o Derrota Inevitable
#      KRP.moveto_respawn_point  o  KRP.moveto_respawn_point(true)

#    Para Visitar al Sanador : (Sin afectar el Punto de Retorno)
#      KRP.visit_healer

#    Para Visitar el Mapa Anterior luego de ir donde el Sanador
#      KRP.visit_previous_map

#    Especifica un Nuevo Punto de Retorno (de ser necesario)
#      Método 1 - KRP.set_respawn_point(map_id, x, y)
#      Método 2 - $game_system.set_respawn_point(map_id, x, y)
#      Método 3 - Variable de Control [Primer ID]  : ID del Mapa
#                  Variable de Control [Segundo ID] : Coord X del Héroe
#                  Variable de Control [Tercer ID]  : Coord Y del Héroe
#      Esos IDs de las variables se definen en RESPAWNVARIDS, pero resulta ser
#      más rápido con los Métodos 1 o 2.

module KRP
  HEALERMAPIDXY = [1, 1, 1] # Sanador: ID Mapa, Coord-X, Coord-Y
  RESPAWNVARIDS = [1, 2, 3] # ID Mapa, Coord-X, Coord-Y - Opcional
  PLAYERDIRECTION = 8
  HPRECOVERYPERCENT = 0.1 # Valor entre 0.01 y 1 (1 es igual a 100%)
  LOSEEXPPERCENT = 0.1 # Valor entre 0.01 y 1
  LOSEGOLDPERCENT = 0.1 # Valor entre 0.01 y 1
  RESPAWNOPTIONS = ['Punto de Encuentro', 'Visitar a un Sanador',
                    'Cargar Partida', 'Morir en paz...']
  USETRANSITION = true
  TRANSITIONBG = '001-Title01' # Imagen de Fondo para Transición
  TRANSITIONFRAMES = 40

  def self.gameover_disabled() @gameover_disabled end
  def self.gameover_disabled=(bool) @gameover_disabled = bool end
  def self.set_respawn_point(id,x,y) $game_system.set_respawn_point(id,x,y) end
  def self.no_respawn_point() @no_respawn_point end

  def self.moveto_respawn_point
    $game_map.setup $game_system.map_id
    $game_player.moveto $game_system.map_x, $game_system.map_y
    $game_player.set_direction PLAYERDIRECTION
    self.reload_map_player
    self.next_scene
  end

  def self.visit_healer
    @omapid = $game_system.map_id
    @ox, @oy = $game_system.map_x, $game_system.map_y
    $game_map.setup(HEALERMAPIDXY[0])
    $game_player.moveto(HEALERMAPIDXY[1], HEALERMAPIDXY[2])
    self.reload_map_player
    self.next_scene
  end
   
  def self.visit_previous_map
    $game_map.setup(@omapid)
    $game_player.moveto(@ox, @oy)
    @omapid = @ox = @oy = nil
    self.reload_map_player
    self.next_scene
  end

  def self.reload_map_player
    $game_player.refresh
    $game_map.autoplay
    $game_map.update(true)
  end

  def self.next_scene
    USETRANSITION ? SceneManager.goto(Scene_Map) :
      SceneManager.call(Scene_KRPTransition)
  end

  def self.no_valid_respawn_point(map_id)
    !File.exist?("Data/Map#{map_id}.rvdata2") or
      $game_system.map_x == nil or $game_system.map_y == nil
    end

  def self.check_respawn_point
    if KRP.no_valid_respawn_point(sprintf("%03d", $game_system.map_id))
      $game_system.map_id = $game_variables[RESPAWNVARIDS[0]]
      $game_system.map_x = $game_variables[RESPAWNVARIDS[1]]
      $game_system.map_y = $game_variables[RESPAWNVARIDS[2]]
      RESPAWNVARIDS.each {|varid| $game_variables[varid] = 0 }
      if self.no_valid_respawn_point(sprintf("%03d", $game_system.map_id))
        @no_respawn_point = true
      end
    end
    !@no_respawn_point
  end
end

class Game_System
  attr_accessor :map_id, :map_x, :map_y
  alias kyon_krp_gm_sys_init initialize
  def initialize
    kyon_krp_gm_sys_init
    @map_id, @map_x, @map_y = 0, nil, nil
  end

  def set_respawn_point(id, x, y) @map_id, @map_x, @map_y = id, x, y end
end

class Game_Actor
  def lose_exp
    return if @level == 1
    self.exp -= (@exp_list[@level] * KRP::LOSEEXPPERCENT).round
  end
end

class Window_RespawnCommand < Window_Command
  def initialize
    x = (Graphics.width - window_width) / 2
    y = (Graphics.height - (line_height * 4)) / 2
    super(x, y)
    open
  end

  def window_width() 220 end

  def make_command_list
    add_command(KRP::RESPAWNOPTIONS[0], :respawn, KRP.check_respawn_point)
    add_command(KRP::RESPAWNOPTIONS[1], :healer)
    add_command(KRP::RESPAWNOPTIONS[2], :load, DataManager.save_file_exists?)
    add_command(KRP::RESPAWNOPTIONS[3], :shutdown)
  end
end

class Scene_Gameover
  def start
    Graphics.freeze
    @spriteset = Spriteset_Map.new
    @command_window = Window_RespawnCommand.new
    @command_window.set_handler(:respawn, method(:command_respawn))
    @command_window.set_handler(:healer, method(:command_healer))
    @command_window.set_handler(:load, method(:command_load))
    @command_window.set_handler(:shutdown, method(:command_shutdown))
    @no_savedata = !DataManager.save_file_exists?
  end

  def terminate
    @command_window.dispose if @command_window
    @spriteset.bitmap.dispose if @spriteset.is_a?(Sprite)
    @spriteset.dispose
  end

  def update
    update_basic
    return unless Input.trigger?(:B) or (Input.trigger?(:C) and @cancel_enabled)
    (SceneManager.exit; return) if @cancel_enabled
    Sound.play_cancel
    end_game
  end

  def command_respawn
    (Sound.play_buzzer; return) if KRP.no_respawn_point
    Sound.play_ok
    $game_party.members.each {|actor| actor.lose_exp
      actor.hp = (actor.mhp * KRP::HPRECOVERYPERCENT).round }
    $game_party.lose_gold(($game_party.gold * KRP::LOSEGOLDPERCENT).round)
    KRP.moveto_respawn_point
  end
 
  def command_healer
    Sound.play_ok
    $game_party.members.each {|actor| actor.lose_exp }
    $game_party.lose_gold(($game_party.gold * KRP::LOSEGOLDPERCENT).round)
    KRP.visit_healer
  end

  def command_load
    (Sound.play_buzzer; return) if @no_savedata
    Sound.play_ok
    SceneManager.call(Scene_Load)
  end

  def command_shutdown
    Sound.play_ok
    end_game
  end

  def end_game
    @cancel_enabled = true
    @command_window.visible = @command_window.active = nil
    Graphics.freeze
    @spriteset.dispose
    @spriteset = Sprite.new
    @spriteset.bitmap = Cache.system("GameOver")
    RPG::BGM.stop
    RPG::ME.stop
    Graphics.transition(60)
  end
end

class Scene_KRPTransition
  def main
    @sprite = Sprite.new
    @sprite.bitmap = Cache.picture(KRP::TRANSITIONBG)
    $scene = Scene_Map.new
    Graphics.transition(KRP::TRANSITIONFRAMES)
    KRP::TRANSITIONFRAMES.times { Graphics.update }
    Graphics.freeze
    @sprite.bitmap.dispose
    @sprite.dispose
    Graphics.transition(KRP::TRANSITIONFRAMES)
  end
end
avatar
kyonides
Usuario VIP
Usuario VIP

Mensajes : 66
Fecha de inscripción : 09/03/2009

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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