设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1401|回复: 2
打印 上一主题 下一主题

环境设定菜单 如何应用? [求汉化]

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2006-3-1
帖子
126
跳转到指定楼层
1
发表于 2008-4-13 17:31:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
  1. #==============================================================================
  2. # ■ オプションメニューVX:ベースRGSS ver.1.00 byスウ(http://www.k2.dion.ne.jp/~diversas/index.html)
  3. #------------------------------------------------------------------------------
  4. #
  5. # 設定メニューを導入するスクリプトです。XP用RGSS「設定メニュー」のVXver.
  6. # 雛形ではなく、メニュー項目や名称もお好みにカスタマイズ可能。
  7. # 項目の一覧は以下より。必要な機能をチョイスしてご利用ください。
  8. # 導入&設定後はイベントコマンドの「スクリプト」で
  9. # 「$scene = SP_Menu.new」と命令すればオプションメニューに切り替わります。
  10. #
  11. #
  12. # 【項目】
  13. # -2000~-1001.(数値の絶対値-1000)のID変数の操作(※0)
  14. # -1000~-1.数値の絶対値のIDスイッチのオン・オフ(※1)
  15. # 1.歩行速度調節
  16. # 2.通常歩行切り替え
  17. # 3.メッセージ表示切り替え
  18. # 4.バトルメッセージ速度
  19. # 5.バトル難易度
  20. # 6.バトルエフェクト表示
  21. # 7.フォント選択
  22. #
  23. # ※0…変数を利用した他サイトさんのスクリプトと連動させると効果的です。1000個の変数に対応
  24. # ※1…コモンイベント等と連動させることで多様な環境オプションを構築できる可能性があります。
  25. #
  26. # 再定義:なし(独立したシーンクラスを使用)
  27. # 導入法:ベースRGSS(これ)+必要な機能RGSSを導入後、カスタマイズ設定
  28. # 履 歴:2008年4月作成
  29. #==============================================================================
  30. module Option

  31. # メニューのY位置
  32. MenuY = 24

  33. # メニュー配列([項目値,項目値...])
  34. Order = [1, 2, 3, 4, 5, 6, 7, -1, -1001]

  35. # 各オプションの名称(項目数値=>"名称")
  36. OName = {1=>"歩行速度",
  37. 2=>"通常移動操作",
  38. 3=>"メッセージ表示",
  39. 4=>"バトルメッセージ",
  40. 5=>"バトル難易度",
  41. 6=>"バトルエフェクト",
  42. 7=>"フォント指定",
  43. -1=>"スイッチ1操作",
  44. -1001=>"変数1操作"}

  45. # 各オプションのコマンド名配列
  46. # -値での配列数は-1000~-1は2(ON, OFF)、-1000以下は無制限。
  47. OCors = {1=>["遅い","普通","速い","超速","神速"],
  48. 2=>["歩く","走る"],
  49. 3=>["通常表示", "瞬間表示"],
  50. 4=>["通常","2倍速","3倍速","4倍速"],
  51. 5=>["甘口","普通","辛口","中辛","激辛","超激辛","暴君","魔王","死神"],
  52. 6=>["表示する","表示しない"],
  53. 7=>["UmePlus Gothic","MS P明朝","HGS創英角ポップ体","HGS教科書体"],
  54. -1=>["ON", "OFF"],
  55. -1001=>["0","1","2","3","4","5","6"]}

  56. # 各オプションの説明文
  57. Sente = {1=>"移動速度を変更します。",
  58. 2=>"通常移動の動作を変更します。",
  59. 3=>"通常メッセージの表示方法を変更します。",
  60. 4=>"バトルメッセージの速度を変更します。",
  61. 5=>"バトルの難易度を変更します。",
  62. 6=>"バトルのエフェクト表示を変更します。",
  63. 7=>"表示するフォントを変更します。",
  64. -1=>"スイッチ1のON/OFFを切り替えます",
  65. -1001=>"変数1の値を変更します。"}

  66. end

  67. class SP_Menu < Scene_Base
  68. include Option
  69. #--------------------------------------------------------------------------
  70. # ● メイン・プロセス
  71. #--------------------------------------------------------------------------
  72. def start
  73. super
  74. create_menu_background
  75. create_commands
  76. @obwin = OB_Window.new(@commands, MenuY)
  77. @shwin = SH_Window.new
  78. @opwin = OP_Window.new(MenuY)
  79. create_corsor
  80. end
  81. def terminate
  82. super
  83. dispose_menu_background
  84. @obwin.dispose
  85. @shwin.dispose
  86. @opwin.dispose
  87. for i in [email protected] - 1 do @corsor[i].dispose end
  88. end
  89. def update
  90. super
  91. update_commands
  92. @obwin.update
  93. @corsor[@obwin.index].update
  94. @shwin.set_text(@sentence[@obwin.index])
  95. end
  96. def create_commands
  97. @commands = []
  98. @sentence = []
  99. @fs_index = []
  100. for i in Order # コマンド初期位置の指定
  101. case i
  102. when -1000..-1
  103. $game_switches[i.abs] == true ? a = 0 : a = 1
  104. when -2000..-1001
  105. a = $game_variables[i.abs - 1000]
  106. when 1
  107. a = $game_player.move_speed - 3
  108. when 2
  109. $game_player.dash == true ? a = 0 : a = 1
  110. when 3
  111. $game_system.message_mode == false ? a = 0 : a = 1
  112. when 4
  113. a = $game_system.battle_speed - 1
  114. when 5
  115. a = ($game_system.e_rank - 0.8) / 0.2
  116. when 6
  117. $game_system.effect_a == false ? a = 0 : a = 1
  118. when 7
  119. a = $game_system.font_c
  120. end
  121. @commands.push(OName[i])
  122. @sentence.push(Sente[i])
  123. @fs_index.push(a)
  124. end
  125. end
  126. def create_corsor
  127. @corsor = []
  128. number = 0
  129. for i in Order
  130. d = number * 24 + 112 + MenuY
  131. @corsor[number] = SC_Window.new(d, OCors[i], @fs_index[number])
  132. number += 1
  133. end
  134. end
  135. def update_commands
  136. if Input.trigger?(Input::B)
  137. Sound.play_cancel
  138. $scene = Scene_Map.new
  139. elsif Input.trigger?(Input::C)
  140. Sound.play_decision
  141. action_start
  142. $scene = Scene_Map.new
  143. end
  144. end
  145. def action_start # 実行内容の反映
  146. number = 0
  147. for i in Order
  148. case i
  149. when -1000..-1
  150. sw = @corsor[number].index
  151. $game_switches[i.abs] = (sw == 0 ? true : false)
  152. when -2000..-1001
  153. $game_variables[i.abs - 1000] = @corsor[number].index
  154. when 1
  155. start_1(number) #これ以降のメソッドは各項目素材に分離
  156. when 2
  157. start_2(number)
  158. when 3
  159. start_3(number)
  160. when 4
  161. start_4(number)
  162. when 5
  163. start_5(number)
  164. when 6
  165. start_6(number)
  166. when 7
  167. start_7(number)
  168. end
  169. number += 1
  170. end
  171. end
  172. end
  173. class OB_Window < Window_Selectable
  174. #--------------------------------------------------------------------------
  175. # ● オプション・ベース・ウィンドウ(544-144 × 384-X)
  176. #--------------------------------------------------------------------------
  177. def initialize(commands, y)
  178. super(72, (WLH + 32) * 2 + y, 400, commands.size * 24 + 32)
  179. @commands = commands
  180. @item_max = commands.size
  181. refresh
  182. self.index = 0
  183. end
  184. def refresh
  185. create_contents
  186. for i in 0...@item_max do draw_item(i) end
  187. end
  188. def draw_item(index)
  189. self.contents.draw_text(4, index * WLH, 200, WLH,@commands[index])
  190. end
  191. end
  192. class SC_Window < Window_Base
  193. attr_reader :index
  194. #--------------------------------------------------------------------------
  195. # ● 可変式スライド・ウィンドウ(Window_Selectableより軽量)
  196. #--------------------------------------------------------------------------
  197. def initialize(y, commands, ex)
  198. @commands = commands
  199. @item_max = commands.size
  200. super(72 + 200, y, 200, WLH + 32)
  201. self.windowskin = Cache.system("")
  202. self.opacity = 0
  203. @index = ex
  204. refresh
  205. self.oy = @index * WLH
  206. end
  207. def refresh
  208. self.contents.dispose
  209. self.contents = Bitmap.new(width - 32, @item_max * WLH)
  210. for i in 0...@item_max do draw_item(i) end
  211. end
  212. def draw_item(index)
  213. self.contents.draw_text(4, index * 24, 200, 24,@commands[index])
  214. end
  215. def update
  216. if Input.repeat?(Input::RIGHT)
  217. @index == (@item_max - 1) ? @index = 0 : @index += 1
  218. elsif Input.repeat?(Input::LEFT)
  219. @index == 0 ? @index = (@item_max - 1) : @index -= 1
  220. end
  221. self.oy = @index * WLH
  222. end
  223. end
  224. class SH_Window < Window_Help
  225. #--------------------------------------------------------------------------
  226. # ● コンパクト型ヘルプ
  227. #--------------------------------------------------------------------------
  228. include Option
  229. def initialize
  230. super
  231. self.x = 72 ; self.width = 400
  232. self.y = WLH + 32 + MenuY
  233. self.contents.dispose
  234. self.contents = Bitmap.new(self.width - 32, self.height - 32)
  235. end
  236. end
  237. class OP_Window < Window_Base
  238. #--------------------------------------------------------------------------
  239. # ● タイトル・ウィンドウ
  240. #--------------------------------------------------------------------------
  241. def initialize(menu_y)
  242. super(72, 0 + menu_y, 400, WLH + 32)
  243. self.contents.font.color = hp_gauge_color2#system_color
  244. self.contents.draw_text(4, 0, 400, WLH, "環境設定")
  245. self.contents.font.size = 15
  246. self.contents.draw_text(90, 2, 400, WLH, "[←→で変更・Cで決定・Bでキャンセル]")
  247. end
  248. end

复制代码




不会用。。。求高人指点   并汉化。
版务信息:版主帮忙结贴~

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2 小时
注册时间
2006-3-1
帖子
126
2
 楼主| 发表于 2008-4-13 17:33:44 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

邪恶小龙包

梦石
0
星屑
55
在线时间
17 小时
注册时间
2006-5-22
帖子
7006

第2届短篇游戏比赛冠军第3届短篇游戏大赛小游戏及其他组冠军RMVX自由创作大赛冠军

3
发表于 2008-4-13 17:39:07 | 只看该作者
其他我看不懂,但……
「$scene = SP_Menu.new」と命令すればオプションメニューに切り替わります。

这不就是召唤界面方法吗?
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
虚无  堕落
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-24 00:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表