Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


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 Respawn System 1.0 em Dom 11 Nov 2012, 08:49

Tiaguu

avatar
Membro - semi experiente
Membro - semi experiente
Respawn 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
Maker-Leon por criar e disponibilizar

Ver perfil do usuário

2 Re: Respawn System 1.0 em Dom 11 Nov 2012, 12:51

~Razor

avatar
Membro de Honra
Membro de Honra
muito util , gostei se eu adicionar o sitema de checpoint automatico junto com esse vai ficar mt bom :cereal:


__________________________________________


Principal Engine :Game Maker
Especialidade : Roteirista
Jogos: The old mine (Game Maker)
Site(Fórum): Lost Makers
Ver perfil do usuário http://lostmakers.web-rpg.com/

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