仙剑之十里坡

标题: 覆盖提示 [打印本页]

作者: BlackFeather    时间: 2010-4-4 18:59
标题: 覆盖提示
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================


  4. #在覆盖存档的时候弹出对话框提示
  5. class Scene_Save < Scene_File
  6. # -----------------------------
  7.   def initialize
  8.     super("")
  9.     @confirm_window = Window_Base.new(120, 188, 400, 64)
  10.     @confirm_window.contents = Bitmap.new(368, 32)
  11.     string = "确定要覆盖这个进度吗?"
  12.     @confirm_window.contents.font.name = "黑体"
  13.     @confirm_window.contents.font.size = 24
  14.     @confirm_window.contents.draw_text(4, 0, 368, 32, string)
  15.     @yes_no_window = Window_Command.new(100, ["覆盖", "取消"])
  16.     @confirm_window.visible = false
  17.     @confirm_window.z = 1500
  18.     @yes_no_window.visible = false
  19.     @yes_no_window.active = false
  20.     @yes_no_window.index = 1
  21.     @yes_no_window.x = 270
  22.     @yes_no_window.y = 252
  23.     @yes_no_window.z = 1500
  24.     @mode = 0
  25.   end
  26. # -----------------------------
  27.   def on_decision(filename)
  28.     if FileTest.exist?(filename)
  29.       @confirm_window.visible = true
  30.       @yes_no_window.visible = true
  31.       @yes_no_window.active = true
  32.       @mode = 1
  33.     else
  34.       $game_system.se_play($data_system.save_se)
  35.       file = File.open(filename, "wb")
  36.       write_save_data(file)
  37.       file.close
  38.       if $game_temp.save_calling
  39.         $game_temp.save_calling = false
  40.         $scene = Scene_Map.new
  41.       return
  42.     end
  43.     $scene = Scene_Menu.new(4)
  44.     end
  45.   end
  46. # -----------------------------
  47.   def update
  48.     if @mode == 0
  49.       super
  50.     else
  51.       @yes_no_window.update
  52.       if Input.trigger?(Input::C)
  53.         $game_system.se_play($data_system.decision_se)
  54.         if @yes_no_window.index == 0
  55.           @yes_no_window.visible = false
  56.           @yes_no_window.active = false
  57.           @confirm_window.visible = false
  58.           filename = make_filename(@file_index)
  59.           $game_system.se_play($data_system.save_se)
  60.           file = File.open(filename, "wb")
  61.           write_save_data(file)
  62.           file.close
  63.           if $game_temp.save_calling
  64.             $game_temp.save_calling = false
  65.             $scene = Scene_Map.new
  66.           else
  67.             $scene = Scene_Menu.new(4)
  68.           end
  69.         else
  70.           @confirm_window.visible = false
  71.           @yes_no_window.visible = false
  72.           @yes_no_window.active = false
  73.           @yes_no_window.index = 1
  74.           @mode = 0
  75.         end
  76.       end
  77.       if Input.trigger?(Input::B)
  78.         @confirm_window.visible = false
  79.         @yes_no_window.visible = false
  80.         @yes_no_window.active = false
  81.         @yes_no_window.index = 1
  82.         @mode = 0
  83.       return
  84.     end
  85.   end
  86. end
  87. # -----------------------------
  88.   def on_cancel
  89.     $game_system.se_play($data_system.cancel_se)
  90.     if $game_temp.save_calling
  91.       $game_temp.save_calling = false
  92.       $scene = Scene_Map.new
  93.       return
  94.     end
  95.     $scene = Scene_Menu.new(4)
  96.   end
  97. # -----------------------------
  98.   def write_save_data(file)
  99.     characters = []
  100.     for i in 0...$game_party.actors.size
  101.       actor = $game_party.actors[i]
  102.       characters.push([actor.character_name, actor.character_hue])
  103.     end
  104.     Marshal.dump(characters, file)
  105.     Marshal.dump(Graphics.frame_count, file)
  106.     $game_system.save_count += 1
  107.     $game_system.magic_number = $data_system.magic_number
  108.     Marshal.dump($game_system, file)
  109.     Marshal.dump($game_switches, file)
  110.     Marshal.dump($game_variables, file)
  111.     Marshal.dump($game_self_switches, file)
  112.     Marshal.dump($game_screen, file)
  113.     Marshal.dump($game_actors, file)
  114.     Marshal.dump($game_party, file)
  115.     Marshal.dump($game_troop, file)
  116.     Marshal.dump($game_map, file)
  117.     Marshal.dump($game_player, file)
  118.   end
  119. end

  120. class Scene_File
  121.   alias carol3_main main
  122.   def main
  123.     carol3_main
  124.     if self.is_a?(Scene_Save)
  125.       @confirm_window.dispose
  126.       @yes_no_window.dispose
  127.     end
  128.   end
  129. end


  130. #==============================================================================
  131. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  132. #==============================================================================


复制代码
与存档类脚本……
作者: 最爱南宫煌    时间: 2010-4-5 19:39
这个啊,比较实用的……
作者: BlackFeather    时间: 2010-4-9 18:17
就是可惜会与存档类脚本冲突——只能用一个,除非仔细研究自己改
作者: 最爱南宫煌    时间: 2010-4-9 18:34
晕菜,还起冲突啊?




欢迎光临 仙剑之十里坡 (http://palslp.com/bbs/) Powered by Discuz! X2.5