Project1

标题: 鼠标兼容问题 [打印本页]

作者: Doolet    时间: 2024-3-8 18:24
标题: 鼠标兼容问题
所有的鼠标脚本都不能兼容这个[PS0]截图存档,有什么解决办法吗?






#==============================================================================
# [PS0]截图存档
#      Window_SaveFile_Plus
#------------------------------------------------------------------------------
#     一种带有截图的存档,同时可以自定义存档数量。
#==============================================================================
# [核心脚本]
#    - 快速储存Bitmap的Marshal         By 柳之一
#------------------------------------------------------------------------------
# [更新记录]
#    - 2012.01.28 By 各种压力的猫君
#      * 去掉效率较差的双线性缩放算法;
#      * 新增存档管理功能(F5键,复制/移动/删除存档)
#    - 2011.12.27 By 各种压力的猫君
#      * 补上截图阴影;
#      * 新增“不缩放”截图(推荐使用,尤其是大分辨率);
#      * 修正选择不存在的存档时存档列表窗口卡死以及奇怪的SE;
#      * 新增“存档中”提示窗口、覆盖存档提示、删除存档功能(Z键,对应键盘D)
#    - 2011.12.26 By 各种压力的猫君
#      * 功能齐全的测试版
#    - 2011.12.16 By 各种压力的猫君
#      * 移植至RGSS3,遵循PS0协议;
#      * 丰富自定义选项,整合双线性插值算法精简版
#    - 2008.05.26 By 沉影不器
#      * 蓝本(VX新截图存档)
#------------------------------------------------------------------------------
# [使用方法]
#    - 将本脚本插入到MAIN以上
#    - 删除原Scene_File、Window_SaveFile(或确保本脚本位于上述两个脚本以下)
#==============================================================================
$_PS0 = {} if $_PS0 == nil  
$_PS0["Window_SaveFile_Plus"] = 20120128
#==============================================================================
# [PS0] 通用配置模块  
#==============================================================================
module PS0
  module Window_SaveFile_Plus
   
    # 最大存档数(范围正整数)
    MAX_SAVE = 99
   
    # 存档目录(默认值 "Saves/";根目录 "")
    SAVE_DIR = "Saves/"   
   
    # 无存档时显示的文字
    NO_DATA  = "NO DATA"
   
    # 保存时显示的信息
    SAVE_NOW = "存档中..."
   
    # 复制存档时的帮助文字
    HELP_COPY = "要复制到哪个位置?"
   
    # 移动存档时的帮助文字
    HELP_MOVE = "要移动到哪个位置?"
   
    # 是否显示存档中窗口(true:显示;false:不显示)
    # - 分辨率较大时建议显示
    SHOW_SAVE_NOW = true
   
    # 截图缩放使用的插值算法
    # - "NN" 最邻近(速度最快,质量最差,RM默认算法)
    # - "NZ" 不缩放(速度快,质量好,以主角为中心切边,非全屏)
    Zoom_Type = "NZ"
   
    # 双线性插值能获得更好的截图缩放质量,但所需时间较最邻近插值更长。
    # 缩略图尺寸(范围整数,单位像素)
    # - VA默认分辨率(544×416)推荐使用340×260
    # - VA最大分辨率(640×480)推荐使用425×325
    # - 本脚本兼容分辨率解放,窗口大小将自动计算。
    #   请自行计算截图分辨率,注意要确保宽高比一致,
    #   若使用“不缩放”模式则可以不保持一致。
    Thumbnail_Width  = 340  # 宽度
    Thumbnail_Height = 260  # 高度
   
    # 缩略图位置微调(范围整数,单位像素)
    Thumbnail_ox = -2    # 横向
    Thumbnail_oy = -2-32 # 纵向
   
    # 各窗口切换时的渐变帧数
    TRANS_DURATION = 5
   
  end
end
#==============================================================================
# [核心脚本] 快速储存Bitmap的Marshal By 柳之一
#==============================================================================
class Font
  def marshal_dump
  end
  def marshal_load(obj)
  end
