赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 4095 |
最后登录 | 2012-5-26 |
在线时间 | 2 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 2 小时
- 注册时间
- 2006-3-1
- 帖子
- 126
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
- #==============================================================================
- # ■ オプションメニュー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
复制代码
不会用。。。求高人指点 并汉化。 版务信息:版主帮忙结贴~ |
|