Project1

标题: zh99998的脚本仓库 [打印本页]

作者: zh99998    时间: 2009-2-15 19:30
标题: zh99998的脚本仓库
1楼VX

loading窗口
  1. class Loading < Window_Base
  2.   def initialize(num, text = "Loading...")
  3.     super(64,192,418,80)
  4.     rect = contents.text_size(text)
  5.     rect.width = self.contents.width
  6.     self.contents.draw_text(rect,text,1)
  7.     @num = num
  8.     @nth = 0
  9.   end
  10.   def next(nth = 1)
  11.     @nth += nth
  12.     self.contents.fill_rect(Rect.new(0, 24, self.contents.width * @nth / @num, 24), Color.new(255,255,255))
  13.     Graphics.update
  14.   end
  15. end
复制代码
  1. #loading窗口 by zh99998 2008-11-1
  2. class Loading < Window_Base
  3.   attr_accessor :num
  4.   attr_accessor :nth
  5.   def initialize(num, text = "Loading...", color = Color.new(255,255,255))
  6.     super(64,192,418,80)
  7.     if text.is_a?(Bitmap)
  8.       self.contents.blt((self.contents.width - text.width) / 2, 0, text, text.rect)
  9.     elsif text.is_a?(Array)
  10.       text[1].is_a?(Color) ? self.contents.font.color = text[1] : self.contents.font = text[1]
  11.       text = text[0]
  12.     end   
  13.     if text.is_a?(String)
  14.       rect = contents.text_size(text)
  15.       rect.width = self.contents.width
  16.       self.contents.draw_text(rect,text,1)
  17.     end
  18.     @num = num
  19.     @nth = 0
  20.     @color = color
  21.     Graphics.update
  22.   end
  23.   def next(nth = 1)
  24.     @nth += nth
  25.     rect = Rect.new(0, 24, self.contents.width * @nth / @num, 24)
  26.     if @color.is_a?(Color)
  27.       self.contents.fill_rect(rect, @color)
  28.     elsif @color.is_a?(Array)
  29.       self.contents.gradient_fill_rect(rect, @color[0], @color[1])
  30.     else
  31.       rect.y = 0
  32.       self.contents.blt(0, 24, @color, rect)
  33.     end
  34.     Graphics.update
  35.   end
  36. end
复制代码

简易图块扩张
  1. #简易图块扩张 by zh99998 2008-11-1
  2. #通行度无法更改

  3. class Spriteset_Map
  4.   #在这里添加需要更改图块的地图ID等信息,每行一个地图
  5.   #格式: id => {"原文件名" => "新文件名"}
  6.   #或:   id => {数字 => "新文件名"}
  7.   #或:   id => [A1,A2,A3,A4,A5,B,C,D,E]
  8.   
  9.   #数字与图块的对应关系:
  10.   #  0 => A1, 1 => A2, 2 => A3,
  11.   #  3 => A4, 4 => A5, 5 => B,
  12.   #  6 => C , 7 => D , 8 => E
  13.   
  14.   #可以省略"Tile"和扩展名
  15.   #除了最后一行,其余的行尾加上逗号【,】
  16.   
  17.   EXP = {
  18.   1 => {"A1" => "new_A1", 8 => "new_E"},
  19.     #示例:001号地图中,用new_A1文件代替TileA1,用new_E文件代替TileE
  20.   2 => ["new_A1", "A2", "A3", "A4", "A5", "new_B", "C", "new_D", "new_E"]
  21.     #示例:002号地图中,用new_A1文件代替TileA1,用new_B文件代替TileB,new_D代替TileD,new_E代替TileE

  22.     #在这里添加
  23.    
  24.   }
  25.   def create_tilemap
  26.     @tilemap = Tilemap.new(@viewport1)   
  27.     exp = EXP[$game_map.map_id]
  28.     if exp.is_a?(Hash)
  29.       bitmaps = ["TileA1", "TileA2", "TileA3", "TileA4", "TileA5", "TileB", "TileC", "TileD", "TileE"]
  30.       exp.each do |old, new|
  31.         case old
  32.         when 0, "A1", "TileA1"
  33.           bitmaps[0] = new
  34.         when 1, "A2", "TileA2"
  35.           bitmaps[1] = new
  36.         when 2, "A3", "TileA3"
  37.           bitmaps[2] = new
  38.         when 3, "A4", "TileA4"
  39.           bitmaps[3] = new
  40.         when 4, "A5", "TileA5"
  41.           bitmaps[4] = new
  42.         when 5, "B", "TileB"
  43.           bitmaps[5] = new
  44.         when 6, "C", "TileC"
  45.           bitmaps[6] = new
  46.         when 7, "D", "TileD"
  47.           bitmaps[7] = new
  48.         when 8, "E", "TileE"
  49.           bitmaps[8] = new
  50.         end
  51.       end
  52.     elsif exp.is_a?(Array)
  53.       bitmaps = exp
  54.     end
  55.     bitmaps.each_index do |index|
  56.       @tilemap.bitmaps[index] = Cache.system(bitmaps[index]) rescue Cache.system("Tile" + bitmaps[index])
  57.     end
  58.     @tilemap.map_data = $game_map.data
  59.     @tilemap.passages = $game_map.passages
  60.   end
  61. end
复制代码

