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

Project1

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

[已经解决] 请问如何单独使用葱式解谜用简易菜单的档案界面?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1256
在线时间
387 小时
注册时间
2014-4-25
帖子
42
跳转到指定楼层
1
发表于 2022-2-25 21:54:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
100星屑
本帖最后由 yz3440080 于 2022-2-25 22:04 编辑

想做RPG类型的游戏,但是非常喜欢这个的档案界面,请问要如何单独把系统默认的档案界面换成这个?


附上葱式解谜用简易菜单脚本:
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ◇ CONG'S EASY MENU ◇ 葱式解谜用简易菜单 v1.3
  4. #------------------------------------------------------------------------------
  5. # By Conwsbn
  6. # http://congrm.lofter.com/     https://rpg.blue/thread-476318-1-1.html
  7. #==============================================================================
  8. # 更新日志:
  9. # v1.3 - 修改了部分写法,提高兼容性
  10. #        增加了“立绘图片变更”功能 | 存档界面扩展
  11. # v1.2 - 修正了存档界面的小BUG
  12. # v1.1 - 增加了立绘、粒子、次图片的Z值设定 | 增加稳定性
  13. #==============================================================================
  14.  
  15. $imported = {} if $imported.nil?
  16. $imported[:congs_easy_menu] = true
  17.  
  18. #==============================================================================
  19. # ■ Window_Base
  20. #==============================================================================
  21. class Window_Base < Window
  22.   #--------------------------------------------------------------------------
  23.   # ● 获取统一字体设置
  24.   #--------------------------------------------------------------------------
  25.   def easy_menu_font
  26.     contents.font.name = EASY_MENU_SET::Font_name
  27.     contents.font.size = EASY_MENU_SET::Font_size
  28.     contents.font.outline = EASY_MENU_SET::Font_outline
  29.     contents.font.shadow = EASY_MENU_SET::Font_shadow
  30.     contents.font.bold = EASY_MENU_SET::Font_bold
  31.     contents.font.italic = EASY_MENU_SET::Font_italic
  32.     #contents.font.pixel = EASY_MENU_SET::Font_pixel # RGD
  33.   end
  34. end
  35.  
  36. #==============================================================================
  37. # ■ Window_Help
  38. #==============================================================================
  39. class Window_Help < Window_Base
  40.   #--------------------------------------------------------------------------
  41.   # ● 初始化对象
  42.   #--------------------------------------------------------------------------
  43.   def initialize(line_number = 2, width = Graphics.width)
  44.     super(0, 0, width, fitting_height(line_number))
  45.     self.windowskin = Cache.system(EASY_MENU_SET::SKIN)
  46.     self.opacity = EASY_MENU_SET::HELP_opacity
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 设置内容
  50.   #--------------------------------------------------------------------------
  51.   def set_text(text)
  52.     text.gsub!(/\\n/i) { "\n" }
  53.     if text != @text
  54.       @text = text
  55.       refresh
  56.     end
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 清除
  60.   #--------------------------------------------------------------------------
  61.   def clear
  62.     set_text("")
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 设置物品
  66.   #     item : 技能、物品等
  67.   #--------------------------------------------------------------------------
  68.   def set_item(item)
  69.     set_text(item ? item.description : "")
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 绘制带有控制符的文本内容
  73.   #--------------------------------------------------------------------------
  74.   def draw_text_ex(x, y, text)
  75.     reset_item_font_settings
  76.     text = convert_escape_characters(text)
  77.     pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
  78.     process_character(text.slice!(0, 1), text, pos) until text.empty?
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 物品帮助字体设置
  82.   #--------------------------------------------------------------------------
  83.   def reset_item_font_settings
  84.     return if @text_line
  85.     contents.font.name = EASY_MENU_SET::HELP_name
  86.     contents.font.size = EASY_MENU_SET::HELP_size
  87.     contents.font.outline = EASY_MENU_SET::HELP_outline
  88.     contents.font.shadow = EASY_MENU_SET::HELP_shadow
  89.     contents.font.bold = EASY_MENU_SET::HELP_bold
  90.     contents.font.italic = EASY_MENU_SET::HELP_italic
  91.     #contents.font.pixel = EASY_MENU_SET::HELP_pixel # RGD
  92.     v = EASY_MENU_SET::HELP_color
  93.     change_color(Color.new(v[0], v[1], v[2]))
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 获取文字颜色
  97.   #--------------------------------------------------------------------------
  98.   def text_color(n)
  99.     v = EASY_MENU_SET::HELP_color
  100.     return Color.new(v[0], v[1], v[2]) if n == 0
  101.     return windowskin.get_pixel(64 + (n % 8) * 8, 96 + (n / 8) * 8)
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 处理普通文字
  105.   #--------------------------------------------------------------------------
  106.   def process_normal_character(c, pos)
  107.     if (pos[:x] + contents.text_size(c).width) > contents.width
  108.       @text_line = true
  109.       process_new_line(c, pos)
  110.       @text_line = false
  111.       pos[:height] = calc_line_height(c)
  112.     end
  113.     text_width = text_size(c).width
  114.     draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], c)
  115.     pos[:x] += text_width
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 刷新
  119.   #--------------------------------------------------------------------------
  120.   def refresh
  121.     contents.clear
  122.     draw_text_ex(4, 0, @text)
  123.   end
  124. end
  125.  
  126. #==============================================================================
  127. # ■ Window_MenuCommand
  128. #==============================================================================
  129. class Window_MenuCommand < Window_Command
  130.   #--------------------------------------------------------------------------
  131.   # ● 初始化指令选择位置(类方法)
  132.   #--------------------------------------------------------------------------
  133.   def self.init_command_position(type = nil)
  134.     @@last_command_symbol = type
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● 初始化对象
  138.   #--------------------------------------------------------------------------
  139.   def initialize(sub = false)
  140.     @sub = sub
  141.     super(-24, EASY_MENU_SET::COMMAND[1])
  142.     self.opacity = 0
  143.     self.active = false
  144.     @show = false
  145.     @move_rx = @sub_ry = 0
  146.     @last_index = @index
  147.     update_placement unless @sub
  148.     select_last
  149.     refresh
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ● 获取标准的边距尺寸
  153.   #--------------------------------------------------------------------------
  154.   def standard_padding
  155.     return 0
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 显示动画前的设定
  159.   #--------------------------------------------------------------------------
  160.   def update_placement
  161.     self.x = -24 - window_width
  162.     self.contents_opacity = 0
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● 获取窗口的宽度
  166.   #--------------------------------------------------------------------------
  167.   def window_width
  168.     return EASY_MENU_SET::COMMAND[2] + 24 + 24
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ● 获取项目的宽度
  172.   #--------------------------------------------------------------------------
  173.   def item_width
  174.     width - 24
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ● 获取间隔距离
  178.   #--------------------------------------------------------------------------
  179.   def line_spacing
  180.     return EASY_MENU_SET::COMMAND[4]
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● 获取行高
  184.   #--------------------------------------------------------------------------
  185.   def line_height
  186.     return EASY_MENU_SET::COMMAND[3] + line_spacing
  187.   end
  188.   #--------------------------------------------------------------------------
  189.   # ● 获取指令名称
  190.   #--------------------------------------------------------------------------
  191.   def set_command_name(v)
  192.     @name = []
  193.     for i in 0...EASY_MENU_SET::BUTTON.size
  194.       name = Vocab::item     if v[i][4] == :item
  195.       name = Vocab::key_item if v[i][4] == :key_item
  196.       name = Vocab::save     if v[i][4] == :save
  197.       name = Vocab::continue if v[i][4] == :continue
  198.       name = Vocab::game_end if v[i][4] == :game_end
  199.       @name[i] = v[i][1] ? v[i][1] : name
  200.     end
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ● 获取显示状态
  204.   #--------------------------------------------------------------------------
  205.   def set_command_enabled(v)
  206.     @enabled = []
  207.     for i in 0...EASY_MENU_SET::BUTTON.size
  208.       enabled = main_commands_enabled         if v[i][4] == :item
  209.       enabled = main_commands_enabled         if v[i][4] == :key_item
  210.       enabled = save_enabled                  if v[i][4] == :save
  211.       enabled = DataManager.save_file_exists? if v[i][4] == :continue
  212.       enabled = true                          if v[i][4] == :game_end
  213.       @enabled[i] = enabled
  214.     end
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● 获取指令图标
  218.   #--------------------------------------------------------------------------
  219.   def set_command_icon(v)
  220.     @icon = []
  221.     for i in 0...EASY_MENU_SET::BUTTON.size
  222.       @icon[i] = v[i][2] if v[i][2]
  223.     end
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # ● 获取选项的图标
  227.   #--------------------------------------------------------------------------
  228.   def command_icon(index)
  229.     @list[index][:ext]
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● 生成指令列表
  233.   #--------------------------------------------------------------------------
  234.   def make_command_list
  235.     v = EASY_MENU_SET::BUTTON
  236.     set_command_name(v)
  237.     set_command_icon(v)
  238.     set_command_enabled(v)
  239.     for i in 0...EASY_MENU_SET::BUTTON.size
  240.       add_command(@name[i], v[i][4], @enabled[i], @icon[i]) if v[i][0] or @sub
  241.     end
  242.   end
  243.   #--------------------------------------------------------------------------
  244.   # ● 刷新
  245.   #--------------------------------------------------------------------------
  246.   def refresh
  247.     #clear_command_list
  248.     #make_command_list
  249.     create_contents
  250.     contents.clear
  251.     draw_all_items
  252.   end
  253.   #--------------------------------------------------------------------------
  254.   # ● 绘制项目
  255.   #--------------------------------------------------------------------------
  256.   def draw_item(index)
  257.     return if @sub && @index != index
  258.     easy_menu_font
  259.     rect = item_rect_for_text(index)
  260.     t_size = text_size(command_name(index))
  261.     mx = @index == index ? @sub ? 0 : @move_rx : 0
  262.     my = @sub ? @sub_ry : 0
  263.     ix = item_width - t_size.width - 28 + mx
  264.     iy = (line_height - t_size.height) / 2 + my
  265.     draw_background(index, rect, mx, my)
  266.     rect.x -= 24
  267.     rect.y -= (line_spacing / 2)
  268.     enabled = command_enabled?(index)
  269.     change_color(item_color(index), enabled)
  270.     rt = [rect.x + mx, rect.y + my, rect.width, rect.height]
  271.     draw_text(rt[0], rt[1], rt[2], rt[3], command_name(index), 2)
  272.     draw_icon(command_icon(index), rect.x + ix, rect.y + iy, enabled)
  273.   end
  274.   #--------------------------------------------------------------------------
  275.   # ● 绘制底纹
  276.   #--------------------------------------------------------------------------
  277.   def draw_background(index, rect, x, y)
  278.     lh = line_height - line_spacing
  279.     bit = Cache.system(EASY_MENU_SET::COMMAND[0])
  280.     rx = bit.width - item_width
  281.     rect1 = Rect.new(rx, 0, item_width, 12)
  282.     rect2 = Rect.new(rx, 12, item_width, 12)
  283.     rect3 = Rect.new(rx, 36 - 12, item_width, 12)
  284.     d_rect = Rect.new(rect.x + x, rect.y + 12 + y, item_width, lh - 24)
  285.     self.contents.blt(rect.x + x, rect.y + y, bit, rect1)
  286.     self.contents.stretch_blt(d_rect, bit, rect2)
  287.     self.contents.blt(rect.x + x, rect.y + lh - 12 + y, bit, rect3)
  288.   end
  289.   #--------------------------------------------------------------------------
  290.   # ● 字体颜色扩展
  291.   #--------------------------------------------------------------------------
  292.   def item_color(index)
  293.     co = EASY_MENU_SET::BUTTON[index][3]
  294.     return Color.new(co[0], co[1], co[2]) if @index == index
  295.     return Color.new(co[0], co[1], co[2], 200)
  296.   end
  297.   #--------------------------------------------------------------------------
  298.   # ● 获取项目的绘制矩形
  299.   #--------------------------------------------------------------------------
  300.   def item_rect(index)
  301.     index = 0 if @sub
  302.     rect = Rect.new
  303.     rect.width = 4
  304.     rect.height = 24
  305.     rect.x = index % col_max * (item_width + spacing) + 32
  306.     rect.y = index / col_max * item_height + 4
  307.     rect
  308.   end
  309.   #--------------------------------------------------------------------------
  310.   # ● 获取项目的绘制矩形(内容用)
  311.   #--------------------------------------------------------------------------
  312.   def item_rect_for_text(index)
  313.     index = 0 if @sub
  314.     rect = Rect.new
  315.     rect.width = item_width
  316.     rect.height = item_height
  317.     rect.x = index % col_max * (item_width + spacing)
  318.     rect.y = index / col_max * item_height
  319.     rect
  320.   end
  321.   #--------------------------------------------------------------------------
  322.   # ● 展开动画的标志
  323.   #--------------------------------------------------------------------------
  324.   def show=(show)
  325.     if @show != show
  326.       @show = show
  327.     end
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ● 获取动画的标志
  331.   #--------------------------------------------------------------------------
  332.   def show
  333.     return @show
  334.   end
  335.   #--------------------------------------------------------------------------
  336.   # ● 更新画面
  337.   #--------------------------------------------------------------------------
  338.   def update
  339.     super
  340.     if @last_index != @index && !@show
  341.       @move_rx = 0
  342.       @last_index = @index
  343.     end
  344.     update_button if Input.dir4 > 0 or @move_rx < 24
  345.   end
  346.   #--------------------------------------------------------------------------
  347.   # ● 按钮的改变动画
  348.   #--------------------------------------------------------------------------
  349.   def update_button
  350.     @move_rx += 4 if @move_rx < 24
  351.     refresh
  352.   end
  353.   #--------------------------------------------------------------------------
  354.   # ● 按钮的还原动画
  355.   #--------------------------------------------------------------------------
  356.   def hide_button
  357.     @move_rx -= 4 if @move_rx > 0
  358.     refresh
  359.   end
  360.   #--------------------------------------------------------------------------
  361.   # ● 展开动画
  362.   #--------------------------------------------------------------------------
  363.   def open_button_window
  364.     self.x += (window_width + 24) / EASY_MENU_SET::TIME
  365.     self.contents_opacity += 255 / EASY_MENU_SET::TIME
  366.     refresh
  367.     @show = false if self.x >= -24
  368.     self.x = -24 if !@show
  369.     self.contents_opacity = 255 if !@show
  370.   end
  371.   #--------------------------------------------------------------------------
  372.   # ● 关闭动画
  373.   #--------------------------------------------------------------------------
  374.   def close_button_window
  375.     @show = false if self.contents_opacity <= 0
  376.     if @move_rx > 0
  377.       hide_button
  378.     else
  379.       self.x -= (window_width + 24) / EASY_MENU_SET::TIME
  380.       self.contents_opacity -= 255 / EASY_MENU_SET::TIME
  381.       refresh
  382.     end
  383.   end
  384.   #--------------------------------------------------------------------------
  385.   # ● 进入子菜单的关闭动画
  386.   #--------------------------------------------------------------------------
  387.   def close_window_to_sub
  388.     if @move_rx > 0
  389.       hide_button
  390.       @sub_ry = @index / col_max * item_height
  391.     else
  392.       cursor_rect.empty
  393.       @show = false if @sub_ry <= 0
  394.       @sub_ry = 0 if !@show
  395.       @sub = true
  396.       @sub_ry = [(@sub_ry - ((EASY_MENU_SET::COMMAND[3] * index)) / 6), 0].max
  397.       refresh
  398.     end
  399.   end
  400. end
  401.  
  402. #==============================================================================
  403. # ■ Scene_MenuBase
  404. #==============================================================================
  405. class Scene_MenuBase < Scene_Base
  406.   #--------------------------------------------------------------------------
  407.   # ● 结束处理
  408.   #--------------------------------------------------------------------------
  409.   alias easy_menu_terminate terminate
  410.   def terminate
  411.     easy_menu_terminate
  412.     dispose_rim
  413.     dispose_actor_cg
  414.     dispose_sub_button
  415.   end
  416.   #--------------------------------------------------------------------------
  417.   # ● 生成背景
  418.   #--------------------------------------------------------------------------
  419.   def create_background
  420.     wall = EASY_MENU_SET::WALLPAPER
  421.     co = EASY_MENU_SET::BACKGROUND
  422.     @background_sprite = Sprite.new
  423.     bitmap = wall ? Cache.system(wall) : SceneManager.background_bitmap
  424.     @background_sprite.bitmap = bitmap
  425.     @background_sprite.color.set(co[0], co[1], co[2], co[3]) unless wall
  426.   end
  427.   #--------------------------------------------------------------------------
  428.   # ● 绘制次背景图片
  429.   #--------------------------------------------------------------------------
  430.   def create_rim_background(bitmap, x, y, z = 0)
  431.     @rim_sprite = Sprite.new
  432.     @rim_sprite.bitmap = Cache.system(bitmap) if bitmap
  433.     @rim_sprite.x = x; @rim_sprite.y = y
  434.     @rim_sprite.z = z
  435.   end
  436.   #--------------------------------------------------------------------------
  437.   # ● 释放次背景图片
  438.   #--------------------------------------------------------------------------
  439.   def dispose_rim
  440.     return if !@rim_sprite
  441.     @rim_sprite.bitmap.dispose
  442.     @rim_sprite.dispose
  443.   end
  444.   #--------------------------------------------------------------------------
  445.   # ● 生成立绘精灵
  446.   #--------------------------------------------------------------------------
  447.   def create_actor_cg
  448.     va = $game_variables[EASY_MENU_SET::CG_VA]
  449.     v = EASY_MENU_SET::CG
  450.     @actor_cg = Sprite.new
  451.     @actor_cg.bitmap = v[va][0] ? Cache.system(v[va][0]) : Bitmap.new(32, 32)
  452.     @actor_cg.z = v[va][5]
  453.     @actor_cg.x = v[va][1]
  454.     @actor_cg.x -= actor_cg_xx * 6
  455.     @actor_cg.y = v[va][2]
  456.   end
  457.   #--------------------------------------------------------------------------
  458.   # ● 立绘的帧坐标x判断
  459.   #--------------------------------------------------------------------------
  460.   def actor_cg_xx
  461.     va = $game_variables[EASY_MENU_SET::CG_VA]
  462.     v = EASY_MENU_SET::CG
  463.     return (v[va][3])  if v[va][4] == :l
  464.     return -(v[va][3]) if v[va][4] == :r
  465.     return 0
  466.   end
  467.   #--------------------------------------------------------------------------
  468.   # ● 释放立绘精灵
  469.   #--------------------------------------------------------------------------
  470.   def dispose_actor_cg
  471.     return if !@actor_cg
  472.     @actor_cg.bitmap.dispose
  473.     @actor_cg.dispose
  474.   end
  475.   #--------------------------------------------------------------------------
  476.   # ● 展开动画预设
  477.   #--------------------------------------------------------------------------
  478.   def set_move_preset
  479.     @actor_cg.x += actor_cg_xx * 6
  480.     @actor_cg.x -= actor_cg_xx * EASY_MENU_SET::TIME
  481.     @actor_cg.opacity = 0
  482.     @rim_sprite.opacity = 0 if @rim_sprite
  483.   end
  484.   #--------------------------------------------------------------------------
  485.   # ● 重绘内用小标题
  486.   #--------------------------------------------------------------------------
  487.   def create_sub_button
  488.     @sub_window = Window_MenuCommand.new(true)
  489.     @sub_window.deactivate
  490.     @sub_window.z = 300
  491.   end
  492.   #--------------------------------------------------------------------------
  493.   # ● 释放内用小标题
  494.   #--------------------------------------------------------------------------
  495.   def dispose_sub_button
  496.     @sub_window.dispose if @sub_window
  497.   end
  498. end
  499.  
  500. #==============================================================================
  501. # ■ Scene_Menu
  502. #==============================================================================
  503. class Scene_Menu < Scene_MenuBase
  504.   #--------------------------------------------------------------------------
  505.   # ● 开始处理
  506.   #--------------------------------------------------------------------------
  507.   def start
  508.     super
  509.     v = EASY_MENU_SET::MENU_RIM
  510.     create_rim_background(v[0], v[1], v[2], v[3]) if v[0]
  511.     create_actor_cg
  512.     create_command_window
  513.     set_move_preset if !@sub_show
  514.   end
  515.   #--------------------------------------------------------------------------
  516.   # ● 开始后处理
  517.   #--------------------------------------------------------------------------
  518.   def post_start
  519.     super
  520.     @command_window.show = true
  521.     t = @sub_show ? 6 : EASY_MENU_SET::TIME
  522.     ot = @sub_show ? 6 : EASY_MENU_SET::TIME
  523.     begin
  524.       t -= 1 if t >= 0
  525.       @actor_cg.x += actor_cg_xx if t >= 0
  526.       @actor_cg.opacity += (255 / ot).ceil
  527.       @rim_sprite.opacity += (255 / ot).ceil if @rim_sprite
  528.       @command_window.open_button_window
  529.       Graphics.update
  530.     end until @command_window.show == false
  531.     @command_window.activate
  532.     @actor_cg.opacity = 255
  533.     @actor_cg.x = EASY_MENU_SET::CG[$game_variables[EASY_MENU_SET::CG_VA]][1]
  534.     @sub_show = false
  535.   end
  536.   #--------------------------------------------------------------------------
  537.   # ● 结束前处理
  538.   #--------------------------------------------------------------------------
  539.   def pre_terminate
  540.     super
  541.     @command_window.show = true
  542.     t = @sub_show ? 6 : EASY_MENU_SET::TIME
  543.     begin
  544.       t -= 1 if t >= 0
  545.       @actor_cg.x -= actor_cg_xx if t >= 0
  546.       if @sub_show
  547.         @command_window.close_window_to_sub
  548.       else
  549.         @actor_cg.opacity -= (255 / EASY_MENU_SET::TIME).ceil
  550.         @rim_sprite.opacity -= (255 / EASY_MENU_SET::TIME).ceil if @rim_sprite
  551.         @command_window.close_button_window
  552.       end
  553.       Graphics.update
  554.     end until @command_window.show == false
  555.   end
  556.   #--------------------------------------------------------------------------
  557.   # ● 生成指令窗口
  558.   #--------------------------------------------------------------------------
  559.   def create_command_window
  560.     v = EASY_MENU_SET::BUTTON
  561.     @command_window = Window_MenuCommand.new
  562.     for i in 0...EASY_MENU_SET::BUTTON.size
  563.       type = :command_item     if v[i][4] == :item
  564.       type = :command_key_item if v[i][4] == :key_item
  565.       type = :command_save     if v[i][4] == :save
  566.       type = :command_load     if v[i][4] == :continue
  567.       type = :command_game_end if v[i][4] == :game_end
  568.       @command_window.set_handler(v[i][4], method(type)) if v[i][0]
  569.     end
  570.     @command_window.set_handler(:cancel,    method(:return_scene))
  571.   end
  572.   #--------------------------------------------------------------------------
  573.   # ● 指令“物品”
  574.   #--------------------------------------------------------------------------
  575.   def command_item
  576.     @sub_show = true
  577.     SceneManager.call(Scene_Item)
  578.     SceneManager.scene.prepare(:item)
  579.   end
  580.   #--------------------------------------------------------------------------
  581.   # ● 指令“贵重物品”
  582.   #--------------------------------------------------------------------------
  583.   def command_key_item
  584.     @sub_show = true
  585.     SceneManager.call(Scene_Item)
  586.     SceneManager.scene.prepare(:key_item)
  587.   end
  588.   #--------------------------------------------------------------------------
  589.   # ● 指令“存档”
  590.   #--------------------------------------------------------------------------
  591.   def command_save
  592.     @sub_show = true
  593.     SceneManager.call(Scene_Save)
  594.   end
  595.   #--------------------------------------------------------------------------
  596.   # ● 指令“读档”
  597.   #--------------------------------------------------------------------------
  598.   def command_load
  599.     @sub_show = true
  600.     SceneManager.call(Scene_Load)
  601.   end
  602. end
  603.  
  604. #==============================================================================
  605. # ■ SceneManager
  606. #==============================================================================
  607. module SceneManager
  608.   #--------------------------------------------------------------------------
  609.   # ● 模块的实例变量
  610.   #--------------------------------------------------------------------------
  611.   @save_bitmap = nil                # 存档用截图
  612.   #--------------------------------------------------------------------------
  613.   # ● 生成存档内的截图
  614.   #--------------------------------------------------------------------------
  615.   def self.snapshot_for_save_bitmap
  616.     v = EASY_MENU_SET::FILES_DETAILS_DATA
  617.     @save_bitmap.dispose if @save_bitmap
  618.     @save_bitmap = Bitmap.new(v[0][3], v[0][4])
  619.     rect = Rect.new(0, 0, v[0][3], v[0][4])
  620.     rect.x = $game_player.screen_x - rect.width / 2
  621.     rect.y = $game_player.screen_y - rect.height / 2 - 12
  622.     bitmap = Graphics.snap_to_bitmap
  623.     @save_bitmap.blt(0, 0, bitmap, rect)
  624.     bitmap.dispose
  625.   end
  626.   #--------------------------------------------------------------------------
  627.   # ● 获取存档内的截图
  628.   #--------------------------------------------------------------------------
  629.   def self.saves_bitmap
  630.     @save_bitmap
  631.   end
  632. end
  633.  
  634. #==============================================================================
  635. # ■ Scene_Map
  636. #==============================================================================
  637. class Scene_Map < Scene_Base
  638.   #--------------------------------------------------------------------------
  639.   # ● 结束处理
  640.   #--------------------------------------------------------------------------
  641.   alias cong_menu_terminate terminate
  642.   def terminate
  643.     SceneManager.snapshot_for_save_bitmap
  644.     cong_menu_terminate
  645.   end
  646. end
  647.  
  648. #==============================================================================
  649. # ★ 物品界面
  650. #==============================================================================
  651. #==============================================================================
  652. # ■ Window_ItemList
  653. #==============================================================================
  654. class Window_ItemList < Window_Selectable
  655.   #--------------------------------------------------------------------------
  656.   # ● 初始化对象
  657.   #--------------------------------------------------------------------------
  658.   def initialize(x, y, width, height)
  659.     super
  660.     self.windowskin = Cache.system(EASY_MENU_SET::SKIN)
  661.     self.opacity = EASY_MENU_SET::ITEMLIST[2]
  662.     @category = :none
  663.     @data = []
  664.   end
  665.   #--------------------------------------------------------------------------
  666.   # ● 获取标准的边距尺寸
  667.   #--------------------------------------------------------------------------
  668.   def standard_padding
  669.     return 16
  670.   end
  671.   #--------------------------------------------------------------------------
  672.   # ● 获取列数
  673.   #--------------------------------------------------------------------------
  674.   def col_max
  675.     return 1
  676.   end
  677.   #--------------------------------------------------------------------------
  678.   # ● 绘制项目
  679.   #--------------------------------------------------------------------------
  680.   alias easy_menu_draw_item draw_item
  681.   def draw_item(index)
  682.     easy_menu_font
  683.     easy_menu_draw_item(index)
  684.   end
  685.   #--------------------------------------------------------------------------
  686.   # ● 绘制物品个数
  687.   #--------------------------------------------------------------------------
  688.   def draw_item_number(rect, item)
  689.     return if $game_party.item_number(item) <= 1
  690.     draw_text(rect, sprintf("%02d", $game_party.item_number(item)), 2)
  691.   end
  692.   #--------------------------------------------------------------------------
  693.   # ● 绘制物品名称
  694.   #     enabled : 有效的标志。false 的时候使用半透明效果绘制
  695.   #--------------------------------------------------------------------------
  696.   def draw_item_name(item, x, y, enabled = true, width = 172)
  697.     return unless item
  698.     draw_icon(item.icon_index, x, y, enabled)
  699.     change_color(normal_color, enabled)
  700.     draw_text_ex(x + 24, y, item.name)
  701.     #draw_text(x + 24, y, width, line_height, item.name)
  702.   end
  703.   #--------------------------------------------------------------------------
  704.   # ● 重置字体设置
  705.   #--------------------------------------------------------------------------
  706.   def reset_font_settings
  707.     change_color(normal_color)
  708.     easy_menu_font
  709.   end
  710.   #--------------------------------------------------------------------------
  711.   # ● 更新帮助内容
  712.   #--------------------------------------------------------------------------
  713.   def update_help
  714.     @help_window.set_item(item)
  715.     @big_icon.set_item(item.big_icon) if EASY_MENU_SET::BIGICON[0] && item
  716.   end
  717.   #--------------------------------------------------------------------------
  718.   # ● 设置物品窗口
  719.   #--------------------------------------------------------------------------
  720.   def big_icon=(big_icon)
  721.     @big_icon = big_icon
  722.     update
  723.   end
  724. end
  725.  
  726. #==============================================================================
  727. # ■ BIG ICON
  728. #==============================================================================
  729. module Cache
  730.   def self.bigicon(filename)
  731.     load_bitmap(EASY_MENU_SET::BIGICON_Cache, filename)
  732.   end
  733. end
  734.  
  735. #==============================================================================
  736. # ■ RPG::BaseItem
  737. #==============================================================================
  738. class RPG::BaseItem
  739.   #--------------------------------------------------------------------------
  740.   # ● 获取大图标
  741.   #--------------------------------------------------------------------------
  742.   def big_icon
  743.     self.note =~ /\<BigIcon (\w+)\>/i
  744.     $1.nil? ? "" : $1
  745.   end
  746. end
  747.  
  748. #==============================================================================
  749. # ■ Window_Big_icon
  750. #==============================================================================
  751. class Window_Big_icon < Window_Base
  752.   #--------------------------------------------------------------------------
  753.   # ● 初始化对象
  754.   #--------------------------------------------------------------------------
  755.   def initialize(x, y, width, height)
  756.     super(x, y, width, height)
  757.     self.windowskin = Cache.system(EASY_MENU_SET::SKIN)
  758.     self.opacity = EASY_MENU_SET::BIGICON[6]
  759.   end
  760.   #--------------------------------------------------------------------------
  761.   # ● 设置内容
  762.   #--------------------------------------------------------------------------
  763.   def set_item(icon)
  764.     if icon != @icon
  765.       contents.clear
  766.       bitmap = Cache.bigicon(icon)
  767.       x = (contents.width - bitmap.width) / 2
  768.       y = (contents.height - bitmap.height) / 2
  769.       rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  770.       contents.blt(x, y, bitmap, rect)
  771.       @icon = icon
  772.     end
  773.   end
  774. end
  775.  
  776. #==============================================================================
  777. # ■ Scene_ItemBase
  778. #==============================================================================
  779. class Scene_ItemBase < Scene_MenuBase
  780.   #--------------------------------------------------------------------------
  781.   # ● 生成角色窗口
  782.   #--------------------------------------------------------------------------
  783.   def create_actor_window
  784.     @actor_window = Window_MenuActor.new
  785.     @actor_window.set_handler(:ok,     method(:on_actor_ok))
  786.     @actor_window.set_handler(:cancel, method(:on_actor_cancel))
  787.   end
  788.   #--------------------------------------------------------------------------
  789.   # ● 显示子窗口
  790.   #--------------------------------------------------------------------------
  791.   alias easy_menu_show_sub_window show_sub_window
  792.   def show_sub_window(window)
  793.     window.y = (Graphics.height - @actor_window.height) / 2
  794.     easy_menu_show_sub_window(window)
  795.     @actor_window.z = 200
  796.   end
  797. end
  798.  
  799. #==============================================================================
  800. # ■ Scene_Item
  801. #==============================================================================
  802. class Scene_Item < Scene_ItemBase
  803.   #--------------------------------------------------------------------------
  804.   # ● 预处理
  805.   #--------------------------------------------------------------------------
  806.   def prepare(mode = :item)
  807.     @mode = mode
  808.   end
  809.   #--------------------------------------------------------------------------
  810.   # ● 开始处理
  811.   #--------------------------------------------------------------------------
  812.   def start
  813.     super
  814.     v = EASY_MENU_SET::ITEM_RIM
  815.     create_rim_background(v[0], v[1], v[2], v[3]) if v[0]
  816.     create_actor_cg unless EASY_MENU_SET::BIGICON[0]
  817.     create_help_window
  818.     create_big_icon_window if EASY_MENU_SET::BIGICON[0]
  819.     create_item_window
  820.     create_sub_button
  821.   end
  822.   #--------------------------------------------------------------------------
  823.   # ● 生成物品窗口
  824.   #--------------------------------------------------------------------------
  825.   def create_item_window
  826.     sp = EASY_MENU_SET::COMMAND[1]
  827.     iy = sp + EASY_MENU_SET::COMMAND[3] - 8
  828.     ih = Graphics.height - @help_window.height - sp - iy
  829.     @item_window = Window_ItemList.new(sp, iy, @help_window.width, ih)
  830.     @item_window.category = @mode
  831.     @item_window.viewport = @viewport
  832.     @item_window.help_window = @help_window
  833.     @item_window.big_icon = @big_icon_window if EASY_MENU_SET::BIGICON[0]
  834.     @item_window.set_handler(:ok,     method(:on_item_ok))
  835.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  836.     @item_window.index = 0
  837.     @item_window.activate
  838.   end
  839.   #--------------------------------------------------------------------------
  840.   # ● 生成帮助窗口
  841.   #--------------------------------------------------------------------------
  842.   def create_help_window
  843.     sp = EASY_MENU_SET::COMMAND[1]
  844.     v = EASY_MENU_SET::ITEMLIST
  845.     w = v[0] > 0 ? v[0] : (Graphics.width / 2 - sp)
  846.     @help_window = Window_Help.new(v[1], w)
  847.     @help_window.viewport = @viewport
  848.     @help_window.x = sp
  849.     @help_window.y = Graphics.height - @help_window.height - sp
  850.   end
  851.   #--------------------------------------------------------------------------
  852.   # ● 生成物品大图标
  853.   #--------------------------------------------------------------------------
  854.   def create_big_icon_window
  855.     sp = EASY_MENU_SET::COMMAND[1]
  856.     v = EASY_MENU_SET::BIGICON
  857.     b = []
  858.     if v[1]
  859.       b[0] = @help_window.width + sp
  860.       b[1] = sp + EASY_MENU_SET::COMMAND[3] - 8
  861.       b[2] = Graphics.width - b[0] - sp
  862.       b[3] = Graphics.height - b[1] - sp
  863.     else
  864.       b = [v[2], v[3], v[4], v[5]]
  865.     end
  866.     @big_icon_window = Window_Big_icon.new(b[0], b[1], b[2], b[3])
  867.     @big_icon_window.viewport = @viewport
  868.   end
  869.   #--------------------------------------------------------------------------
  870.   # ● 物品“取消”
  871.   #--------------------------------------------------------------------------
  872.   def on_item_cancel
  873.     @item_window.unselect
  874.     return_scene
  875.   end
  876. end
  877.  
  878.  
  879. #==============================================================================
  880. # ★ 存档界面
  881. #==============================================================================
  882. #==============================================================================
  883. # ■ Window_SaveFileList
  884. #------------------------------------------------------------------------------
  885. #  存档的选项窗口(左)
  886. #==============================================================================
  887. class Window_SaveFileList < Window_Selectable
  888.   #--------------------------------------------------------------------------
  889.   # ● 初始化对象
  890.   #--------------------------------------------------------------------------
  891.   def initialize(x, y, width, height)
  892.     super
  893.     self.windowskin = Cache.system(EASY_MENU_SET::SKIN)
  894.     self.opacity = EASY_MENU_SET::FILESLIST[4]
  895.     @symbol = nil
  896.     refresh
  897.     activate
  898.   end
  899.   #--------------------------------------------------------------------------
  900.   # ● 获取可显示的存档数目
  901.   #--------------------------------------------------------------------------
  902.   def visible_max
  903.     return EASY_MENU_SET::FILESLIST[1]
  904.   end
  905.   #--------------------------------------------------------------------------
  906.   # ● 获取项目的高度
  907.   #--------------------------------------------------------------------------
  908.   def item_height
  909.     (height - standard_padding * 2) / visible_max
  910.   end
  911.   #--------------------------------------------------------------------------
  912.   # ● 存档数量最大值
  913.   #--------------------------------------------------------------------------
  914.   def item_max
  915.     return EASY_MENU_SET::FILES_MAX
  916.   end
  917.   #--------------------------------------------------------------------------
  918.   # ● 绘制项目
  919.   #--------------------------------------------------------------------------
  920.   def draw_item(index)
  921.     header = DataManager.load_header(index)
  922.     rect = item_rect_for_text(index)
  923.     ry = (item_height - line_height) / 2
  924.     easy_menu_font
  925.     v = EASY_MENU_SET::FILESLIST
  926.     change_color(Color.new(v[3][0][0], v[3][0][1], v[3][0][2]), header)
  927.     icon_id = header ? v[2][1] : v[2][0]
  928.     draw_icon(icon_id, rect.x + 4, rect.y + ry)
  929.     text = @symbol == :save ? EASY_MENU_SET::SAVING : EASY_MENU_SET::LOADING
  930.     ing = @index == index && @symbol
  931.     name = ing ? text : (Vocab::File + " #{index + 1}")
  932.     draw_text(rect.x + 28, rect.y + ry, rect.width, line_height, name)
  933.     change_color(Color.new(v[3][1][0], v[3][1][1], v[3][1][2]), header)
  934.     draw_playtime(header, rect.x - 4, rect.y + ry, rect.width, 2)
  935.   end
  936.   #--------------------------------------------------------------------------
  937.   # ● 绘制游戏时间
  938.   #--------------------------------------------------------------------------
  939.   def draw_playtime(header, x, y, width, align)
  940.     text = header ? header[:playtime_s] : "—:—:—"
  941.     draw_text(x, y, width, line_height, text, 2)
  942.   end
  943.   #--------------------------------------------------------------------------
  944.   # ● 设置选择状态
  945.   #--------------------------------------------------------------------------
  946.   def set_files(symbol)
  947.     @symbol = symbol
  948.     refresh
  949.   end
  950.   #--------------------------------------------------------------------------
  951.   # ● 按下确定键时的处理
  952.   #--------------------------------------------------------------------------
  953.   def process_ok
  954.     if current_item_enabled?
  955.       Input.update
  956.       deactivate
  957.       call_ok_handler
  958.     else
  959.       Sound.play_buzzer
  960.     end
  961.   end
  962. end
  963.  
  964.  
  965. #==============================================================================
  966. # ■ Window_FilesDetails
  967. #------------------------------------------------------------------------------
  968. #  存档的详细窗口(右)
  969. #==============================================================================
  970. class Window_FilesDetails < Window_Base
  971.   #--------------------------------------------------------------------------
  972.   # ● 初始化对象
  973.   #--------------------------------------------------------------------------
  974.   def initialize(x, y, width, height)
  975.     super(x, y, width, height)
  976.     self.windowskin = Cache.system(EASY_MENU_SET::SKIN)
  977.     self.opacity = EASY_MENU_SET::FILES_DETAILS[6]
  978.     @bitmaps = []
  979.     @header = []
  980.   end
  981.   #--------------------------------------------------------------------------
  982.   # ● 释放
  983.   #--------------------------------------------------------------------------
  984.   def dispose
  985.     for bitmap in @bitmaps
  986.       next if bitmap == nil or bitmap.disposed?
  987.       bitmap.dispose
  988.     end
  989.     super
  990.   end
  991.   #--------------------------------------------------------------------------
  992.   # ● 设置选择状态
  993.   #--------------------------------------------------------------------------
  994.   def set_select(select)
  995.     return if @select == select
  996.     @select = select
  997.     refresh(@select)
  998.   end
  999.   #--------------------------------------------------------------------------
  1000.   # ● 读取文件
  1001.   #--------------------------------------------------------------------------
  1002.   def read_save_data(index)
  1003.     @header[index] = DataManager.load_header(index)
  1004.     @bitmaps[index].dispose if @bitmaps[index]
  1005.     return unless EASY_MENU_SET::FILES_DETAILS_DATA[0][0]
  1006.     @bitmaps[index] = DataManager.load_save_bitmap(index)
  1007.   end
  1008.   #--------------------------------------------------------------------------
  1009.   # ● 刷新
  1010.   #--------------------------------------------------------------------------
  1011.   def refresh(index)
  1012.     contents.clear
  1013.     read_save_data(index)
  1014.     v = EASY_MENU_SET::FILES_DETAILS_DATA
  1015.     draw_background(@header[index], v)
  1016.     return unless @header[index]
  1017.     draw_save_bitmap(@header[index], index, v)
  1018.     draw_party_faces(@header[index], index, v)
  1019.     draw_party_characters(@header[index], index, v)
  1020.   end
  1021.   #--------------------------------------------------------------------------
  1022.   # ● 绘制 底图
  1023.   #--------------------------------------------------------------------------
  1024.   def draw_background(header, v)
  1025.     return unless v[3][0]
  1026.     return if (!header && v[3][1] == false)
  1027.     bitmap = Cache.system(v[3][2])
  1028.     contents.blt(v[3][3], v[3][4], bitmap, Rect.new(0, 0, v[3][5], v[3][6]))
  1029.   end
  1030.   #--------------------------------------------------------------------------
  1031.   # ● 绘制截图
  1032.   #--------------------------------------------------------------------------
  1033.   def draw_save_bitmap(header, index, v)
  1034.     return unless v[0][0]
  1035.     bitmap = @bitmaps[index]
  1036.     #bx = (width - standard_padding * 2 - bitmap.width) / 2
  1037.     contents.blt(v[0][1], v[0][2], bitmap, bitmap.rect)
  1038.   end
  1039.   #--------------------------------------------------------------------------
  1040.   # ● 绘制队伍角色行走图
  1041.   #--------------------------------------------------------------------------
  1042.   def draw_party_characters(header, index, v)
  1043.     return unless v[1][0]
  1044.     x = v[1][3] ? 0 : v[1][1]
  1045.     y = v[1][2]
  1046.     xx = 0 ; cw = (self.contents_width - x * 2)
  1047.     pn = header[:characters].size # 队伍人数(最大4)
  1048.     header[:characters].each_with_index do |data, i|
  1049.       bit = Cache.character(data[0])
  1050.       sign = data[0][/^[\!\$]./]
  1051.       if sign && sign.include?('$')
  1052.         rw = bit.width / 3 + v[1][4]
  1053.       else
  1054.         rw = bit.width / 12 + v[1][4]
  1055.       end
  1056.       xx = (cw - rw * pn) / 2 + rw / 2 if v[1][3]
  1057.       draw_character(data[0], data[1], x + i * rw + xx, y)
  1058.     end
  1059.   end
  1060.   #--------------------------------------------------------------------------
  1061.   # ● 绘制队伍角色脸谱
  1062.   #--------------------------------------------------------------------------
  1063.   def draw_party_faces(header, index, v)
  1064.     return unless v[2][0]
  1065.     x = v[2][3] ? 0 : v[2][1]
  1066.     y = v[2][2]
  1067.     xx = 4 ; cw = (self.contents_width - x * 2)
  1068.     pn = header[:characters].size # 队伍人数(最大4)
  1069.     header[:characters].reverse.each_with_index do |data, i|
  1070.       bit = Cache.face(data[2])
  1071.       rw = (bit.width / 4 + (pn - 1) * 8)
  1072.       xx = (cw - rw * pn + (pn - 1) * 8) / 2 if v[2][3] && rw * pn < cw
  1073.       y_rw = ((rw * pn - cw) / pn).abs
  1074.       rw = rw - y_rw - y_rw / pn if rw * pn >= cw
  1075.       draw_face(data[2], data[3], x + (pn-1-i)*rw + xx, y, true, v[2][4])
  1076.     end
  1077.   end
  1078.   #--------------------------------------------------------------------------
  1079.   # ● 绘制角色肖像图
  1080.   #     enabled : 有效的标志。false 的时候使用半透明效果绘制
  1081.   #--------------------------------------------------------------------------
  1082.   def draw_face(face_name, face_index, x, y, enabled = true, bg_show)
  1083.     enabled_d = enabled ? 255 : translucent_alpha
  1084.     bitmap = Cache.face(face_name)
  1085.     w = bitmap.width / 4
  1086.     h = bitmap.height / 2
  1087.     rect = Rect.new(face_index % 4 * w, face_index / 4 * h, w, h)
  1088.     if bg_show
  1089.       bg_bitmap = Cache.system("Files_Face_Bg")
  1090.       bg_x = x - (bg_bitmap.width - w) / 2
  1091.       bg_y = y - (bg_bitmap.height - h) / 2
  1092.       contents.blt(bg_x, bg_y, bg_bitmap, bg_bitmap.rect, enabled_d)
  1093.       bg_bitmap.dispose
  1094.     end
  1095.     contents.blt(x, y, bitmap, rect, enabled_d)
  1096.     bitmap.dispose
  1097.   end
  1098. end
  1099.  
  1100. #==============================================================================
  1101. # ■ Scene_File
  1102. #==============================================================================
  1103. class Scene_File < Scene_MenuBase
  1104.   #--------------------------------------------------------------------------
  1105.   # ● 开始处理
  1106.   #--------------------------------------------------------------------------
  1107.   def start
  1108.     super
  1109.     v = EASY_MENU_SET::FILES_RIM
  1110.     create_rim_background(v[0], v[1], v[2], v[3]) if v[0]
  1111.     create_actor_cg unless EASY_MENU_SET::FILES_DETAILS[0]
  1112.     create_help_window if EASY_MENU_SET::FILESLIST[5]
  1113.     create_savefile_windows
  1114.     create_details_window if EASY_MENU_SET::FILES_DETAILS[0]
  1115.     create_sub_button
  1116.     init_selection
  1117.   end
  1118.   #--------------------------------------------------------------------------
  1119.   # ● 结束处理
  1120.   #--------------------------------------------------------------------------
  1121.   def terminate
  1122.     super
  1123.   end
  1124.   #--------------------------------------------------------------------------
  1125.   # ● 更新画面
  1126.   #--------------------------------------------------------------------------
  1127.   def update
  1128.     super
  1129.     @details_window.set_select(@savefile_window.index) if @details_window
  1130.   end
  1131.   #--------------------------------------------------------------------------
  1132.   # ● 生成帮助窗口
  1133.   #--------------------------------------------------------------------------
  1134.   def create_help_window
  1135.     sp = EASY_MENU_SET::COMMAND[1]
  1136.     v = EASY_MENU_SET::FILESLIST
  1137.     w = v[0] > 0 ? v[0] : (Graphics.width / 2 - sp)
  1138.     @help_window = Window_Help.new(1, w)
  1139.     @help_window.set_text(help_window_text)
  1140.     @help_window.x = sp
  1141.     @help_window.y = sp + EASY_MENU_SET::COMMAND[3] - 8
  1142.   end
  1143.   #--------------------------------------------------------------------------
  1144.   # ● 获取帮助窗口的文本
  1145.   #--------------------------------------------------------------------------
  1146.   def help_window_text
  1147.     return ""
  1148.   end
  1149.   #--------------------------------------------------------------------------
  1150.   # ● 生成存档文件窗口
  1151.   #--------------------------------------------------------------------------
  1152.   def create_savefile_windows
  1153.     sp = EASY_MENU_SET::COMMAND[1]
  1154.     hy = sp + EASY_MENU_SET::COMMAND[3] - 8
  1155.     sy = @help_window ? (@help_window.y + @help_window.height) : hy
  1156.     v = EASY_MENU_SET::FILESLIST
  1157.     sw = v[0] > 0 ? v[0] : (Graphics.width / 2 - sp)
  1158.     sh = Graphics.height - sy - sp
  1159.     @savefile_window = Window_SaveFileList.new(sp, sy, sw, sh)
  1160.     @savefile_window.set_handler(:ok,     method(:on_savefile_ok))
  1161.     @savefile_window.set_handler(:cancel, method(:on_savefile_cancel))
  1162.   end
  1163.   #--------------------------------------------------------------------------
  1164.   # ● 生成详细文件窗口
  1165.   #--------------------------------------------------------------------------
  1166.   def create_details_window
  1167.     sp = EASY_MENU_SET::COMMAND[1]
  1168.     v = EASY_MENU_SET::FILES_DETAILS
  1169.     d = []
  1170.     if v[1]
  1171.       d[0] = @savefile_window.width + sp
  1172.       d[1] = @help_window.y
  1173.       d[2] = Graphics.width - d[0] - sp
  1174.       d[3] = Graphics.height - d[1] - sp
  1175.     else
  1176.       d = [v[2], v[3], v[4], v[5]]
  1177.     end
  1178.     @details_window = Window_FilesDetails.new(d[0], d[1], d[2], d[3])
  1179.   end
  1180.   #--------------------------------------------------------------------------
  1181.   # ● 初始化选择状态
  1182.   #--------------------------------------------------------------------------
  1183.   def init_selection
  1184.     index = first_savefile_index
  1185.     @savefile_window.select(index)
  1186.     @details_window.set_select(index) if @details_window
  1187.   end
  1188. end
  1189.  
  1190.  
  1191. #==============================================================================
  1192. # ■ Scene_Save
  1193. #==============================================================================
  1194. class Scene_Save < Scene_File
  1195.   #--------------------------------------------------------------------------
  1196.   # ● 开始处理
  1197.   #--------------------------------------------------------------------------
  1198.   def start
  1199.     Window_MenuCommand::init_command_position(:save)
  1200.     super
  1201.   end
  1202.   #--------------------------------------------------------------------------
  1203.   # ● 确定存档文件
  1204.   #--------------------------------------------------------------------------
  1205.   def on_savefile_ok
  1206.     super
  1207.     if DataManager.save_game(@savefile_window.index)
  1208.       on_save_success
  1209.     else
  1210.       Sound.play_buzzer
  1211.       @savefile_window.activate unless EASY_MENU_SET::FILES_RETURN
  1212.     end
  1213.   end
  1214.   #--------------------------------------------------------------------------
  1215.   # ● 存档成功时的处理
  1216.   #--------------------------------------------------------------------------
  1217.   def on_save_success
  1218.     Sound.play_save
  1219.     @savefile_window.set_files(:save)
  1220.     @details_window.refresh(@savefile_window.index) if @details_window
  1221.     Graphics.wait(30)
  1222.     if EASY_MENU_SET::FILES_RETURN
  1223.       return_scene
  1224.     else
  1225.       @savefile_window.set_files(nil)
  1226.       @savefile_window.activate
  1227.     end
  1228.   end
  1229. end
  1230.  
  1231.  
  1232. #==============================================================================
  1233. # ■ Scene_Load
  1234. #==============================================================================
  1235. class Scene_Load < Scene_File
  1236.   #--------------------------------------------------------------------------
  1237.   # ● 开始处理
  1238.   #--------------------------------------------------------------------------
  1239.   def start
  1240.     Window_MenuCommand::init_command_position(:continue)
  1241.     super
  1242.   end
  1243.   #--------------------------------------------------------------------------
  1244.   # ● 确定读档文件
  1245.   #--------------------------------------------------------------------------
  1246.   def on_savefile_ok
  1247.     super
  1248.     if DataManager.load_game(@savefile_window.index)
  1249.       on_load_success
  1250.     else
  1251.       Sound.play_buzzer
  1252.       @savefile_window.activate unless EASY_MENU_SET::FILES_RETURN
  1253.     end
  1254.   end
  1255.   #--------------------------------------------------------------------------
  1256.   # ● 读档成功时的处理
  1257.   #--------------------------------------------------------------------------
  1258.   def on_load_success
  1259.     Sound.play_load
  1260.     @savefile_window.set_files(:continue)
  1261.     Graphics.wait(20)
  1262.     fadeout_all
  1263.     $game_system.on_after_load
  1264.     SceneManager.goto(Scene_Map)
  1265.   end
  1266. end
  1267.  
  1268.  
  1269. #==============================================================================
  1270. # ■ DataManager
  1271. #==============================================================================
  1272. module DataManager
  1273.   #--------------------------------------------------------------------------
  1274.   # ● 判定存档文件是否存在
  1275.   #--------------------------------------------------------------------------
  1276.   def self.save_file_exists?
  1277.     if savefile_folder == ""
  1278.       text = 'Save*.rvdata2'
  1279.     else
  1280.       text = savefile_folder + '/Save*.rvdata2'
  1281.     end
  1282.     !Dir.glob(text).empty?
  1283.   end
  1284.   #--------------------------------------------------------------------------
  1285.   # ● 存档文件的最大数
  1286.   #--------------------------------------------------------------------------
  1287.   def self.savefile_max
  1288.     max = EASY_MENU_SET::FILES_MAX ? EASY_MENU_SET::FILES_MAX : 16
  1289.     return max
  1290.   end
  1291.   #--------------------------------------------------------------------------
  1292.   # ● 生成父文件夹
  1293.   #--------------------------------------------------------------------------
  1294.   def self.savefile_folder
  1295.     return EASY_MENU_SET::FILES_NAME
  1296.   end
  1297.   #--------------------------------------------------------------------------
  1298.   # ● 生成文件名
  1299.   #     index : 文件索引
  1300.   #--------------------------------------------------------------------------
  1301.   def self.make_filename(index)
  1302.     filename = sprintf("Save%02d.rvdata2", index + 1)
  1303.     if savefile_folder == ""
  1304.       return filename
  1305.     else
  1306.       return savefile_folder + "/" + filename
  1307.     end
  1308.   end
  1309.   #--------------------------------------------------------------------------
  1310.   # ● 生成截图
  1311.   #--------------------------------------------------------------------------
  1312.   def self.make_save_bitmap
  1313.     bitmap = set_bitmap_array(SceneManager.saves_bitmap)
  1314.     bitmap
  1315.   end
  1316.   #--------------------------------------------------------------------------
  1317.   # ● 获取截图
  1318.   #--------------------------------------------------------------------------
  1319.   def self.load_save_bitmap(index)
  1320.     begin
  1321.       File.open(make_filename(index), "rb") do |file|
  1322.         Marshal.load(file)
  1323.         return read_bitmap_array(Marshal.load(file))
  1324.       end
  1325.     rescue
  1326.       return nil
  1327.     end
  1328.   end
  1329.   #--------------------------------------------------------------------------
  1330.   # ● 制作截图文件 by 老鹰
  1331.   #--------------------------------------------------------------------------
  1332.   def self.set_bitmap_array(bitmap)
  1333.     data = []
  1334.     bitmap.height.times do |i| # 行号
  1335.       data[i] = []
  1336.       bitmap.width.times do |j| # 列号
  1337.         color = bitmap.get_pixel(j, i)
  1338.         data[i][j] = [color.red, color.green, color.blue]
  1339.       end
  1340.     end
  1341.     data
  1342.   end
  1343.   #--------------------------------------------------------------------------
  1344.   # ● 获取截图文件 by 老鹰
  1345.   #--------------------------------------------------------------------------
  1346.   def self.read_bitmap_array(array)
  1347.     h = array.size # 行数
  1348.     w = array[0].size # 列数
  1349.     bitmap = Bitmap.new(w, h)
  1350.     h.times do |i|
  1351.       w.times do |j|
  1352.         data = array[i][j]
  1353.         color = Color.new(data[0], data[1], data[2])
  1354.         bitmap.set_pixel(j, i, color)
  1355.       end
  1356.     end
  1357.     bitmap
  1358.   end
  1359.   #--------------------------------------------------------------------------
  1360.   # ● 执行存档(没有错误处理)
  1361.   #--------------------------------------------------------------------------
  1362.   def self.save_game_without_rescue(index)
  1363.     unless FileTest.directory?(savefile_folder)
  1364.       Dir::mkdir(savefile_folder)
  1365.     end
  1366.     File.open(make_filename(index), "wb") do |file|
  1367.       $game_system.on_before_save
  1368.       Marshal.dump(make_save_header, file)
  1369.       Marshal.dump(make_save_bitmap, file)
  1370.       Marshal.dump(make_save_contents, file)
  1371.       @last_savefile_index = index
  1372.     end
  1373.     return true
  1374.   end
  1375.   #--------------------------------------------------------------------------
  1376.   # ● 执行读档(没有错误处理)
  1377.   #--------------------------------------------------------------------------
  1378.   def self.load_game_without_rescue(index)
  1379.     File.open(make_filename(index), "rb") do |file|
  1380.       Marshal.load(file)
  1381.       Marshal.load(file)
  1382.       extract_save_contents(Marshal.load(file))
  1383.       reload_map_if_updated
  1384.       @last_savefile_index = index
  1385.     end
  1386.     return true
  1387.   end
  1388. end
  1389.  
  1390. #==============================================================================
  1391. # ■ Game_Party
  1392. #==============================================================================
  1393. class Game_Party < Game_Unit
  1394.   #--------------------------------------------------------------------------
  1395.   # ● 存档文件显示用的角色图像信息
  1396.   #--------------------------------------------------------------------------
  1397.   def characters_for_savefile
  1398.     battle_members.collect do |actor|
  1399.       [actor.character_name, actor.character_index,
  1400.        actor.face_name, actor.face_index]
  1401.     end
  1402.   end
  1403. end
  1404.  
  1405.  
  1406. #==============================================================================
  1407. # ■ Window_MenuStatus
  1408. #==============================================================================
  1409. class Window_MenuStatus < Window_Selectable
  1410.   #--------------------------------------------------------------------------
  1411.   # ● 获取窗口的宽度
  1412.   #--------------------------------------------------------------------------
  1413.   def window_width
  1414.     Graphics.width - 160 - 96
  1415.   end
  1416.   #--------------------------------------------------------------------------
  1417.   # ● 获取窗口的高度
  1418.   #--------------------------------------------------------------------------
  1419.   def window_height
  1420.     Graphics.height > 416 ? 416 : Graphics.height
  1421.   end
  1422. end
  1423.  
  1424. #==============================================================================
  1425. # ■ Window_GameEnd
  1426. #==============================================================================
  1427. class Window_GameEnd < Window_Command
  1428.   #--------------------------------------------------------------------------
  1429.   # ● 初始化对象
  1430.   #--------------------------------------------------------------------------
  1431.   alias easy_menu_initialize initialize
  1432.   def initialize
  1433.     easy_menu_initialize
  1434.     self.windowskin = Cache.system(EASY_MENU_SET::SKIN)
  1435.   end
  1436. end


