じ☆ve冰风 发表于 2026-8-2 11:01:06

Difficulty Selection

Difficulty Selection 1.0.0

by Todd (or DoctorTodd on RMRK)

Introduction

Lets the player select the games difficulty. Each difficulty multiplies the enemies parameters.

Screenshot:

http://desmond.image...png&res=landing

Features


[*]Option to add to menu.
[*]Pick between easy, normal, heroic, hard.
How to UsePaste above main.

Configure the script to the way you like it.

Script

Spoiler#===============================================================================## DT's Difficulty# Author: DoctorTodd# Date (06/24/2012)# Version: (1.0.0) (VXA)# Level: (Medium)# Email: Todd@beacongames.com##===============================================================================## NOTES: 1)This script will only work with ace.#      2)A difficulty must be selected before the first battle or the game WILL#      CRASH.##===============================================================================## Description: Lets the player select the games difficulty.## Credits: Me (DoctorTodd), D&P3 for saving bug fix.##===============================================================================## Instructions# Paste above main.##===============================================================================## Free for any use as long as I'm credited.##===============================================================================## Editing begins 38 and ends on 71.##===============================================================================module TODDDIFFICULTY   #Easy Text.EASYT = "Easy"   #Normal Text.NORMALT = "Normal"   #Heroic Text.HEROICT = "Heroic"   #Hard Text.HARDT = "Hard"   #Easy enemy parameters multiplier.EASYM = 0.5   #Heroic enemy parameters multiplier (Normal is skipped since it's what put#you into the database).HEROICM = 1.5   #Hard enemy parameters multiplier.HARDM = 2   #The text above where the selection is made.TEXT = "Please select a difficulty:"   #Menu command?MENU = true   #Sound effect to play when difficulty is selected.SE = "Darkness8"   #Switch to allow cancelling the difficulty selection.#MUST NOT BE ON WHEN SELECTING FOR THE FIRST TIME.SWITCH = 5end#==============================================================================# ** Game_Enemy#------------------------------------------------------------------------------#This class handles enemies. It used within the Game_Troop class# ($game_troop).#==============================================================================class Game_Enemy < Game_Battler#--------------------------------------------------------------------------# * Get Base Value of Parameter#--------------------------------------------------------------------------alias todd_difficulty_gmen_param_base param_basedef param_base(param_id, *args)n1 = todd_difficulty_gmen_param_base(param_id, *args)n2 = case $game_system.todd_difficultywhen 0 then TODDDIFFICULTY::EASYMwhen 1 then 1when 2 then TODDDIFFICULTY::HEROICMwhen 3 then TODDDIFFICULTY::HARDMendreturn n1 * n2 endend#==============================================================================# ** Game_System#------------------------------------------------------------------------------#This class handles system data. It saves the disable state of saving and# menus. Instances of this class are referenced by $game_system.#==============================================================================class Game_System#--------------------------------------------------------------------------# * Public Instance Variables#--------------------------------------------------------------------------attr_accessor :todd_difficulty            # save forbidden#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------alias todd_difficulty_gamesystem_init initializedef initialize    @todd_difficulty = 0    todd_difficulty_gamesystem_initendend#==============================================================================# ** Window_DifficultySelection#==============================================================================class Window_DifficultySelection < Window_HorzCommand#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initialize    super(0, 0)end#--------------------------------------------------------------------------# * Get Window Width#--------------------------------------------------------------------------def window_width    Graphics.width/2 + 20end#--------------------------------------------------------------------------# * Get Digit Count#--------------------------------------------------------------------------def col_max    return 4end#--------------------------------------------------------------------------# * Create Command List#--------------------------------------------------------------------------def make_command_list    add_command(TODDDIFFICULTY::EASYT,   :easy)    add_command(TODDDIFFICULTY::NORMALT,   :normal)    add_command(TODDDIFFICULTY::HEROICT,    :heroic)    add_command(TODDDIFFICULTY::HARDT, :hard)endend#==============================================================================# ** Window_DifficultyName#==============================================================================class Window_DifficultyName < Window_Base#--------------------------------------------------------------------------# * Object Initialization#--------------------------------------------------------------------------def initialize    super(0, 0, window_width, fitting_height(1))    refreshend#--------------------------------------------------------------------------# * Get Window Width#--------------------------------------------------------------------------def window_width    return Graphics.width/2 + 20end#--------------------------------------------------------------------------# * Refresh#--------------------------------------------------------------------------def refresh    contents.clear    draw_text(15, -27, 400, 80, TODDDIFFICULTY::TEXT)endend#==============================================================================# ** Scene_Difficulty#==============================================================================class Scene_Difficulty < Scene_MenuBase#--------------------------------------------------------------------------# * Start Processing#--------------------------------------------------------------------------def start    super    create_command_window    create_name_windowend#--------------------------------------------------------------------------# * Create Command Window#--------------------------------------------------------------------------def create_command_window    @command_window = Window_DifficultySelection.new    @command_window.set_handler
easy,      method
command_easy))    @command_window.set_handler
normal,   method
command_normal))    @command_window.set_handler
heroic,   method
command_heroic))    @command_window.set_handler
hard,    method
command_hard))    @command_window.set_handler
cancel,    method
return_scene))if $game_switches == true    @command_window.x = Graphics.width/2 - 170    @command_window.y = Graphics.height/2 - 50end#--------------------------------------------------------------------------# * Create Difficulty Window#--------------------------------------------------------------------------def create_name_window    @name_window = Window_DifficultyName.new    @name_window.x = Graphics.width/2 - 170    @name_window.y = Graphics.height/2 - 97end#--------------------------------------------------------------------------# * Command#--------------------------------------------------------------------------def command_easy    $game_system.todd_difficulty = 0    Audio.se_play("Audio/SE/" + TODDDIFFICULTY::SE, 100, 100)    return_scene   end#--------------------------------------------------------------------------# * Command#--------------------------------------------------------------------------def command_normal    $game_system.todd_difficulty = 1    Audio.se_play("Audio/SE/" + TODDDIFFICULTY::SE, 100, 100)    return_scene   end#--------------------------------------------------------------------------# * Command#--------------------------------------------------------------------------def command_heroic    $game_system.todd_difficulty = 2      Audio.se_play("Audio/SE/" + TODDDIFFICULTY::SE, 100, 100)    return_scene   end#--------------------------------------------------------------------------# * Command#--------------------------------------------------------------------------def command_hard    $game_system.todd_difficulty = 3      Audio.se_play("Audio/SE/" + TODDDIFFICULTY::SE, 100, 100)    return_scene   end end if TODDDIFFICULTY::MENU == true#==============================================================================# ** Scene_Menu#------------------------------------------------------------------------------#This class performs the menu screen processing.#==============================================================================class Scene_Menu < Scene_MenuBase#--------------------------------------------------------------------------# * Create Command Window#--------------------------------------------------------------------------alias todd_dif_menu_add_menu_command create_command_windowdef create_command_window    todd_dif_menu_add_menu_command    @command_window.set_handler
dif,      method
command_dif))endend#--------------------------------------------------------------------------# * Command#--------------------------------------------------------------------------def command_difSceneManager.call(Scene_Difficulty)endendif TODDDIFFICULTY::MENU == true#==============================================================================# ** Window_MenuCommand#------------------------------------------------------------------------------#This command window appears on the menu screen.#==============================================================================class Window_MenuCommand < Window_Command#--------------------------------------------------------------------------# * Add Main Commands to List#--------------------------------------------------------------------------alias todd_dif_menu_command_add_to_menu add_main_commandsdef add_main_commands   todd_dif_menu_command_add_to_menu    add_command("Difficulty",   :dif,   main_commands_enabled)end endend 



FAQ

None right now.

Credit and Thanks

- Todd

Author's Notes

See the header of the script.


本贴来自国际rpgmaker官方论坛作者:Todd处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/difficulty-selection.2789/
页: [1]
查看完整版本: Difficulty Selection