对话显名
  1. # このサイトのスクリプトの名前空間。
  2. module QuietLab
  3. end

  4. # このスクリプトの名前空間。
  5. module QuietLab::Script_37
  6.   
  7.   # このスクリプトのバージョンの日付表記。
  8.   Version = 2008_02_26
  9. end

  10. # 名前を表示するクラス。
  11. class QuietLab::Script_37::Window_Name < Window_Base
  12.   
  13.   # ウィンドウに表示する文字列。
  14.   attr_reader :text
  15.   
  16.   # オブジェクトを初期化します。
  17.   def initialize(x = 0, y = 0)
  18.     super(x, y, 160, WLH + 32)
  19.     @text = ""
  20.     refresh
  21.   end
  22.   
  23.   # 内容を再描画します。
  24.   def refresh
  25.     self.contents.clear
  26.     self.contents.draw_text(4, 0, self.width - 32 - 8, WLH, @text)
  27.     self.open if @text != ""
  28.   end
  29.   
  30.   # 表示する文字列を設定します。位置は [ 0:左, 2:右 ] です。
  31.   def set_text(pos, val)
  32.     @text = val
  33.     self.x = (pos == 2 ? 544 - self.width : 0)
  34.     refresh
  35.   end
  36. end

  37. # メッセージウィンドウのクラス。
  38. class Window_Message
  39.   
  40.   #-- alias 定義
  41.   # 判別のため、メソッド名末尾に _by_QuietLab37 を付加します。
  42.   #++
  43.   alias :initialize_by_QuietLab37         :initialize
  44.   alias :dispose_by_QuietLab37            :dispose
  45.   alias :update_by_QuietLab37             :update
  46.   alias :create_gold_window_by_QuietLab37 :create_gold_window
  47.   alias :start_message_by_QuietLab37      :start_message
  48.   alias :reset_window_by_QuietLab37       :reset_window
  49.   alias :terminate_message_by_QuietLab37  :terminate_message
  50.   alias :update_message_by_QuietLab37     :update_message
  51.   
  52.   # オブジェクトを初期化します。
  53.   def initialize
  54.     initialize_by_QuietLab37
  55.     create_name_window
  56.   end
  57.   
  58.   # 使用しているウィンドウ・スプライトを解放します。
  59.   def dispose
  60.     dispose_by_QuietLab37
  61.     dispose_name_window
  62.   end
  63.   
  64.   # ウィンドウを更新します。
  65.   def update
  66.     update_name_window
  67.     update_by_QuietLab37
  68.   end
  69.   
  70.   # ゴールドウィンドウを作成します。
  71.   def create_gold_window
  72.     create_gold_window_by_QuietLab37
  73.     @gold_window.z = self.z + 1
  74.   end
  75.   
  76.   # メッセージの表示処理を開始します。
  77.   def start_message
  78.     @name_window.close
  79.     start_message_by_QuietLab37
  80.   end
  81.   
  82.   # ウィンドウの状態をリセットします。
  83.   def reset_window
  84.     reset_window_by_QuietLab37
  85.     if @position == 0
  86.       self.y = 24
  87.       @gold_window.y = -16
  88.     end
  89.     reset_name_window
  90.   end
  91.   
  92.   # 発言者ウィンドウの位置をリセットします。
  93.   def reset_name_window
  94.     @name_window.opacity = self.opacity
  95.     @name_window.y = self.y - 40
  96.   end
  97.   
  98.   # メッセージの表示処理を終了します。
  99.   def terminate_message
  100.     terminate_message_by_QuietLab37
  101.     @name_window.close
  102.   end
  103.   
  104.   # メッセージの内容を更新します。
  105.   def update_message
  106.     loop do
  107.       case @text.slice(/./m)
  108.       when "\x0a"
  109.         @text.sub!(/\x0a\[(.*?)\]/, "")
  110.         n = $1
  111.         if $1 =~ /\d/ then
  112.           name =  $game_actors[n.to_i].name
  113.           @name_window.set_text(0, name)
  114.         else
  115.         @name_window.set_text(0, n)
  116.       end
  117.       when "\x0b"
  118.         @text.sub!(/\x0b\[(.*?)\]/, "")
  119.         n = $1
  120.         if $1 =~ /\d/ then
  121.           name = $game_actors[n.to_i].name
  122.           @name_window.set_text(2, name)
  123.         else
  124.           @name_window.set_text(2, n)
  125.         end
  126.       else
  127.         break
  128.       end
  129.       break unless @show_fast or @line_show_fast
  130.     end
  131.     update_message_by_QuietLab37
  132.   end
  133.   
  134.   # 表示する内容に含まれる特殊文字を変換します。
  135.   def convert_special_characters
  136.     # \ を変換(エスケープ処理のため)
  137.     @text.gsub!(/\\\\/)             { "\x7f" }
  138.     # システム定義
  139.     @text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
  140.     @text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
  141.     @text.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
  142.     @text.gsub!(/\\G/i)             { "\x02" }
  143.     @text.gsub!(/\\\./)             { "\x03" }
  144.     @text.gsub!(/\\\|/)             { "\x04" }
  145.     @text.gsub!(/\\!/)              { "\x05" }
  146.     @text.gsub!(/\\>/)              { "\x06" }
  147.     @text.gsub!(/\\</)              { "\x07" }
  148.     @text.gsub!(/\\\^/)             { "\x08" }
  149.     #金钱单位
  150.     @text.gsub!(/\\I/i)              { Vocab.gold }
  151.     # スクリプト定義   
  152.     @text.gsub!(/\\WR\[(.*?)\]/i)    { "\x0b[#{$1}]" }
  153.     @text.gsub!(/\\WR\[(.*?)\]/i)    { "\x0b[#{$1}]" }
  154.     @text.gsub!(/\\WL?\[(.*?)\]/i)   { "\x0a[#{$1}]" }
  155.     # \ を元の文字に戻す
  156.     @text.gsub!(/\x7f/)             { "\\" }
  157.   end
  158.   
  159.   # 発言者ウィンドウを作成します。
  160.   def create_name_window
  161.     @name_window = QuietLab::Script_37::Window_Name.new
  162.     @name_window.openness = 0
  163.     @name_window.z = self.z + 1
  164.   end
  165.   
  166.   # 発言者ウィンドウを解放します。
  167.   def dispose_name_window
  168.     @name_window.dispose
  169.   end
  170.   
  171.   # 発言者ウィンドウを更新します。
  172.   def update_name_window
  173.     @name_window.update
  174.   end
  175. end

  176. # 戦闘中に使用されるメッセージウィンドウのクラス。
  177. class Window_BattleMessage
  178.   
  179.   #-- alias 定義
  180.   # 判別のため、メソッド名末尾に _by_QuietLab37 を付加します。
  181.   #++
  182.   alias :reset_window_by_QuietLab37 :reset_window
  183.   
  184.   # ウィンドウの状態をリセットします。
  185.   def reset_window
  186.     reset_window_by_QuietLab37
  187.     reset_name_window
  188.   end
  189. end

  190. # QuietLab ScriptFormat v1.12

复制代码

