Royal RPG Maker

Fórum para os RPGs Makers de plantão.
 
InícioCalendárioGaleriaFAQBuscarMembrosGruposRegistrar-seConectar-se

Compartilhe | 
 

 Retornar ao Morrer

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
Fla ^~^
avatar
The King
The King


Mensagens : 69
Créditos : 6
Data de inscrição : 03/02/2010
Idade : 23

MensagemAssunto: Retornar ao Morrer   Qui Fev 04, 2010 3:46 pm

Esse script permite que o player reviva ao morrer onde foi salvo^^

Código:
#==============================================================================
# * Retornar ao Morrer
#------------------------------------------------------------------------------
# Tradução e Melhorias por br_lemes - 2008-04-12
# Original por SephirothSpawn
# Version 2
# 2006-03-04
#------------------------------------------------------------------------------
# * Descrição :
#
#  Este script serve para retornar para o local onde o jogo foi
#  salvo, ao invés de voltar ao título. Ele permite que você salve o local
#  ao teletransportar ou salvar o jogo.
#  Também permite recuperar uma percentagem do seu HP ou SP e perder uma
#  percentagem do dinheiro ou experiência.
#------------------------------------------------------------------------------
# * Instruções :
#  Cole o script abaixo de Scene_Debug e acima de Main.
#  Para configurar, veja as instruções de configuração.
#  Veja Sintaxe para instruções de salvar o local
#------------------------------------------------------------------------------
# * Configurações :
#
#  GoInn_Save_When_Transfer = true (LIGADO) ou false (DESLIGADO)
#    - Descrição : Salva o local de retorno ao teletransportar
#  GoInn_Save_When_Save = true
#    - Descrição : Salva o local de retorno ao salvar o jogo
#  GoInn_HP_Recovery_Percent = 1.0
#    - Descrição : Percentagem de maxhp recuperado para todos ou cada personagem
#  GoInn_SP_Recovery_Percent = 0.75
#    - Descrição : Percentagem de maxsp recuperado para todos ou cada personagem
#  GoInn_Gold_Loss_Percent = 0.5
#    - Descrição : Percentagem de perda de dinheiro
#  GoInn_Expr_Loss_Percent = 0
#    - Descrição : Percentagem de perda de experiência para todos ou cada p.
#
#  Se a percentagem de HP, SP ou Experiência for um array, os valores serão
#  individuais para cada personagem.
#------------------------------------------------------------------------------
# * Sintaxe :
#
#  Salvar o local
#  Chamar script: save_goinn_parameters
#
#  Controle das posições de retorno
#    - $game_system.gameover_return_parameters[0] = map_id
#    - $game_system.gameover_return_parameters[1] = player_x
#    - $game_system.gameover_return_parameters[2] = player_y
#    - $game_system.gameover_return_parameters[3] = direction
#==============================================================================

# Dependência do SDK removido

#==============================================================================
# * Game_System
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # * Opções
  #--------------------------------------------------------------------------
  GoInn_Save_When_Transfer = true
  GoInn_Save_When_Save = true
  GoInn_HP_Recovery_Percent = 1.0
  GoInn_SP_Recovery_Percent = 0.75
  GoInn_Gold_Loss_Percent = 0.5
  GoInn_Expr_Loss_Percent = 0
  #--------------------------------------------------------------------------
  attr_accessor :gameover_return_parameters
  alias seph_goinn_gmsys_init initialize
  def initialize
    seph_goinn_gmsys_init
    @gameover_return_parameters = [nil, 0, 0, 2]
  end
end

#==============================================================================
# * Interpretador
#==============================================================================

