¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [VXA] Sistema de Dificultad el Miér Jun 27, 2012 8:34 pm

Razor

avatar
Autor: JohnBolton
Versión: 1.2
Descripción: Implementa un sistema de dificultad en tu juego donde podrás escoger un cierto nivel y este resultara en una alteración a los atributos de todos los enemigos en la base de datos, tornándolos mas débiles o fuertes. Una de las cuatro opciones solo sera liberado en caso de que el jugador ya haya terminado el juego por lo menos una vez lo que facilita mas opciones de modificación para el script.


Características



  • Plug 'n' Play
  • Facilidad de uso
  • Configurable desde el modulo del script



Capturas



Spoiler:





Instrucciones



  • Coloque el script arriba de Main y configure las opciones pertinentes en el modulo del script.
  • Para determinar si el juego fue completado o no basta activar el interruptor indicado en el modulo de las configuraciones.
  • El script esta en portugués pero traduje lo esencial [configuraciones en el modulo]


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                  **    #
    #=============================================================#
   
# Opciones que aparecerán en la ventana de dificultad:
Options = [ 'Fácil', 'Normal', 'Difícil', 'Insano' ]

# Atributos de los monstruos multiplicados respectivamente por:
JB_Some = [    0.5  ,    1  ,    2    ,    3    ] 

# Interruptor que avisara cuando el juego este terminado o no:
JB_SWITCH = 2

#Texto que aparecerá en la cabecera de la ventana de selección:
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

Un Saludo
Out.-





Todos mis aportes por Mediafire tienen contraseña, esa es: www.universomaker.net
Esto es para evitar plagio, asegúrense de copiar y pegar la contraseña.

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.