作者: zh99998    时间: 2009-2-15 19:30
2楼XP
loading
  1. #--------------------------------------------------------------------------
  2. # ● Loading窗口·改
  3. #--------------------------------------------------------------------------
  4. class Loading < Window
  5.   attr_accessor :num
  6.   attr_accessor :nth
  7.   def initialize(num, texts = "Loading...", color = Color.new(255,255,255))
  8.     super()
  9.     self.x = 96
  10.     self.y = 192
  11.     self.width = 448
  12.     self.height = 80
  13.     self.contents = Bitmap.new(self.width-32, self.height-32)
  14.     @num = num
  15.     @nth = 0
  16.     @color = color
  17.     text = (texts)
  18.   end
  19.   def text=(text,nth=1)
  20.     self.contents.clear
  21.     if text.is_a?(Bitmap)
  22.       self.contents.blt((self.contents.width - text.width) / 2, 0, text, text.rect)
  23.     elsif text.is_a?(Array)
  24.       text[1].is_a?(Color) ? self.contents.font.color = text[1] : self.contents.font = text[1]
  25.       text = text[0]
  26.     end   
  27.     if text.is_a?(String)
  28.       rect = contents.text_size(text)
  29.       rect.width = self.contents.width
  30.       self.contents.draw_text(rect,text,1)
  31.     end
  32.     run(nth)
  33.   end
  34.   def run(nth = 1)
  35.     @nth += nth
  36.     rect = Rect.new(0, 24, self.contents.width * @nth / @num, 24)
  37.     if @color.is_a?(Color)
  38.       self.contents.fill_rect(rect, @color)
  39.     elsif @color.is_a?(Array)
  40.       self.contents.gradient_fill_rect(rect, @color[0], @color[1])
  41.     else
  42.       rect.y = 0
  43.       self.contents.blt(0, 24, @color, rect)
  44.     end
  45.     Graphics.update
  46.   end
  47. end
复制代码