end
class Bitmap
  RtlMoveMemory_pi = Win32API.new('kernel32', 'RtlMoveMemory', 'pii', 'i')
  RtlMoveMemory_ip = Win32API.new('kernel32', 'RtlMoveMemory', 'ipi', 'i')
  def _dump(limit)
    data = "rgba" * width * height
    RtlMoveMemory_pi.call(data, address, data.length)
    [width, height, Zlib::Deflate.deflate(data)].pack("LLa*")
  end
  def self._load(str)
    w, h, zdata = str.unpack("LLa*")
    b = self.new(w, h)
    RtlMoveMemory_ip.call(b.address, Zlib::Inflate.inflate(zdata), w * h * 4)
    return b
  end
  def address
    buffer, ad = "rgba", object_id * 2 + 16
    RtlMoveMemory_pi.call(buffer, ad, 4)
    ad = buffer.unpack("L")[0] + 8
    RtlMoveMemory_pi.call(buffer, ad, 4)
    ad = buffer.unpack("L")[0] + 16
    RtlMoveMemory_pi.call(buffer, ad, 4)
    return buffer.unpack("L")[0]
  end
end
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
  attr_accessor :save_bitmap
  attr_accessor :save_snapshoot
  alias new_initialize initialize
  def initialize
    new_initialize
    @save_bitmap = Bitmap.new(1, 1)
    @save_snapshoot = Bitmap.new(1, 1)
  end
end
#==============================================================================
# ■ SceneManager
#==============================================================================
module SceneManager
  def self.snapshot_for_save
    $game_temp.save_bitmap = Graphics.snap_to_bitmap
    unless FileTest.exist?(PS0::Window_SaveFile_Plus::SAVE_DIR)
      Dir.mkdir(PS0::Window_SaveFile_Plus::SAVE_DIR)
    end
  end
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map < Scene_Base
  alias save_terminate terminate
  def terminate
    SceneManager.snapshot_for_save
    save_terminate
  end
end
#==============================================================================
# ■ DataManager
#==============================================================================
module DataManager
  def self.save_file_exists?
    !Dir.glob(PS0::Window_SaveFile_Plus::SAVE_DIR + 'Save*.rvdata2').empty?
  end
  def self.make_filename(index)
    sprintf(PS0::Window_SaveFile_Plus::SAVE_DIR + "Save%02d.rvdata2", index + 1)
  end
  #--------------------------------------------------------------------------
  # ● セーブヘッダの作成
  #--------------------------------------------------------------------------
  def self.make_save_header
    d_rect = Rect.new(0, 0, PS0::Window_SaveFile_Plus::Thumbnail_Width,
                            PS0::Window_SaveFile_Plus::Thumbnail_Height)
    case PS0::Window_SaveFile_Plus::Zoom_Type
    when "NN"
      s_rect = $game_temp.save_bitmap.rect
      $game_temp.save_snapshoot = Bitmap.new(d_rect.width, d_rect.height)
      $game_temp.save_snapshoot.stretch_blt(d_rect, $game_temp.save_bitmap, s_rect)
    when "NZ"
      x = [[$game_player.screen_x - d_rect.width/2, 0].max, Graphics.width].min
      y = [[$game_player.screen_y - d_rect.height/2, 0].max, Graphics.height].min
      s_rect = Rect.new(x, y, d_rect.width, d_rect.height)
      $game_temp.save_snapshoot = Bitmap.new(d_rect.width, d_rect.height)
      $game_temp.save_snapshoot.blt(0, 0, $game_temp.save_bitmap, s_rect)
    end
    header = {}
    header[:characters] = $game_party.characters_for_savefile
    header[:playtime_s] = $game_system.playtime_s
    header[:snapshoot]  = $game_temp.save_snapshoot
    header
  end
  #--------------------------------------------------------------------------
  # ● セーブの実行
  #--------------------------------------------------------------------------
  def self.save_game(index)
    saving_window = Window_Saving.new
    Graphics.update
    begin
      save_game_without_rescue(index)
    rescue
       delete_save_file(index)
       false
    end
    saving_window.dispose
    return true
  end
