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

Project1

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

[已经解决] (已解决)关于截图存档的截图缩放问题

[复制链接]

Lv5.捕梦者

梦石
18
星屑
13650
在线时间
1715 小时
注册时间
2017-1-12
帖子
1790

开拓者

跳转到指定楼层
1
发表于 2021-2-22 21:43:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 火锅深处 于 2021-2-25 19:37 编辑

已解决,感谢2楼大佬!
====================================
目前看过的截图存档都是按原尺寸截图然后抠下来一小块放在存档里的,能不能改成整个窗口截图然后,把整个窗口以原尺寸25%的比例放上去?
前置脚本
截图存档脚本

Lv4.逐梦者

梦石
0
星屑
6160
在线时间
793 小时
注册时间
2019-1-20
帖子
204
2
发表于 2021-2-25 11:44:48 | 只看该作者
本帖最后由 srwjrevenger 于 2021-2-25 11:49 编辑


你如果不介意上面红圈的东西去掉了,可以用这个
中间是
WW=0.8 HH=0.6 WHRATE=1.0
后面的是你想要的
WW=1.0 HH=1.0 WHRATE=0.25
之所以会去掉红圈的字,
是因为这个改法会缩小模糊文字,
即使放大字体也是一样,
要是有其他人会改这里当然是最好了... ...

  1. #==============================================================================
  2. # ■ スクリーンショット式セーブ画面 2018/10/18 by 莞爾の草 ver.0.02
  3. #==============================================================================
  4. =begin
  5. 【必要スクリプト素材】
  6. ?BitmapSave
  7. ([url]https://drive.google.com/drive/folders/1RhqfpUm0A3Dw6J74LCZRdud5g1_et65s[/url])

  8. 【対応を確認している他のスクリプト素材】
  9. ?RGSS3/セーブデータ上限解除(コミュ太郎氏)

  10. あまり複雑なことはしてないのでだいたいの素材とは競合
  11. しないんじゃないかと 思います←ここ重要
  12. =end

  13. module KNS
  14.   module SaveFileVocab
  15.     CurrentMap = "現在地"

  16.     Money = "所持金"
  17.    
  18.    WW=0.8 ### 图片对应方向的显示比例
  19.     HH=0.6 ###
  20.     IMAGE_WH =[Graphics.width*WW,Graphics.height*HH] ###
  21.     WHRATE=1.0 ### 图片的缩放比例
  22.    
  23.     ArrowSprite = nil #セーブファイルを指す下向き矢印の画像名です。
  24.                       #"画像名"と入れるとGraphics/systemに入っている画像名の
  25.                       #画像が読み込まれ、nilを入れると自動生成されます。
  26.   end
  27. end
  28. ($imported ||= {})[:kanji_screenshot_save] = true

  29. module DataManager
  30.   #--------------------------------------------------------------------------
  31.   # ● セーブファイルの最大数
  32.   #--------------------------------------------------------------------------
  33.   if $imported[:cs_save_free]
  34.     #コミュ太郎氏のセーブデータ上限解除がある場合用です
  35.     def self.savefile_max
  36.       return 40
  37.     end
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● セーブヘッダの作成?拡張
  41.   #--------------------------------------------------------------------------
  42.   def self.make_save_header
  43.     header = {}
  44.     header[:characters] = $game_party.characters_for_savefile
  45.     header[:playtime_s] = $game_system.playtime_s
  46.     header[:map_name]  = $game_map.display_name
  47.     header[:party_gold]  = $game_party.gold
  48.     header[:screenshot] = $game_temp.save_screenshot.is_a?(Bitmap) ?
  49.     Cache.ss_into_hash($game_temp.save_screenshot) : nil
  50.     header
  51.   end
  52. end

  53. module Cache
  54.   #--------------------------------------------------------------------------
  55.   # ● スクリーンショットの名前
  56.   #--------------------------------------------------------------------------
  57.   def self.savefile_name(index)
  58.     return "\\savefileno#{index}"
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● キャッシュを削除
  62.   #--------------------------------------------------------------------------
  63.   def self.delete_cache(path)
  64.     @cache[path] = nil
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ● ハッシュをビットマップに復元する
  68.   #--------------------------------------------------------------------------
  69.   def self.bitmap_save_ss(hash,index)
  70.     @cache ||= {}
  71.     return @cache[savefile_name(index)] = Bitmap.by_hash(hash)
  72.   end
  73.   def self.no_data_bitmap
  74.     key = "\\ss_no_data"
  75.     @cache ||= {}
  76.     if !@cache[key] || @cache[key].disposed?
  77.       sp = Bitmap.new(*save_ss_wh)
  78.       sp.gradient_fill_rect(sp.rect, Color.new(*[80]*3), Color.new(*[20]*3), true)
  79.       sp.draw_text(sp.rect,"", 1)###
  80.       @cache[key] = sp
  81.     end
  82.     return @cache[key]
  83.   end
  84.   def self.save_ss_wh
  85.     return KNS::SaveFileVocab::IMAGE_WH
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● SSをハッシュにコンバートする
  89.   #--------------------------------------------------------------------------
  90.   def self.ss_into_hash(bitmap)
  91.     return bitmap.data_to_hash
  92.   end
  93. end


  94. class Game_Temp
  95.   attr_accessor :save_screenshot
  96.   #--------------------------------------------------------------------------
  97.   # ● セーブプレビュー用BMP
  98.   #--------------------------------------------------------------------------
  99.   def create_save_preview
  100.     w, h = Cache.save_ss_wh
  101.     @save_screenshot.dispose if @save_screenshot
  102.     @save_screenshot = Bitmap.new(w, h)
  103.     @black_color ||= Color.new(0,0,0)
  104.     @save_screenshot.fill_rect(@save_screenshot.rect, @black_color)
  105.     rect = Rect.new($game_player.screen_x - w/2, $game_player.screen_y - h/2 - 16, w, h)
  106.     @save_screenshot.blt(0, 0, Graphics.snap_to_bitmap, rect)
  107.   end
  108. end


  109. class Scene_Map
  110.   #--------------------------------------------------------------------------
  111.   # ◎ 終了処理
  112.   #--------------------------------------------------------------------------
  113.   alias kns_terminate terminate
  114.   def terminate
  115.     $game_temp.create_save_preview
  116.     kns_terminate
  117.   end
  118. end


  119. class Game_Party
  120.   #--------------------------------------------------------------------------
  121.   # ● セーブファイル表示用のキャラクター画像情報
  122.   #--------------------------------------------------------------------------
  123.   def characters_for_savefile
  124.     battle_members[0..3].collect do |actor|
  125.       [actor.character_name, actor.character_index,
  126.       actor.face_name, actor.face_index, actor.name, actor.level]
  127.     end
  128.   end
  129. end

  130. class Window_SaveStatus < Window_Base
  131.   include KNS::SaveFileVocab
  132.   #--------------------------------------------------------------------------
  133.   # ● 水平線の描画
  134.   #--------------------------------------------------------------------------
  135.   def draw_horz_line(y)
  136.     line_y = y + line_height / 2 - 1
  137.     contents.fill_rect(0, line_y, contents_width, 2, line_color)
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● 水平線の色を取得
  141.   #--------------------------------------------------------------------------
  142.   def line_color
  143.     color = normal_color
  144.     color.alpha = 48
  145.     color
  146.   end
  147.   def refresh(index)
  148.     contents.clear
  149.     draw_text_o(4, 0, Vocab::File + " #{index + 1}")
  150.     draw_horz_line(14)
  151.     header = DataManager.load_header(index)
  152.     return unless header
  153.     begin
  154.       draw_text_o(0, 0, header[:playtime_s], 2)
  155.       party = header[:characters]
  156.       y = 32
  157.       party.each_with_index {|a, i| draw_character(*a[0..1], 48 * i+128, 120) if a}
  158.       if a = party[0]
  159.         draw_face(*a[2..3], 0, y)
  160.         draw_text_o(104, y, a[4])
  161.         draw_level(a[5], 232, y)
  162.       end
  163.       size = contents.text_size(Vocab.currency_unit)
  164.       draw_text_o(-size.width-4, y + line_height, header[:party_gold], 2)
  165.       draw_text_o(0, y + line_height * 3, header[:map_name], 2)
  166.       x = 320
  167.       change_color(system_color)
  168.       draw_text_o(0, y + line_height, Vocab.currency_unit, 2)
  169.       draw_text(x, y, contents_width-x, line_height, Money)
  170.       draw_text(x, y + line_height * 2, contents_width-x, line_height, CurrentMap)
  171.       change_color(normal_color)
  172.     rescue
  173.     end
  174.   end
  175.   def draw_text_o(x, y, text, align=0)
  176.     draw_text(x, y, contents_width, line_height, text, align)
  177.   end
  178.   def draw_level(level, x, y)
  179.     change_color(system_color)
  180.     draw_text(x, y, 32, line_height, Vocab::level_a)
  181.     change_color(normal_color)
  182.     draw_text(x + 32, y, 24, line_height, level, 2)
  183.   end
  184. end


  185. class Sprite_SaveFile < Sprite
  186.   attr_accessor   :t_x, :t_y, :t_zoom, :t_opacity, :count
  187.   def initialize(viewport=nil, index)
  188.     super(viewport)
  189.     @file_index = index
  190.     self.bitmap = Bitmap.new(*Cache.save_ss_wh)
  191.     self.y = @t_y = 120
  192.     self.x = Graphics.width / 2
  193.     self.ox, self.oy = Cache.save_ss_wh[0] / 2, Cache.save_ss_wh[1] / 2
  194.     @t_x = 0
  195.     @t_zoom = 1
  196.     @t_opacity = 255
  197.     @count = 0
  198.     refresh
  199.   end
  200.   def count_max
  201.     return 9
  202.   end
  203.   def update
  204.     unless @count == count_max
  205.       @count += 1
  206.       rate = @count / count_max.to_f
  207.       self.x = (@t_x - self.x) * rate + self.x
  208.       self.y = (@t_y - self.y) * rate + self.y
  209.       self.zoom_x = self.zoom_y = (@t_zoom - self.zoom_x) * rate + self.zoom_x
  210.       self.zoom_x=self.zoom_y *=KNS::SaveFileVocab::WHRATE###
  211.       self.opacity = (@t_opacity - self.opacity) * rate + self.opacity
  212.     end
  213.     super
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ● リフレッシュ
  217.   #--------------------------------------------------------------------------
  218.   def refresh
  219.     self.bitmap.clear
  220.     black = Color.new(0,0,0)
  221.     self.bitmap.font.out_color = black
  222.     draw_ss_image
  223.    self.bitmap.draw_text(4, 0, 200, 24, "")###
  224.     draw_playtime(0, self.bitmap.height - 24, self.bitmap.width - 4, 2)
  225.     draw_line_image(black)
  226.   end
  227.   def draw_ss_image
  228.     header = DataManager.load_header(@file_index)
  229.     bmp = Bitmap.by_hash(header[:screenshot]) rescue Cache.no_data_bitmap
  230.     self.bitmap.blt(0, 0, bmp, bmp.rect)
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● プレイ時間の描画
  234.   #--------------------------------------------------------------------------
  235.   def draw_playtime(x, y, width, align)
  236.     header = DataManager.load_header(@file_index)
  237.     return unless header
  238.     self.bitmap.draw_text(x, y, width, 24, "", 2)###
  239.   end
  240.   def draw_line_image(color)
  241.     rect = Rect.new(0,0,self.bitmap.width, 1)
  242.     self.bitmap.fill_rect(rect, color)
  243.     rect.y = self.bitmap.height - 1
  244.     self.bitmap.fill_rect(rect, color)
  245.     rect.y = 0
  246.     rect.width = 1
  247.     rect.height = self.bitmap.height
  248.     self.bitmap.fill_rect(rect, color)
  249.     rect.x = self.bitmap.width - 1
  250.     self.bitmap.fill_rect(rect, color)
  251.   end
  252. end

  253. #==============================================================================
  254. # ■ Scene_File
  255. #------------------------------------------------------------------------------
  256. #  セーブ画面とロード画面の共通処理を行うクラスです。
  257. #==============================================================================

  258. class Scene_File
  259.   #--------------------------------------------------------------------------
  260.   # ● セーブファイルビューポートの作成
  261.   #--------------------------------------------------------------------------
  262.   def create_savefile_viewport
  263.     @savefile_viewport = Viewport.new
  264.     @savefile_viewport.z = 500
  265.     h = 148
  266.     @save_status = Window_SaveStatus.new(0,Graphics.height - h, Graphics.width, h)
  267.   end
  268.   #--------------------------------------------------------------------------
  269.   # ● セーブファイル選択の更新
  270.   #--------------------------------------------------------------------------
  271.   def update
  272.     super
  273.     update_savefile_selection
  274.     @savefile_sprites.each {|sprite| sprite.update }
  275.     @a_now = (@a_now + 1) % a_max
  276.     @arrow_sprite.y = @a_base_y + 5*Math.cos(Math::PI * @a_now / a_max.to_f * 2)
  277.   end
  278.   #--------------------------------------------------------------------------
  279.   # ● カーソル位置が画面内になるようにスクロール
  280.   #--------------------------------------------------------------------------
  281.   def ensure_cursor_visible
  282.     w = Graphics.width / 2
  283.     @savefile_sprites.each_with_index do |sprite, i|
  284.       j = -(@index - i)
  285.       k = Math::PI * j / item_max.to_f * 2
  286.       sprite.t_x = w * Math.sin(k) + w
  287.       sprite.t_y = 40 * Math.cos(k) + 150
  288.       n = item_max/2
  289.       sprite.z = (n-(i - @index).abs).abs
  290.       sprite.t_zoom =  1 + (sprite.z - n) / 15.0
  291.       sprite.t_opacity = 255 * sprite.t_zoom
  292.       sprite.count = 0
  293.     end
  294.   end
  295.   #--------------------------------------------------------------------------
  296.   # ● セーブファイルウィンドウの作成
  297.   #--------------------------------------------------------------------------
  298.   def create_savefile_windows
  299.     create_arrow_sprite
  300.     @savefile_sprites = Array.new(item_max) {|i| Sprite_SaveFile.new(@savefile_viewport, i) }
  301.   end
  302.   def create_arrow_sprite
  303.     @a_now = 0
  304.     @a_base_y = 80
  305.     @arrow_sprite = Sprite.new(@savefile_viewport)
  306.     @arrow_sprite.y = @a_base_y
  307.     @arrow_sprite.z = 200

  308.     name = KNS::SaveFileVocab::ArrowSprite
  309.     if name
  310.       @arrow_sprite.bitmap = Cache.system(name)
  311.       w = @arrow_sprite.bitmap.width
  312.     else
  313.       w = 26
  314.       @arrow_sprite.bitmap = Bitmap.new(w, w*2)
  315.       red = Color.new(255, 255, 0)
  316.       rect = Rect.new(0,0,0,2)
  317.       w.times do |y|
  318.         rect.x = y
  319.         rect.y = y*2
  320.         rect.width = w - y * 2
  321.         @arrow_sprite.bitmap.fill_rect(rect,red)
  322.       end
  323.     end
  324.     @arrow_sprite.x = (Graphics.width - w) / 2
  325.   end
  326.   def a_max
  327.     return 180
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ● 選択状態の初期化
  331.   #--------------------------------------------------------------------------
  332.   def init_selection
  333.     @index = first_savefile_index
  334.     @save_status.refresh(@index)
  335.     ensure_cursor_visible
  336.   end
  337.   #--------------------------------------------------------------------------
  338.   # ● カーソルの更新
  339.   #--------------------------------------------------------------------------
  340.   def update_cursor
  341.     last_index = @index
  342.     cursor_down if Input.repeat?(:RIGHT)
  343.     cursor_up if Input.repeat?(:LEFT)
  344.     cursor_pagedown   if Input.trigger?(:R)
  345.     cursor_pageup     if Input.trigger?(:L)
  346.     if @index != last_index
  347.       Sound.play_cursor
  348.       @save_status.refresh(@index)
  349.       ensure_cursor_visible
  350.     end
  351.   end
  352.   #--------------------------------------------------------------------------
  353.   # ● 終了処理
  354.   #--------------------------------------------------------------------------
  355.   def terminate
  356.     super
  357.     @arrow_sprite.bitmap.dispose
  358.     @arrow_sprite.dispose
  359.     @savefile_sprites.each do |sprite|
  360.       sprite.bitmap.dispose
  361.       sprite.dispose
  362.     end
  363.   end
  364.   #--------------------------------------------------------------------------
  365.   # ● カーソルを下に移動
  366.   #--------------------------------------------------------------------------
  367.   def cursor_down
  368.     @index = (@index + 1) % item_max
  369.   end
  370.   #--------------------------------------------------------------------------
  371.   # ● カーソルを上に移動
  372.   #--------------------------------------------------------------------------
  373.   def cursor_up
  374.     @index = (@index - 1 + item_max) % item_max
  375.   end
  376.   #--------------------------------------------------------------------------
  377.   # ● カーソルを 1 ページ後ろに移動
  378.   #--------------------------------------------------------------------------
  379.   def cursor_pagedown
  380.     @index = (@index + item_max/2) % item_max
  381.   end
  382.   #--------------------------------------------------------------------------
  383.   # ● カーソルを 1 ページ前に移動
  384.   #--------------------------------------------------------------------------
  385.   def cursor_pageup
  386.     @index = (@index - item_max/2) % item_max
  387.   end
  388. end
复制代码

评分

参与人数 3星屑 +100 +2 收起 理由
VIPArcher + 100 我很赞同
火锅深处 + 1 谢谢!这个完全可以的!!
alexncf125 + 1 塞糖

查看全部评分


提高解答机会的方法:
看一下对应版本的帮助文件 看天气预报说今天不下雨
改变问题为更有可能的或常见的 如:天气自动变化下雨→天气系统 果然不准呀~
使用论坛的搜索功能查找相关问题 好丧啊... ...想看女装
清楚说明实际上你想解决的问题  想看坛友的女装  
脚本自己有改过的地方要标明  不要遮脸的
脚本有问题但不是默认的要全部贴出来 大胆点,尽情发
三包原则:包有BUG,包甩锅,包咕咕
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1107
在线时间
126 小时
注册时间
2020-11-27
帖子
51
3
发表于 2021-2-25 12:28:17 | 只看该作者

  1. #==============================================================================
  2. # [PS0]截图存档
  3. #      Window_SaveFile_Plus
  4. #------------------------------------------------------------------------------
  5. #     一种带有截图的存档,同时可以自定义存档数量。
  6. #==============================================================================
  7. # [核心脚本]
  8. #    - 快速储存Bitmap的Marshal         By 柳之一
  9. #------------------------------------------------------------------------------
  10. # [更新记录]
  11. #    - 2012.02.16 By 各种压力的猫君
  12. #      * 修正地图边缘时截图不完整的错误
  13. #    - 2012.01.28 By 各种压力的猫君
  14. #      * 去掉效率较差的双线性缩放算法;
  15. #      * 新增存档管理功能(F5键,复制/移动/删除存档)
  16. #    - 2011.12.27 By 各种压力的猫君
  17. #      * 补上截图阴影;
  18. #      * 新增“不缩放”截图(推荐使用,尤其是大分辨率);
  19. #      * 修正选择不存在的存档时存档列表窗口卡死以及奇怪的SE;
  20. #      * 新增“存档中”提示窗口、覆盖存档提示、删除存档功能(Z键,对应键盘D)
  21. #    - 2011.12.26 By 各种压力的猫君
  22. #      * 功能齐全的测试版
  23. #    - 2011.12.16 By 各种压力的猫君
  24. #      * 移植至RGSS3,遵循PS0协议;
  25. #      * 丰富自定义选项,整合双线性插值算法精简版
  26. #    - 2008.05.26 By 沉影不器
  27. #      * 蓝本(VX新截图存档)
  28. #------------------------------------------------------------------------------
  29. # [使用方法]
  30. #    - 删除原Scene_File、Window_SaveFile 并将本脚本插入到原Scene_File位置。
  31. #    - 或者直接将本脚本插入到MAIN以上,并确保本脚本位于上述两个脚本以下。
  32. #==============================================================================
  33. $_PS0 = {} if $_PS0 == nil  
  34. $_PS0["Window_SaveFile_Plus"] = 20120216
  35. #==============================================================================
  36. # [PS0] 通用配置模块  
  37. #==============================================================================
  38. module PS0
  39.   module Window_SaveFile_Plus

  40.     # 最大存档数(范围正整数)
  41.     MAX_SAVE = 20

  42.     # 存档目录(默认值 "Saves/";根目录 "")
  43.     SAVE_DIR = "Saves/"   

  44.     # 无存档时显示的文字
  45.     NO_DATA  = "无存档"

  46.     # 保存时显示的信息
  47.     SAVE_NOW = "正在存档中..."

  48.     # 复制存档时的帮助文字
  49.     HELP_COPY = "要复制到哪个存档?"

  50.     # 移动存档时的帮助文字
  51.     HELP_MOVE = "要移动到哪个存档?"

  52.     # 是否显示存档中窗口(true:显示;false:不显示)
  53.     # - 分辨率较大时建议显示
  54.     SHOW_SAVE_NOW = false

  55.     # 截图缩放使用的插值算法
  56.     # - "NN" 最邻近(速度最快,质量最差,RM默认算法)
  57.     # - "NZ" 不缩放(速度快,质量好,以主角为中心切边,非全屏)
  58.     Zoom_Type = "NZ"

  59.     # 双线性插值能获得更好的截图缩放质量,但所需时间较最邻近插值更长。
  60.     # 缩略图尺寸(范围整数,单位像素)
  61.     # - VA默认分辨率(544×416)推荐使用340×260
  62.     # - VA最大分辨率(640×480)推荐使用425×325
  63.     # - 本脚本兼容分辨率解放,窗口大小将自动计算。
  64.     #   请自行计算截图分辨率,注意要确保宽高比一致,
  65.     #   若使用“不缩放”模式则可以不保持一致。
  66.     Thumbnail_Width  = 340  # 宽度
  67.     Thumbnail_Height = 260  # 高度

  68.     # 缩略图位置微调(范围整数,单位像素)
  69.     Thumbnail_ox = -2    # 横向
  70.     Thumbnail_oy = -2-32 # 纵向

  71.     # 各窗口切换时的渐变帧数
  72.     TRANS_DURATION = 5

  73.   end
  74. end
  75. #==============================================================================
  76. # [核心脚本] 快速储存Bitmap的Marshal By 柳之一
  77. #==============================================================================
  78. class Font
  79.   def marshal_dump
  80.   end
  81.   def marshal_load(obj)
  82.   end
  83. end
  84. class Bitmap
  85.   RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  86.   RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  87.   def _dump(limit)
  88.     data = "rgba" * width * height
  89.     RtlMoveMemory_pi.call(data, address, data.length)
  90.     [width, height, Zlib::Deflate.deflate(data)].pack("LLa*")
  91.   end
  92.   def self._load(str)
  93.     w, h, zdata = str.unpack("LLa*")
  94.     b = self.new(w, h)
  95.     RtlMoveMemory_ip.call(b.address, Zlib::Inflate.inflate(zdata), w * h * 4)
  96.     return b
  97.   end
  98.   def address
  99.     buffer, ad = "rgba", object_id * 2 + 16
  100.     RtlMoveMemory_pi.call(buffer, ad, 4)
  101.     ad = buffer.unpack("L")[0] + 8
  102.     RtlMoveMemory_pi.call(buffer, ad, 4)
  103.     ad = buffer.unpack("L")[0] + 16
  104.     RtlMoveMemory_pi.call(buffer, ad, 4)
  105.     return buffer.unpack("L")[0]
  106.   end
  107. end
  108. #==============================================================================
  109. # ■ Game_Temp
  110. #==============================================================================
  111. class Game_Temp
  112.   attr_accessor :save_bitmap
  113.   attr_accessor :save_snapshoot
  114.   alias new_initialize initialize
  115.   def initialize
  116.     new_initialize
  117.     @save_bitmap = Bitmap.new(1, 1)
  118.     @save_snapshoot = Bitmap.new(1, 1)
  119.   end
  120. end
  121. #==============================================================================
  122. # ■ SceneManager
  123. #==============================================================================
  124. module SceneManager
  125.   def self.snapshot_for_save
  126.     $game_temp.save_bitmap = Graphics.snap_to_bitmap
  127.     unless FileTest.exist?(PS0::Window_SaveFile_Plus::SAVE_DIR)
  128.       Dir.mkdir(PS0::Window_SaveFile_Plus::SAVE_DIR)
  129.     end
  130.   end
  131. end
  132. #==============================================================================
  133. # ■ Scene_Map
  134. #==============================================================================
  135. class Scene_Map < Scene_Base
  136.   alias save_terminate terminate
  137.   def terminate
  138.     SceneManager.snapshot_for_save
  139.     save_terminate
  140.   end
  141. end
  142. #==============================================================================
  143. # ■ DataManager
  144. #==============================================================================
  145. module DataManager
  146.   def self.save_file_exists?
  147.     !Dir.glob(PS0::Window_SaveFile_Plus::SAVE_DIR + 'Save*.rvdata2').empty?
  148.   end
  149.   def self.make_filename(index)
  150.     sprintf(PS0::Window_SaveFile_Plus::SAVE_DIR + "Save%02d.rvdata2", index + 1)
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● セーブヘッダの作成
  154.   #--------------------------------------------------------------------------
  155.   def self.make_save_header
  156.     d_rect = Rect.new(0, 0, PS0::Window_SaveFile_Plus::Thumbnail_Width,
  157.                             PS0::Window_SaveFile_Plus::Thumbnail_Height)
  158.     case PS0::Window_SaveFile_Plus::Zoom_Type
  159.     when "NN"
  160.       s_rect = $game_temp.save_bitmap.rect
  161.       $game_temp.save_snapshoot = Bitmap.new(d_rect.width, d_rect.height)
  162.       $game_temp.save_snapshoot.stretch_blt(d_rect, $game_temp.save_bitmap, s_rect)
  163.     when "NZ"
  164.       x = [$game_player.screen_x - d_rect.width/2, 0].max
  165.       x = [x, Graphics.width - d_rect.width].min
  166.       y = [$game_player.screen_y - d_rect.height/2, 0].max
  167.       y = [y, Graphics.height - d_rect.height].min
  168.       s_rect = Rect.new(x, y, d_rect.width, d_rect.height)
  169.       $game_temp.save_snapshoot = Bitmap.new(d_rect.width, d_rect.height)
  170.       $game_temp.save_snapshoot.blt(0, 0, $game_temp.save_bitmap, s_rect)
  171.     end
  172.     header = {}
  173.     header[:characters] = $game_party.characters_for_savefile
  174.     header[:playtime_s] = $game_system.playtime_s
  175.     header[:snapshoot]  = $game_temp.save_snapshoot
  176.     header
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● セーブの実行
  180.   #--------------------------------------------------------------------------
  181.   def self.save_game(index)
  182.     saving_window = Window_Saving.new
  183.     Graphics.update
  184.     begin
  185.       save_game_without_rescue(index)
  186.     rescue
  187.        delete_save_file(index)
  188.        false
  189.     end
  190.     saving_window.dispose
  191.     return true
  192.   end
  193. end
  194. #==============================================================================
  195. # ■ Window_Yes_Or_No
  196. #------------------------------------------------------------------------------
  197. #  提供“是”、“否”两个选项的窗口(替换、删除存档用)
  198. #==============================================================================
  199. class Window_Yes_Or_No < Window_HorzCommand
  200.   #--------------------------------------------------------------------------
  201.   # ● オブジェクト初期化
  202.   #--------------------------------------------------------------------------
  203.   def initialize(yes, no)
  204.     @yes = yes
  205.     @no = no
  206.     super(130, 0)
  207.     self.visible = false
  208.     self.active = false
  209.     @index = 0
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● 桁数の取得
  213.   #--------------------------------------------------------------------------
  214.   def col_max
  215.     return 2
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● コマンドリストの作成
  219.   #--------------------------------------------------------------------------
  220.   def make_command_list
  221.     add_command(@yes,   :yes)
  222.     add_command(@no,    :cancel)
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ● 決定ボタンが押されたときの処理
  226.   #--------------------------------------------------------------------------
  227.   def process_ok
  228.     Input.update
  229.     call_ok_handler
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● 按下取消键时的处理
  233.   #--------------------------------------------------------------------------
  234.   def process_cancel
  235.     Input.update
  236.     call_cancel_handler
  237.   end
  238.   #--------------------------------------------------------------------------
  239.   # ● 启用窗口
  240.   #--------------------------------------------------------------------------
  241.   def activate
  242.     temp = self.y + self.height - Graphics.height
  243.     if temp > 0
  244.       self.y -= (temp + 12)
  245.     end
  246.     self.active = true
  247.     self
  248.   end
  249. end
  250. #==============================================================================
  251. # ■ Window_Saving
  252. #------------------------------------------------------------------------------
  253. #  显示保存信息的窗口
  254. #==============================================================================
  255. class Window_Saving < Window_Base
  256.   #--------------------------------------------------------------------------
  257.   # ● オブジェクト初期化
  258.   #--------------------------------------------------------------------------
  259.   def initialize
  260.     w = PS0::Window_SaveFile_Plus::SAVE_NOW.length * 16 + 32
  261.     x = (Graphics.width - w)/2
  262.     y = (Graphics.height - fitting_height(1))/2
  263.     super(x, y, w, fitting_height(1))
  264.     self.visible = PS0::Window_SaveFile_Plus::SHOW_SAVE_NOW
  265.     draw_text_ex(4, 0, PS0::Window_SaveFile_Plus::SAVE_NOW)
  266.   end
  267. end
  268. #==============================================================================
  269. # ■ Window_SaveManagerCommand
  270. #------------------------------------------------------------------------------
  271. #  存档管理窗口
  272. #==============================================================================
  273. class Window_SaveManagerCommand < Window_Command
  274.   #--------------------------------------------------------------------------
  275.   # ● 初始化对象
  276.   #--------------------------------------------------------------------------
  277.   def initialize(*args)
  278.     @copy, @move, @delete, @cancel = args[0..3]
  279.     super(130, 0)
  280.     self.visible = false
  281.     self.active = false
  282.     @index = 0
  283.   end
  284.   #--------------------------------------------------------------------------
  285.   # ● 获取窗口的宽度
  286.   #--------------------------------------------------------------------------
  287.   def window_width
  288.     return 100
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ● 获取项目数
  292.   #--------------------------------------------------------------------------
  293.   def item_max
  294.     return 4
  295.   end
  296.   #--------------------------------------------------------------------------
  297.   # ● 生成指令列表
  298.   #--------------------------------------------------------------------------
  299.   def make_command_list
  300.     add_command(@copy,   :copy  )
  301.     add_command(@move,   :move  )
  302.     add_command(@delete, :delete)
  303.     add_command(@cancel, :cancel)
  304.   end
  305.   #--------------------------------------------------------------------------
  306.   # ● 按下确定键时的处理
  307.   #--------------------------------------------------------------------------
  308.   def process_ok
  309.     Input.update
  310.     call_ok_handler
  311.   end
  312.   #--------------------------------------------------------------------------
  313.   # ● 启用窗口
  314.   #--------------------------------------------------------------------------
  315.   def activate
  316.     temp = self.y + self.height - Graphics.height
  317.     if temp > 0
  318.       self.y -= (temp + 12)
  319.     end
  320.     self.active = true
  321.     self
  322.   end
  323. end
  324. #==============================================================================
  325. # ■ Window_FileCommand
  326. #------------------------------------------------------------------------------
  327. #  截图存档左侧的选择窗口。
  328. #==============================================================================
  329. class Window_FileCommand < Window_Command
  330.   #--------------------------------------------------------------------------
  331.   # ● オブジェクト初期化
  332.   #--------------------------------------------------------------------------
  333.   def initialize
  334.     super(0, 0)
  335.   end
  336.   #--------------------------------------------------------------------------
  337.   # ● ウィンドウ幅の取得
  338.   #--------------------------------------------------------------------------
  339.   def window_height
  340.     return Graphics.height-fitting_height(1)
  341.   end
  342.   #--------------------------------------------------------------------------
  343.   # ● 表示行数の取得
  344.   #--------------------------------------------------------------------------
  345.   def visible_line_number
  346.     item_max
  347.   end
  348.   #--------------------------------------------------------------------------
  349.   # ● コマンドリストの作成
  350.   #--------------------------------------------------------------------------
  351.   def make_command_list
  352.     add_main_commands
  353.   end
  354.   #--------------------------------------------------------------------------
  355.   # ● 主要コマンドをリストに追加
  356.   #--------------------------------------------------------------------------
  357.   def add_main_commands
  358.     for i in 1..PS0::Window_SaveFile_Plus::MAX_SAVE
  359.       if i < 10
  360.         text = Vocab::File + " 0" + i.to_s
  361.       else
  362.         text = Vocab::File + " " + i.to_s
  363.       end
  364.       add_command(text, :file)
  365.     end
  366.   end
  367.   #--------------------------------------------------------------------------
  368.   # ● 決定ボタンが押されたときの処理
  369.   #--------------------------------------------------------------------------
  370.   def process_ok
  371.   end
  372. end
  373. #==============================================================================
  374. # ■ Window_SaveFile
  375. #------------------------------------------------------------------------------
  376. #  セーブ画面およびロード画面で表示する、セーブファイルのウィンドウです。
  377. #==============================================================================
  378. class Window_SaveFile < Window_Base
  379.   #--------------------------------------------------------------------------
  380.   # ● オブジェクト初期化
  381.   #     index : セーブファイルのインデックス
  382.   #--------------------------------------------------------------------------
  383.   def initialize(index)
  384.     super(160, 0, Graphics.width-160, Graphics.height-fitting_height(1))
  385.     @file_index = index
  386.     @selected = true
  387.     refresh
  388.   end
  389.   #--------------------------------------------------------------------------
  390.   # ● リフレッシュ
  391.   #--------------------------------------------------------------------------
  392.   def refresh
  393.     contents.clear
  394.     change_color(normal_color)
  395.     w = (self.width-PS0::Window_SaveFile_Plus::Thumbnail_Width-16)/2
  396.     h = (self.height-PS0::Window_SaveFile_Plus::Thumbnail_Height-16)/2
  397.     width  = w + PS0::Window_SaveFile_Plus::Thumbnail_ox
  398.     height = h + PS0::Window_SaveFile_Plus::Thumbnail_oy
  399.     draw_shadow(width+5, height+5)
  400.     draw_text((self.width-32-PS0::Window_SaveFile_Plus::NO_DATA.length*16)/2,
  401.               self.height/2-32, PS0::Window_SaveFile_Plus::NO_DATA.length*32,
  402.               line_height, PS0::Window_SaveFile_Plus::NO_DATA)
  403.     draw_party_characters(32, Graphics.height-fitting_height(1)-32)
  404.     draw_playtime(-10, contents.height - line_height-10, contents.width - 4, 2)
  405.     draw_snapshoot(width, height)
  406.   end
  407.   #--------------------------------------------------------------------------
  408.   # ● パーティキャラの描画
  409.   #--------------------------------------------------------------------------
  410.   def draw_party_characters(x, y)
  411.     header = DataManager.load_header(@file_index)
  412.     return unless header
  413.     header[:characters].each_with_index do |data, i|
  414.       draw_character(data[0], data[1], x + i * 48, y)
  415.     end
  416.   end
  417.   #--------------------------------------------------------------------------
  418.   # ● プレイ時間の描画
  419.   #--------------------------------------------------------------------------
  420.   def draw_playtime(x, y, width, align)
  421.     header = DataManager.load_header(@file_index)
  422.     return unless header
  423.     draw_text(x, y, width, line_height, header[:playtime_s], 2)
  424.   end
  425.   #--------------------------------------------------------------------------
  426.   # ● 绘制截图
  427.   #--------------------------------------------------------------------------
  428.   def draw_snapshoot(x, y)
  429.     header = DataManager.load_header(@file_index)
  430.     return unless header
  431.     bitmap = header[:snapshoot]
  432.     contents.blt(x, y, bitmap, bitmap.rect)
  433.     bitmap.dispose
  434.   end
  435.   #--------------------------------------------------------------------------
  436.   # ● 绘制阴影
  437.   #--------------------------------------------------------------------------
  438.   def draw_shadow(x, y)
  439.     header = DataManager.load_header(@file_index)
  440.     return unless header
  441.     contents.fill_rect(x, y, PS0::Window_SaveFile_Plus::Thumbnail_Width,
  442.                              PS0::Window_SaveFile_Plus::Thumbnail_Height, Color.new(0, 0, 0))
  443.     contents.blur
  444.   end
  445. end
  446. #==============================================================================
  447. # ■ Scene_File
  448. #------------------------------------------------------------------------------
  449. #  セーブ画面とロード画面の共通処理を行うクラスです。
  450. #==============================================================================
  451. class Scene_File < Scene_MenuBase
  452.   #--------------------------------------------------------------------------
  453.   # ● 開始処理
  454.   #--------------------------------------------------------------------------
  455.   def start
  456.     super
  457.     create_help_window
  458.     create_savefile_viewport
  459.     create_command_window
  460.     create_savefile_window
  461.     create_manager_window
  462.     create_replace_window
  463.     create_delete_window
  464.   end
  465.   #--------------------------------------------------------------------------
  466.   # ● 終了処理
  467.   #--------------------------------------------------------------------------
  468.   def terminate
  469.     super
  470.     @savefile_viewport.dispose
  471.     @savefile_window.dispose
  472.     @command_window.dispose
  473.     @window_manager.dispose
  474.     @window_replace.dispose
  475.     @window_delete.dispose
  476.   end
  477.   #--------------------------------------------------------------------------
  478.   # ● フレーム更新
  479.   #--------------------------------------------------------------------------
  480.   def update
  481.     super
  482.     update_savefile_selection
  483.   end
  484.   #--------------------------------------------------------------------------
  485.   # ● 创建替换窗口
  486.   #--------------------------------------------------------------------------
  487.   def create_replace_window
  488.     @window_replace = Window_Yes_Or_No.new("替换", "取消")
  489.     @window_replace.set_handler(:yes,    method(:do_replace))
  490.     @window_replace.set_handler(:cancel, method(:do_cancel))
  491.   end
  492.   #--------------------------------------------------------------------------
  493.   # ● 创建删除窗口
  494.   #--------------------------------------------------------------------------
  495.   def create_delete_window
  496.     @window_delete  = Window_Yes_Or_No.new("删除", "取消")
  497.     @window_delete.set_handler(:yes,    method(:do_delete))
  498.     @window_delete.set_handler(:cancel, method(:do_return_manager))
  499.     @window_delete.x += 40
  500.   end
  501.   #--------------------------------------------------------------------------
  502.   # ● 创建管理窗口
  503.   #--------------------------------------------------------------------------
  504.   def create_manager_window
  505.     @window_manager = Window_SaveManagerCommand.new("复制", "移动", "删除", "取消")
  506.     @window_manager.set_handler(:copy  , method(:on_copy?))
  507.     @window_manager.set_handler(:move  , method(:on_move?))
  508.     @window_manager.set_handler(:delete, method(:on_delete?))
  509.     @window_manager.set_handler(:cancel, method(:do_cancel))
  510.   end
  511.   #--------------------------------------------------------------------------
  512.   # ● ヘルプウィンドウの作成
  513.   #--------------------------------------------------------------------------
  514.   def create_help_window
  515.     @help_window = Window_Help.new(1)
  516.     @help_window.set_text(help_window_text)
  517.   end
  518.   #--------------------------------------------------------------------------
  519.   # ● ヘルプウィンドウのテキストを取得
  520.   #--------------------------------------------------------------------------
  521.   def help_window_text
  522.     return ""
  523.   end
  524.   #--------------------------------------------------------------------------
  525.   # ● セーブファイルビューポートの作成
  526.   #--------------------------------------------------------------------------
  527.   def create_savefile_viewport
  528.     @savefile_viewport = Viewport.new
  529.     @savefile_viewport.rect.y = @help_window.height
  530.     @savefile_viewport.rect.height -= @help_window.height
  531.   end
  532.   #--------------------------------------------------------------------------
  533.   # ● セーブファイルウィンドウの作成
  534.   #--------------------------------------------------------------------------
  535.   def create_savefile_window
  536.     @savefile_window = Window_SaveFile.new(@index)
  537.     @savefile_window.viewport = @savefile_viewport
  538.   end
  539.   #--------------------------------------------------------------------------
  540.   # ● 生成存档列表窗口
  541.   #--------------------------------------------------------------------------
  542.   def create_command_window
  543.     @command_window = Window_FileCommand.new
  544.     @command_window.index = first_savefile_index
  545.     @index = @command_window.index
  546.     @command_window.viewport = @savefile_viewport
  547.     @command_window.set_handler(:file,      method(:on_savefile_ok))
  548.   end
  549.   #--------------------------------------------------------------------------
  550.   # ● セーブファイル選択の更新
  551.   #--------------------------------------------------------------------------
  552.   def update_savefile_selection
  553.     if @source_index != nil
  554.       if Input.trigger?(:C)
  555.         if @index == @source_index
  556.           Sound.play_buzzer
  557.         elsif FileTest.exist?(DataManager.make_filename(@index))
  558.           Graphics.freeze
  559.           @command_window.deactivate
  560.           @window_replace.y = 72 + @index * 24
  561.           @window_replace.activate
  562.           @window_replace.visible = true
  563.           @window_replace.refresh
  564.           Sound.play_ok
  565.           Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  566.         else
  567.           return on_copy_ok
  568.         end
  569.       elsif Input.trigger?(:B)
  570.         return do_return_manager
  571.       end
  572.     else
  573.       if Input.trigger?(:C)
  574.         if self.is_a?(Scene_Save) and FileTest.exist?(DataManager.make_filename(@index))
  575.           Graphics.freeze
  576.           @command_window.deactivate
  577.           @window_replace.y = 72 + @index * 24
  578.           @window_replace.activate
  579.           @window_replace.visible = true
  580.           @window_replace.refresh
  581.           Sound.play_ok
  582.           Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  583.         else
  584.           return on_savefile_ok
  585.         end
  586.       elsif Input.trigger?(:B)
  587.         return on_savefile_cancel
  588.       elsif Input.trigger?(:F5)
  589.         unless @window_manager.active == true or
  590.                @window_delete.active == true or
  591.                @window_replace.active == true
  592.           return on_manager?
  593.         end
  594.       end
  595.     end
  596.     @need_refresh = true if @index != @command_window.index
  597.     if @need_refresh
  598.       Graphics.freeze
  599.       @index = @command_window.index
  600.       @savefile_window.dispose
  601.       create_savefile_window
  602.       @need_refresh = false
  603.       Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  604.     end
  605.   end
  606.   #--------------------------------------------------------------------------
  607.   # ● セーブファイル[決定]
  608.   #--------------------------------------------------------------------------
  609.   def on_savefile_ok
  610.   end
  611.   #--------------------------------------------------------------------------
  612.   # ● セーブファイル[キャンセル]
  613.   #--------------------------------------------------------------------------
  614.   def on_savefile_cancel
  615.     Sound.play_cancel
  616.     return_scene
  617.   end
  618.   #--------------------------------------------------------------------------
  619.   # ● セーブファイル[決定]
  620.   #--------------------------------------------------------------------------
  621.   def on_copy_ok
  622.     Graphics.freeze
  623.     source_name = DataManager.make_filename(@source_index)
  624.     new_name    = DataManager.make_filename(@index)
  625.     case @source_type
  626.     when "copy"
  627.       # 复制存档文件(API)
  628.       Win32API.new('kernel32',"CopyFileA",'ppl','').call(source_name,new_name,0)
  629.     when "move"
  630.       # 重命名存档
  631.       File.rename(source_name, new_name)
  632.     end
  633.     # 返回
  634.     @help_window.set_text(help_window_text)
  635.     @source_index = nil
  636.     do_return_savelist
  637.   end
  638.   #--------------------------------------------------------------------------
  639.   # ● セーブファイル[复制]
  640.   #--------------------------------------------------------------------------
  641.   def on_copy?
  642.     Graphics.freeze
  643.     @help_window.set_text(PS0::Window_SaveFile_Plus::HELP_COPY)
  644.     @source_index = @index
  645.     @source_type = "copy"
  646.     do_return_savelist
  647.   end
  648.   #--------------------------------------------------------------------------
  649.   # ● セーブファイル[移动]
  650.   #--------------------------------------------------------------------------
  651.   def on_move?
  652.     Graphics.freeze
  653.     @help_window.set_text(PS0::Window_SaveFile_Plus::HELP_MOVE)
  654.     @source_index = @index
  655.     @source_type = "move"
  656.     do_return_savelist
  657.   end
  658.   #--------------------------------------------------------------------------
  659.   # ● セーブファイル[管理]
  660.   #--------------------------------------------------------------------------
  661.   def on_manager?
  662.     if FileTest.exist?(DataManager.make_filename(@index))
  663.       Graphics.freeze
  664.       @command_window.deactivate
  665.       @window_manager.y = 72 + @index * 24
  666.       @window_manager.activate
  667.       @window_manager.visible = true
  668.       @window_manager.refresh
  669.       Sound.play_ok
  670.       Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  671.     else
  672.       Sound.play_buzzer
  673.     end
  674.   end
  675.   #--------------------------------------------------------------------------
  676.   # ● セーブファイル[删除]
  677.   #--------------------------------------------------------------------------
  678.   def on_delete?
  679.     Graphics.freeze
  680.     @window_manager.deactivate
  681.     @command_window.deactivate
  682.     @window_delete.y = 72 + 72 + @index * 24
  683.     @window_delete.activate
  684.     @window_delete.visible = true
  685.     @window_delete.refresh
  686.     Sound.play_ok
  687.     Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  688.   end
  689.   #--------------------------------------------------------------------------
  690.   # ● 删除
  691.   #--------------------------------------------------------------------------
  692.   def do_delete
  693.     Graphics.freeze
  694.     File.delete(DataManager.make_filename(@index))
  695.     @window_delete.index  = 0
  696.     @window_manager.index = 0
  697.     @window_delete.visible  = false
  698.     @window_manager.visible = false
  699.     @window_delete.deactivate
  700.     @window_manager.deactivate
  701.     @command_window.activate
  702.     @need_refresh = true
  703.     Sound.play_save
  704.     if DataManager.save_file_exists?
  705.       Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  706.     else
  707.       return_scene
  708.     end
  709.   end
  710.   #--------------------------------------------------------------------------
  711.   # ● 替换
  712.   #--------------------------------------------------------------------------
  713.   def do_replace
  714.     Graphics.freeze
  715.     if @source_index != nil
  716.       return on_copy_ok
  717.     else
  718.       return on_savefile_ok
  719.     end
  720.     @window_replace.visible = false
  721.     @window_replace.deactivate
  722.     @need_refresh = true
  723.   end
  724.   #--------------------------------------------------------------------------
  725.   # ● 取消
  726.   #--------------------------------------------------------------------------
  727.   def do_cancel
  728.     Graphics.freeze
  729.     Sound.play_cancel
  730.     @window_delete.index  = 0
  731.     @window_replace.index = 0
  732.     @window_manager.index = 0
  733.     @window_delete.visible  = false
  734.     @window_replace.visible = false
  735.     @window_manager.visible = false
  736.     @window_delete.deactivate
  737.     @window_replace.deactivate
  738.     @window_manager.deactivate
  739.     @command_window.activate
  740.     Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  741.   end
  742.   #--------------------------------------------------------------------------
  743.   # ● 返回管理菜单
  744.   #--------------------------------------------------------------------------
  745.   def do_return_manager
  746.     Graphics.freeze
  747.     @help_window.set_text(help_window_text)
  748.     @command_window.index = @source_index unless @source_index == nil
  749.     @source_index = nil
  750.     @source_type = nil
  751.     @command_window.deactivate
  752.     @window_delete.index  = 0
  753.     @window_replace.index = 0
  754.     @window_delete.visible  = false
  755.     @window_replace.visible = false
  756.     @window_delete.deactivate
  757.     @window_replace.deactivate
  758.     @window_manager.y = 72 + @index * 24
  759.     @window_manager.activate
  760.     @window_manager.visible = true
  761.     @window_manager.refresh
  762.     Sound.play_cancel
  763.     Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  764.   end
  765.   #--------------------------------------------------------------------------
  766.   # ● 返回文件列表(复制、移动 用)
  767.   #--------------------------------------------------------------------------
  768.   def do_return_savelist
  769.     @window_manager.visible = false
  770.     @window_manager.deactivate
  771.     @command_window.activate
  772.     @need_refresh = true
  773.     Sound.play_ok
  774.   end
  775. end
  776. #==============================================================================
  777. # [PS0] End of Script
  778. #==============================================================================
复制代码

评分

参与人数 1+1 收起 理由
火锅深处 + 1 这个我之前没注意是可以缩放的,谢谢补充!.

查看全部评分

回复 支持 0 反对 1

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-13 20:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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