Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 CheckPoint System 1.0 em Sab Abr 06, 2013 1:49 pm

avatarT-Lord
Admin
CheckPoint System
Versão 1.0
Um
script simples que permite ao maker adicionar pontos de "respawn"
durante o jogo, e ao dar game-over, o jogador pode voltar ao ultimo
ponto salvo.

Plataforma: RPG Maker VX Ace
Compatiblidade: Boa
Lag Gerado: Muito baixo


Características

  • Uso extremamente simples
  • Fácil configuração


Como Usar
Apenas cole o script acima do main e siga as instruções, configurando o script corretamente


Script
Código:
#==============================================================================
#  -- RESPAWN SYSTEM 1.0
#==============================================================================
#------------------------------------------------------------------------------
# Créditos: Leon-S.K --- ou --- AndreMaker --- ou --- 4ndreMTM
#------------------------------------------------------------------------------
#  O script cria a possibilidade de quando o player morrer ele voltar para
# um ponto definido ( como um hospital ou sei la ) e com todos os seus membros
# curados.
#
#  Para salvar uma localização de "respaw", apenas adicione em um evento
# o comando "chamar script" com:
#    $game_party.save_respaw
#
#  Para desabilitar o respaw em uma determinada parte, use a switch definida
# nas configurações. Quando ela estiver ON o player poderá dar respaw, se ela
# estiver OFF o player NÃO pode dar respaw.
#
#    Incompatibilidade:
#        - Scripts que modificam o game-over
#
#------------------------------------------------------------------------------

module Respaw_Config
 
  #------------------------------------------------------------------------------
  # CONFIGURAÇÕES GERAIS
  #------------------------------------------------------------------------------

  # Switch que ativa e desativa a opção de respaw
  Respaw_Switch = 1

  # Nome mostrado na opção "respaw"
  Respaw_Vocab = "Reviver"
 
  # Nome mostrado na opção "sair"
  Exit_Vocab  = "Sair"
 
  # Alinhamento do texto ( 0 esquerda, 1 centro e 2 direita)
  Alignment = 1
 
  # Animação ao reviver ( 0 para desativar )
  Respaw_Anim = 37
 
  # Animação ao salvar a localização de respaw ( 0 para desativar )
  Save_Anim  = 38
 
  # A window de reviver aparecerá exatamente no centro da tela.
  # Para mudar seu X, coloque aqui a quantidade de mudança desejada
  X_Plus = 0
 
  # Para mudar seu Y, coloque aqui a quantidade de mudança desejada
  Y_Plus = 120 
 
  #------------------------------------------------------------------------------
  # FIM DAS CONFIGURAÇÕES
  #------------------------------------------------------------------------------

end

#------------------------------------------------------------------------------

class Respaw_Window < Window_Command
  include Respaw_Config
  def make_command_list
    respaw_ok = !$game_party.last_respawpoint.nil?
    active = $game_switches[Respaw_Switch]
    enabled = respaw_ok and active
    self.add_command(Respaw_Vocab, :respaw, enabled)
    self.add_command(Exit_Vocab, :exit)
  end
 
  def move
    self.x = (Graphics.width - self.width) / 2 + X_Plus
    self.y = (Graphics.height - self.height) / 2 + Y_Plus
  end
 
  def alignment
    return Alignment rescue 0
  end
 
  alias :down :cursor_down
  def cursor_down(wrap = false)
    return if !command_enabled?(0)
    down(wrap)
  end

  alias :up :cursor_up
  def cursor_up(wrap = false)
    return if !command_enabled?(0)
    up(wrap)
  end
end

class Scene_Gameover < Scene_Base

  alias :w_start :start
  def start
    w_start
    create_choose_window
  end
 
  alias :upd :update
  def update
    upd
    @choose.opacity += 5 if @choose.opacity < 255
  end
   
  def normal_respaw
    fadeout_all
    last_respawpoint = $game_party.last_respawpoint
    $game_map.setup(last_respawpoint.map_id)
    SceneManager.goto(Scene_Map)
    $game_party.members.each {|actor| actor.hp = actor.mhp; actor.mp = actor.mmp}
    $game_player.moveto(last_respawpoint.x, last_respawpoint.y)
    $game_player.set_direction(last_respawpoint.dir)
    $game_player.spaw_debug!
    $game_player.animation_id = Respaw_Config::Respaw_Anim if Respaw_Config::Respaw_Anim != 0
    $game_player.refresh
  end
 
  def normal_exit
    fadeout_all
    SceneManager.goto(Scene_Title)
  end
 
  def create_choose_window
    @choose = Respaw_Window.new(0, 0)
    @choose.move
    @choose.select(1) if not @choose.command_enabled?(0)
    @choose.set_handler(:respaw, method(:normal_respaw))
    @choose.set_handler(:exit, method(:normal_exit))
    @choose.opacity = 155
    @choose.refresh
  end
end

class Game_Player < Game_Character
 
  attr_accessor :spaw_debug
 
  alias :init :initialize
  def initialize
    init
    @spaw_debug = false
  end
 
  alias :debug_move :move_straight
  def move_straight(d, turn_ok = true)
    debug_move(d, turn_ok)
    return unless @spaw_debug
    if passable?(@x,@y,d)
      @spaw_debug = false
      @through = false if @through
    end
  end
 
  def spaw_debug!
    @spaw_debug = true; @through = true
  end
end

class Respaw_Point
 
  attr_accessor :map_id
  attr_accessor :dir
  attr_accessor :x
  attr_accessor :y
 
  def initialize(map_id, x, y, dir)
    @map_id, @x, @y, @dir = map_id, x, y, dir
  end
end

class Game_Party < Game_Unit
 
  attr_accessor :last_respawpoint
 
  alias :init :initialize
  def initialize
    init
    @last_respawpoint = nil
  end
 
  def save_respaw
    @last_respawpoint = nil
    @last_respawpoint = Respaw_Point.new($game_map.map_id, $game_player.x, $game_player.y, $game_player.direction)
    $game_player.animation_id = Respaw_Config::Save_Anim if Respaw_Config::Save_Anim != 0
  end
end


Créditos

  • AndreMaker por criar

Ver perfil do usuário http://www.zonetoony.net

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum