Project1
标题:
环境设定菜单 如何应用? [求汉化]
[打印本页]
作者:
冰风情火
时间:
2008-4-13 17:31
标题:
环境设定菜单 如何应用? [求汉化]
#==============================================================================
# ■ オプションメニューVX:ベースRGSS ver.1.00 byスウ(http://www.k2.dion.ne.jp/~diversas/index.html)
#------------------------------------------------------------------------------
#
# 設定メニューを導入するスクリプトです。XP用RGSS「設定メニュー」のVXver.
# 雛形ではなく、メニュー項目や名称もお好みにカスタマイズ可能。
# 項目の一覧は以下より。必要な機能をチョイスしてご利用ください。
# 導入&設定後はイベントコマンドの「スクリプト」で
# 「$scene = SP_Menu.new」と命令すればオプションメニューに切り替わります。
#
#
# 【項目】
# -2000~-1001.(数値の絶対値-1000)のID変数の操作(※0)
# -1000~-1.数値の絶対値のIDスイッチのオン・オフ(※1)
# 1.歩行速度調節
# 2.通常歩行切り替え
# 3.メッセージ表示切り替え
# 4.バトルメッセージ速度
# 5.バトル難易度
# 6.バトルエフェクト表示
# 7.フォント選択
#
# ※0…変数を利用した他サイトさんのスクリプトと連動させると効果的です。1000個の変数に対応
# ※1…コモンイベント等と連動させることで多様な環境オプションを構築できる可能性があります。
#
# 再定義:なし(独立したシーンクラスを使用)
# 導入法:ベースRGSS(これ)+必要な機能RGSSを導入後、カスタマイズ設定
# 履 歴:2008年4月作成
#==============================================================================
module Option
# メニューのY位置
MenuY = 24
# メニュー配列([項目値,項目値...])
Order = [1, 2, 3, 4, 5, 6, 7, -1, -1001]
# 各オプションの名称(項目数値=>"名称")
OName = {1=>"歩行速度",
2=>"通常移動操作",
3=>"メッセージ表示",
4=>"バトルメッセージ",
5=>"バトル難易度",
6=>"バトルエフェクト",
7=>"フォント指定",
-1=>"スイッチ1操作",
-1001=>"変数1操作"}
# 各オプションのコマンド名配列
# -値での配列数は-1000~-1は2(ON, OFF)、-1000以下は無制限。
OCors = {1=>["遅い","普通","速い","超速","神速"],
2=>["歩く","走る"],
3=>["通常表示", "瞬間表示"],
4=>["通常","2倍速","3倍速","4倍速"],
5=>["甘口","普通","辛口","中辛","激辛","超激辛","暴君","魔王","死神"],
6=>["表示する","表示しない"],
7=>["UmePlus Gothic","MS P明朝","HGS創英角ポップ体","HGS教科書体"],
-1=>["ON", "OFF"],
-1001=>["0","1","2","3","4","5","6"]}
# 各オプションの説明文
Sente = {1=>"移動速度を変更します。",
2=>"通常移動の動作を変更します。",
3=>"通常メッセージの表示方法を変更します。",
4=>"バトルメッセージの速度を変更します。",
5=>"バトルの難易度を変更します。",
6=>"バトルのエフェクト表示を変更します。",
7=>"表示するフォントを変更します。",
-1=>"スイッチ1のON/OFFを切り替えます",
-1001=>"変数1の値を変更します。"}
end
class SP_Menu < Scene_Base
include Option
#--------------------------------------------------------------------------
# ● メイン・プロセス
#--------------------------------------------------------------------------
def start
super
create_menu_background
create_commands
@obwin = OB_Window.new(@commands, MenuY)
@shwin = SH_Window.new
@opwin = OP_Window.new(MenuY)
create_corsor
end
def terminate
super
dispose_menu_background
@obwin.dispose
@shwin.dispose
@opwin.dispose
for i in
[email protected]
- 1 do @corsor[i].dispose end
end
def update
super
update_commands
@obwin.update
@corsor[@obwin.index].update
@shwin.set_text(@sentence[@obwin.index])
end
def create_commands
@commands = []
@sentence = []
@fs_index = []
for i in Order # コマンド初期位置の指定
case i
when -1000..-1
$game_switches[i.abs] == true ? a = 0 : a = 1
when -2000..-1001
a = $game_variables[i.abs - 1000]
when 1
a = $game_player.move_speed - 3
when 2
$game_player.dash == true ? a = 0 : a = 1
when 3
$game_system.message_mode == false ? a = 0 : a = 1
when 4
a = $game_system.battle_speed - 1
when 5
a = ($game_system.e_rank - 0.8) / 0.2
when 6
$game_system.effect_a == false ? a = 0 : a = 1
when 7
a = $game_system.font_c
end
@commands.push(OName[i])
@sentence.push(Sente[i])
@fs_index.push(a)
end
end
def create_corsor
@corsor = []
number = 0
for i in Order
d = number * 24 + 112 + MenuY
@corsor[number] = SC_Window.new(d, OCors[i], @fs_index[number])
number += 1
end
end
def update_commands
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
Sound.play_decision
action_start
$scene = Scene_Map.new
end
end
def action_start # 実行内容の反映
number = 0
for i in Order
case i
when -1000..-1
sw = @corsor[number].index
$game_switches[i.abs] = (sw == 0 ? true : false)
when -2000..-1001
$game_variables[i.abs - 1000] = @corsor[number].index
when 1
start_1(number) #これ以降のメソッドは各項目素材に分離
when 2
start_2(number)
when 3
start_3(number)
when 4
start_4(number)
when 5
start_5(number)
when 6
start_6(number)
when 7
start_7(number)
end
number += 1
end
end
end
class OB_Window < Window_Selectable
#--------------------------------------------------------------------------
# ● オプション・ベース・ウィンドウ(544-144 × 384-X)
#--------------------------------------------------------------------------
def initialize(commands, y)
super(72, (WLH + 32) * 2 + y, 400, commands.size * 24 + 32)
@commands = commands
@item_max = commands.size
refresh
self.index = 0
end
def refresh
create_contents
for i in 0...@item_max do draw_item(i) end
end
def draw_item(index)
self.contents.draw_text(4, index * WLH, 200, WLH,@commands[index])
end
end
class SC_Window < Window_Base
attr_reader :index
#--------------------------------------------------------------------------
# ● 可変式スライド・ウィンドウ(Window_Selectableより軽量)
#--------------------------------------------------------------------------
def initialize(y, commands, ex)
@commands = commands
@item_max = commands.size
super(72 + 200, y, 200, WLH + 32)
self.windowskin = Cache.system("")
self.opacity = 0
@index = ex
refresh
self.oy = @index * WLH
end
def refresh
self.contents.dispose
self.contents = Bitmap.new(width - 32, @item_max * WLH)
for i in 0...@item_max do draw_item(i) end
end
def draw_item(index)
self.contents.draw_text(4, index * 24, 200, 24,@commands[index])
end
def update
if Input.repeat?(Input::RIGHT)
@index == (@item_max - 1) ? @index = 0 : @index += 1
elsif Input.repeat?(Input::LEFT)
@index == 0 ? @index = (@item_max - 1) : @index -= 1
end
self.oy = @index * WLH
end
end
class SH_Window < Window_Help
#--------------------------------------------------------------------------
# ● コンパクト型ヘルプ
#--------------------------------------------------------------------------
include Option
def initialize
super
self.x = 72 ; self.width = 400
self.y = WLH + 32 + MenuY
self.contents.dispose
self.contents = Bitmap.new(self.width - 32, self.height - 32)
end
end
class OP_Window < Window_Base
#--------------------------------------------------------------------------
# ● タイトル・ウィンドウ
#--------------------------------------------------------------------------
def initialize(menu_y)
super(72, 0 + menu_y, 400, WLH + 32)
self.contents.font.color = hp_gauge_color2#system_color
self.contents.draw_text(4, 0, 400, WLH, "環境設定")
self.contents.font.size = 15
self.contents.draw_text(90, 2, 400, WLH, "[←→で変更・Cで決定・Bでキャンセル]")
end
end
复制代码
不会用。。。求高人指点 并汉化。 [LINE]1,#dddddd[/LINE]
版务信息:版主帮忙结贴~
作者:
冰风情火
时间:
2008-4-13 17:33
作者:
暴风の龙
时间:
2008-4-13 17:39
其他我看不懂,但……
「$scene = SP_Menu.new」と命令すればオプションメニューに切り替わります。
这不就是召唤界面方法吗? [LINE]1,#dddddd[/LINE]
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1