Project1

标题: 容错脚本第3版(修订) [打印本页]

作者: 轮回者    时间: 2007-2-20 04:37
标题: 容错脚本第3版(修订)
  1. #==============================================================================
  2. # ■ 容错脚本第3版(070816修订)                                   BY 轮回者
  3. #------------------------------------------------------------------------------
  4. #  本脚本基于星大叔的容错脚本第2版,区别只是“下手”的地方不同而已。
  5. #  说明请参看星大叔的容错脚本第2版。
  6. #------------------------------------------------------------------------------
  7. #  07.08.16
  8. #     修正了按下F12重启后的错误
  9. #     附,出错原因:重启后RMXP封装的类没有重置
  10. #==============================================================================
  11. begin
  12.   result = Graphics::Transition.nil?
  13. rescue
  14.   result = true
  15. end

  16. if result
  17.   
  18.   $need_file_bitmap = []
  19.   if FileTest.exist?("log_bitmap.txt")
  20.     f = File.open("./log_bitmap.txt","r")
  21.     $need_file_bitmap = f.read.split(/\n/)
  22.     f.close
  23.   end

  24.   module Graphics
  25.     Transition = method("transition")
  26.     def self.transition(*arg)
  27.       begin
  28.         Transition.call(*arg)
  29.       rescue Errno::ENOENT
  30.         ary=[*arg]
  31.         filename=ary[1]
  32.         unless $need_file_bitmap.include?(filename)
  33.           $need_file_bitmap.push(filename)
  34.           f = File.open("./log_bitmap.txt","a")
  35.           f.write(filename + "\n")
  36.           f.close
  37.         end
  38.         Transition.call(ary[0])
  39.       end
  40.     end
  41.   end

  42.   class Bitmap < Object
  43.     alias ini_Fx initialize
  44.             
  45.     def initialize(*args)
  46.       begin
  47.         ini_Fx(*args)
  48.         return
  49.       rescue Errno::ENOENT
  50.         filename=[*args][0]
  51.         unless $need_file_bitmap.include?(filename)
  52.           $need_file_bitmap.push(filename)
  53.           f = File.open("./log_bitmap.txt","a")
  54.           f.write(filename + "\n")
  55.           f.close
  56.         end
  57.         ini_Fx(32,32)
  58.       end
  59.     end
  60.   end

  61.   $need_file_audio = []
  62.   if FileTest.exist?("log_audio.txt")
  63.     f = File.open("./log_audio.txt","r")
  64.     $need_file_audio = f.read.split(/\n/)
  65.     f.close
  66.   end
  67.   
  68.   module Audio
  69.     Me_play = method("me_play")
  70.     def self.me_play(*arg)
  71.       begin
  72.         Me_play.call(*arg)
  73.       rescue Errno::ENOENT
  74.         filename=[*arg][0]
  75.         unless $need_file_audio.include?(filename)
  76.           $need_file_audio.push(filename)
  77.           f = File.open("./log_audio.txt","a")
  78.           f.write(filename + "\n")
  79.           f.close
  80.         end
  81.         me_stop
  82.       end
  83.     end
  84.     Bgm_play = method("bgm_play")
  85.     def self.bgm_play(*arg)
  86.       begin
  87.         Bgm_play.call(*arg)
  88.       rescue Errno::ENOENT
  89.         filename=[*arg][0]
  90.         unless $need_file_audio.include?(filename)
  91.           $need_file_audio.push(filename)
  92.           f = File.open("./log_audio.txt","a")
  93.           f.write(filename + "\n")
  94.           f.close
  95.         end
  96.         bgm_stop
  97.       end
  98.     end
  99.     Se_play = method("se_play")
  100.     def self.se_play(*arg)
  101.       begin
  102.         Se_play.call(*arg)
  103.       rescue Errno::ENOENT
  104.         filename=[*arg][0]
  105.         unless $need_file_audio.include?(filename)
  106.           $need_file_audio.push(filename)
  107.           f = File.open("./log_audio.txt","a")
  108.           f.write(filename + "\n")
  109.           f.close
  110.         end
  111.         se_stop
  112.       end
  113.     end
  114.     Bgs_play = method("bgs_play")
  115.     def self.bgs_play(*arg)
  116.       begin
  117.         Bgs_play.call(*arg)
  118.       rescue Errno::ENOENT
  119.         filename=[*arg][0]
  120.         unless $need_file_audio.include?(filename)
  121.           $need_file_audio.push(filename)
  122.           f = File.open("./log_audio.txt","a")
  123.           f.write(filename + "\n")
  124.           f.close
  125.         end
  126.         bgs_stop
  127.       end
  128.     end
  129.   end
  130. end
