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

Project1

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

[原创发布] (VX)RPG解密游戏简单菜单模板

[复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
4 小时
注册时间
2026-6-21
帖子
4
跳转到指定楼层
1
发表于 昨天 20:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 31号焦糖色 于 2026-6-23 20:14 编辑

RPG解密游戏简易菜单模板(含增加菜单读档、更换领队、存档位增加、繁体改简体等)

序号           脚本名称                类型                                  内容
1         Scene_Menu                  修改               精简菜单为 4 项:物品、读档、队形、结束游戏
2         Scene_Formation           新建                队形调整场景,用 ← → 交换角色位置,自动更新领队变量
3         Scene_File                    修改                存档位从 4 个扩展到 20 个,支持上下滚动选择
4         Vocab                           修改                界面用语全部从繁体转简体

Scene_Menu
  1. #==============================================================================
  2. # ** Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  菜單:物品 / 读档 / 队形 / 结束游戏
  5. #==============================================================================

  6. class Scene_Menu < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # * 物件初始化
  9.   #--------------------------------------------------------------------------
  10.   def initialize(menu_index = 0)
  11.     @menu_index = 0  # 光標永遠在第一項
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # * 程式開始
  15.   #--------------------------------------------------------------------------
  16.   def start
  17.     super
  18.     create_menu_background
  19.     create_command_window
  20.     @status_window = Window_MenuStatus.new(160, 0)
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # * 程式中止
  24.   #--------------------------------------------------------------------------
  25.   def terminate
  26.     super
  27.     dispose_menu_background
  28.     @command_window.dispose
  29.     @status_window.dispose
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # * 更新幀
  33.   #--------------------------------------------------------------------------
  34.   def update
  35.     super
  36.     update_menu_background
  37.     @command_window.update
  38.     @status_window.update
  39.     if @command_window.active
  40.       update_command_selection
  41.     elsif @status_window.active
  42.       update_actor_selection
  43.     end
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # * 創建命令視窗(4項)
  47.   #--------------------------------------------------------------------------
  48.   def create_command_window
  49.     s1 = Vocab::item       # 物品
  50.     s2 = "读档"            # 读档
  51.     s3 = "队形"            # 队形 ★ 新增
  52.     s4 = Vocab::game_end   # 结束游戏
  53.     @command_window = Window_Command.new(160, [s1, s2, s3, s4])
  54.     @command_window.index = @menu_index
  55.     @command_window.refresh
  56.    
  57.     # 隊伍為空時禁用物品和隊形
  58.     if $game_party.members.size == 0
  59.       @command_window.draw_item(0, false)
  60.       @command_window.draw_item(2, false)
  61.     end
  62.     # 隊伍只有1人時禁用隊形
  63.     if $game_party.members.size <= 1
  64.       @command_window.draw_item(2, false)
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # * 更新指令選擇
  69.   #--------------------------------------------------------------------------
  70.   def update_command_selection
  71.     if Input.trigger?(Input::B)
  72.       Sound.play_cancel
  73.       $scene = Scene_Map.new
  74.     elsif Input.trigger?(Input::C)
  75.       if $game_party.members.size == 0 and @command_window.index == 0
  76.         Sound.play_buzzer
  77.         return
  78.       elsif $game_party.members.size <= 1 and @command_window.index == 2
  79.         Sound.play_buzzer
  80.         return
  81.       end
  82.       Sound.play_decision
  83.       case @command_window.index
  84.       when 0      # 物品
  85.         $scene = Scene_Item.new
  86.       when 1      # 读档
  87.         $scene = Scene_File.new(false, false, false)
  88.       when 2      # 队形 ★ 新增
  89.         $scene = Scene_Formation.new
  90.       when 3      # 结束游戏
  91.         $scene = Scene_End.new
  92.       end
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # * 開始接收角色選擇指令
  97.   #--------------------------------------------------------------------------
  98.   def start_actor_selection
  99.     @command_window.active = false
  100.     @status_window.active = true
  101.     if $game_party.last_actor_index < @status_window.item_max
  102.       @status_window.index = $game_party.last_actor_index
  103.     else
  104.       @status_window.index = 0
  105.     end
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # * 停止接收角色選擇指令
  109.   #--------------------------------------------------------------------------
  110.   def end_actor_selection
  111.     @command_window.active = true
  112.     @status_window.active = false
  113.     @status_window.index = -1
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # * 更新角色選擇
  117.   #--------------------------------------------------------------------------
  118.   def update_actor_selection
  119.     if Input.trigger?(Input::B)
  120.       Sound.play_cancel
  121.       end_actor_selection
  122.     elsif Input.trigger?(Input::C)
  123.       $game_party.last_actor_index = @status_window.index
  124.       Sound.play_decision
  125.       case @command_window.index
  126.       when 1  # 技能(保留擴展接口)
  127.         $scene = Scene_Skill.new(@status_window.index)
  128.       when 2  # 整備(保留擴展接口)
  129.         $scene = Scene_Equip.new(@status_window.index)
  130.       when 3  # 狀態(保留擴展接口)
  131.         $scene = Scene_Status.new(@status_window.index)
  132.       end
  133.     end
  134.   end
  135. end
复制代码


Scene_Formation(在 Main 之前、Scene_Base 之后新建该脚本即可)
  1. #==============================================================================
  2. # ** Scene_Formation
  3. #------------------------------------------------------------------------------
  4. #  隊形調整場景
  5. #  操作:↑↓選擇角色,←→移動位置,ESC返回
  6. #==============================================================================

  7. class Scene_Formation < Scene_Base
  8.   #--------------------------------------------------------------------------
  9.   # * 物件初始化
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     @index = 0
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # * 程式開始
  16.   #--------------------------------------------------------------------------
  17.   def start
  18.     super
  19.     create_menu_background
  20.     create_status_window
  21.     create_help_window
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # * 程式中止
  25.   #--------------------------------------------------------------------------
  26.   def terminate
  27.     super
  28.     dispose_menu_background
  29.     @status_window.dispose
  30.     @help_window.dispose
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # * 更新幀
  34.   #--------------------------------------------------------------------------
  35.   def update
  36.     super
  37.     update_menu_background
  38.     @status_window.update
  39.     @help_window.update
  40.     if @status_window.active
  41.       update_formation
  42.     end
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # * 創建角色狀態視窗
  46.   #--------------------------------------------------------------------------
  47.   def create_status_window
  48.     @status_window = Window_MenuStatus.new(0, 56)
  49.     @status_window.active = true
  50.     @status_window.index = @index
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # * 創建提示視窗
  54.   #--------------------------------------------------------------------------
  55.   def create_help_window
  56.     @help_window = Window_Base.new(0, 0, 544, 56)
  57.     @help_window.contents.clear
  58.     text = "← → 调整位置   ESC 返回"
  59.     @help_window.contents.draw_text(0, 0, @help_window.contents.width, 24, text, 1)
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # * 更新隊形操作
  63.   #--------------------------------------------------------------------------
  64.   def update_formation
  65.     if Input.trigger?(Input::B)
  66.       Sound.play_cancel
  67.       $scene = Scene_Menu.new(2)  # 返回菜單,停在「隊形」選項
  68.     elsif Input.trigger?(Input::LEFT)
  69.       # 左鍵:角色上移(和前面一個交換)
  70.       move_up
  71.     elsif Input.trigger?(Input::RIGHT)
  72.       # 右鍵:角色下移(和後面一個交換)
  73.       move_down
  74.     end
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # * 角色上移
  78.   #--------------------------------------------------------------------------
  79.   def move_up
  80.     index = @status_window.index
  81.     # 已經是第一個,不能再上移
  82.     if index <= 0
  83.       Sound.play_buzzer
  84.       return
  85.     end
  86.     Sound.play_cursor
  87.     # 交換隊伍中 index 和 index-1 的位置
  88.     actors = $game_party.instance_variable_get(:@actors)
  89.     actors[index], actors[index - 1] = actors[index - 1], actors[index]
  90.     # 刷新顯示
  91.     @status_window.refresh
  92.     @status_window.index = index - 1
  93.     # ★ 修復:刷新地圖上的玩家角色圖形
  94.     $game_player.refresh
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # * 角色下移
  98.   #--------------------------------------------------------------------------
  99.   def move_down
  100.     index = @status_window.index
  101.     # 已經是最後一個,不能再下移
  102.     if index >= $game_party.members.size - 1
  103.       Sound.play_buzzer
  104.       return
  105.     end
  106.     Sound.play_cursor
  107.     # 交換隊伍中 index 和 index+1 的位置
  108.     actors = $game_party.instance_variable_get(:@actors)
  109.     actors[index], actors[index + 1] = actors[index + 1], actors[index]
  110.     # 刷新顯示
  111.     @status_window.refresh
  112.     @status_window.index = index + 1
  113.     # ★ 修復:刷新地圖上的玩家角色圖形
  114.     $game_player.refresh
  115.   end
  116. end
复制代码


Scene_File
  1. #==============================================================================
  2. # ** Scene_File
  3. #------------------------------------------------------------------------------
  4. #  存檔 / 讀檔場景(默认增加至20個存檔位,可滾動)
  5. #  修復版:支持標準VX格式(15項),自動兼容舊存檔
  6. #==============================================================================

  7. class Scene_File < Scene_Base
  8.   #--------------------------------------------------------------------------
  9.   # ★ 配置:存檔位數量
  10.   #--------------------------------------------------------------------------
  11.   SAVEFILE_COUNT = 20   # 總共多少個存檔位(改這裡就行)
  12.   VISIBLE_ROWS  = 4     # 一屏顯示幾個
  13.   
  14.   #--------------------------------------------------------------------------
  15.   # * 物件初始化
  16.   #--------------------------------------------------------------------------
  17.   def initialize(saving, from_title, from_event)
  18.     @saving = saving
  19.     @from_title = from_title
  20.     @from_event = from_event
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # * 開始處理
  24.   #--------------------------------------------------------------------------
  25.   def start
  26.     super
  27.     create_menu_background
  28.     @help_window = Window_Help.new
  29.     @help_window.set_text(@saving ? Vocab::SaveMessage : Vocab::LoadMessage)
  30.     @top_index = 0
  31.     @savefile_windows = []
  32.     (0...VISIBLE_ROWS).each do |i|
  33.       filename = "Save#{i + 1}.rvdata"
  34.       @savefile_windows[i] = Window_SaveFile.new(i, filename)
  35.       @savefile_windows[i].y = 56 + i * 90
  36.     end
  37.     if @saving
  38.       @index = $game_temp.last_file_index
  39.     else
  40.       @index = latest_file_index
  41.     end
  42.     @top_index = [@index - VISIBLE_ROWS + 1, 0].max
  43.     @top_index = [@top_index, @index].min
  44.     refresh_savefile_windows
  45.     @savefile_windows[@index - @top_index].selected = true
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # * 結束處理
  49.   #--------------------------------------------------------------------------
  50.   def terminate
  51.     super
  52.     dispose_menu_background
  53.     @help_window.dispose
  54.     @savefile_windows.each { |window| window.dispose }
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # * 更新畫面
  58.   #--------------------------------------------------------------------------
  59.   def update
  60.     super
  61.     update_menu_background
  62.     @help_window.update
  63.     @savefile_windows.each { |window| window.update }
  64.     update_savefile_selection
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # * 刷新存檔位窗口
  68.   #--------------------------------------------------------------------------
  69.   def refresh_savefile_windows
  70.     (0...VISIBLE_ROWS).each do |i|
  71.       file_index = @top_index + i
  72.       window = @savefile_windows[i]
  73.       
  74.       if file_index < SAVEFILE_COUNT
  75.         window.visible = true
  76.         filename = "Save#{file_index + 1}.rvdata"
  77.         window.instance_variable_set(:@file_index, file_index)
  78.         window.instance_variable_set(:@filename, filename)
  79.         begin
  80.           window.load_gamedata
  81.         rescue
  82.           window.instance_variable_set(:@file_exist, false)
  83.         end
  84.         window.refresh
  85.         window.selected = (file_index == @index)
  86.         window.y = 56 + i * 90
  87.       else
  88.         window.visible = false
  89.       end
  90.     end
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # * 更新存檔檔案選擇
  94.   #--------------------------------------------------------------------------
  95.   def update_savefile_selection
  96.     if Input.trigger?(Input::C)
  97.       determine_savefile
  98.     elsif Input.trigger?(Input::B)
  99.       Sound.play_cancel
  100.       return_scene
  101.     else
  102.       last_index = @index
  103.       if Input.repeat?(Input::DOWN)
  104.         cursor_down(Input.trigger?(Input::DOWN))
  105.       end
  106.       if Input.repeat?(Input::UP)
  107.         cursor_up(Input.trigger?(Input::UP))
  108.       end
  109.       if @index != last_index
  110.         Sound.play_cursor
  111.         old_visible = last_index - @top_index
  112.         if old_visible >= 0 && old_visible < VISIBLE_ROWS
  113.           @savefile_windows[old_visible].selected = false
  114.         end
  115.         if @index < @top_index
  116.           @top_index = @index
  117.           refresh_savefile_windows
  118.         elsif @index >= @top_index + VISIBLE_ROWS
  119.           @top_index = @index - VISIBLE_ROWS + 1
  120.           refresh_savefile_windows
  121.         end
  122.         new_visible = @index - @top_index
  123.         if new_visible >= 0 && new_visible < VISIBLE_ROWS
  124.           @savefile_windows[new_visible].selected = true
  125.         end
  126.       end
  127.     end
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # * 確定存檔/讀檔
  131.   #--------------------------------------------------------------------------
  132.   def determine_savefile
  133.     if @saving
  134.       Sound.play_save
  135.       do_save
  136.     else
  137.       if @savefile_windows[@index - @top_index].file_exist
  138.         Sound.play_load
  139.         do_load
  140.       else
  141.         Sound.play_buzzer
  142.         return
  143.       end
  144.     end
  145.     $game_temp.last_file_index = @index
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # * 游標下移
  149.   #--------------------------------------------------------------------------
  150.   def cursor_down(wrap)
  151.     if @index < SAVEFILE_COUNT - 1 or wrap
  152.       @index = (@index + 1) % SAVEFILE_COUNT
  153.     end
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # * 游標上移
  157.   #--------------------------------------------------------------------------
  158.   def cursor_up(wrap)
  159.     if @index > 0 or wrap
  160.       @index = (@index - 1 + SAVEFILE_COUNT) % SAVEFILE_COUNT
  161.     end
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # * 獲取最新存檔的索引
  165.   #--------------------------------------------------------------------------
  166.   def latest_file_index
  167.     index = 0
  168.     latest_time = Time.at(0)
  169.     (0...SAVEFILE_COUNT).each do |i|
  170.       filename = "Save#{i + 1}.rvdata"
  171.       if FileTest.exist?(filename)
  172.         time = File.mtime(filename)
  173.         if time > latest_time
  174.           latest_time = time
  175.           index = i
  176.         end
  177.       end
  178.     end
  179.     return index
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # * 執行存檔(標準VX格式,15項)
  183.   #--------------------------------------------------------------------------
  184.   def do_save
  185.     filename = "Save#{@index + 1}.rvdata"
  186.     current_window = @savefile_windows[@index - @top_index]
  187.     current_window.selected = false
  188.    
  189.     file = File.open(filename, "wb")
  190.     write_save_data(file)
  191.     file.close
  192.    
  193.     current_window.load_gamedata rescue nil
  194.     current_window.refresh
  195.     current_window.selected = true
  196.     Sound.play_save
  197.     return_scene
  198.   end
  199.   #--------------------------------------------------------------------------
  200.   # * 執行讀檔(自動嘗試多種格式)
  201.   #--------------------------------------------------------------------------
  202.   def do_load
  203.     filename = "Save#{@index + 1}.rvdata"
  204.     unless FileTest.exist?(filename)
  205.       Sound.play_buzzer
  206.       return
  207.     end
  208.     Sound.play_load
  209.    
  210.     # 先嘗試格式一:標準VX格式(15項,BGM在後)
  211.     begin
  212.       file = File.open(filename, "rb")
  213.       read_save_data_standard(file)
  214.       file.close
  215.     rescue
  216.       file.close rescue nil
  217.       # 失敗就嘗試格式二:BGM在前(14項)
  218.       begin
  219.         file = File.open(filename, "rb")
  220.         read_save_data_bgm_first(file)
  221.         file.close
  222.       rescue
  223.         file.close rescue nil
  224.         # 都失敗就報錯
  225.         Sound.play_buzzer
  226.         return
  227.       end
  228.     end
  229.    
  230.     $scene = Scene_Map.new
  231.     RPG::BGM.fade(1500)
  232.     Graphics.fadeout(60)
  233.     Graphics.wait(40)
  234.     @last_bgm.play rescue nil
  235.     @last_bgs.play rescue nil
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # * 寫入存檔數據(標準VX格式,15項,BGM在後)
  239.   #--------------------------------------------------------------------------
  240.   def write_save_data(file)
  241.     characters = []
  242.     for i in 0...$game_party.members.size
  243.       actor = $game_party.members[i]
  244.       characters.push([actor.character_name, actor.character_index])
  245.     end
  246.     $game_system.save_count += 1
  247.     $game_system.version_id = $data_system.version_id
  248.     @last_bgm = RPG::BGM.last
  249.     @last_bgs = RPG::BGS.last
  250.    
  251.     Marshal.dump(characters,           file)  # 1
  252.     Marshal.dump(Graphics.frame_count, file)  # 2
  253.     Marshal.dump($game_system,         file)  # 3
  254.     Marshal.dump($game_message,        file)  # 4
  255.     Marshal.dump($game_switches,       file)  # 5
  256.     Marshal.dump($game_variables,      file)  # 6
  257.     Marshal.dump($game_self_switches,  file)  # 7
  258.     Marshal.dump($game_screen,         file)  # 8 ★ 加上畫面數據
  259.     Marshal.dump($game_actors,         file)  # 9
  260.     Marshal.dump($game_party,          file)  # 10
  261.     Marshal.dump($game_troop,          file)  # 11
  262.     Marshal.dump($game_map,            file)  # 12
  263.     Marshal.dump($game_player,         file)  # 13
  264.     Marshal.dump(@last_bgm,            file)  # 14
  265.     Marshal.dump(@last_bgs,            file)  # 15
  266.   end
  267.   #--------------------------------------------------------------------------
  268.   # * 讀取存檔 格式一:標準VX(15項,BGM在後)
  269.   #--------------------------------------------------------------------------
  270.   def read_save_data_standard(file)
  271.     characters           = Marshal.load(file)
  272.     Graphics.frame_count = Marshal.load(file)
  273.     $game_system         = Marshal.load(file)
  274.     $game_message        = Marshal.load(file)
  275.     $game_switches       = Marshal.load(file)
  276.     $game_variables      = Marshal.load(file)
  277.     $game_self_switches  = Marshal.load(file)
  278.     $game_screen         = Marshal.load(file)  # ★ 畫面數據
  279.     $game_actors         = Marshal.load(file)
  280.     $game_party          = Marshal.load(file)
  281.     $game_troop          = Marshal.load(file)
  282.     $game_map            = Marshal.load(file)
  283.     $game_player         = Marshal.load(file)
  284.     @last_bgm            = Marshal.load(file)
  285.     @last_bgs            = Marshal.load(file)
  286.    
  287.     if $game_system.version_id != $data_system.version_id
  288.       $game_map.setup($game_map.map_id)
  289.       $game_player.center($game_player.x, $game_player.y)
  290.     end
  291.    
  292.     $game_party.members.size.times do |i|
  293.       $game_actors[$game_party.members[i].id].setup($game_party.members[i].id)
  294.     end
  295.   end
  296.   #--------------------------------------------------------------------------
  297.   # * 讀取存檔 格式二:BGM在前(14項,無game_screen)
  298.   #--------------------------------------------------------------------------
  299.   def read_save_data_bgm_first(file)
  300.     characters           = Marshal.load(file)
  301.     Graphics.frame_count = Marshal.load(file)
  302.     @last_bgm            = Marshal.load(file)
  303.     @last_bgs            = Marshal.load(file)
  304.     $game_system         = Marshal.load(file)
  305.     $game_message        = Marshal.load(file)
  306.     $game_switches       = Marshal.load(file)
  307.     $game_variables      = Marshal.load(file)
  308.     $game_self_switches  = Marshal.load(file)
  309.     $game_actors         = Marshal.load(file)
  310.     $game_party          = Marshal.load(file)
  311.     $game_troop          = Marshal.load(file)
  312.     $game_map            = Marshal.load(file)
  313.     $game_player         = Marshal.load(file)
  314.    
  315.     if $game_system.version_id != $data_system.version_id
  316.       $game_map.setup($game_map.map_id)
  317.       $game_player.center($game_player.x, $game_player.y)
  318.     end
  319.    
  320.     $game_party.members.size.times do |i|
  321.       $game_actors[$game_party.members[i].id].setup($game_party.members[i].id)
  322.     end
  323.   end
  324.   #--------------------------------------------------------------------------
  325.   # * 返回原場景
  326.   #--------------------------------------------------------------------------
  327.   def return_scene
  328.     if @from_title
  329.       $scene = Scene_Title.new
  330.     elsif @from_event
  331.       $scene = Scene_Map.new
  332.     else
  333.       $scene = Scene_Menu.new(1)  # 返回菜單,停在「讀檔」位置
  334.     end
  335.   end
  336. end
复制代码


Vocab
  1. #==============================================================================
  2. # ** Vocab
  3. #------------------------------------------------------------------------------
  4. #  这个模块定义了界面用语和互动消息的显示内容。
  5. #  它将一些信息定义为常量,而数据库里的用语数据读取自 $data_system 字段。
  6. #==============================================================================

  7. module Vocab

  8.   # 交易界面
  9.   ShopBuy         = "购入"
  10.   ShopSell        = "售出"
  11.   ShopCancel      = "放弃"
  12.   Possession      = "拥有量"

  13.   # 状态界面
  14.   ExpTotal        = "当前经验值"
  15.   ExpNext         = "%s提升所欠经验值"

  16.   # 进度档案管理界面
  17.   SaveMessage     = "请问您要把进度保存到第几个档位?"
  18.   LoadMessage     = "请问您要从第几个档位元读取进度?"
  19.   File            = "档位"

  20.   # 在队伍里有多人时显示的讯息
  21.   PartyName       = "%s一行人"

  22.   # 基本战斗讯息
  23.   Emerge          = "%s现身。"
  24.   Preemptive      = "%s占据上风。"
  25.   Surprise        = "%s被偷袭。"
  26.   EscapeStart     = "%s准备撤退。"
  27.   EscapeFailure   = "然而,撤退是徒劳的。"

  28.   # 战斗结束讯息
  29.   Victory         = "%s得胜。"
  30.   Defeat          = "%s战败。"
  31.   ObtainExp       = "获得%s点EXP。"
  32.   ObtainGold      = "%s%s已获得。"
  33.   ObtainItem      = "%s被发现。"
  34.   LevelUp         = "%s%s提升为%s。"
  35.   ObtainSkill     = "%s已经习得。"

  36.   # 战斗指令
  37.   DoAttack        = "%s发动攻击。"
  38.   DoGuard         = "%s防御中。"
  39.   DoEscape        = "%s撤退了。"
  40.   DoWait          = "%s等待中。"
  41.   UseItem         = "%s使用了%s。"

  42.   # 暴击
  43.   CriticalToEnemy = "狂暴攻击!!"
  44.   CriticalToActor = "热血痛击!!"

  45.   # 主角的行动结果
  46.     # 友情提示: %1$s 代表主角[下一段这个标志表示为敌人角色]
  47.     #            %2$s 代表HP/MP
  48.     #            %3$s 代表点数,也就是HP/MP的值
  49.   ActorDamage     = "%s受到了%s点伤害。"
  50.   ActorLoss       = "%1$s失去了%3$s点%2$s。"
  51.   ActorDrain      = "%1$s被吸走了%3$s点%2$s。"
  52.   ActorNoDamage   = "%s没有受到任何伤害。"
  53.   ActorNoHit      = "落空!%s没有受到任何伤害。"
  54.   ActorEvasion    = "%s躲过了攻击。"
  55.   ActorRecovery   = "%1$s恢复了%3$s点%2$s。"

  56.   # 敌人角色的行动结果
  57.   EnemyDamage     = "%s受到了%s点伤害。"
  58.   EnemyLoss       = "%1$s失去了%3$s点%2$s。"
  59.   EnemyDrain      = "%1$s被吸走了%3$s点%2$s。"
  60.   EnemyNoDamage   = "%s没有受到任何伤害。"
  61.   EnemyNoHit      = "落空!%s没有受到任何伤害。"
  62.   EnemyEvasion    = "%s躲过了攻击。"
  63.   EnemyRecovery   = "%1$s恢复了%3$s点%2$s。"

  64.   # 物品和非实体攻击类技能使用无效
  65.   ActionFailure   = "%s没有受到任何影响。"

  66.   # 等级
  67.   def self.level
  68.     return $data_system.terms.level
  69.   end

  70.   # 等级 (缩写)
  71.   def self.level_a
  72.     return $data_system.terms.level_a
  73.   end

  74.   # HP
  75.   def self.hp
  76.     return $data_system.terms.hp
  77.   end

  78.   # HP (缩写)
  79.   def self.hp_a
  80.     return $data_system.terms.hp_a
  81.   end

  82.   # MP
  83.   def self.mp
  84.     return $data_system.terms.mp
  85.   end

  86.   # MP (缩写)
  87.   def self.mp_a
  88.     return $data_system.terms.mp_a
  89.   end

  90.   # 攻击力
  91.   def self.atk
  92.     return $data_system.terms.atk
  93.   end

  94.   # 防御力
  95.   def self.def
  96.     return $data_system.terms.def
  97.   end

  98.   # 意志力
  99.   def self.spi
  100.     return $data_system.terms.spi
  101.   end

  102.   # 敏捷力
  103.   def self.agi
  104.     return $data_system.terms.agi
  105.   end

  106.   # 武器
  107.   def self.weapon
  108.     return $data_system.terms.weapon
  109.   end

  110.   # 盾
  111.   def self.armor1
  112.     return $data_system.terms.armor1
  113.   end

  114.   # 头戴
  115.   def self.armor2
  116.     return $data_system.terms.armor2
  117.   end

  118.   # 身穿
  119.   def self.armor3
  120.     return $data_system.terms.armor3
  121.   end

  122.   # 佩戴
  123.   def self.armor4
  124.     return $data_system.terms.armor4
  125.   end

  126.   # 左手
  127.   def self.weapon1
  128.     return $data_system.terms.weapon1
  129.   end

  130.   # 右手
  131.   def self.weapon2
  132.     return $data_system.terms.weapon2
  133.   end

  134.   # 攻击
  135.   def self.attack
  136.     return $data_system.terms.attack
  137.   end

  138.   # 技能
  139.   def self.skill
  140.     return $data_system.terms.skill
  141.   end

  142.   # 防御
  143.   def self.guard
  144.     return $data_system.terms.guard
  145.   end

  146.   # 用品
  147.   def self.item
  148.     return $data_system.terms.item
  149.   end

  150.   # 整备
  151.   def self.equip
  152.     return $data_system.terms.equip
  153.   end

  154.   # 状态
  155.   def self.status
  156.     return $data_system.terms.status
  157.   end

  158.   # 存档
  159.   def self.save
  160.     return $data_system.terms.save
  161.   end

  162.   # 结束游戏
  163.   def self.game_end
  164.     return $data_system.terms.game_end
  165.   end

  166.   # 战斗
  167.   def self.fight
  168.     return $data_system.terms.fight
  169.   end

  170.   # 撤退
  171.   def self.escape
  172.     return $data_system.terms.escape
  173.   end

  174.   # 新的剧情
  175.   def self.new_game
  176.     return $data_system.terms.new_game
  177.   end

  178.   # 读取存档
  179.   def self.continue
  180.     return $data_system.terms.continue
  181.   end

  182.   # 退出游戏
  183.   def self.shutdown
  184.     return $data_system.terms.shutdown
  185.   end

  186.   # 返回标题画面
  187.   def self.to_title
  188.     return $data_system.terms.to_title
  189.   end

  190.   # 取消
  191.   def self.cancel
  192.     return $data_system.terms.cancel
  193.   end

  194.   # G (货币单位)
  195.   def self.gold
  196.     return $data_system.terms.gold
  197.   end

  198. end
复制代码
Tips:还需要手动改的地方
   Vocab 里的 level、hp、mp、atk、item、save 这些方法返回的是数据库里设置的用语,脚本里改不了,需要去数据库里改:
  • 打开数据库(F9)
  • 切换到「系统」标签
  • 找到「用语」一栏
  • 把里面的繁体词条逐个改成简体
   改完这两处,游戏的系统界面文字就基本都是简体了。剩下的物品名、技能名、对话等需要去数据库和事件里手动改。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2026-6-24 18:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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