end
#==============================================================================
# ■ Window_Yes_Or_No
#------------------------------------------------------------------------------
#  提供“是”、“否”两个选项的窗口(替换、删除存档用)
#==============================================================================
class Window_Yes_Or_No < Window_HorzCommand
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize(yes, no)
    @yes = yes
    @no = no
    super(130, 0)
    self.visible = false
    self.active = false
    @index = 0
  end
  #--------------------------------------------------------------------------
  # ● 桁数の取得
  #--------------------------------------------------------------------------
  def col_max
    return 2
  end
  #--------------------------------------------------------------------------
  # ● コマンドリストの作成
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(@yes,   :yes)
    add_command(@no,    :cancel)
  end
  #--------------------------------------------------------------------------
  # ● 決定ボタンが押されたときの処理
  #--------------------------------------------------------------------------
  def process_ok
    Input.update
    call_ok_handler
  end
  #--------------------------------------------------------------------------
  # ● 按下取消键时的处理
  #--------------------------------------------------------------------------
  def process_cancel
    Input.update
    call_cancel_handler
  end
  #--------------------------------------------------------------------------
  # ● 启用窗口
  #--------------------------------------------------------------------------
  def activate
    temp = self.y + self.height - Graphics.height
    if temp > 0
      self.y -= (temp + 12)
    end
    self.active = true
    self
  end
end
#==============================================================================
# ■ Window_Saving
#------------------------------------------------------------------------------
#  显示保存信息的窗口
#==============================================================================
class Window_Saving < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    w = PS0::Window_SaveFile_Plus::SAVE_NOW.length * 16 + 32
    x = (Graphics.width - w)/2
    y = (Graphics.height - fitting_height(1))/2
    super(x, y, w, fitting_height(1))
    self.visible = PS0::Window_SaveFile_Plus::SHOW_SAVE_NOW
    draw_text_ex(4, 0, PS0::Window_SaveFile_Plus::SAVE_NOW)
  end
end
#==============================================================================
# ■ Window_SaveManagerCommand
#------------------------------------------------------------------------------
#  存档管理窗口
#==============================================================================
class Window_SaveManagerCommand < Window_Command
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(*args)
    @copy, @move, @delete, @cancel = args[0..3]
    super(130, 0)
    self.visible = false
    self.active = false
    @index = 0
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 100
  end
  #--------------------------------------------------------------------------
  # ● 获取项目数
  #--------------------------------------------------------------------------
  def item_max
    return 4
  end
  #--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(@copy,   :copy  )
    add_command(@move,   :move  )
    add_command(@delete, :delete)
    add_command(@cancel, :cancel)
  end
  #--------------------------------------------------------------------------
  # ● 按下确定键时的处理
  #--------------------------------------------------------------------------
  def process_ok
    Input.update
    call_ok_handler
  end
  #--------------------------------------------------------------------------
  # ● 启用窗口
  #--------------------------------------------------------------------------
  def activate
    temp = self.y + self.height - Graphics.height
    if temp > 0
      self.y -= (temp + 12)
    end
    self.active = true
    self
  end
end
#==============================================================================
# ■ Window_FileCommand
#------------------------------------------------------------------------------
#  截图存档左侧的选择窗口。
#==============================================================================
class Window_FileCommand < Window_Command
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ幅の取得
  #--------------------------------------------------------------------------
  def window_height
    return Graphics.height-fitting_height(1)
  end
  #--------------------------------------------------------------------------
  # ● 表示行数の取得
  #--------------------------------------------------------------------------
  def visible_line_number
    item_max
  end
  #--------------------------------------------------------------------------
  # ● コマンドリストの作成
  #--------------------------------------------------------------------------
  def make_command_list
    add_main_commands
  end
  #--------------------------------------------------------------------------
  # ● 主要コマンドをリストに追加
  #--------------------------------------------------------------------------
  def add_main_commands
    for i in 1..PS0::Window_SaveFile_Plus::MAX_SAVE
      if i < 10
        text = Vocab::File + " 0" + i.to_s
      else
        text = Vocab::File + " " + i.to_s
      end
      add_command(text, :file)
    end
  end
  #--------------------------------------------------------------------------
  # ● 決定ボタンが押されたときの処理
  #--------------------------------------------------------------------------
  def process_ok
  end