复制代码

作者: 轮回者    时间: 2007-2-20 04:37
标题: 容错脚本第3版(修订)
  1. #==============================================================================
  2. # ■ 容错脚本第3版(070816修订)                                   BY 轮回者
  3. #------------------------------------------------------------------------------
  4. #  本脚本基于星大叔的容错脚本第2版,区别只是“下手”的地方不同而已。
  5. #  说明请参看星大叔的容错脚本第2版。
  6. #------------------------------------------------------------------------------
  7. #  07.08.16
  8. #     修正了按下F12重启后的错误
  9. #     附,出错原因:重启后RMXP封装的类没有重置
  10. #==============================================================================
  11. begin
  12.   result = Graphics::Transition.nil?
  13. rescue
  14.   result = true
  15. end

  16. if result
  17.   
  18.   $need_file_bitmap = []
  19.   if FileTest.exist?("log_bitmap.txt")
  20.     f = File.open("./log_bitmap.txt","r")
  21.     $need_file_bitmap = f.read.split(/\n/)
  22.     f.close
  23.   end

  24.   module Graphics
  25.     Transition = method("transition")
  26.     def self.transition(*arg)
  27.       begin
  28.         Transition.call(*arg)
  29.       rescue Errno::ENOENT
  30.         ary=[*arg]
  31.         filename=ary[1]
  32.         unless $need_file_bitmap.include?(filename)
  33.           $need_file_bitmap.push(filename)
  34.           f = File.open("./log_bitmap.txt","a")
  35.           f.write(filename + "\n")
  36.           f.close
  37.         end
  38.         Transition.call(ary[0])
  39.       end
  40.     end
  41.   end

  42.   class Bitmap < Object
  43.     alias ini_Fx initialize
  44.             
  45.     def initialize(*args)
  46.       begin
  47.         ini_Fx(*args)
  48.         return
  49.       rescue Errno::ENOENT
  50.         filename=[*args][0]
  51.         unless $need_file_bitmap.include?(filename)
  52.           $need_file_bitmap.push(filename)
  53.           f = File.open("./log_bitmap.txt","a")
  54.           f.write(filename + "\n")
  55.           f.close
  56.         end
  57.         ini_Fx(32,32)
  58.       end
  59.     end
  60.   end

  61.   $need_file_audio = []
  62.   if FileTest.exist?("log_audio.txt")
  63.     f = File.open("./log_audio.txt","r")
  64.     $need_file_audio = f.read.split(/\n/)
  65.     f.close
  66.   end
  67.   
  68.   module Audio
  69.     Me_play = method("me_play")
  70.     def self.me_play(*arg)
  71.       begin
  72.         Me_play.call(*arg)
  73.       rescue Errno::ENOENT
  74.         filename=[*arg][0]
  75.         unless $need_file_audio.include?(filename)
  76.           $need_file_audio.push(filename)
  77.           f = File.open("./log_audio.txt","a")
  78.           f.write(filename + "\n")
  79.           f.close
  80.         end
  81.         me_stop
  82.       end
  83.     end
  84.     Bgm_play = method("bgm_play")
  85.     def self.bgm_play(*arg)
  86.       begin
  87.         Bgm_play.call(*arg)
  88.       rescue Errno::ENOENT
  89.         filename=[*arg][0]
  90.         unless $need_file_audio.include?(filename)
  91.           $need_file_audio.push(filename)
  92.           f = File.open("./log_audio.txt","a")
  93.           f.write(filename + "\n")
  94.           f.close
  95.         end
  96.         bgm_stop
  97.       end
  98.     end
  99.     Se_play = method("se_play")
  100.     def self.se_play(*arg)
  101.       begin
  102.         Se_play.call(*arg)
  103.       rescue Errno::ENOENT
  104.         filename=[*arg][0]
  105.         unless $need_file_audio.include?(filename)
  106.           $need_file_audio.push(filename)
  107.           f = File.open("./log_audio.txt","a")
  108.           f.write(filename + "\n")
  109.           f.close
  110.         end
  111.         se_stop
  112.       end
  113.     end
  114.     Bgs_play = method("bgs_play")
  115.     def self.bgs_play(*arg)
  116.       begin
  117.         Bgs_play.call(*arg)
  118.       rescue Errno::ENOENT
  119.         filename=[*arg][0]
  120.         unless $need_file_audio.include?(filename)
  121.           $need_file_audio.push(filename)
  122.           f = File.open("./log_audio.txt","a")
  123.           f.write(filename + "\n")
  124.           f.close
  125.         end
  126.         bgs_stop
  127.       end
  128.     end
  129.   end
  130. end