RUBY 代码复制
  1. #==============================================================================
  2. # ◇ CONG'S EASY MENU ◇
  3. #------------------------------------------------------------------------------
  4. # ◇ 葱式解谜用简易菜单 ◇ v1.3
  5. #==============================================================================
  6. # By Conwsbn
  7. # http://congrm.lofter.com/
  8. #==============================================================================
  9. # ■ 菜单中的各种设置项目
  10. # · 素材文件均在 Graphics/System/下
  11. # ☆ RGD官网:https://cirno.mist.so/archives/290
  12. #------------------------------------------------------------------------------
  13. # · v1.3 立绘图片使用方法变更,相见下方设置。
  14. #==============================================================================
  15. module EASY_MENU_SET
  16.   #----------------------------------------------------------------------------
  17.   # ● 基础设置
  18.   #----------------------------------------------------------------------------
  19.   Font_name = ["文泉驿微米黑", "黑体"]  # 字体
  20.   Font_size = 22                       # 字号
  21.   Font_outline = true                  # 描边(true / false)
  22.   Font_shadow = false                  # 投影(true / false)
  23.   Font_bold = false                    # 加粗(true / false)
  24.   Font_italic = false                  # 斜体(true / false)
  25.   Font_pixel = false                   # 像素字(true / false)
  26.   #----------------------------------------------------------------------------
  27.   # ● 帮助窗口的基础设置
  28.   #----------------------------------------------------------------------------
  29.   # · 支持自动换行,也可以用\n来强制换行。
  30.   #----------------------------------------------------------------------------
  31.   HELP_name = ["文泉驿微米黑", "黑体"] # 字体
  32.   HELP_size = 20                      # 字号
  33.   HELP_color = [222, 213, 228]        # 字体颜色(R, G, B)
  34.   HELP_outline = true                 # 描边(true / false)
  35.   HELP_shadow = false                 # 投影(true / false)
  36.   HELP_bold = false                   # 加粗(true / false)
  37.   HELP_italic = false                 # 斜体(true / false)
  38.   HELP_pixel = false                  # 像素字(true / false)
  39.   HELP_opacity = 255                  # 窗口的不透明度(0~255)
  40.   #----------------------------------------------------------------------------
  41.   # ● 菜单内窗口皮肤的统一设置
  42.   #----------------------------------------------------------------------------
  43.   SKIN = "Window"                     # 文件名
  44.   #----------------------------------------------------------------------------
  45.   # ● 窗口动画的统一设置
  46.   #----------------------------------------------------------------------------
  47.   TIME = 14                           # 动画播放的时间(帧)
  48.  
  49.   #----------------------------------------------------------------------------
  50.   # ● 系统背景墙纸设置
  51.   #----------------------------------------------------------------------------
  52.   # BACKGROUND = [R, G, B, O, blur]
  53.   # R/G/B : 色值
  54.   # O     : 不透明度
  55.   # blur  : 是否模糊图像(true / false)
  56.   #----------------------------------------------------------------------------
  57.   BACKGROUND = [16, 16, 16, 128, true]
  58.   #----------------------------------------------------------------------------
  59.   # ● 背景墙纸设置(替代系统背景墙纸)
  60.   #----------------------------------------------------------------------------
  61.   # WALLPAPER = "name"
  62.   # name :素材文件名  当为 nil 时,不显示墙纸
  63.   #----------------------------------------------------------------------------
  64.   WALLPAPER = nil
  65.   #----------------------------------------------------------------------------
  66.   # ● 立绘图片的设置                                                      new!!
  67.   #----------------------------------------------------------------------------
  68.   # ID => ["name", x, y, move, type, z],
  69.   # ID   :变量对应的序号
  70.   # name :素材文件名
  71.   # x/y  :横/纵 坐标
  72.   # move : 动画每一帧移动的距离
  73.   # type : 移入方式    :l 从左边移入   :r 从右边移入   nil 不移动
  74.   # z    : 立绘图片的Z值(背景墙纸的Z值为0,窗口的Z值为100)
  75.   #----------------------------------------------------------------------------
  76.   CG_VA = 10                          # 变量序号
  77.   CG = {0 => [nil, 0, 0, 2, :r, 10],  # 不显示
  78.         1 => ["Menu_CG(preview)", 0, 0, 4, :r, 10],
  79.         2 => ["Menu_CG2(preview)", 310, 51, 2, :l, 10],
  80.   }
  81.   #----------------------------------------------------------------------------
  82.   # ● 菜单指令窗口设定
  83.   #----------------------------------------------------------------------------
  84.   # COMMAND = [name, y, width, height, spacing]
  85.   # name    : 素材文件名
  86.   #           素材规格:三层,整体高度 36
  87.   #           ┌------┐ 12(头部)
  88.   #           ├      ┤ 12(中间部分根据height拉伸绘制)
  89.   #           └------┘ 12(尾部)
  90.   # y       : 指令窗口y轴(也是所有窗口离游戏窗口的间距)
  91.   # width   : 指令窗口的宽度
  92.   # height  : 指令窗口的高度
  93.   # spacing : 指令窗口的间隔距离
  94.   #----------------------------------------------------------------------------
  95.   COMMAND = ["Menu_Button", 32, 160, 40, 6]
  96.   #----------------------------------------------------------------------------
  97.   # ◎ 菜单的次背景图片
  98.   #----------------------------------------------------------------------------
  99.   # MENU_RIM = ["name", x, y, z]
  100.   # name :素材文件名  当为 nil 时,不显示图片
  101.   # x/y  :横/纵 坐标
  102.   # z    : 立绘图片的Z值(背景墙纸的Z值为0,窗口的Z值为100)
  103.   #----------------------------------------------------------------------------
  104.   MENU_RIM = ["Menu_Rim", 0, 0, 5]
  105.   #----------------------------------------------------------------------------
  106.   # ◎ 菜单指令内容设定
  107.   #----------------------------------------------------------------------------
  108.   # ·symbol内容请不要改动。
  109.   # ·想改变顺序,只要更改顺位的数值即可,
  110.   #   比如 2 1 0 3 4 => 实际显示:“存档”(不启用则跳过) “资料”“道具”……
  111.   # ·[名称]若为 nil 则读取默认设置 数据库用语 的内容
  112.   # ·[图标ID]若为 nil,则不显示
  113.   #----------------------------------------------------------------------------
  114.   BUTTON = {
  115.   #顺位 => [是否启用, 名称,  图标ID, 文字颜色 [R,   G,   B  ], symbol]
  116.     0   => [true,    "道具", 528,            [252, 244, 202], :item],
  117.     1   => [true,    "资料", 529,            [252, 244, 202], :key_item],
  118.     2   => [false,   "存档", 530,            [252, 244, 202], :save],
  119.     3   => [true,    "读档", 530,            [252, 244, 202], :continue],
  120.     4   => [true,     nil,   531,            [252, 244, 202], :game_end]
  121.   }
  122.  
  123.   #----------------------------------------------------------------------------
  124.   # ● 【物品界面】相关设定
  125.   #----------------------------------------------------------------------------
  126.   # ◎ 物品界面的次背景图片
  127.   #----------------------------------------------------------------------------
  128.   # ITEM_RIM = ["name", x, y, z]
  129.   # name :素材文件名  当为 nil 时,不显示图片
  130.   # x/y  :横/纵 坐标
  131.   # z    : 立绘图片的Z值(背景墙纸的Z值为0,窗口的Z值为100)
  132.   #----------------------------------------------------------------------------
  133.   ITEM_RIM = ["Menu_Rim", 0, 0, 5]
  134.   #----------------------------------------------------------------------------
  135.   # ◎ 物品窗口(左侧)
  136.   #----------------------------------------------------------------------------
  137.   # ITEMLIST = [width, line_number, opacity]
  138.   # width       : 左侧窗口的宽度,小于0时使用默认设置
  139.   # line_number : 帮助窗口的最大行数
  140.   # opacity     : 窗口的不透明度(0~255)
  141.   #----------------------------------------------------------------------------
  142.   ITEMLIST = [0, 4, 255]
  143.   #----------------------------------------------------------------------------
  144.   # ◎ 物品大图标窗口(右侧)
  145.   #----------------------------------------------------------------------------
  146.   # · 使用方法:在物品的备注栏写入 <BigIcon 文件名>
  147.   #----------------------------------------------------------------------------
  148.   BIGICON_Cache = "Graphics/System/Big_Icon/"    # 文件夹路径
  149.   #----------------------------------------------------------------------------
  150.   # BIGICON = [type, auto, x, y, width, height, opacity]
  151.   # type    : 是否启用,不启用时显示立绘(true / false)
  152.   # auto    : 是否启用窗口的默认设置, 启用时后面4个的调整无效(true / false)
  153.   # x/y     :横/纵 坐标
  154.   # width / height :窗口的宽度与高度
  155.   # opacity : 窗口的不透明度(0~255)
  156.   #----------------------------------------------------------------------------
  157.   BIGICON = [false, true, 330, 60, 286, 400, 0]
  158.  
  159.   #----------------------------------------------------------------------------
  160.   # ● 【存档界面】相关设定
  161.   #----------------------------------------------------------------------------
  162.   FILES_NAME = "Saves"       # 存放存档文件的文件夹名称
  163.   FILES_MAX = 16             # 存档数量最大值
  164.   SAVING = "储存完毕"         # 存档完毕时的显示文字
  165.   LOADING = "读取完毕"        # 读档完毕时的显示文字
  166.   FILES_RETURN = false       # 存档完毕时是否返回地图(true / false)
  167.   #----------------------------------------------------------------------------
  168.   # ◎ 存档界面的次背景图片
  169.   #----------------------------------------------------------------------------
  170.   # FILES_RIM = ["name", x, y, z]
  171.   # name :素材文件名  当为 nil 时,不显示图片
  172.   # x/y  :横/纵 坐标
  173.   # z    : 立绘图片的Z值(背景墙纸的Z值为0,窗口的Z值为100)
  174.   #----------------------------------------------------------------------------
  175.   FILES_RIM = ["Menu_Rim", 0, 0, 5]
  176.   #----------------------------------------------------------------------------
  177.   # ◎ 存档选项窗口(左侧)
  178.   #----------------------------------------------------------------------------
  179.   # FILESLIST = [width, visible_max, icon, color, opacity, help]
  180.   # width       : 左侧窗口的宽度,小于0时使用默认设置
  181.   # visible_max : 一页内可显示的存档数目
  182.   # icon        : 图标的ID,格式:[无存档的ID, 有存档的ID]
  183.   # color       : 文字的颜色 [项目名称的颜色, 时间的颜色](R, G, B)
  184.   # opacity     : 窗口的不透明度(0~255)
  185.   # help        : 是否显示上方的帮助窗口(true / false)
  186.   #----------------------------------------------------------------------------
  187.   FILESLIST = [0, 5, [226, 230], [[242, 234, 160], [255, 255, 255]], 255, true]
  188.   #----------------------------------------------------------------------------
  189.   # ◎ 存档详细窗口(右侧)                                                new!!
  190.   #----------------------------------------------------------------------------
  191.   # FILES_DETAILS = [type, auto, x, y, width, height, opacity]
  192.   # type    : 是否启用,不启用时显示立绘(true / false)
  193.   # auto    : 是否启用窗口的默认设置, 启用时后面4个的调整无效(true / false)
  194.   # x/y     :横/纵 坐标
  195.   # width / height :窗口的宽度与高度
  196.   # opacity : 窗口的不透明度(0~255)
  197.   #----------------------------------------------------------------------------
  198.   FILES_DETAILS = [true, true, 0, 0, 286, 400, 255]
  199.   #----------------------------------------------------------------------------
  200.   # · 存档详细窗口的项目设定
  201.   #----------------------------------------------------------------------------
  202.   FILES_DETAILS_DATA = {
  203.   # 0 => 存档截图
  204.   #      (宽高设定最好是32的倍数&偶数, rgss版很吃效率,尺寸越大效率越低)
  205.   #      [是否显示, x横坐标, y纵坐标, 宽度, 高度]
  206.     0 => [true,     20,      36,       224,  160],
  207.   # 1 => 角色行走图
  208.   #      [是否显示, x横坐标, y纵坐标, 居中, 行走图间距]
  209.     1 => [true,     34,     352,     true,  8],
  210.   # 2 => 角色脸谱
  211.   #      [是否显示, x横坐标, y纵坐标, 居中, 是否显示脸谱底图]
  212.     2 => [true,     16,     226,     true, true],
  213.   # 3 => 底图图片
  214.   #      [是否显示, 无存档时也显示, 图片名称, x横坐标, y纵坐标, 宽度, 高度]
  215.     3 => [true,     true,         "FilesBG", 0,       0,      264,  360]
  216.   }
  217.  
  218.   #----------------------------------------------------------------------------
  219.   # ● 粒子元件设置(需要<MOG_Particles>脚本)
  220.   #----------------------------------------------------------------------------
  221.   # PARTICLE = ["name", num, x, y, angle, blend, z]
  222.   # name  :素材文件名  当为 nil 时,不显示粒子
  223.   # num   :粒子的数量
  224.   # x/y   :横向/纵向 偏移值
  225.   # angle :旋转角度 0 ~ 360
  226.   # blend :合成方式 0 = 普通, 1 = 加法, 2 = 减法
  227.   # z     : 立绘图片的Z值(背景墙纸的Z值为0,窗口的Z值为100)
  228.   #----------------------------------------------------------------------------
  229.   PARTICLE = ["Menu_Particles", 10, 2, 3, 2, 1, 5]
  230.  
  231. end