end
#==============================================================================
# ■ Window_SaveFile
#------------------------------------------------------------------------------
#  セーブ画面およびロード画面で表示する、セーブファイルのウィンドウです。
#==============================================================================
class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #     index : セーブファイルのインデックス
  #--------------------------------------------------------------------------
  def initialize(index)
    super(160, 0, Graphics.width-160, Graphics.height-fitting_height(1))
    @file_index = index
    @selected = true
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    change_color(normal_color)
    w = (self.width-PS0::Window_SaveFile_Plus::Thumbnail_Width-16)/2
    h = (self.height-PS0::Window_SaveFile_Plus::Thumbnail_Height-16)/2
    width  = w + PS0::Window_SaveFile_Plus::Thumbnail_ox
    height = h + PS0::Window_SaveFile_Plus::Thumbnail_oy
    draw_shadow(width+5, height+5)
    draw_text((self.width-32-PS0::Window_SaveFile_Plus::NO_DATA.length*16)/2,
              self.height/2-32, PS0::Window_SaveFile_Plus::NO_DATA.length*32,
              line_height, PS0::Window_SaveFile_Plus::NO_DATA)
    draw_party_characters(32, Graphics.height-fitting_height(1)-32)
    draw_playtime(-10, contents.height - line_height-10, contents.width - 4, 2)
    draw_snapshoot(width, height)
  end
  #--------------------------------------------------------------------------
  # ● パーティキャラの描画
  #--------------------------------------------------------------------------
  def draw_party_characters(x, y)
    header = DataManager.load_header(@file_index)
    return unless header
    header[:characters].each_with_index do |data, i|
      draw_character(data[0], data[1], x + i * 48, y)
    end
  end
  #--------------------------------------------------------------------------
  # ● プレイ時間の描画
  #--------------------------------------------------------------------------
  def draw_playtime(x, y, width, align)
    header = DataManager.load_header(@file_index)
    return unless header
    draw_text(x, y, width, line_height, header[:playtime_s], 2)
  end
  #--------------------------------------------------------------------------
  # ● 绘制截图
  #--------------------------------------------------------------------------
  def draw_snapshoot(x, y)
    header = DataManager.load_header(@file_index)
    return unless header
    bitmap = header[:snapshoot]
    contents.blt(x, y, bitmap, bitmap.rect)
    bitmap.dispose
  end
  #--------------------------------------------------------------------------
  # ● 绘制阴影
  #--------------------------------------------------------------------------
  def draw_shadow(x, y)
    header = DataManager.load_header(@file_index)
    return unless header
    contents.fill_rect(x, y, PS0::Window_SaveFile_Plus::Thumbnail_Width,
                             PS0::Window_SaveFile_Plus::Thumbnail_Height, Color.new(0, 0, 0))
    contents.blur
  end