复制代码

作者: 亿万星辰    时间: 2007-2-20 04:54
本着容错应该从底层出发的原则,这个第3版可以取代第2版了......
作者: 小传子    时间: 2007-2-20 05:16
{/hx}看看看看
但是现在木在家 - -|||
作者: 轮回者    时间: 2007-2-20 05:17
  1. #==============================================================================
  2. # ■ 容错脚本第3版                                              BY 轮回者
  3. #------------------------------------------------------------------------------
  4. #  本脚本基于星大叔的容错脚本第2版,区别只是“下手”的地方不同而已。
  5. #  说明请参看星大叔的容错脚本第2版。
  6. #==============================================================================

  7. $need_file_bitmap = []
  8. if FileTest.exist?("log_bitmap.txt")
  9.   f = File.open("./log_bitmap.txt","r")
  10.   $need_file_bitmap = f.read.split(/\n/)
  11.   f.close
  12. end

  13. module Graphics
  14.   @transition = method("transition")
  15.   def self.transition(*arg)
  16.     begin
  17.       @transition.call(*arg)
  18.     rescue Errno::ENOENT
  19.       ary=[*arg]
  20.       filename=ary[1]
  21.       unless $need_file_bitmap.include?(filename)
  22.         $need_file_bitmap.push(filename)
  23.         f = File.open("./log_bitmap.txt","a")
  24.         f.write(filename + "\n")
  25.         f.close
  26.       end
  27.       @transition.call(ary[0])
  28.     end
  29.   end
  30. end

  31. class Bitmap < Object
  32.   alias ini initialize
  33.   def initialize(*arg)
  34.     begin
  35.       ini(*arg)
  36.     rescue Errno::ENOENT
  37.       filename=[*arg][0]
  38.       unless $need_file_bitmap.include?(filename)
  39.         $need_file_bitmap.push(filename)
  40.         f = File.open("./log_bitmap.txt","a")
  41.         f.write(filename + "\n")
  42.         f.close
  43.       end
  44.       ini(32,32)
  45.     end
  46.   end
  47. end

  48. $need_file_audio = []
  49. if FileTest.exist?("log_audio.txt")
  50.   f = File.open("./log_audio.txt","r")
  51.   $need_file_audio = f.read.split(/\n/)
  52.   f.close
  53. end

  54. module Audio
  55.   @me_play = method("me_play")
  56.   def self.me_play(*arg)
  57.     begin
  58.       @me_play.call(*arg)
  59.     rescue Errno::ENOENT
  60.       filename=[*arg][0]
  61.       unless $need_file_audio.include?(filename)
  62.         $need_file_audio.push(filename)
  63.         f = File.open("./log_audio.txt","a")
  64.         f.write(filename + "\n")
  65.         f.close
  66.       end
  67.       me_stop
  68.     end
  69.   end
  70.   @bgm_play = method("bgm_play")
  71.   def self.bgm_play(*arg)
  72.     begin
  73.       @bgm_play.call(*arg)
  74.     rescue Errno::ENOENT
  75.       filename=[*arg][0]
  76.       unless $need_file_audio.include?(filename)
  77.         $need_file_audio.push(filename)
  78.         f = File.open("./log_audio.txt","a")
  79.         f.write(filename + "\n")
  80.         f.close
  81.       end
  82.       bgm_stop
  83.     end
  84.   end
  85.   @se_play = method("se_play")
  86.   def self.se_play(*arg)
  87.     begin
  88.       @se_play.call(*arg)
  89.     rescue Errno::ENOENT
  90.       filename=[*arg][0]
  91.       unless $need_file_audio.include?(filename)
  92.         $need_file_audio.push(filename)
  93.         f = File.open("./log_audio.txt","a")
  94.         f.write(filename + "\n")
  95.         f.close
  96.       end
  97.       se_stop
  98.     end
  99.   end
  100.   @bgs_play = method("bgs_play")
  101.   def self.bgs_play(*arg)
  102.     begin
  103.       @bgs_play.call(*arg)
  104.     rescue Errno::ENOENT
  105.       filename=[*arg][0]
  106.       unless $need_file_audio.include?(filename)
  107.         $need_file_audio.push(filename)
  108.         f = File.open("./log_audio.txt","a")
  109.         f.write(filename + "\n")
  110.         f.close
  111.       end
  112.       bgs_stop
  113.     end
  114.   end
  115. end
