Buscador avanzado
Navegación
 Portal
 Índice
 Miembros
 Perfil
 FAQ
 Buscar
¿Quién está en línea?
En total hay 3 usuarios en línea: 0 Registrados, 0 Ocultos y 3 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 XP

Ver el tema anterior Ver el tema siguiente Ir abajo

Kyonides's Respawn Point XP

Mensaje por kyonides el Sáb Oct 24, 2015 12:31 pm

Kyonides's Respawn Point XP
v 1.1.0


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


Configurar cuál será el Punto de Encuentro


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

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

En Español
Código:
#  Kyonides's Respawn Point XP
#  v 1.1.0 - 2012-12-25
#  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_system.reset_interpreters
  end

  def self.no_respawn_point(map_id)
    !File.exist?("Data/Map#{map_id}.rxdata") 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

  def reset_interpreters
    @map_interpreter = Interpreter.new(0, true)
    @battle_interpreter = Interpreter.new(0, false)
  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 initialize; $game_temp = Game_Temp.new end
  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.disable_item(0)
        @no_respawn_point = true
      end
    end
    if Dir.glob("Save*.rxdata").empty?
      @command_window.disable_item(1)
      @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
      $game_system.se_play($data_system.cancel_se)
      terminate
    elsif Input.trigger?(Input::C)
      ($scene = nil; return) if @cancel_enabled
      case @command_window.index
      when 0 # To Respawn Point
        if @no_respawn_point
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $game_party.actors.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
        $game_system.se_play($data_system.decision_se)
        $game_party.actors.each {|actor| actor.lose_exp }
        $game_party.lose_gold(($game_party.gold * KRP::LOSEGOLDPERCENT).round)
        KRP.visit_healer
      when 2 # Load Saved Game
        if @no_savedata
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Load.new
      when 3 # Game Over and Shutdown
        $game_system.se_play($data_system.decision_se)
        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 = RPG::Cache.gameover($data_system.gameover_name)
    $game_system.bgm_play(nil)
    $game_system.bgs_play(nil)
    Graphics.transition(60)
  end
end

class Scene_KRPTransition
  def main
    @sprite = Sprite.new
    @sprite.bitmap = RPG::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

En Inglés
Código:
#   Kyonides's Respawn Point XP
#   v 1.1.0 - 2012-12-25
#   v 1.0.0 - 2012-12-06
#   Scripter : Kyonides-Arkanthos

#   This script will let you set a respawn point at some specific point and
#   go back to that place. You can use it whenever your heroes die in battle or
#   you specifically ask some NPC to teleport your team there.

#   You may also configure it to show a transition screen that would let you
#   display any picture you like.

#   WARNING : If the LOSEEXPPERCENT constant value is greater than 0 your
#             heroes will lose some experience points after respawning.

#   Script Calls

#     Return to Respawn Point :
#       KRP.moveto_respawn_point

#     Visit a Healer : (The respawn point will not be modified by this)
#       KRP.visit_healer

#     Visit Previous Map after visiting the healer
#       KRP.visit_previous_map

#     Set your Respawn Point :
#       Method 1 - KRP.set_respawn_point(map_id, x, y)

#       Method 2 - $game_system.set_respawn_point(map_id, x, y)

#       Method 3 - Control Variables [1st ID] : Map ID
#                  Control Variables [2nd ID] : Player's Map X
#                  Control Variables [3rd ID] : Player's Map Y

module KRP
  HEALERMAPIDXY = [1, 1, 1] # Healer's Map ID, X-coord, Y-coord
  RESPAWNVARIDS = [1, 2, 3] # Map ID, X-coord, Y-coord - Optional
  PLAYERDIRECTION = 8
  HPRECOVERYPERCENT = 0.1 # Value between 0.01 and 1 inclusive
  LOSEEXPPERCENT = 0.1 # Value between 0 and 1 inclusive
  LOSEGOLDPERCENT = 0.1 # Value between 0 and 1 inclusive
  RESPAWNOPTIONS = ['Punto de Encuentro', 'Visitar a un Sanador',
                    'Cargar Partida', 'Morir en paz...']
  USETRANSITION = true
  TRANSITIONBG = '001-Title01' # Transition Background Image
  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_system.reset_interpreters
  end

  def self.no_respawn_point(map_id)
    !File.exist?("Data/Map#{map_id}.rxdata") 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

  def reset_interpreters
    @map_interpreter = Interpreter.new(0, true)
    @battle_interpreter = Interpreter.new(0, false)
  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 initialize; $game_temp = Game_Temp.new end
  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.disable_item(0)
        @no_respawn_point = true
      end
    end
    if Dir.glob("Save?.rxdata").empty?
      @command_window.disable_item(1)
      @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
      $game_system.se_play($data_system.cancel_se)
      terminate
    elsif Input.trigger?(Input::C)
      ($scene = nil; return) if @cancel_enabled
      case @command_window.index
      when 0 # To Respawn Point
        if @no_respawn_point
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $game_party.actors.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
        $game_system.se_play($data_system.decision_se)
        $game_party.actors.each {|actor| actor.lose_exp }
        $game_party.lose_gold(($game_party.gold * KRP::LOSEGOLDPERCENT).round)
        KRP.visit_healer
      when 2 # Load Saved Game
        if @no_savedata
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Load.new
      when 3 # Game Over and Shutdown
        $game_system.se_play($data_system.decision_se)
        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 = RPG::Cache.gameover($data_system.gameover_name)
    $game_system.bgm_play(nil)
    $game_system.bgs_play(nil)
    Graphics.transition(60)
  end
end

class Scene_KRPTransition
  def main
    @sprite = Sprite.new
    @sprite.bitmap = RPG::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.