作者: zh99998    时间: 2009-2-15 19:30
数据相关
Tilemap by kissye
  1. class Tilemap
  2.   FBLX = 544#x方向分辨率
  3.   FBLY = 416#y方向分辨率
  4.   SIZEX = 32
  5.   SIZEY = 32
  6.   ANI = 25#动画等待桢数
  7.   #以下画元件用
  8.   RECT1 = [Rect.new(0, 32, 16, 16), Rect.new(16, 32, 16, 16),
  9.   Rect.new(32, 32, 16, 16), Rect.new(48, 32, 16, 16),
  10.   Rect.new(0, 48, 16, 16), Rect.new(16, 48, 16, 16),
  11.   Rect.new(32, 48, 16, 16), Rect.new(48, 48, 16, 16),
  12.   Rect.new(0, 64, 16, 16), Rect.new(16, 64, 16, 16),
  13.   Rect.new(32, 64, 16, 16), Rect.new(48, 64, 16, 16),
  14.   Rect.new(0, 80, 16, 16), Rect.new(16, 80, 16, 16),
  15.   Rect.new(32, 80, 16, 16), Rect.new(48, 80, 16, 16),
  16.   Rect.new(32, 0, 16, 16), Rect.new(48, 0, 16, 16),
  17.   Rect.new(32, 16, 16, 16), Rect.new(48, 16, 16, 16)]
  18.   LIST1 = [[10, 9, 6, 5], [16, 9, 6, 5], [10, 17, 6, 5], [16, 17, 6, 5],
  19.   [10, 9, 6, 19], [16, 9, 6, 19], [10, 17, 6, 19], [16, 17, 6, 19],
  20.   [10, 9, 18, 5], [16, 9, 18, 5], [10, 17, 18, 5], [16, 17, 18, 5],
  21.   [10, 9, 18, 19], [16, 9, 18, 19], [10, 17, 18, 19], [16, 17, 18, 19],
  22.   [8, 9, 4, 5], [8, 17, 4, 5], [8, 9, 4, 19], [8, 17, 4, 19],
  23.   [2, 1, 6, 5], [2, 1, 6, 19], [2, 1, 18, 5], [2, 1, 18, 19],
  24.   [10, 11, 6, 7], [10, 11, 18, 7], [16, 11, 6, 7], [16, 11, 18, 7],
  25.   [10, 9, 14, 13], [16, 9, 14, 13], [10, 17, 14, 13], [16, 17, 14, 13],
  26.   [8, 11, 4, 7], [2, 1, 14, 13], [0, 1, 4, 5], [0, 1, 4, 19],
  27.   [2, 3, 6, 7], [2, 3, 18, 7], [10, 11, 14, 15], [16, 11, 14, 15],
  28.   [8, 9, 12, 13], [8, 17, 12, 13], [0, 3, 8, 11], [0, 1, 12, 13],
  29.   [4, 7, 12, 15], [2, 3, 14, 15], [0, 3, 12, 15]]
  30.   RECT2 = [Rect.new(0, 0, 16, 16), Rect.new(16, 0, 16, 16),
  31.   Rect.new(32, 0, 16, 16), Rect.new(48, 0, 16, 16),
  32.   Rect.new(0, 16, 16, 16), Rect.new(16, 16, 16, 16),
  33.   Rect.new(32, 16, 16, 16), Rect.new(48, 16, 16, 16),
  34.   Rect.new(0, 32, 16, 16), Rect.new(16, 32, 16, 16),
  35.   Rect.new(32, 32, 16, 16), Rect.new(48, 32, 16, 16),
  36.   Rect.new(0, 48, 16, 16), Rect.new(16, 48, 16, 16),
  37.   Rect.new(32, 48, 16, 16), Rect.new(48, 48, 16, 16)]
  38.   LIST2 = [[10, 9, 6, 5], [8, 9, 4, 5], [2, 1, 6, 5], [0, 1, 4, 5],
  39.   [10, 11, 6, 7], [8, 11, 4, 7], [2, 3, 6, 7], [0, 3, 8, 11],
  40.   [10, 9, 14, 13], [8, 9, 12, 13], [2, 1, 14, 13], [0, 1, 12, 13],
  41.   [10, 11, 14, 15], [4, 7, 12, 15], [2, 3, 14, 15], [0, 3, 12, 15]]
  42.   LIST3 = [[2, 1, 6, 5], [0, 1, 4, 5], [2, 3, 6, 7], [0, 3, 4, 7]]
  43.   #----------------------------------------------------------------------------
  44.   attr_accessor :bitmaps
  45.   attr_accessor :viewport
  46.   attr_reader   :ox
  47.   attr_reader   :oy
  48.   attr_reader   :visible
  49.   attr_reader   :passages
  50.   attr_reader   :count
  51.   attr_reader   :flash_data#不知道这个做什么用的
  52.   #----------------------------------------------------------------------------
  53.   def initialize(viewport = nil)
  54.     @shadow = Bitmap.new(SIZEX, SIZEY)
  55.     @shadow.fill_rect(0, 0, 17, SIZEY, Color.new(0, 0, 0, 120))#阴影
  56.     @viewport = viewport
  57.     @bitmaps = []
  58.     @backs = {}#元件精灵
  59.     @backbitmap = {}#元件图块
  60.     @switches = {}#动画开关
  61.     @count = 0#当前显示动画
  62.     @count1 = 0#等待桢数
  63.     @visible = true
  64.     @ox = 0
  65.     @oy = 0
  66.     @lastox = 0
  67.     @lastoy = 0
  68.   end
  69.   #----------------------------------------------------------------------------
  70.   def dispose
  71.     for i in @backbitmap.values
  72.       i.dispose
  73.     end
  74.     for i in @backs.values
  75.       i.dispose
  76.     end
  77.     @shadow.dispose
  78.   end
  79.   #---------------------------------------------------------------------------
  80.   def disposed?
  81.     return @shadow.disposed?
  82.   end
  83.   #---------------------------------------------------------------------------
  84.   def map_data=(value)
  85.     @map_data = value
  86.     #如果地图太大,按ESC打开菜单后返回地图太慢,下面这段循环可以不要
  87.     for i in 0...value.xsize
  88.       for j in 0...value.ysize
  89.         for k in 0..2
  90.           cachebitmap(value[i, j, k])
  91.         end
  92.       end
  93.     end
  94.     #如果地图太大,按ESC打开菜单后返回地图太慢,上面这段循环可以不要
  95.     #需要重新描绘的图快
  96.     if @map_data.xsize * SIZEX <= FBLX
  97.       rangei = (@ox / SIZEX - 1)..[((@ox + FBLX) / SIZEX), FBLX / SIZEX - 1].min
  98.     else
  99.       rangei = (@ox / SIZEX - 1)..((@ox + FBLX) / SIZEX)
  100.     end
  101.     if @map_data.xsize * SIZEX <= FBLX
  102.       rangej = (@oy / SIZEY - 1)..[((@oy + FBLY) / SIZEY), FBLY / SIZEY - 1].min
  103.     else
  104.       rangej = (@oy / SIZEY - 1)..((@oy + FBLY) / SIZEY)
  105.     end
  106.     for i in rangei
  107.       for j in rangej
  108.         for k in 0..2
  109.           draw(i, j, k)
  110.         end
  111.       end
  112.     end
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   def refreshox
  116.     #需要释放掉的图块
  117.     rangej = (@lastoy / SIZEY - 1)..((@lastoy + FBLY) / SIZEY)
  118.     if @ox > @lastox
  119.       rangei = ((@lastox / SIZEX - 1)...(@ox / SIZEX - 1))
  120.     elsif @ox < @lastox
  121.       rangei = (((@ox + FBLX) / SIZEX + 1)..((@lastox + FBLX) / SIZEX))
  122.     end
  123.     for i in rangei
  124.       for j in rangej
  125.         for k in 0..3
  126.           next if @backs[[i, j, k]].nil?
  127.           @backs[[i, j, k]].dispose
  128.           @backs.delete([i, j, k])
  129.           @switches.delete([i, j, k])
  130.         end
  131.       end
  132.     end
  133.     #恢复走路时候的偏移
  134.     if @ox >= (@map_data.xsize * SIZEX - FBLX)
  135.       for i in @backs.keys
  136.         @backs[i].ox = 0
  137.         @backs[i].x = i[0] * SIZEX - @ox
  138.         if i[0] < (@ox / 32 - 1)
  139.           @backs[i].x += @map_data.xsize * SIZEX
  140.         elsif i[0] == -1
  141.           @backs[i].x = 0
  142.         end
  143.       end
  144.     else
  145.       for i in @backs.keys
  146.         @backs[i].ox = 0
  147.         @backs[i].x = i[0] * SIZEX - @ox
  148.       end
  149.     end
  150.     #需要重新描绘的图快
  151.     rangej = (@oy / SIZEY - 1)..((@oy + FBLY) / SIZEY)
  152.     if @ox > @lastox
  153.       rangei = ([((@lastox + FBLX) / SIZEX + 1), (@ox / SIZEX - 1)].max..((@ox + FBLX) / SIZEX))
  154.     elsif @ox < @lastox
  155.       rangei = ((@ox / SIZEX - 1)...[(@lastox / SIZEX - 1), (@ox + FBLX) / SIZEX + 1].min)
  156.     end
  157.     for i in rangei
  158.       for j in rangej
  159.         for k in 0..2
  160.           draw(i, j, k)
  161.         end
  162.       end
  163.     end
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   def refreshoy
  167.     #需要释放掉的图块
  168.     rangei = (@lastox / SIZEX - 1)..((@lastox + FBLX) / SIZEX)
  169.     if @oy > @lastoy
  170.       rangej = ((@lastoy / SIZEY - 1)...(@oy / SIZEY - 1))
  171.     elsif @oy < @lastoy
  172.       rangej = (((@oy + FBLY) / SIZEY + 1)..((@lastoy + FBLY) / SIZEY))
  173.     end
  174.     for i in rangei
  175.       for j in rangej
  176.         for k in 0..3
  177.           next if @backs[[i, j, k]].nil?
  178.           @backs[[i, j, k]].dispose
  179.           @backs.delete([i, j, k])
  180.           @switches.delete([i, j, k])
  181.         end
  182.       end
  183.     end
  184.     #恢复走路时候的偏移
  185.     if @oy >= (@map_data.ysize * SIZEY - FBLY)
  186.       for i in @backs.keys
  187.         @backs[i].oy = 0
  188.         @backs[i].y = i[1] * SIZEY - @oy
  189.         if i[1] < (@oy / 32 - 1)
  190.           @backs[i].y += @map_data.ysize * SIZEY
  191.         elsif i[1] == -1
  192.           @backs[i].y = 0
  193.         end
  194.       end
  195.     else
  196.       for i in @backs.keys
  197.         @backs[i].oy = 0
  198.         @backs[i].y = i[1] * SIZEY - @oy
  199.       end
  200.     end
  201.     #需要重新描绘的图快
  202.     rangei = (@ox / SIZEX - 1)..((@ox + FBLX) / SIZEX)
  203.     if @oy > @lastoy
  204.       rangej = ([((@lastoy + FBLY) / SIZEY + 1), @oy / SIZEY - 1].max..((@oy + FBLY) / SIZEY))
  205.     elsif @oy < @lastoy
  206.       rangej = ((@oy / SIZEY - 1)...[(@lastoy / SIZEY - 1), ((@oy + FBLY) / SIZEY + 1)].min)
  207.     end
  208.     for i in rangei
  209.       for j in rangej
  210.         for k in 0..2
  211.           draw(i, j, k)
  212.         end
  213.       end
  214.     end
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   #i为x坐标,j为y坐标,k为图层
  218.   def draw(i, j, k)
  219.     i0 = i
  220.     j0 = j
  221.     i -= @map_data.xsize if i >= @map_data.xsize
  222.     i += @map_data.xsize if i < 0
  223.     j -= @map_data.ysize if j >= @map_data.ysize
  224.     j += @map_data.ysize if j < 0
  225.     id = @map_data[i, j, k]
  226.     return if id == 0
  227.     unless @backs[[i, j, k]].nil?
  228.       unless @backs[[i, j, 3]].nil?
  229.         @backs[[i, j, 3]].x = i0 * SIZEX - @ox
  230.         @backs[[i, j, 3]].y = j0 * SIZEY - @oy
  231.       end
  232.       @backs[[i, j, k]].x = i0 * SIZEX - @ox
  233.       @backs[[i, j, k]].y = j0 * SIZEY - @oy
  234.       return
  235.     end
  236.     @backs[[i, j, k]] = Sprite.new(@viewport)
  237.     @backs[[i, j, k]].x = i0 * SIZEX - @ox
  238.     @backs[[i, j, k]].y = j0 * SIZEY - @oy
  239.     @backs[[i, j, k]].z = k * 2
  240.     @backs[[i, j, k]].bitmap = cachebitmap(id)
  241.     if id < 1024
  242.     elsif id < 1664
  243.       draw_shadow(i, j, k) if id >= 1552#阴影
  244.     elsif id < 2816
  245.       id1 = (id - 2048) / 48
  246.       unless [2, 3].include?(id1)#动画
  247.         @switches[[i, j, k]] = true
  248.         @backs[[i, j, k]].bitmap = @backbitmap[id + @count * 10000]
  249.       end
  250.     elsif id < 4352
  251.       id0 = (id - 2816) / 48 % 8
  252.       draw_shadow(i, j, k) #unless id0 == 6#阴影
  253.       #帮助手册中写A2每行第七个是不会被绘上阴影的,但实际有阴影,这里按照实际
  254.       @backs[[i, j, k]].z += 1 if id0 == 7#柜台
  255.     end
  256.     return if @passages.nil?
  257.     return unless @passages[id] == 22
  258.     @backs[[i, j, k]].z = 200
  259.   end
  260.   #---------------------------------------------------------------------------
  261.   def cachebitmap(id)
  262.     if @backbitmap[id].nil?
  263.       if id < 1024#B/C/D/E的情况
  264.         @backbitmap[id] = Bitmap.new(SIZEX, SIZEY)
  265.         bitmapid = id / 256 + 5
  266.         x = id % 256 / 128 * 8 * SIZEX + id % 256 % 128 % 8 * SIZEX
  267.         y = id % 256 % 128 / 8 * SIZEY
  268.         rect = Rect.new(x, y, SIZEX, SIZEY)
  269.         @backbitmap[id].blt(0, 0, @bitmaps[bitmapid], rect)
  270.       elsif id < 1664#A5的情况
  271.         @backbitmap[id] = Bitmap.new(SIZEX, SIZEY)
  272.         id0 = id - 1536
  273.         bitmapid = 4
  274.         x = id0 % 8 * SIZEX
  275.         y = id0 / 8 * SIZEY
  276.         rect = Rect.new(x, y, SIZEX, SIZEY)
  277.         @backbitmap[id].blt(0, 0, @bitmaps[bitmapid], rect)
  278.       elsif id < 2816#A1的情况
  279.         id0 = id - 2048
  280.         id1 = id0 / 48#编号,含义见附录
  281.         id2 = id0 % 48#含义见附录
  282.         bitmapid = 0
  283.         if id1 == 0#前四张排列比较特殊,浅海水域-深海水域-浅海装饰-深海装饰
  284.           x = 0
  285.           y = 0
  286.           @backbitmap[id] = drawbitmap1(x, y, id2, bitmapid)
  287.           x += 64
  288.           @backbitmap[id + 10000] = drawbitmap1(x, y, id2, bitmapid)
  289.           x += 64
  290.           @backbitmap[id + 20000] = drawbitmap1(x, y, id2, bitmapid)
  291.         elsif id1 == 1
  292.           x = 0
  293.           y = 96
  294.           @backbitmap[id] = drawbitmap1(x, y, id2, bitmapid)
  295.           x += 64
  296.           @backbitmap[id + 10000] = drawbitmap1(x, y, id2, bitmapid)
  297.           x += 64
  298.           @backbitmap[id + 20000] = drawbitmap1(x, y, id2, bitmapid)
  299.         elsif id1 == 2
  300.           x = 192
  301.           y = 0
  302.           @backbitmap[id] = drawbitmap1(x, y, id2, bitmapid)
  303.         elsif id1 == 3
  304.           x = 192
  305.           y = 96
  306.           @backbitmap[id] = drawbitmap1(x, y, id2, bitmapid)
  307.         elsif id1 % 2 == 0#从第五张开始就是水域-瀑布-水域-瀑布的顺序了
  308.           x = id1 / 4 % 2 * 256
  309.           y = id1 / 4 / 2 * 192 + id1 / 2 % 2 * 96
  310.           @backbitmap[id] = drawbitmap1(x, y, id2, bitmapid)
  311.           x += 64
  312.           @backbitmap[id + 10000] = drawbitmap1(x, y, id2, bitmapid)
  313.           x += 64
  314.           @backbitmap[id + 20000] = drawbitmap1(x, y, id2, bitmapid)
  315.         else
  316.           x = id1 / 4 % 2 * 256 + 192
  317.           y = id1 / 4 / 2 * 192 + id1 / 2 % 2 * 96
  318.           @backbitmap[id] = drawbitmap3(x, y, id2, bitmapid)
  319.           y += 32
  320.           @backbitmap[id + 10000] = drawbitmap3(x, y, id2, bitmapid)
  321.           y += 32
  322.           @backbitmap[id + 20000] = drawbitmap3(x, y, id2, bitmapid)
  323.         end
  324.       elsif id < 4352#A2的情况
  325.         id0 = id - 2816
  326.         id1 = id0 / 48#编号,含义见附录
  327.         id2 = id0 % 48#含义见附录
  328.         bitmapid = 1
  329.         x = id1 % 8 * 64
  330.         y = id1 / 8 * 96
  331.         if id1 % 8 == 7
  332.           @backbitmap[id] = drawbitmap4(x, y, id2, bitmapid)
  333.         else
  334.           @backbitmap[id] = drawbitmap1(x, y, id2, bitmapid)
  335.         end
  336.       elsif id < 5888#A3的情况
  337.         id0 = id - 4352
  338.         id1 = id0 / 48#编号,含义见附录
  339.         id2 = id0 % 48#含义见附录
  340.         bitmapid = 2
  341.         x = id1 % 8 * 64
  342.         y = id1 / 8 * 64
  343.         @backbitmap[id] = drawbitmap2(x, y, id2, bitmapid)
  344.       else#A4的情况
  345.         id0 = id - 5888
  346.         id1 = id0 / 48#编号,含义见附录
  347.         id2 = id0 % 48#含义见附录
  348.         bitmapid = 3
  349.         x = id1 % 8 * 64
  350.         if id1 % 16 < 8
  351.           y = id1 / 16 * 160
  352.           @backbitmap[id] = drawbitmap1(x, y, id2, bitmapid)
  353.         else
  354.           y = id1 / 16 * 160 + 96
  355.           @backbitmap[id] = drawbitmap2(x, y, id2, bitmapid)
  356.         end
  357.       end
  358.     end
  359.     return @backbitmap[id]
  360.   end
  361.   #---------------------------------------------------------------------------
  362.   #A1,A2
  363.   #此处的x,y指图片上的xy位置,id范围为0-48,id含义见附录
  364.   #i,j为地图上的xy位置,k为层数,bitmapid为源图片编号
  365.   def drawbitmap1(x, y, id, bitmapid)
  366.     bitmap = Bitmap.new(SIZEX, SIZEY)
  367.     rect = RECT1[LIST1[id][0]].clone
  368.     rect.x += x
  369.     rect.y += y
  370.     bitmap.blt(0, 0, @bitmaps[bitmapid], rect)
  371.     rect = RECT1[LIST1[id][1]].clone
  372.     rect.x += x
  373.     rect.y += y
  374.     bitmap.blt(16, 0, @bitmaps[bitmapid], rect)
  375.     rect = RECT1[LIST1[id][2]].clone
  376.     rect.x += x
  377.     rect.y += y
  378.     bitmap.blt(0, 16, @bitmaps[bitmapid], rect)
  379.     rect = RECT1[LIST1[id][3]].clone
  380.     rect.x += x
  381.     rect.y += y
  382.     bitmap.blt(16, 16, @bitmaps[bitmapid], rect)
  383.     return bitmap
  384.   end
  385.   #---------------------------------------------------------------------------
  386.   #A3
  387.   #此处的x,y指图片上的xy位置,id范围为0-48,id含义见附录
  388.   #i,j为地图上的xy位置,k为层数,bitmapid为源图片编号
  389.   def drawbitmap2(x, y, id, bitmapid)
  390.     bitmap = Bitmap.new(SIZEX, SIZEY)
  391.     rect = RECT2[LIST2[id][0]].clone
  392.     rect.x += x
  393.     rect.y += y
  394.     bitmap.blt(0, 0, @bitmaps[bitmapid], rect)
  395.     rect = RECT2[LIST2[id][1]].clone
  396.     rect.x += x
  397.     rect.y += y
  398.     bitmap.blt(16, 0, @bitmaps[bitmapid], rect)
  399.     rect = RECT2[LIST2[id][2]].clone
  400.     rect.x += x
  401.     rect.y += y
  402.     bitmap.blt(0, 16, @bitmaps[bitmapid], rect)
  403.     rect = RECT2[LIST2[id][3]].clone
  404.     rect.x += x
  405.     rect.y += y
  406.     bitmap.blt(16, 16, @bitmaps[bitmapid], rect)
  407.     return bitmap
  408.   end
  409.   #---------------------------------------------------------------------------
  410.   #瀑布
  411.   #此处的x,y指图片上的xy位置,id范围为0-48,id含义见附录
  412.   #i,j为地图上的xy位置,k为层数,bitmapid为源图片编号
  413.   def drawbitmap3(x, y, id, bitmapid)
  414.     bitmap = Bitmap.new(SIZEX, SIZEY)
  415.     rect = RECT2[LIST3[id][0]].clone
  416.     rect.x += x
  417.     rect.y += y
  418.     bitmap.blt(0, 0, @bitmaps[bitmapid], rect)
  419.     rect = RECT2[LIST3[id][1]].clone
  420.     rect.x += x
  421.     rect.y += y
  422.     bitmap.blt(16, 0, @bitmaps[bitmapid], rect)
  423.     rect = RECT2[LIST3[id][2]].clone
  424.     rect.x += x
  425.     rect.y += y
  426.     bitmap.blt(0, 16, @bitmaps[bitmapid], rect)
  427.     rect = RECT2[LIST3[id][3]].clone
  428.     rect.x += x
  429.     rect.y += y
  430.     bitmap.blt(16, 16, @bitmaps[bitmapid], rect)
  431.     return bitmap
  432.   end
  433.   #---------------------------------------------------------------------------
  434.   #柜台
  435.   #此处的x,y指图片上的xy位置,id范围为0-48,id含义见附录
  436.   #i,j为地图上的xy位置,k为层数,bitmapid为源图片编号
  437.   def drawbitmap4(x, y, id, bitmapid)
  438.     if [28, 29, 30, 31, 33].include?(id)#下
  439.       bitmap = Bitmap.new(SIZEX, 40)
  440.       rect = Rect.new(32, 48, 16, 16)
  441.       rect.x += x
  442.       rect.y += y
  443.       bitmap.blt(0, 16, @bitmaps[bitmapid], rect)
  444.       rect = Rect.new(16, 48, 16, 16)
  445.       rect.x += x
  446.       rect.y += y
  447.       bitmap.blt(16, 16, @bitmaps[bitmapid], rect)
  448.     elsif [38, 39, 45].include?(id)#右+下
  449.       bitmap = Bitmap.new(SIZEX, 40)
  450.       rect = Rect.new(32, 48, 16, 8)
  451.       rect.x += x
  452.       rect.y += y
  453.       bitmap.blt(0, 16, @bitmaps[bitmapid], rect)
  454.       rect = Rect.new(48, 48, 16, 8)
  455.       rect.x += x
  456.       rect.y += y
  457.       bitmap.blt(16, 16, @bitmaps[bitmapid], rect)
  458.     elsif [40, 41, 43].include?(id)#左+下
  459.       bitmap = Bitmap.new(SIZEX, 40)
  460.       rect = Rect.new(0, 48, 16, 8)
  461.       rect.x += x
  462.       rect.y += y
  463.       bitmap.blt(0, 16, @bitmaps[bitmapid], rect)
  464.       rect = Rect.new(16, 48, 16, 8)
  465.       rect.x += x
  466.       rect.y += y
  467.       bitmap.blt(16, 16, @bitmaps[bitmapid], rect)
  468.     elsif [44, 46].include?(id)#左+下+右
  469.       bitmap = Bitmap.new(SIZEX, 40)
  470.       rect = Rect.new(0, 48, 16, 8)
  471.       rect.x += x
  472.       rect.y += y
  473.       bitmap.blt(0, 16, @bitmaps[bitmapid], rect)
  474.       rect = Rect.new(48, 48, 16, 8)
  475.       rect.x += x
  476.       rect.y += y
  477.       bitmap.blt(16, 16, @bitmaps[bitmapid], rect)
  478.     else
  479.       bitmap = Bitmap.new(SIZEX, SIZEY)
  480.       rect = RECT1[LIST1[id][0]].clone
  481.       rect.x += x
  482.       rect.y += y
  483.       bitmap.blt(0, 0, @bitmaps[bitmapid], rect)
  484.       rect = RECT1[LIST1[id][1]].clone
  485.       rect.x += x
  486.       rect.y += y
  487.       bitmap.blt(16, 0, @bitmaps[bitmapid], rect)
  488.       rect = RECT1[LIST1[id][2]].clone
  489.       rect.x += x
  490.       rect.y += y
  491.       bitmap.blt(0, 16, @bitmaps[bitmapid], rect)
  492.       rect = RECT1[LIST1[id][3]].clone
  493.       rect.x += x
  494.       rect.y += y
  495.       bitmap.blt(16, 16, @bitmaps[bitmapid], rect)
  496.       return bitmap
  497.     end
  498.     rect = RECT1[LIST1[id][0]].clone
  499.     rect.x += x
  500.     rect.y += y
  501.     bitmap.blt(0, 0, @bitmaps[bitmapid], rect)
  502.     rect = RECT1[LIST1[id][1]].clone
  503.     rect.x += x
  504.     rect.y += y
  505.     bitmap.blt(16, 0, @bitmaps[bitmapid], rect)
  506.     rect = RECT1[LIST1[id][2]].clone
  507.     rect.x += x
  508.     rect.y += y
  509.     bitmap.blt(0, 24, @bitmaps[bitmapid], rect)
  510.     rect = RECT1[LIST1[id][3]].clone
  511.     rect.x += x
  512.     rect.y += y
  513.     bitmap.blt(16, 24, @bitmaps[bitmapid], rect)
  514.     return bitmap
  515.   end
  516.   #--------------------------------------------------------------------------
  517.   def draw_shadow(i, j, k)
  518.     return if k != 0
  519.     return if i == 0
  520.     i -= 1
  521.     id = @map_data[i, j, 0]
  522.     return if id < 4352
  523.     if id < 5888#A3的情况
  524.       id0 = id - 4352
  525.       id1 = id0 / 48#编号,含义见附录
  526.       id2 = id0 % 48#含义见附录
  527.       if [4, 5, 12].include?(id2)
  528.         nexts = true
  529.       elsif j == 0
  530.       elsif @map_data[i, j - 1, 0].between?(4352, 5888)
  531.         nexts = true
  532.       end
  533.     else#A4的情况
  534.       id0 = id - 5888
  535.       id1 = id0 / 48#编号,含义见附录
  536.       id2 = id0 % 48#含义见附录
  537.       if id1 % 16 < 8
  538.         if [24, 25, 26, 27, 32, 38, 39].include?(id2)
  539.           nexts = true
  540.         elsif j == 0
  541.         elsif @map_data[i, j - 1, 0] >= 5888
  542.           nexts = true
  543.         end
  544.       else
  545.       if [4, 5, 12].include?(id2)
  546.           nexts = true
  547.         elsif j == 0
  548.         elsif @map_data[i, j - 1, 0] >= 5888
  549.           nexts = true
  550.         end
  551.       end
  552.     end
  553.     return unless nexts
  554.     i += 1
  555.     @backs[[i, j, 3]] = Sprite.new(@viewport)
  556.     @backs[[i, j, 3]].bitmap = @shadow
  557.     @backs[[i, j, 3]].x = @backs[[i, j, 0]].x
  558.     @backs[[i, j, 3]].y = @backs[[i, j, 0]].y
  559.     @backs[[i, j, 3]].z = 0
  560.   end
  561.   #---------------------------------------------------------------------------
  562.   def passages=(value)
  563.     @passages = value
  564.     for i in ([@ox / SIZEX - 1, 0].max)..((@ox + FBLX) / SIZEX)
  565.       for j in ([@oy / SIZEY - 1, 0].max)..((@oy + FBLY) / SIZEY)
  566.         id = @map_data[i, j, 2]
  567.         next if id.nil?
  568.         next unless value[id] == 22
  569.         @backs[[i, j, 2]].z = 200
  570.       end
  571.     end
  572.   end
  573.   #---------------------------------------------------------------------------
  574.   #不知道这个做什么用的
  575.   def flash_data=(value)
  576.     @flash_data = value
  577.   end
  578.   #---------------------------------------------------------------------------
  579.   def update
  580.     if @count1 == ANI
  581.       @count1 = 0
  582.       self.count += 1
  583.     else
  584.       @count1 += 1
  585.     end
  586.   end
  587.   #---------------------------------------------------------------------------
  588.   def count=(value)
  589.     value = 0 if value >= 3
  590.     @count = value
  591.     for i in @switches.keys
  592.       id = @map_data[i[0], i[1], i[2]]
  593.       @backs[i].bitmap = @backbitmap[id + value * 10000]
  594.     end
  595.   end
  596.   #--------------------------------------------------------------------------
  597.   def visible=(value)
  598.     @visible = value
  599.     for i in @backs.values
  600.       i.visible = value
  601.     end
  602.   end
  603.   #--------------------------------------------------------------------------
  604.   def ox=(value)
  605.     if @ox != value
  606.       @ox = value
  607.       if value >= (@map_data.xsize * SIZEX - FBLX)
  608.         @lastox += @map_data.xsize * SIZEX if @lastox < (@ox - FBLX)
  609.       end
  610.       #人物走路时候
  611.       if @ox % SIZEX != 0
  612.         for i in @backs.values
  613.           i.ox = @ox - @lastox
  614.         end
  615.       else
  616.         refreshox
  617.         @lastox = @ox
  618.       end
  619.     end
  620.   end
  621.   #--------------------------------------------------------------------------
  622.   def oy=(value)
  623.     if @oy != value
  624.       @oy = value
  625.       if value >= (@map_data.ysize * SIZEY - FBLY)
  626.         @lastoy += @map_data.ysize * SIZEY if @lastoy < (@oy - FBLY)
  627.       end
  628.       #人物走路时候
  629.       if @oy % SIZEY != 0
  630.         for i in @backs.values
  631.           i.oy = @oy - @lastoy
  632.         end
  633.       else
  634.         refreshoy
  635.         @lastoy = @oy
  636.       end
  637.     end
  638.   end
  639. end