复制代码

作者: 美兽    时间: 2007-2-21 00:13
*arg原来还可以这样方便使用,话说见到有些地方参数里的&arg是什么意思???
没查到相关资料。
作者: OCTSJimmy    时间: 2007-2-21 02:58
以下引用美兽于2007-2-20 16:13:44的发言:

*arg原来还可以这样方便使用,话说见到有些地方参数里的&arg是什么意思???
没查到相关资料。


呃……记得在C里……*是指针……&是取得变量的地址……

不知道RMXP是否是如此类?……
作者: 轮回者    时间: 2007-2-22 04:07
以下引用美兽于2007-2-20 16:13:44的发言:

*arg原来还可以这样方便使用,话说见到有些地方参数里的&arg是什么意思???
没查到相关资料。


不知道……汗
去试验一下吧{/tp}
作者: 雷欧纳德    时间: 2007-2-22 23:52
to 轮:注意堆栈出错。。。

to 美兽:*可以展开数组,&可以保存proc。。-v-bbb


作者: 亿万星辰    时间: 2007-2-23 00:15
&目前从来没有用到过的迹象........

堆栈出错?{/fd}
作者: 雷欧纳德    时间: 2007-2-23 00:24
按F12应该就会堆栈出错吧…… {/gg}
class A

  def initialize(&block)
    @block = block
  end
  
  def orz
    @block.call
  end

end

a = A.new{p 'proc test'}
a.orz # - -bbb

作者: 美兽    时间: 2007-2-23 00:27
class A

def initialize(&block)
   @block = block
end

def orz
   @block.call
end

end

a = A.new{p 'proc test'}
a.orz # - -bbb


谢谢,吸收了。
作者: 永劫的咎人    时间: 2007-2-23 07:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 轮回者    时间: 2007-3-1 05:21
以下引用灼眼的夏娜于2007-2-22 15:52:09的发言:

to 轮:注意堆栈出错。。。

to 美兽:*可以展开数组,&可以保存proc。。-v-bbb


知道了,
有空会看看的。{/tp}
作者: 小雨    时间: 2007-3-5 00:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 叶舞枫    时间: 2007-3-24 03:23
发布完毕,BZ VIP += 2
http://rpg.blue/web/htm/news644.htm

作者: 包子研究员    时间: 2007-8-7 01:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 轮回者    时间: 2007-8-7 02:06
那个……大概是系统重置时的问题,夏娜似乎有解决方法,
已经很久没碰RMXP了,所以……对不住了{/hx}
作者: 轮回者    时间: 2007-8-18 21:53
更新~
作者: K’    时间: 2007-8-20 22:29
主站更新完毕。




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