end
#==============================================================================
# ■ Scene_File
#------------------------------------------------------------------------------
#  セーブ画面とロード画面の共通処理を行うクラスです。
#==============================================================================
class Scene_File < Scene_MenuBase
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    create_help_window
    create_savefile_viewport
    create_command_window
    create_savefile_window
    create_manager_window
    create_replace_window
    create_delete_window
  end
  #--------------------------------------------------------------------------
  # ● 終了処理
  #--------------------------------------------------------------------------
  def terminate
    super
    @savefile_viewport.dispose
    @savefile_window.dispose
    @command_window.dispose
    @window_manager.dispose
    @window_replace.dispose
    @window_delete.dispose
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    update_savefile_selection
  end
  #--------------------------------------------------------------------------
  # ● 创建替换窗口
  #--------------------------------------------------------------------------
  def create_replace_window
    @window_replace = Window_Yes_Or_No.new("覆盖", "取消")
    @window_replace.set_handler(:yes,    method(:do_replace))
    @window_replace.set_handler(:cancel, method(:do_cancel))
  end
  #--------------------------------------------------------------------------
  # ● 创建删除窗口
  #--------------------------------------------------------------------------
  def create_delete_window
    @window_delete  = Window_Yes_Or_No.new("删除", "取消")
    @window_delete.set_handler(:yes,    method(:do_delete))
    @window_delete.set_handler(:cancel, method(:do_return_manager))
    @window_delete.x += 40
  end
  #--------------------------------------------------------------------------
  # ● 创建管理窗口
  #--------------------------------------------------------------------------
  def create_manager_window
    @window_manager = Window_SaveManagerCommand.new("复制", "移动", "删除", "取消")
    @window_manager.set_handler(:copy  , method(:on_copy?))
    @window_manager.set_handler(:move  , method(:on_move?))
    @window_manager.set_handler(:delete, method(:on_delete?))
    @window_manager.set_handler(:cancel, method(:do_cancel))
  end
  #--------------------------------------------------------------------------
  # ● ヘルプウィンドウの作成
  #--------------------------------------------------------------------------
  def create_help_window
    @help_window = Window_Help.new(1)
    @help_window.set_text(help_window_text)
  end
  #--------------------------------------------------------------------------
  # ● ヘルプウィンドウのテキストを取得
  #--------------------------------------------------------------------------
  def help_window_text
    return ""
  end
  #--------------------------------------------------------------------------
  # ● セーブファイルビューポートの作成
  #--------------------------------------------------------------------------
  def create_savefile_viewport
    @savefile_viewport = Viewport.new
    @savefile_viewport.rect.y = @help_window.height
    @savefile_viewport.rect.height -= @help_window.height
  end
  #--------------------------------------------------------------------------
  # ● セーブファイルウィンドウの作成
  #--------------------------------------------------------------------------
  def create_savefile_window
    @savefile_window = Window_SaveFile.new(@index)
    @savefile_window.viewport = @savefile_viewport
  end
  #--------------------------------------------------------------------------
  # ● 生成存档列表窗口
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_FileCommand.new
    @command_window.index = first_savefile_index
    @index = @command_window.index
    @command_window.viewport = @savefile_viewport
    @command_window.set_handler(:file,      method(:on_savefile_ok))
  end
  #--------------------------------------------------------------------------
  # ● セーブファイル選択の更新
  #--------------------------------------------------------------------------
  def update_savefile_selection
    if @source_index != nil
      if Input.trigger?(:C)
        if @index == @source_index
          Sound.play_buzzer
        elsif FileTest.exist?(DataManager.make_filename(@index))
          Graphics.freeze
          @command_window.deactivate
          @window_replace.y = 72 + @index * 24
          @window_replace.activate
          @window_replace.visible = true
          @window_replace.refresh
          Sound.play_ok
          Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
        else
          return on_copy_ok
        end
      elsif Input.trigger?(:B)
        return do_return_manager
      end
    else
      if Input.trigger?(:C)
        if self.is_a?(Scene_Save) and FileTest.exist?(DataManager.make_filename(@index))
          Graphics.freeze
          @command_window.deactivate
          @window_replace.y = 72 + @index * 24
          @window_replace.activate
          @window_replace.visible = true
          @window_replace.refresh
          Sound.play_ok
          Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
        else
          return on_savefile_ok
        end
      elsif Input.trigger?(:B)
        return on_savefile_cancel
      elsif Input.trigger?(:F5)
        unless @window_manager.active == true or
               @window_delete.active == true or
               @window_replace.active == true
          return on_manager?
        end
      end
    end
    @need_refresh = true if @index != @command_window.index
    if @need_refresh
      Graphics.freeze
      @index = @command_window.index
      @savefile_window.dispose
      create_savefile_window
      @need_refresh = false
      Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
    end
  end
  #--------------------------------------------------------------------------
  # ● セーブファイル[決定]
  #--------------------------------------------------------------------------
  def on_savefile_ok
  end
  #--------------------------------------------------------------------------
  # ● セーブファイル[キャンセル]
  #--------------------------------------------------------------------------
  def on_savefile_cancel
    Sound.play_cancel
    return_scene
  end
  #--------------------------------------------------------------------------
  # ● セーブファイル[決定]
  #--------------------------------------------------------------------------
  def on_copy_ok
    Graphics.freeze
    source_name = DataManager.make_filename(@source_index)
    new_name    = DataManager.make_filename(@index)
    case @source_type
    when "copy"
      # 复制存档文件(API)
      Win32API.new('kernel32',"CopyFileA",'ppl','').call(source_name,new_name,0)
    when "move"
      # 重命名存档
      File.rename(source_name, new_name)
    end
    # 返回
    @help_window.set_text(help_window_text)
    @source_index = nil
    do_return_savelist
  end
  #--------------------------------------------------------------------------
  # ● セーブファイル[复制]
  #--------------------------------------------------------------------------
  def on_copy?
    Graphics.freeze
    @help_window.set_text(PS0::Window_SaveFile_Plus::HELP_COPY)
    @source_index = @index
    @source_type = "copy"
    do_return_savelist
  end
  #--------------------------------------------------------------------------
  # ● セーブファイル[移动]
  #--------------------------------------------------------------------------
  def on_move?
    Graphics.freeze
    @help_window.set_text(PS0::Window_SaveFile_Plus::HELP_MOVE)
    @source_index = @index
    @source_type = "move"
    do_return_savelist
  end
  #--------------------------------------------------------------------------
  # ● セーブファイル[管理]
  #--------------------------------------------------------------------------
  def on_manager?
    if FileTest.exist?(DataManager.make_filename(@index))
      Graphics.freeze
      @command_window.deactivate
      @window_manager.y = 72 + @index * 24
      @window_manager.activate
      @window_manager.visible = true
      @window_manager.refresh
      Sound.play_ok
      Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
    else
      Sound.play_buzzer
    end
  end
  #--------------------------------------------------------------------------
  # ● セーブファイル[删除]
  #--------------------------------------------------------------------------
  def on_delete?
    Graphics.freeze
    @window_manager.deactivate
    @command_window.deactivate
    @window_delete.y = 72 + 72 + @index * 24
    @window_delete.activate
    @window_delete.visible = true
    @window_delete.refresh
    Sound.play_ok
    Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  end
  #--------------------------------------------------------------------------
  # ● 删除
  #--------------------------------------------------------------------------
  def do_delete
    Graphics.freeze
    File.delete(DataManager.make_filename(@index))
    @window_delete.index  = 0
    @window_manager.index = 0
    @window_delete.visible  = false
    @window_manager.visible = false
    @window_delete.deactivate
    @window_manager.deactivate
    @command_window.activate
    @need_refresh = true
    Sound.play_save
    if DataManager.save_file_exists?
      Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
    else
      return_scene
    end
  end
  #--------------------------------------------------------------------------
  # ● 替换
  #--------------------------------------------------------------------------
  def do_replace
    Graphics.freeze
    if @source_index != nil
      return on_copy_ok
    else
      return on_savefile_ok
    end
    @window_replace.visible = false
    @window_replace.deactivate
    @need_refresh = true
  end
  #--------------------------------------------------------------------------
  # ● 取消
  #--------------------------------------------------------------------------
  def do_cancel
    Graphics.freeze
    Sound.play_cancel
    @window_delete.index  = 0
    @window_replace.index = 0
    @window_manager.index = 0
    @window_delete.visible  = false
    @window_replace.visible = false
    @window_manager.visible = false
    @window_delete.deactivate
    @window_replace.deactivate
    @window_manager.deactivate
    @command_window.activate
    Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  end
  #--------------------------------------------------------------------------
  # ● 返回管理菜单
  #--------------------------------------------------------------------------
  def do_return_manager
    Graphics.freeze
    @help_window.set_text(help_window_text)
    @command_window.index = @source_index unless @source_index == nil
    @source_index = nil
    @source_type = nil
    @command_window.deactivate
    @window_delete.index  = 0
    @window_replace.index = 0
    @window_delete.visible  = false
    @window_replace.visible = false
    @window_delete.deactivate
    @window_replace.deactivate
    @window_manager.y = 72 + @index * 24
    @window_manager.activate
    @window_manager.visible = true
    @window_manager.refresh
    Sound.play_cancel
    Graphics.transition(PS0::Window_SaveFile_Plus::TRANS_DURATION)
  end
  #--------------------------------------------------------------------------
  # ● 返回文件列表(复制、移动 用)
  #--------------------------------------------------------------------------
  def do_return_savelist
    @window_manager.visible = false
    @window_manager.deactivate
    @command_window.activate
    @need_refresh = true
    Sound.play_ok
  end
end
#==============================================================================
# [PS0] End of Script
#==============================================================================
作者: djs789783    时间: 2024-3-10 19:37
你找找鼠标,有脚本。很好用。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1