HUNTERLun Abr 08, 2013 10:03 pm
Super Usuario
Seleccion de Dificultadad en el titulo
INTRODUCCION:
Buen Script para elejir la dificultad de tu juego para que los
jugadores entre expertos y novatos podran ir orientandose
mejor en el juego.
IMAGEN DE MUESTRA:
CREDITOS:
JohnBolton
SCRIPT:
- Código:
#=========================================================
# JB - Difficulty System
# Versão: 1.2
# Autor: JohnBolton
#---------------------------------------------------------
# Insere no jogo um sistema de dificuldade, onde a
# escolha de um certo nível resultará em uma alteração
# nos atributos dos inimigos, tornando-os mais fortes
# ou mais fracos. Uma das quatro opções só será liberada
# para o jogador se ele já tiver terminado o jogo pelo
# menos uma vez.
#==========================================================
#==========================================================
# * Change_Log
#----------------------------------------------------------
#
# Versão 1.1
#
# - Modificação em GOLD e EXP adicionados
# - Correção nos tipos de dados
#
# Versão 1.2
#
# - Adicionado um cabeçalho
# - Correção no número de arquivos zerados
#
#==========================================================
module JohnBolton
module Difficulty_System
#=============================================================#
# ** Configurações ** #
#=============================================================#
# Opções que aparecerão na janela de seleção de dificuldade :
Options = [ 'Fácil', 'Normal', 'Difícil', 'Insano' ]
# Atributos dos monstros multiplicados respectivamente por :
JB_Some = [ 0.5 , 1 , 2 , 3 ]
# Switch que dirá se o jogo já foi zerado ou não :
JB_SWITCH = 2
#Texto que aparecerá no cabeçalho :
Text = " Selecione a dificuldade"
#=============================================================#
# ---------- Fim das Configurações ----------- #
#=============================================================#
end
end
#==============================================================================
# ** Window_DifficultyCommand
#------------------------------------------------------------------------------
# Esta janela para seleção das opções Novo Jogo/Continuar na tela de título.
#==============================================================================
class Window_DifficultyCommand < Window_Command
include JohnBolton::Difficulty_System
#--------------------------------------------------------------------------
# * Inicialização do objeto
#--------------------------------------------------------------------------
def initialize
@insane = false
for i in 1..DataManager.savefile_max
filename = i <= 9 ? "Save0#{i}.rvdata2" : "Save#{i}.rvdata2"
filename = '#01010AE.bull' if @insane
if File.file?(filename)
file = File.open(filename, "rb")
Marshal.load(file)
extract_save_contents(Marshal.load(file))
@insane = $game_switches[JB_SWITCH]
end
end
super(0, 0)
update_placement
self.openness = 0
self.active, self.visible = false, false
open
end
#--------------------------------------------------------------------------
# * Atualização da posição da janela
#--------------------------------------------------------------------------
def update_placement
self.x = (Graphics.width - width) / 2
self.y = (Graphics.height * 1.6 - height) / 2
end
#--------------------------------------------------------------------------
# * Criação da lista de comandos
#--------------------------------------------------------------------------
def make_command_list
add_command(Options[0], :easy)
add_command(Options[1], :normal)
add_command(Options[2], :hard)
add_command(Options[3], :insane, @insane)
end
#--------------------------------------------------------------------------
# * Extrair conteúdo salvo
#--------------------------------------------------------------------------
def extract_save_contents(contents)
$game_system = contents[:system]
$game_switches = contents[:switches]
end
end
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
# Esta classe executa o processamento da tela de título.
#==============================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# * Inicialização do processo
#--------------------------------------------------------------------------
alias johnBolton_Difficulty_start start
def start
johnBolton_Difficulty_start
create_command_difficulty
create_window_help
close_difficulty_command
end
#--------------------------------------------------------------------------
# * Atualização da tela
#--------------------------------------------------------------------------
alias johnBolton_Difficulty_update update
def update
johnBolton_Difficulty_update
if Input.trigger?(:B) && !@difficulty_window.close?
Sound.play_cancel
close_difficulty_command
@command_window.open
@command_window.active, @command_window.visible = true, true
end
end
def create_window_help
@window_help = Window_Help.new(1)
@window_help.set_text(JohnBolton::Difficulty_System::Text)
@window_help.visible = false
@window_help.opacity = 150
end
#--------------------------------------------------------------------------
# * Comando [Novo Jogo]
#--------------------------------------------------------------------------
def command_new_game
open_difficulty_command
end
#--------------------------------------------------------------------------
# * Abre a janela de Dificuldade
#--------------------------------------------------------------------------
def open_difficulty_command
@difficulty_window.visible, @difficulty_window.active = true, true
@difficulty_window.open
@window_help.visible = true
@window_help.open
close_command_window
end
#--------------------------------------------------------------------------
# * Fechamento da janela de Dificuldade
#--------------------------------------------------------------------------
def close_difficulty_command
@difficulty_window.close
@window_help.close
update until @difficulty_window.close?
end
#--------------------------------------------------------------------------
# * Criação da janela de Dificuldade
#--------------------------------------------------------------------------
def create_command_difficulty
@difficulty_window = Window_DifficultyCommand.new
@difficulty_window.set_handler(:easy, method(:command_easy))
@difficulty_window.set_handler(:normal, method(:command_normal))
@difficulty_window.set_handler(:hard, method(:command_hard))
@difficulty_window.set_handler(:insane, method(:command_insane))
end
#--------------------------------------------------------------------------
# * Comando [Fácil]
#--------------------------------------------------------------------------
def command_easy
new_game
$game_system.vitamin_r(JohnBolton::Difficulty_System::JB_Some[0])
end
#--------------------------------------------------------------------------
# * Comando [Normal]
#--------------------------------------------------------------------------
def command_normal
new_game
$game_system.vitamin_r(JohnBolton::Difficulty_System::JB_Some[1])
end
#--------------------------------------------------------------------------
# * Comando [Díficil]
#--------------------------------------------------------------------------
def command_hard
new_game
$game_system.vitamin_r(JohnBolton::Difficulty_System::JB_Some[2])
end
#--------------------------------------------------------------------------
# * Comando [Insano]
#--------------------------------------------------------------------------
def command_insane
new_game
$game_system.vitamin_r(JohnBolton::Difficulty_System::JB_Some[3])
end
#--------------------------------------------------------------------------
# * Inicia um novo jogo
#--------------------------------------------------------------------------
def new_game
DataManager.setup_new_game
close_command_window
@difficulty_window.close
fadeout_all
$game_map.autoplay
SceneManager.goto(Scene_Map)
end
end
#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
# Esta classe gerencia os dados relacionados ao sistema. Também gerencia
# veículos, BGM, etc.
# A instância desta classe é referenciada por $game_system.
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# * Variável pública
#--------------------------------------------------------------------------
attr_accessor :difficulty
#--------------------------------------------------------------------------
# * Definição do nível de dificuldade
#--------------------------------------------------------------------------
def vitamin_r(chevelle)
@difficulty = chevelle
end
end
#==============================================================================
# ** Game_Enemy
#------------------------------------------------------------------------------
# Esta classe gerencia os inimigos. Ela é utilizada internamente pela
# classe Game_Troop ($game_troop).
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# * [Alias] Aquisição do valor base do parâmetro
#--------------------------------------------------------------------------
alias jb_difsys_param_base param_base
def param_base(*args)
(jb_difsys_param_base(*args) * $game_system.difficulty).to_i
end
#--------------------------------------------------------------------------
# * [Alias] Aquisição de experiência
#--------------------------------------------------------------------------
alias jb_difsys_exp exp
def exp
(jb_difsys_exp * $game_system.difficulty).to_i
end
#--------------------------------------------------------------------------
# * [Alias] Aquisição de dinheiro
#--------------------------------------------------------------------------
alias jb_difsys_gold gold
def gold
(jb_difsys_gold * $game_system.difficulty).to_i
end
end
Nos leemos en el proximo excelente post y comenten ciaooo.