复制代码

http://rpg.blue/viewthread.php?tid=105726
作者: zh99998    时间: 2009-2-15 19:31
文件、RTP相关

API法复制文件 by 柳柳
  1. Copy = Win32API.new('kernel32', 'CopyFileA',%(p p l), 'l')
复制代码

Copy.call(源文件,目标文件,0)

获取完整路径

  1. #--------------------------------------------------------------------------
  2. # ● 获取完整路径 by zh99998
  3. #--------------------------------------------------------------------------
  4. module GetPath
  5.   Readini = Win32API.new('kernel32', 'GetPrivateProfileStringA', 'PPPPLP', 'L')
  6.   def self.rtp(id=[])
  7.     dll = self.readini('.//Game.ini','Game', 'Library')
  8.     rgssgetatppath = Win32API.new(dll, "RGSSGetRTPPath", "l", "l")
  9.     rgssgetpathwithrtp = Win32API.new(dll, "RGSSGetPathWithRTP", "l", "p")
  10.     id.to_a
  11.     if id.empty?
  12.       id.push 1 unless self.readini('.//Game.ini','Game', 'RTP1').empty?
  13.       id.push 2 unless self.readini('.//Game.ini','Game', 'RTP2').empty?
  14.       id.push 3 unless self.readini('.//Game.ini','Game', 'RTP3').empty?
  15.     end
  16.     @result = []
  17.     id.each {|index|@result.push rgssgetpathwithrtp.call(rgssgetatppath.call(index)) + "/"}
  18.     return @result
  19.   end
  20.   def self.readini(filename,a,b='',c='')
  21.     temp = "\0" * 255
  22.     Readini.call(a, b, '', temp, 255, filename)
  23.     return temp.delete("\0")
  24.   end

  25.   Graphicskind = ["animations","autotiles","battlebacks","battlers","characters","fogs","gameovers","icons","panoramas","pictures","tilesets","titles","transitions"]
  26.   Audiokind = ["bgm","bgs","me","se"]
  27.   GraphicsExt = ["png","jpg",""]
  28.   AudioExt = ["mid","ogg","wma","mp3","wav",""]
  29.   Path = self.rtp.unshift("")
  30.   def self.get(filename, kind)
  31.     filename.downcase!
  32.     kind.downcase!
  33.     kind += s if Graphicskind.include?(kind + "s")
  34.     if Graphicskind.include?(kind)
  35.       filename.insert(0, "Graphics/" + kind + "/")
  36.       exts = GraphicsExt
  37.     else
  38.       filename.insert(0, "Audio/" + kind + "/")
  39.       exts = AudioExt
  40.     end
  41.     Path.each do |path|
  42.       exts.each do |ext|
  43.         file = path + filename
  44.         file += "." + ext unless ext.empty?
  45.         return file if FileTest.exist?(file)
  46.       end
  47.     end
  48.   end
  49. end