class Interpreter
  #--------------------------------------------------------------------------
  # * Teletransporte
  #--------------------------------------------------------------------------
  alias seph_goinn_int_c201 command_201
  def command_201
    seph_goinn_int_c201
    if Game_System::GoInn_Save_When_Transfer
      $game_system.gameover_return_parameters[0] =
        $game_temp.player_new_map_id
      $game_system.gameover_return_parameters[1] = $game_temp.player_new_x
      $game_system.gameover_return_parameters[2] = $game_temp.player_new_y
      $game_system.gameover_return_parameters[3] =
        $game_temp.player_new_direction
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Salvar parâmetros
  #--------------------------------------------------------------------------
  def save_goinn_parameters
    $game_system.gameover_return_parameters[0] = $game_map.map_id
    $game_system.gameover_return_parameters[1] = $game_player.x
    $game_system.gameover_return_parameters[2] = $game_player.y
    $game_system.gameover_return_parameters[3] = $game_player.direction
  end
end

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

class Scene_Save < Scene_File
  #--------------------------------------------------------------------------
  # * Salva o jogo e parâmetros do local
  #--------------------------------------------------------------------------
  alias seph_goinn_scnsv_init initialize
  def initialize
    if Game_System::GoInn_Save_When_Save
      $game_system.gameover_return_parameters[0] = $game_map.map_id
      $game_system.gameover_return_parameters[1] = $game_player.x
      $game_system.gameover_return_parameters[2] = $game_player.y
      $game_system.gameover_return_parameters[3] = $game_player.direction
    end
    seph_goinn_scnsv_init
  end
end

#==============================================================================
# * Scene Gameover
#==============================================================================

class Scene_Gameover
  alias seph_goinn_scngo_update update
  def update
    if Input.trigger?(Input::C)
      unless $game_system.gameover_return_parameters[0].nil?
        # Recupera HP
        if Game_System::GoInn_HP_Recovery_Percent.type == Array
          for i in 0..3
            if $game_party.actors[i] != nil
              $game_party.actors[i].hp += Integer($game_party.actors[i].maxhp * Game_System::GoInn_HP_Recovery_Percent[i])
            end
          end
        else
          for actor in $game_party.actors
            actor.hp += Integer(actor.maxhp * Game_System::GoInn_HP_Recovery_Percent)
          end
        end
        # Recupera SP
        if Game_System::GoInn_SP_Recovery_Percent.type == Array
          for i in 0..3
            if $game_party.actors[i] != nil
              $game_party.actors[i].sp += Integer($game_party.actors[i].maxsp * Game_System::GoInn_SP_Recovery_Percent[i])
            end
          end
        else
          for actor in $game_party.actors
            actor.sp += Integer(actor.maxsp * Game_System::GoInn_SP_Recovery_Percent)
          end
        end
        # Perder dinheiro e experiência
        $game_party.lose_gold(Integer($game_party.gold * Game_System::GoInn_Gold_Loss_Percent))
        if Game_System::GoInn_Expr_Loss_Percent.type == Array
          for i in 0..3
            if $game_party.actors[i] != nil
              $game_party.actors[i].exp -=  Integer($game_party.actors[i].exp * Game_System::GoInn_Expr_Loss_Percent[i])
            end
          end
        else
          for actor in $game_party.actors
            actor.exp -= Integer(actor.exp * Game_System::GoInn_Expr_Loss_Percent)
          end
        end
        # Limpa Flags Gameover e In Battle
        $game_temp.gameover = false
        $game_temp.in_battle = false
        # Move o jogador para o local salvo     
        $game_map.setup($game_system.gameover_return_parameters[0])
        $game_player.moveto($game_system.gameover_return_parameters[1],
          $game_system.gameover_return_parameters[2])
        # Define a direção do jogador
        case $game_system.gameover_return_parameters[3]
        when 2 ; $game_player.turn_down
        when 4 ; $game_player.turn_left
        when 6 ; $game_player.turn_right
        when 8 ; $game_player.turn_up
        end
        $game_player.straighten
        $game_map.update
        $scene = Scene_Map.new
        return
      end
    end
    seph_goinn_scngo_update
  end
end

Tutorial:
Spoiler:
 

Créditos: br_lemes,Original por SephirothSpawn.,/Rpg brasil
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://royal-rpg-maker.forumeiros.com
 

Retornar ao Morrer

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

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Royal RPG Maker :: RPG Maker XP :: Scripts para XP (RGSS)-