最佳答案

查看完整内容

最直接的思路是把菜单界面和物品界面相关的代码删掉,这样就会回到默认的设定,只留下重新设定的存档界面 不过这里面还有场景背景之类的设定可能需要小改动才能保证不报错或者达到你想要的效果

Lv3.寻梦者

梦石
0
星屑
1183
在线时间
100 小时
注册时间
2022-1-14
帖子
29
2
发表于 2022-2-25 21:54:14 | 只看该作者
最直接的思路是把菜单界面和物品界面相关的代码删掉,这样就会回到默认的设定,只留下重新设定的存档界面
不过这里面还有场景背景之类的设定可能需要小改动才能保证不报错或者达到你想要的效果

评分

参与人数 2星屑 +50 +2 收起 理由
yz3440080 + 1 谢谢您!!我去琢磨一下!!
alexncf125 + 50 + 1 我很赞同

查看全部评分

回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
857
在线时间
99 小时
注册时间
2019-1-22
帖子
57
3
发表于 2022-2-25 23:03:55 | 只看该作者
我记得这个是有自带案例文件的,你可以在案例里找事件指令。

点评

噗噗~答错了~  发表于 2022-2-25 23:34
那一天总会到来:一个人再也想不起曾让自己痛苦不堪的是什么,连痛苦都枯萎凋零了。

——赫尔曼·黑塞
——精神与爱欲
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1256
在线时间
387 小时
注册时间
2014-4-25
帖子
42
4
 楼主| 发表于 2022-2-25 23:51:56 | 只看该作者
无心寒涵 发表于 2022-2-25 23:03
我记得这个是有自带案例文件的,你可以在案例里找事件指令。

谢谢您,不过已经找过了,没有看到单独使用相关的设置T T……
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 14:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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