复制代码

GetPath.rtp([RTP编号]) 获取指定编号的RTP路径,参数不填为获取所有RTP
GetPath.readini(文件,参数1,[参数2,[参数3]])
GetPath.get(文件名,文件类型) 获取文件的路径
作者: zh99998    时间: 2009-2-15 19:35
其他
作者: zh99998    时间: 2009-2-15 19:37
占楼备用
作者: zh99998    时间: 2009-2-15 19:46
占楼备用
[LINE]1,#dddddd[/LINE]
{/fd}▼楼下抢地盘?!
作者: chenyin    时间: 2009-2-15 20:03
对话框背景效果
  1. class Window_Message < Window_Selectable
  2.   PIC1 = "1"
  3.   PIC2 = "2"
  4.   SPEED = 1
  5.   alias initialize_via initialize
  6.   def initialize
  7.     @vie = Viewport.new(0, 288, 544, 128)
  8.     @vie.z = 0
  9.     @pic1 = Sprite.new(@vie)
  10.     @pic2 = Sprite.new(@vie)
  11.     @pic1.opacity, @pic2.opacity = 128, 128
  12.     @pic1.x, @pic1.y, @pic2.x, @pic2.y = 0, 0, 0, 0
  13.     @pic1.bitmap = Bitmap.new("Graphics/Pictures/#{PIC1}")
  14.     @pic2.bitmap = Bitmap.new("Graphics/Pictures/#{PIC2}")
  15.     initialize_via
  16.     update
  17.   end
  18.   alias update_via update
  19.   def update
  20.     if self.openness == 255
  21.       @pic1.visible=true
  22.       @pic2.visible=true
  23.     else
  24.       @pic1.visible=false
  25.       @pic2.visible=false
  26.     end
  27.     @pic1.y -= SPEED * 2
  28.     @pic2.y -= SPEED
  29.     @pic1.y = 0 if @pic1.y == -160
  30.     @pic2.y = 0 if @pic2.y == -160
  31.     update_via
  32.   end
  33.   alias dispose_via dispose
  34.   def dispose
  35.     @vie.dispose
  36.     @pic1.bitmap.dispose
  37.     @pic2.bitmap.dispose
  38.     @pic1.dispose
  39.     @pic2.dispose
  40.     dispose_via
  41.   end
  42. end
  43. class Window_Message < Window_Selectable
  44.   SoundFile = "Audio/SE/键盘声1" #声音文件
  45.   WaitTime = 2 #等待时间,为了防止过于频繁播放声音
  46.   alias update_message_sound update_message
  47.   def update_message
  48.     update_message_sound
  49.     if !@waittime
  50.       @waittime = WaitTime
  51.     elsif @waittime < WaitTime
  52.       @waittime += 1
  53.     else
  54.       Audio.se_play(SoundFile,80) #可以在括号里再加上音量音调,用逗号隔开
  55.       @waittime = 0
  56.     end
  57.   end
  58. end
复制代码

范例地址:http://rpg.blue/upload_program/d/chenyin_脚本1_115194223.rar
------------------------------------------------------------------------------------
这个脚本仓库也借我用用吧。- -
作者: hitlerson    时间: 2009-2-15 20:29
你的LOADING在哪里判断游戏加载进度的?
作者: zh99998    时间: 2009-2-15 21:00
以下引用hitlerson于2009-2-15 12:29:27的发言:

你的LOADING在哪里判断游戏加载进度的?

nth
作者: hitlerson    时间: 2009-2-15 21:19
这个nth是nth+=1出来的,不是getBytesTotal()啊
作者: zh99998    时间: 2009-2-15 21:41
跟BytesTotal有什么关系- -
范例
http://rpg.blue/viewthread.php?tid=108703&ntime=2009%2D2%2D15+13%3A42%3A22
作者: Earth    时间: 2009-2-15 21:47
占楼备用……
[LINE]1,#dddddd[/LINE]
也借我用用吧……{/dy}
作者: zh99998    时间: 2009-2-16 02:42
楼上是蓝雪乎?




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