| 赞 | 0  | 
 
| VIP | 1 | 
 
| 好人卡 | 11 | 
 
| 积分 | 1 | 
 
| 经验 | 17928 | 
 
| 最后登录 | 2018-9-22 | 
 
| 在线时间 | 461 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 55 
 
        - 在线时间
 - 461 小时
 
        - 注册时间
 - 2008-11-19
 
        - 帖子
 - 607
 
 
 
 | 
	
 本帖最后由 sai90306 于 2012-6-11 03:01 编辑  
 
請問如何給這個腳本加上新的"文字指令"? 
也就是透過增加新的gsub方法來實現 
例如增加字體大小和文字加外框兩個指令- module Sword
 
 - #=======================================
 
 - #★魔劍工舖 - 地圖任意顯示文字窗口
 
 - #轉貼腳本請著名出處:[url]http://blog.yam.com/a870053jjkj/article/24354553[/url]
 
 - #如果採用在遊戲中,看你高興是否顯示腳本出處,但嚴禁說是自己寫的腳本!!
 
 - #=======================================
 
 - #● 使用者自定設置
 
 - SWORD_TEXT_DISP = 1 # 切換畫面時是否釋放所有窗口,0表示不使用
 
 - #=======================================
 
 - #● 文字指令
 
 - # \V[數值] : 顯示指定編號的變數(可用來代替 [數值] 使用!!)
 
 -   
 
 - # \C[數值] : 變更文字的顏色,顏色請在Window_Base類的text_color方法中設置
 
 -   
 
 - # \N[數值] : 顯示指定編號的角色名稱
 
 -  
 
 - # \S[數值] : 顯示指定編號的技能名稱
 
 -  
 
 - # \I[數值] : 顯示指定編號的物品名稱
 
 -  
 
 - # \W[數值] : 顯示指定編號的武器名稱
 
 -  
 
 - # \A[數值] : 顯示指定編號的防具名稱
 
 -  
 
 - # \E[數值] : 顯示指定編號的敵人名稱 
 
 -  
 
 - # \\ : 顯示「\」符號
 
 - #=======================================
 
 - #● 呼叫方法
 
 - # sword_text(編號, X座標, 座標, 寬度, 高度, 不透明度, '
 
 - # 文字內容
 
 - # ')
 
 - #--------------------------------------------------------------
 
 - # [X座標] 輸入 「true」 : 窗口的X座標為呼叫此腳本的事件的中央顯示
 
 -  
 
 - # [Y座標] 輸入 「true」 : 窗口的Y座標為呼叫此腳本的事件的上方顯示
 
 -  
 
 - # [寬度] 輸入 「true」 : 窗口的寬度依照文字內容最長的內容自動調整
 
 -  
 
 - # [高度] 輸入 「true」 : 窗口的高度依照文字內容的行數來自動調整
 
 - #=======================================
 
 - #● 關閉窗口
 
 - # sword_text_dispose(編號) : 關閉指定編號的窗口
 
 -  
 
 - # sword_text_dispose(true) : 關閉目前顯示編號最大的窗口
 
 -  
 
 - # sword_text_dispose(false) : 關閉目前顯示編號最小的窗口
 
 -  
 
 - # sword_text_dispose(nil) : 關閉目前顯示的所有窗口
 
 -  
 
 - #詳細設置說明請參考:[url]http://blog.yam.com/a870053jjkj/article/24354553[/url]
 
 - #=======================================
 
 -   $sword_text_window = []
 
 - end
 
 -  
 
 - class WSword_Text < Window_Base
 
 -   def initialize(z, x, y, ox, oy, text)
 
 -     contents = Bitmap.new(33 - 32 , 33 - 32)
 
 -     # 將字串分解成數組並計算最長文字寬度與行數
 
 -     text = text.scan(/\S*/)
 
 -     cx = []
 
 -     br = 0
 
 -     for i in 0...text.size
 
 -       text[i] == "" ? text[i] = nil : 0
 
 -       text[i] == nil ? br += 32 : cx[i] = contents.text_size(text[i]).width + 32
 
 -     end
 
 -     br -= 32
 
 -     cx.compact!
 
 -     for i in 1...cx.size
 
 -       cx[0] >= cx[i] ? 0 : cx[0] = cx[i]
 
 -     end
 
 -     # 刪除不必要的部份,只留字串
 
 -     text.shift and text.pop and text.pop
 
 -     text.compact!
 
 -     # 當指定位置或大小為true時自動調整
 
 -     @x = x
 
 -     x.is_a?(Array) ? x = x[0] - (cx[0] / 2 - 16) : 0
 
 -     y.is_a?(Array) ? y = y[0] - br / 2 - br / 2 - 16 : 0
 
 -     ox == true ? @ox = true : 0
 
 -     @ox == true ? ox = cx[0] : 0
 
 -     oy == true ? oy = br : 0
 
 -     super(x, y, ox, oy)
 
 -     self.contents = Bitmap.new(width - 32, height - 32)
 
 -     self.z = z
 
 -     @text = text
 
 -     refresh
 
 -   end
 
 -   def refresh
 
 -     self.contents.clear
 
 -     # 防止相同字符串被更動,加上標記
 
 -     a = @text[0] + "\\br"
 
 -     if @ox == true
 
 -       text_width(@text)
 
 -     end
 
 -     a.gsub!(/\\br/) { "" } # 刪除標記
 
 -     @text[0] = a
 
 -     y = 0 # 文字的Y座標
 
 -     # 循環每行的內容
 
 -     for i in @text
 
 -       text = [] # 儲存一行內容和指令之用
 
 -       b = 0 # 數組欄位
 
 -       a = "" # 暫存字串中的1個字
 
 -       i.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
 
 -       i.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\000[#{$1}]" }
 
 -       i.gsub!(/\\[Nn]\[([0-9]+)\]/) do
 
 -         $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Ss]\[([0-9]+)\]/) do
 
 -         $data_skills[$1.to_i] != nil ? $data_skills[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Ii]\[([0-9]+)\]/) do
 
 -         $data_items[$1.to_i] != nil ? $data_items[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Ww]\[([0-9]+)\]/) do
 
 -         $data_weapons[$1.to_i] != nil ? $data_weapons[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Aa]\[([0-9]+)\]/) do
 
 -         $data_armors[$1.to_i] != nil ? $data_armors[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Ee]\[([0-9]+)\]/) do
 
 -         $data_enemies[$1.to_i] != nil ? $data_enemies[$1.to_i].name : ""
 
 -       end
 
 -       while ((c = i.slice!(/./m)) != nil)
 
 -         if c == "\000" # \C 顏色
 
 -           text[b] = a
 
 -           b += 1
 
 -           i.sub!(/\[([0-9]+)\]/, "")
 
 -           text[b] = ["c", $1.to_i]
 
 -           b += 1
 
 -           a = ""
 
 -           next
 
 -         end
 
 -         a += c
 
 -       end
 
 -       text[b] = a
 
 -       # 產生窗口內容
 
 -       x = 0
 
 -       self.contents.font.color = normal_color
 
 -       # 循環該行內容(判斷指令)
 
 -       for i in text
 
 -         if i.is_a?(String) # 顯示文字
 
 -           self.contents.draw_text(x, y, 640, 32, i)
 
 -           x += contents.text_size(i).width
 
 -         else
 
 -           case i[0]
 
 -           when "c" # 更換顏色
 
 -             self.contents.font.color = text_color(i[1])
 
 -           end
 
 -         end
 
 -       end
 
 -       y += 32
 
 -     end
 
 -   end
 
 -   # 自動調整寬度的方法
 
 -   def text_width(text)
 
 -     text = [] # 用來記錄每行文字的寬度
 
 -     b = 0 # 數組欄位
 
 -     for i in @text
 
 -       i.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
 
 -       i.gsub!(/\\[Cc]\[([0-9]+)\]/) { "" }
 
 -       i.gsub!(/\\[Nn]\[([0-9]+)\]/) do
 
 -         $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Ss]\[([0-9]+)\]/) do
 
 -         $data_skills[$1.to_i] != nil ? $data_skills[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Ii]\[([0-9]+)\]/) do
 
 -         $data_items[$1.to_i] != nil ? $data_items[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Ww]\[([0-9]+)\]/) do
 
 -         $data_weapons[$1.to_i] != nil ? $data_weapons[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Aa]\[([0-9]+)\]/) do
 
 -         $data_armors[$1.to_i] != nil ? $data_armors[$1.to_i].name : ""
 
 -       end
 
 -       i.gsub!(/\\[Ee]\[([0-9]+)\]/) do
 
 -         $data_enemies[$1.to_i] != nil ? $data_enemies[$1.to_i].name : ""
 
 -       end
 
 -       text[b] = contents.text_size(i).width
 
 -       b += 1
 
 -     end
 
 -     # 獲取數組中數值最高的數值
 
 -     for i in 1...text.size
 
 -       text[0] >= text[i] ? 0 : text[0] = text[i]
 
 -     end
 
 -     self.width = text[0] + 32
 
 -     # 窗口X座標修正
 
 -     if @x.is_a?(Array) 
 
 -       x = @x[0] - (self.width / 2 - 16) 
 
 -       self.x = x
 
 -     end
 
 -     self.contents = Bitmap.new(width - 32, height - 32)
 
 -   end
 
 - end
 
 -  
 
 - #☆ 事件中呼叫的處理
 
 - class Interpreter
 
 -   # 產生窗口的方法
 
 -   def sword_text(i, x, y, width, height, opacity, text)
 
 -     # 防止非法編號
 
 -     if i <= 0
 
 -       return
 
 -     end
 
 -     x == true ? x = [$game_map.events[@event_id].x * 32] : 0
 
 -     y == true ? y = [$game_map.events[@event_id].y * 32] : 0
 
 -     unless $sword_text_window[i] == nil
 
 -       $sword_text_window[i].dispose
 
 -     end
 
 -     $sword_text_window[i] = WSword_Text.new(i, x, y, width, height, text)
 
 -     $sword_text_window[i].opacity = opacity
 
 -   end
 
 -   # 釋放窗口的方法
 
 -   def sword_text_dispose(dispose)
 
 -     case dispose
 
 -     when Integer # 整數(釋放指定編號的窗口)
 
 -       unless $sword_text_window[dispose] == nil
 
 -         $sword_text_window[dispose].dispose
 
 -         $sword_text_window[dispose] = nil
 
 -       end
 
 -     when TrueClass # true(釋放最前面的窗口)
 
 -       i = 1
 
 -       loop do
 
 -         a = $sword_text_window.size - i
 
 -         unless $sword_text_window[a] == nil
 
 -           $sword_text_window[a].dispose
 
 -           $sword_text_window[a] = nil
 
 -           return
 
 -         end
 
 -         if a <= 0
 
 -           return
 
 -         end
 
 -         i += 1
 
 -       end
 
 -     when FalseClass # false(釋放最後面的窗口)
 
 -       for i in 1...$sword_text_window.size
 
 -         unless $sword_text_window[i] == nil
 
 -           $sword_text_window[i].dispose
 
 -           $sword_text_window[i] = nil
 
 -           return
 
 -         end
 
 -       end
 
 -     when NilClass # nil(釋放所有顯示的窗口)
 
 -       for i in 1...$sword_text_window.size
 
 -         unless $sword_text_window[i] == nil
 
 -           $sword_text_window[i].dispose
 
 -           $sword_text_window[i] = nil
 
 -         end
 
 -       end
 
 -     end
 
 -   end
 
 - end
 
 -  
 
 - #☆ 切換畫面時釋放窗口
 
 - class Scene_Map
 
 -   include Sword
 
 -   alias sword_main4 main
 
 -   def main
 
 -     sword_main4
 
 -     SWORD_TEXT_DISP == 0 ? 0 : Interpreter.new.sword_text_dispose(nil)
 
 -   end
 
 - end
 
  复制代码 另附上可能有相關的參考腳本- module Sword
 
 - #=======================================
 
 - #★ 魔劍工舖 - 多功能對話框
 
 - # 轉貼腳本請著名出處:[url]http://blog.yam.com/a870053jjkj/[/url]
 
 - # 如果採用在遊戲中,看你高興是否顯示腳本出處,但嚴禁說是自己寫的腳本!!
 
 - #=======================================
 
 - #● 使用者自定設置
 
 - #○ 基本設置
 
 - SWORD_MESS_POSI = [16, 0, 0] # 設定對話框的 [上, 中, 下]的Y座標,0為自動調整
 
 - SWORD_MESS_PAUS = 10   # 設定暫停標誌的每格動畫的時間
 
 - SWORD_MESS_SWIT = ['開', '關'] # 設定控制碼「\S」顯示的內容 ([ON,OFF)
 
 - SWORD_MESS_SEVP = [80, 100] # 設定控制碼「\SE」預設的 [音量, 音調]
 
 - SWORD_MESS_NACO = [192, 224, 255] # 設定用頭像+名稱控制碼的名稱文字顏色
 
 - SWORD_MESS_HEAD = [120, 140] # 設定頭像 [寬度, 高度],0表示依圖片自動調整
 
 - SWORD_MESS_NAME = '' # 設定對話框預設的字體,找不到該字體就用預設字體
 
 - SWORD_MESS_SIZE = 22 # 設定對話框預設的文字大小,0表示使用預設大小
 
 - SWORD_MESS_BOIT = [0, 0] # 設定對話框預設是否 [粗體, 斜體],0否、1是 
 
 - SWORD_MESS_COLO = [255, 255, 255] # 設定對話框預設的文字顏色 [紅, 綠, 藍]
 
 - #--------------------------------------------------------------
 
 - #○ 追蹤字詞添加設置
 
 - # 找到指定內容,就在內容前後附加內容,'追蹤內容'=>['前附加內容', '後附加內容'],
 
 - SWORD_MESS_TRAY = {
 
 -   '你好'=>['\c[6]', '\c[0]'], 
 
 -   '阻止他'=>['\fs[32]', '\fs[22]'],
 
 - } # 設置結束
 
 - #=======================================
 
 - #● 控制碼
 
 - #○ 內容控制碼
 
 - # \V[變數編號] : 顯示指定變數編號的數值,可當成其他控制碼的參數用(深度為5)
 
 - # \S[開關編號] : 顯示指定開關編號目前的狀態文字,依設置SWORD_MESS_SWIT
 
 - # \N[角色編號] : 顯示指定角色編號的角色名稱
 
 - # \CN[職業編號] : 顯示指定職業編號的職業名稱
 
 - # \SN[技能編號] : 顯示指定技能編號的技能名稱
 
 - # \IN[物品編號] : 顯示指定物品編號的物品名稱
 
 - # \WN[武器編號] : 顯示指定武器編號的武器名稱
 
 - # \AN[防具編號] : 顯示指定防具編號的防具名稱
 
 - # \EN[敵人編號] : 顯示指定敵人編號的敵人名稱
 
 - # \GV : 顯示目前玩家持有的金錢
 
 - # \EQ[角色編號,部位] : 顯示角色編號裝備的名稱,部位-0武、1盾、2頭、3身、4飾
 
 - # \\ : 顯示「\」,通常被此控制碼顯示的左斜線通常不會被當成是控制碼而使用
 
 - # \MA[地圖編號] : 顯示指定地圖編號的地圖名稱,設置0表示目前的地圖
 
 - # \NN[角色編號] : 顯示指定角色編號的戰鬥圖檔案名稱(可配合頭像控制碼使用)
 
 - # \NS[技能編號] : 顯示指定技能編號的圖標檔案名稱(可配合 \I 控制碼使用)
 
 - # \NI[物品編號] : 顯示指定物品編號的圖標檔案名稱(可配合 \I 控制碼使用)
 
 - # \NW[武器編號] : 顯示指定武器編號的圖標檔案名稱(可配合 \I 控制碼使用)
 
 - # \NA[防具編號] : 顯示指定防具編號的圖標檔案名稱(可配合 \I 控制碼使用)
 
 - # \I[檔案名稱] : 顯示Icons資料夾中指定檔案名稱的圖片
 
 - # \HR : 顯示分隔線,會從此控制碼作為起點顯示到該行結束為止,會前進一行
 
 - #--------------------------------------------------------------
 
 - #○ 文字控制碼
 
 - # \C[顏色代碼] : 變更預設的顏色,可在「Window_Base」腳本的text_color方法設置
 
 - # \CR[紅,綠,藍] : 變更自定的顏色
 
 - # \CU[紅,綠,藍] : 文字上下顏色漸層效果,會受變更顏色而取消此控制碼
 
 - # \FN[字體名稱] : 變更指定的字體,如果該玩家電腦無該字體,則什麼都不做
 
 - # \FS[大小] : 變更文字的大小,離下行的距離會受到影響,預設大小為22
 
 - # \FB : 將文字變更為粗體表示,在使用一次會恢復原裝
 
 - # \FI : 將文字往右斜倒表示,在使用一次會恢復原狀
 
 - # \F_ : 將文字下面附加一條底線,在使用一次會恢復原狀
 
 - # \F- : 將文字中央附加一條刪除線,在使用一次會恢復原狀
 
 - # \FH : 將文字右下方附加上陰影,在使用一次會恢復原狀
 
 - # \F : 回到無使用文字控制碼時的預設狀態
 
 - #--------------------------------------------------------------
 
 - #○ 頭像控制碼
 
 - # \LS[檔案名稱] : 對話框左邊顯示指定檔案名稱的圖片,顯示內容寬度會減少
 
 - # \LSU[角色名稱,檔案名稱] : 效果同 \LS 控制碼,只不過圖片上方加上角色名稱
 
 - # \LSD[角色名稱,檔案名稱] : 效果同 \LS 控制碼,只不過圖片下方加上角色名稱
 
 - #--------------------------------------------------------------
 
 - #○ 聲音控制碼
 
 - # \SE[檔案名稱] : 演奏指定檔案名稱的ME,音量和音調依SWORD_MESS_SEVP
 
 - # \SE[檔案名稱,音量,音調] : 和上面的 \SE 控制碼一樣,但這可指定音量和音調
 
 - # \SEX : 停止目前演奏的SE,可能會影響其他的SE,請找適當實機來使用
 
 - #--------------------------------------------------------------
 
 - #○ 功能控制碼
 
 - # \G : 在右上方顯示金錢窗口
 
 - # \M[幀數] : 變更每個字顯示的延遲時間,0表示1次全顯示,變更後會保存!!
 
 - # \.[幀數] : 內容顯示到此控制碼會停止顯示,指定幀數到後才繼續顯示後面的內容
 
 - # \! : 內容顯示到此控制碼會停止顯示,當按下確定鍵後才繼續顯示後面的內容
 
 - # \> : 內容顯示到此控制碼後,則之後的內容會瞬間顯示完畢(暫時無效 \M 控制碼)
 
 - # \^[幀數] : 內容顯示到此控制碼後開始計時,時間到時顯示下個事件指令
 
 - # \L[編號] : 此控制碼視同指定編號的[設定記憶]的設置內容( \V 控制碼深度為2)
 
 - # \XN : 增加1次無視換行標誌來防止換行(突破事件限制),但超過對話框則不適用
 
 - # \SS[開關編號] : 該控制碼後面的內容隱藏,如果指定的開關為ON才會顯示
 
 - # \SX : 使用 \SS 控制碼將後面的內容隱藏時,當執行到此控制碼就停止隱藏
 
 - # \BR : 同Enter換行(突破事件換行限制用),此換行也會被 \XN 控制碼無效的可能
 
 - # \P : 判斷下個事件是否為 [顯示文章],如果是就當做是同一個 [顯示文章] 事件
 
 - # \SH[幀數] : 讓對話框震動指定的時間,後面內容會無法顯示(尚未找到解決方式)
 
 - #=======================================
 
 - #● 設置方法
 
 - # 變更對話大小:$game_system.swordM_WidthHeight = [寬度, 高度]
 
 - # 打字效果延遲:$game_system.swordM_rate = 延遲幀數
 
 - # 存記憶控制碼:$game_system.swordM_save[編號] = '文字內容'
 
 - # 變更按鍵顯示:$game_system.swordM_key
 
 - #--------------------------------------------------------------
 
 -   $Sword ? $Sword[1] = true : $Sword = {1=>true} # 腳本使用標誌
 
 -   SWORD_MESS_INHE = 0 # 未完成物,請勿更動
 
 - end
 
 - # 詳細設置說明請參考:[url]http://blog.yam.com/a870053jjkj/article/[/url]
 
 - #=======================================
 
 - #■ 處理系統附屬資料的類別
 
 - class Game_System
 
 -   alias sword5_initialize initialize
 
 -   attr_accessor :swordM_rate  # 對話框打字延遲速度
 
 -   attr_accessor :swordM_save # 記憶控制碼的儲存庫
 
 -   attr_accessor :swordM_WidthHeight # 對話框大小
 
 -   #● 初始化狀態
 
 -   def initialize
 
 -     sword5_initialize
 
 -     @swordM_rate = 5
 
 -     @swordM_save = []
 
 -     @swordM_key = true
 
 -     @swordM_WidthHeight = [500, 160]
 
 -   end
 
 -   #-------------------------------------------------------------
 
 -   #● 更換按鍵輸入全部顯示的方法
 
 -   def swordM_key(a = false)
 
 -     @swordM_key = (not @swordM_key) unless a
 
 -     return @swordM_key if a
 
 -   end
 
 - end
 
 - #=======================================
 
 - #■ 暫停標誌窗口
 
 - class WSword_MessagePause < Window_Base
 
 -   include Sword
 
 -   #● 初始化狀態
 
 -   def initialize
 
 -     super($game_system.swordM_WidthHeight[0] / 2 - 4, 
 
 -     33 + $game_system.swordM_WidthHeight[1] - 32, 48, 48)
 
 -     self.contents = Bitmap.new(width - 32, height - 32)
 
 -     self.visible = false
 
 -     self.opacity = 0
 
 -     self.z = 6010
 
 -   end
 
 -   #-------------------------------------------------------------
 
 -   #● 更新內容
 
 -   def refresh
 
 -     @pause[1] -= 1
 
 -     return unless @pause[1] == 0
 
 -     self.contents.clear
 
 -     cache = RPG::Cache.windowskin($data_system.windowskin_name)
 
 -     case @pause[0]
 
 -     when 1 # 左上
 
 -       rx = 0 and ry = 0 and @pause = [2, SWORD_MESS_PAUS+1]
 
 -     when 2 # 右上
 
 -       rx = 1 and ry = 0 and @pause = [3, SWORD_MESS_PAUS+1]
 
 -     when 3 # 左下
 
 -       rx = 0 and ry = 1 and @pause = [4, SWORD_MESS_PAUS+1]
 
 -     when 4 # 右下
 
 -       rx = 1 and ry = 1 and @pause = [1, SWORD_MESS_PAUS+1]
 
 -     end
 
 -     self.contents.blt(0, 0, cache, Rect.new(160 + 16 * rx, 64 + 16 * ry, 16, 16))
 
 -   end
 
 -   #-------------------------------------------------------------
 
 -   #● 顯示標誌(初始化暫停標記用)
 
 -   def visible=(visible)
 
 -     super(visible)
 
 -     @pause = [4, 1]
 
 -     case $game_system.message_position
 
 -     when 0  # 上
 
 -       self.y = SWORD_MESS_POSI[0] == 0 ? 16 : SWORD_MESS_POSI[0]
 
 -     when 1  # 中
 
 -       self.y = SWORD_MESS_POSI[1] == 0 ?
 
 -       320 - $game_system.swordM_WidthHeight[1] : SWORD_MESS_POSI[1]
 
 -     when 2  # 下
 
 -       self.y = SWORD_MESS_POSI[2] == 0 ? 
 
 -       464 - $game_system.swordM_WidthHeight[1] : SWORD_MESS_POSI[2]
 
 -     end
 
 -     # 戰鬥時的場合
 
 -     if $game_temp.in_battle
 
 -       self.y = SWORD_MESS_POSI[0] == 0 ? 16 : SWORD_MESS_POSI[0]
 
 -     end
 
 -     self.y += $game_system.swordM_WidthHeight[1] - 32
 
 -     self.x = (640 - $game_system.swordM_WidthHeight[0]) / 2 +
 
 -     ($game_system.swordM_WidthHeight[0] / 2) - 24
 
 -   end
 
 - end
 
 - #=======================================
 
 - #■ 對話框戰鬥圖(頭像)窗口
 
 - class WSword_MessageCharacter < Window_Base
 
 -   include Sword
 
 -   #● 初始化物件
 
 -   def initialize(x, y)
 
 -     super(x - 48, y - 48, 640, 480)
 
 -     self.contents = Bitmap.new(width - 32, height - 32)
 
 -     self.z = 6005
 
 -     self.visible = false
 
 -     self.opacity = 0
 
 -     @name = ['', 0]  # 記錄 [角色名稱, 頭像類型]
 
 -   end
 
 -   #-------------------------------------------------------------
 
 -   #● 更新內容
 
 -   def refresh(type = 0, battler = '', name = '')
 
 -     #○ 描繪圖片
 
 -     battler = RPG::Cache.battler(battler, 0)
 
 -     a = SWORD_MESS_HEAD[0] == 0 ? battler.width : SWORD_MESS_HEAD[0]
 
 -     b = SWORD_MESS_HEAD[1] == 0 ? battler.height : SWORD_MESS_HEAD[1]
 
 -     record = [type, battler.width, battler.height, 0]
 
 -     record[1] = SWORD_MESS_HEAD[0] if SWORD_MESS_HEAD[0] > 0
 
 -     record[2] = SWORD_MESS_HEAD[1] if SWORD_MESS_HEAD[1] > 0
 
 -     return record if @name[0] == name if type == @name[1]
 
 -     @name = [name, type]
 
 -     self.contents.clear
 
 -     y = 0 # 圖片Y座標修正用
 
 -     #○ 描繪角色名稱 
 
 -     color = SWORD_MESS_NACO
 
 -     self.contents.font.color = Color.new(color[0], color[1], color[2])
 
 -     case type
 
 -     when 2  ; y = 32 ; self.contents.draw_text(0, 0, SWORD_MESS_HEAD[0], 32, name, 1)
 
 -     when 3
 
 -       self.contents.draw_text(0, record[2], SWORD_MESS_HEAD[0], 32, name, 1)
 
 -     end
 
 -     self.contents.blt(0, y, battler, Rect.new(0, 0, a, b))
 
 -     return record
 
 -   end
 
 - end
 
 - #=======================================
 
 - #■ 顯示對話的訊息視窗
 
 - class Window_Message < Window_Selectable
 
 -   include Sword
 
 -   attr_accessor :afresh # 重新產生窗口標誌
 
 -   #● 初始化物件
 
 -   def initialize
 
 -     super((640 - $game_system.swordM_WidthHeight[0]) / 2, 
 
 -     304, $game_system.swordM_WidthHeight[0], $game_system.swordM_WidthHeight[1])
 
 -     self.contents = Bitmap.new(width - 32, height - 32)
 
 -     self.visible = false
 
 -     self.z = 6000
 
 -     @fade_out = false
 
 -     @font = Font.exist?(SWORD_MESS_NAME) ? SWORD_MESS_NAME : Font.default_name
 
 -     @wait_count = -1 # 自動關閉對話框時間
 
 -     @delay_input = 0 # 按鍵全部顯示後的延遲時間
 
 -     @messagepause_wsword = WSword_MessagePause.new # 產生暫停標誌窗口
 
 -     @messagecharacter_wsword = WSword_MessageCharacter.new(self.x, self.y) # 頭像窗口
 
 -     self.opacity = 160
 
 -     self.index = -1 # 選擇項位置
 
 -   end
 
 -   #-------------------------------------------------------------
 
 -   #● 設定視窗位置與不透明度
 
 -   def reset_window
 
 -     # 更改對話框的情況
 
 -     unless $game_system.swordM_WidthHeight == [self.width, self.height]
 
 -       self.x = (640 - $game_system.swordM_WidthHeight[0]) / 2
 
 -       self.width = $game_system.swordM_WidthHeight[0]
 
 -       self.height = $game_system.swordM_WidthHeight[1]
 
 -       self.contents = Bitmap.new(width - 32, height - 32)
 
 -     end
 
 -     if $game_temp.in_battle
 
 -       self.y = SWORD_MESS_POSI[0] == 0 ? 16 : SWORD_MESS_POSI[0]
 
 -     else
 
 -       case $game_system.message_position
 
 -       when 0  # 上
 
 -         self.y = SWORD_MESS_POSI[0] == 0 ? 16 : SWORD_MESS_POSI[0]
 
 -       when 1  # 中
 
 -         self.y = SWORD_MESS_POSI[1] == 0 ? 
 
 -         320 - $game_system.swordM_WidthHeight[1] : SWORD_MESS_POSI[1]
 
 -       when 2  # 下
 
 -         self.y = SWORD_MESS_POSI[2] == 0 ? 
 
 -         464 - $game_system.swordM_WidthHeight[1] : SWORD_MESS_POSI[2]
 
 -       end
 
 -     end
 
 -     if $game_system.message_frame == 0
 
 -       self.opacity = 160
 
 -     else
 
 -       self.opacity = 0
 
 -     end
 
 -     self.back_opacity = 160
 
 -   end
 
 -   #-------------------------------------------------------------
 
 -   #● 更新內容
 
 -   def refresh
 
 -     self.contents.clear
 
 -     # 字體變更為預設值
 
 -     unless $game_switches[SWORD_MESS_INHE]
 
 -       self.contents.font.name = @font 
 
 -       self.contents.font.size = SWORD_MESS_SIZE == 0 ?
 
 -       Font.default_size : SWORD_MESS_SIZE
 
 -       self.contents.font.bold = SWORD_MESS_BOIT[0] == 0 ?
 
 -       Font.default_bold : SWORD_MESS_BOIT[0]
 
 -       self.contents.font.italic = SWORD_MESS_BOIT[1] == 0 ?
 
 -       Font.default_italic : SWORD_MESS_BOIT[1]
 
 -       color = SWORD_MESS_COLO
 
 -       self.contents.font.color = Color.new(color[0], color[1], color[2])
 
 -       @record[0] = nil if @record
 
 -     end
 
 -     @cursor_width = [0, $game_system.swordM_WidthHeight[0] - 32]
 
 -     # 定義控制碼用的記錄空間
 
 -     # [瞬間顯示,瞬間顯示2,忽略換行,頭像記錄,開關隱藏,圖示,文字大小,該行大小]
 
 -     x = 0 and y = 0 and record = [false, false, 0, [0, 0, 0, 0], {}, nil, 0, []]
 
 -     # [漸層,底線,刪除線,陰影,底色]
 
 -     @record = [nil, false, false, false, nil]
 
 -     message_text = $game_temp.message_text
 
 -     #○ 追蹤字詞處理
 
 -     for i in SWORD_MESS_TRAY
 
 -       message_text.gsub!(/#{i[0]}/) { i[1][0] + i[0] + i[1][1] }
 
 -     end
 
 -     #○ 轉換控制碼
 
 -     message_text.gsub!(/\\[Vv]\[(\d+)\]/) { $game_variables[$1.to_i] } while
 
 -     /\\[Vv]\[\d+\]/ === message_text
 
 -     message_text.gsub!(/\\[Ss]\[([\d]+)\]/) do
 
 -       $game_switches[$1.to_i] ? SWORD_MESS_SWIT[0] : SWORD_MESS_SWIT[1]
 
 -     end
 
 -     message_text.gsub!(/\\[Nn]\[([\d]+)\]/) do
 
 -       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Cc][Nn]\[([\d]+)\]/) do
 
 -       $game_classes[$1.to_i] != nil ? $game_classes[$1.to_i].name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Ss][Nn]\[([\d]+)\]/) do
 
 -       $game_skills[$1.to_i] != nil ? $game_skills[$1.to_i].name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Ii][Nn]\[([\d]+)\]/) do
 
 -       $game_items[$1.to_i] != nil ? $game_items[$1.to_i].name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Ww][Nn]\[([\d]+)\]/) do
 
 -       $game_weapons[$1.to_i] != nil ? $game_weapons[$1.to_i].name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Aa][Nn]\[([\d]+)\]/) do
 
 -       $game_armors[$1.to_i] != nil ? $game_armors[$1.to_i].name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Ee][Nn]\[([\d]+)\]/) do
 
 -       $game_enemies[$1.to_i] != nil ? $game_enemies[$1.to_i].name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Nn][Nn]\[([\d]+)\]/) do
 
 -       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].character_name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Nn][Ss]\[([\d]+)\]/) do
 
 -       $data_skills[$1.to_i] != nil ? $data_skills[$1.to_i].icon_name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Nn][Ii]\[([\d]+)\]/) do
 
 -       $data_items[$1.to_i] != nil ? $data_items[$1.to_i].icon_name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Nn][Ww]\[([\d]+)\]/) do
 
 -       $data_weapons[$1.to_i] != nil ? $data_weapons[$1.to_i].icon_name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Nn][Aa]\[([\d]+)\]/) do
 
 -       $data_armors[$1.to_i] != nil ? $data_armors[$1.to_i].icon_name : ''
 
 -     end
 
 -     message_text.gsub!(/\\[Ee][Qq]\[([\d]+)\,([\d]+)\]/) do
 
 -       case $2.to_i
 
 -       when 0 # 武器
 
 -         $game_actors[$1.to_i].weapon_id != 0 ? 
 
 -         $data_weapons[$game_actors[$1.to_i].weapon_id].name : ''
 
 -       when 1 # 盾
 
 -         $game_actors[$1.to_i].armor1_id != 0 ? 
 
 -         $data_armors[$game_actors[$1.to_i].armor1_id].name : ''
 
 -       when 2 # 頭部防具
 
 -         $game_actors[$1.to_i].armor2_id != 0 ? 
 
 -         $data_armors[$game_actors[$1.to_i].armor2_id].name : ''
 
 -       when 3 # 身體防具
 
 -         $game_actors[$1.to_i].armor3_id != 0 ? 
 
 -         $data_armors[$game_actors[$1.to_i].armor3_id].name : ''
 
 -       when 4 # 裝飾品
 
 -         $game_actors[$1.to_i].armor4_id != 0 ? 
 
 -         $data_armors[$game_actors[$1.to_i].armor4_id].name : ''
 
 -       end
 
 -     end
 
 -     message_text.gsub!(/\\[Mm][Aa]\[([\d]+)\]/) do
 
 -       load_data("Data/MapInfos.rxdata")[$1.to_i].name
 
 -     end
 
 -     # 頭像
 
 -     message_text.gsub!(/\\[Ll][Ss]\[([\w_\-]+)\]/) do
 
 -       next if record[3][0] > 0
 
 -       record[3] = @messagecharacter_wsword.refresh(1, $1)
 
 -       @messagecharacter_wsword.visible = true
 
 -       @cursor_width[0] = record[3][1] ; @cursor_width[1] -= record[3][2]
 
 -       ''
 
 -     end
 
 -     # 頭像,並上面加上名稱
 
 -     message_text.gsub!(/\\[Ll][Ss][Uu]\[([\w_\-]+)\,([\w_\-]+)\]/) do
 
 -       next if record[3][0] > 0
 
 -       record[3] = @messagecharacter_wsword.refresh(2, $1, $2)
 
 -       @messagecharacter_wsword.visible = true
 
 -       @cursor_width[0] = record[3][1] ; @cursor_width[1] -= record[3][2]
 
 -       ''
 
 -     end
 
 -     # 頭像,並下面加上名稱
 
 -     message_text.gsub!(/\\[Ll][Ss][Dd]\[([\w_\-]+)\,([\w_\-]+)\]/) do
 
 -       next if record[3][0] > 0
 
 -       record[3] = @messagecharacter_wsword.refresh(3, $1, $2)
 
 -       @messagecharacter_wsword.visible = true
 
 -       @cursor_width[0] = record[3][1] ; @cursor_width[1] -= record[3][2]
 
 -       ''
 
 -     end
 
 -     @messagecharacter_wsword.visible = false if record[3][0] == 0
 
 -     message_text.gsub!(/\\[Gg][Vv]/) { $game_party.gold }
 
 -     message_text.gsub!(/\\[Pp]/) { '' }
 
 -     message_text.gsub!(/\\[Bb][Rr]/) { "\n" }
 
 -     message_text.gsub!(/\\[Cc]\[([\d]+)\]/) { "\001[#{$1}]" }
 
 -     message_text.gsub!(/\\[Gg]/) { "\002" }
 
 -     message_text.gsub!(/\\\.\[([\d]+)\]/) { "\003[#{$1}]" }
 
 -     message_text.gsub!(/\\\!/) { "\004" }
 
 -     message_text.gsub!(/\\>/) { "\005" }
 
 -     message_text.gsub!(/\\[Mm]\[([\d]+)\]/) { "\006[#{$1}]" }
 
 -     message_text.gsub!(/\\[Cc][Rr]\[([\d]+)\,([\d]+)\,([\d]+)\]/) { "\007[#{$1},#{$2},#{$3}]" }
 
 -     message_text.gsub!(/\\\^\[([\d]+)\]/) { "\010[#{$1}]" }
 
 -     message_text.gsub!(/\\[Xx][Nn]/) { "\011" }
 
 -     message_text.gsub!(/\\[Ss][Ee]\[([\w_\-]+)\]/) { "\016[#{$1}]" }
 
 -     message_text.gsub!(/\\[Ss][Ee]\[([\w_\-]+)\,(\d+)\,(\d+)\]/) { "\017[#{$1},#{$2},#{$3}]" }
 
 -     message_text.gsub!(/\\[Ss][Ee][Xx]/) { "\037" }
 
 -     message_text.gsub!(/\\[Ss][Ss]\[(\d+)\]/) { "\020[#{$1}]" }
 
 -     message_text.gsub!(/\\[Ss][Xx]/) { "\021" }
 
 -     message_text.gsub!(/\\[Ii]\[([\w_\-]+)\]/) { "\022[#{$1}]" }
 
 -     message_text.gsub!(/\\[Ff][Nn]\[([\w_\-]+)\]/) { "\023[#{$1}]" }
 
 -     message_text.gsub!(/\\[Ff][Ss]\[(\d+)\]/) { "\024[#{$1}]" }
 
 -     message_text.gsub!(/\\[Ff][Bb]/) { "\025" }
 
 -     message_text.gsub!(/\\[Ff][Ii]/) { "\026" }
 
 -     message_text.gsub!(/\\[Ff]_/) { "\032" }
 
 -     message_text.gsub!(/\\[Ff]\-/) { "\033" }
 
 -     message_text.gsub!(/\\[Ff][Hh]/) { "\034" }
 
 -     message_text.gsub!(/\\[Ff]/) { "\027" }
 
 -     message_text.gsub!(/\\[Cc][Uu]\[(\d+)\,(\d+)\,(\d+)\]/) { "\030[#{$1},#{$2},#{$3}]" }
 
 -     message_text.gsub!(/\\[Hh][Rr]/) { "\031" }
 
 -     message_text.gsub!(/\\[Cc][Bb]\[(\d+)\,(\d+)\,(\d+)\]/) { "\035[#{$1},#{$2},#{$3}]" }
 
 -     message_text.gsub!(/\\[Ss][Hh]\[(\d+)\]/) { "\042[#{$1}]" }
 
 -     #message_text.gsub!(/ /) { "\034" }
 
 -     #○ 執行控制碼功能
 
 -     while ((c = message_text.slice!(/./m)) != nil)
 
 -       record[6] = self.contents.font.size + 10
 
 -       case c
 
 -       when "\n" # 換行
 
 -         if record[2] > 0 # 有無效換行標誌的場合
 
 -           record[2] -= 1
 
 -           next
 
 -         end
 
 -         x = 0 and y += record[6]
 
 -         next
 
 -       when "\001" # 換色
 
 -         message_text.sub!(/\[(\d+)\]/, '')
 
 -         self.contents.font.color = text_color($1.to_i)
 
 -         @record[0] = nil
 
 -         next
 
 -       when "\002" # 顯示金錢窗口
 
 -         if @gold_window == nil
 
 -           @gold_window = Window_Gold.new
 
 -           @gold_window.x = 560 - @gold_window.width
 
 -           if $game_temp.in_battle
 
 -             @gold_window.y = 192
 
 -           else
 
 -             @gold_window.y = self.y >= 128 ? 32 : 384
 
 -           end
 
 -           @gold_window.opacity = self.opacity
 
 -           @gold_window.back_opacity = self.back_opacity
 
 -         end
 
 -         next
 
 -       when "\003" # 等待
 
 -         message_text.sub!(/\[(\d+)\]/, '')
 
 -         for i in 1..$1.to_i
 
 -           Graphics.update
 
 -         end
 
 -       when "\004" # 等待按鍵
 
 -         loop do
 
 -           Graphics.update
 
 -           Input.update
 
 -           if Input.trigger?(Input::C)
 
 -             break
 
 -           end
 
 -         end
 
 -         Graphics.update
 
 -         Input.update
 
 -       when "\005" # 瞬間顯示內容
 
 -         record[0] = true
 
 -       when "\006" # 變更打字效果
 
 -         message_text.sub!(/\[(\d+)\]/, '')
 
 -         $game_system.swordM_rate = $1.to_i
 
 -       when "\007" # 變更自定顏色
 
 -         message_text.sub!(/\[(\d+),(\d+),(\d+)\]/, '')
 
 -         self.contents.font.color = Color.new($1.to_i, $2.to_i, $3.to_i)
 
 -         @record[0] = nil
 
 -         next
 
 -       when "\010" # 自動確定
 
 -         message_text.sub!(/\[(\d+)\]/, '')
 
 -         @wait_count = $1.to_i
 
 -       when "\011" # 無視換行
 
 -         record[2] += 1
 
 -         next
 
 -       when "\016" # 演奏SE(預設)
 
 -         message_text.sub!(/\[([\w_\-]+)\]/, '')
 
 -         next unless (FileTest.exist?('Audio/SE/' + $1) or (not record[0]))
 
 -         Audio.me_play('Audio/SE/' + $1, SWORD_MESS_SEVP[0], SWORD_MESS_SEVP[1])
 
 -         next
 
 -       when "\017" # 演奏SE(自定)
 
 -         message_text.sub!(/\[([\w_\-]+)\,(\d+)\,(\d+)\]/, '')
 
 -         next unless (FileTest.exist?('Audio/SE/' + $1) or (not record[0]))
 
 -         Audio.me_play('Audio/SE/' + $1, $2.to_i, $3.to_i)
 
 -         next
 
 -       when "\037" # 停止SE
 
 -         Audio.me_stop
 
 -         next
 
 -       when "\020" # 開啟開關隱藏
 
 -         message_text.sub!(/\[(\d+)\]/, '')
 
 -         i = 0 # 執行次數
 
 -         loop do
 
 -           i += 1
 
 -           if record[4][i] == nil # 檢查是否是空值
 
 -             $game_switches[$1.to_i] ? record[4][i] = false : record[4][i] = true
 
 -             break
 
 -           end
 
 -         end
 
 -       when "\021" # 中斷開關隱藏
 
 -         record[4].delete(record[4].keys.sort[record[4].size - 1])
 
 -         next
 
 -       when "\022" # 顯示圖示
 
 -         a = $game_system.swordM_WidthHeight[0] - Font.default_size - 32 - record[3][1]
 
 -         message_text.sub!(/\[([\w_\-]+)\]/, '')
 
 -         record[5] = Bitmap.new('Graphics/Icons/' + $1) rescue next
 
 -       when "\023" # 變更字體
 
 -         message_text.sub!(/\[([\w_\-]+)\]/, '')
 
 -         self.contents.font.name = [$1] if Font.exist?($1)
 
 -         next
 
 -       when "\024" # 變更文字大小
 
 -         message_text.sub!(/\[(\d+)\]/, '')
 
 -         self.contents.font.size = $1.to_i
 
 -         record[6] = $1.to_i + 10
 
 -         next
 
 -       when "\025" # 變更為粗體
 
 -         self.contents.font.bold = (not self.contents.font.bold)
 
 -         next
 
 -       when "\026" # 變更為斜體
 
 -         self.contents.font.italic = (not self.contents.font.italic)
 
 -         next
 
 -       when "\027" # 變回預設
 
 -         self.contents.font.name = Font.exist?(SWORD_MESS_NAME) ?
 
 -         SWORD_MESS_NAME : Font.default_name
 
 -         self.contents.font.size = SWORD_MESS_SIZE == 0 ?
 
 -         Font.default_size : SWORD_MESS_SIZE
 
 -         self.contents.font.bold = SWORD_MESS_BOIT[0] == 0 ?
 
 -         Font.default_bold : SWORD_MESS_BOIT[0]
 
 -         self.contents.font.italic = SWORD_MESS_BOIT[1] == 0 ?
 
 -         Font.default_italic : SWORD_MESS_BOIT[1]
 
 -         color = SWORD_MESS_COLO
 
 -         self.contents.font.color = Color.new(color[0], color[1], color[2])
 
 -         @record = [nil, false, false, false, nil]
 
 -         next
 
 -       when "\030" # 文字顏色上下漸變
 
 -         message_text.sub!(/\[(\d+)\,(\d+)\,(\d+)\]/, '')
 
 -         @record[0] = [self.contents.font.color.red, self.contents.font.color.green, 
 
 -         self.contents.font.color.blue, $1.to_i, $2.to_i, $3.to_i]
 
 -       when "\031" # 分隔線
 
 -         a= $game_system.swordM_WidthHeight[0] - Font.default_size - 32 - record[3][1]
 
 -         if @record[0] # 漸層處理
 
 -           self.contents.fill_rect(x + 16 + record[3][1], y + self.contents.font.size / 2 - 1, a - x, 1, 
 
 -           self.contents.font.color)
 
 -           self.contents.fill_rect(x + 16 + record[3][1], y + self.contents.font.size / 2, a - x, 1, 
 
 -           Color.new(@record[0][3], @record[0][4], @record[0][5]))
 
 -         else # 一般處理
 
 -           self.contents.fill_rect(x+16+record[3][1], y+(self.contents.font.size + 10)/2 - 1,a - x, 2, 
 
 -           self.contents.font.color)
 
 -         end
 
 -         y += self.contents.font.size + 10 and x = 0
 
 -         next
 
 -       when "\032" # 底線
 
 -         @record[1] = (not @record[1])
 
 -         next
 
 -       when "\033" # 刪除線
 
 -         @record[2] = (not @record[2])
 
 -         next
 
 -       when "\034" # 陰影
 
 -         @record[3] = (not @record[3])
 
 -         next
 
 -       when "\035" # 底色
 
 -         message_text.sub!(/\[(\d+)\,(\d+)\,(\d+)\]/, '')
 
 -         @record[4] = [$1.to_i, $2.to_i, $3.to_i]
 
 -         next
 
 -       when "\036" # 顯示「\」
 
 -         c = "\\"
 
 -       when "\042" # 震動
 
 -         message_text.sub!(/\[(\d+)\]/, '')
 
 -         x = self.x ; y = self.y # 記憶位置
 
 -         for i in 1..$1.to_i / 2
 
 -           a = [rand(21) - 10, rand(21) - 10]
 
 -           self.x += a[0] ; @messagecharacter_wsword.x += a[0]
 
 -           self.y += a[1] ; @messagecharacter_wsword.y += a[1]
 
 -           Graphics.update
 
 -           self.x -= a[0] ; @messagecharacter_wsword.x -= a[0]
 
 -           self.y -= a[1] ; @messagecharacter_wsword.y -= a[1]
 
 -           Graphics.update
 
 -         end
 
 -         self.x = x ; self.y = y # 還原位置
 
 -         next
 
 -       end
 
 -       next if record[4].values.include?(true) # 如果是在開關隱藏有效的內容就隱藏
 
 -       #○ 打字效果
 
 -       if $game_system.swordM_rate != 0 and record[0] == false
 
 -         for i in 1..$game_system.swordM_rate
 
 -           Input.update
 
 -           if Input.press?(Input::C) and $game_system.swordM_key(true) and record[1]
 
 -             record[0] = true
 
 -           elsif record[1] == false
 
 -             record[1] = true
 
 -             record[1] = false if Input.press?(Input::C)
 
 -           end
 
 -           Graphics.update
 
 -         end
 
 -       end
 
 -       #○ 描繪圖示或是內容
 
 -       self.contents.fill_rect(x + 3 + record[3][1], y + self.contents.font.size , 
 
 -       self.contents.font.size, 1, self.contents.font.color) if @record[1] # 底線
 
 -       self.contents.fill_rect(x + 3 + record[3][1], y + (self.contents.font.size ) / 2, 
 
 -       self.contents.font.size, 1, self.contents.font.color) if @record[2] # 刪除線
 
 -       # 底色處理
 
 -       if @record[4]
 
 -         self.contents.fill_rect(4 + x + record[3][1], y + 5, self.contents.font.size, 
 
 -         self.contents.font.size, Color.new(@record[4][0], @record[4][1], @record[4][2]))
 
 -       end
 
 -       if record[5] # 存在圖示時
 
 -         self.contents.blt(4 + x + record[3][1], y, record[5], Rect.new(0, 0, 640, 480))
 
 -         x += record[5].width
 
 -         record[5] = nil
 
 -       else # 不存在圖示時
 
 -         if @record[0] # 文字上下漸層顏色
 
 -           color = []
 
 -           text_size = self.contents.font.size / 2
 
 -           for i in 1..text_size
 
 -             @record[0][0] == @record[0][3] ? color[0] = @record[0][0] :
 
 -             color[0] = (@record[0][0] - @record[0][3]) / text_size * i
 
 -             @record[0][1] == @record[0][4] ? color[1] = @record[0][1] :
 
 -             color[1] = (@record[0][1] - @record[0][4]) / text_size * i
 
 -             @record[0][2] == @record[0][5] ? color[2] = @record[0][2] :
 
 -             color[2] = (@record[0][2] - @record[0][5]) / text_size * i
 
 -             self.contents.font.color = Color.new(color[0], color[1], color[2])
 
 -             #self.contents.draw_text(4 + x + record[3][1], y + 4, 40, self.contents.font.size - 2 * i, c)
 
 -             self.contents.draw_text(4 + x + record[3][1], y, 40, self.contents.font.size - 2 * i, c)
 
 -           end
 
 -         else # 一般文字顏色
 
 -           if @record[3] # 加上陰影
 
 -             a = [self.contents.font.color.red, self.contents.font.color.green, 
 
 -             self.contents.font.color.blue]
 
 -             self.contents.font.color = Color.new(0, 0, 0)
 
 -             self.contents.draw_text(4 + x + record[3][1] + 1, y + 1, 40, self.contents.font.size, c)
 
 -             self.contents.font.color = Color.new(a[0], a[1], a[2])
 
 -           end
 
 -           self.contents.draw_text(4 + x + record[3][1], y, 40, self.contents.font.size, c)
 
 -         end
 
 -         x += self.contents.text_size(c).width
 
 -       end
 
 -       # 強制換行換行判定
 
 -       a= $game_system.swordM_WidthHeight[0] - Font.default_size - 32 - record[3][1]
 
 -       y += record[6] if x >= a
 
 -       x = 0 if x >= a
 
 -     end
 
 -     Graphics.update
 
 -     @messagepause_wsword.visible = true if $game_temp.choice_max == 0
 
 -     #○ 選擇項的情況
 
 -     if $game_temp.choice_max > 0
 
 -       @item_max = $game_temp.choice_max
 
 -       self.active = true
 
 -       self.index = 0
 
 -     end
 
 -     #○ 輸入數值的情況
 
 -     if $game_temp.num_input_variable_id > 0
 
 -       @messagepause_wsword.visible = false
 
 -       digits_max = $game_temp.num_input_digits_max
 
 -       number = $game_variables[$game_temp.num_input_variable_id]
 
 -       @input_number_window = Window_InputNumber.new(digits_max)
 
 -       @input_number_window.number = number
 
 -       @input_number_window.x = self.x + 8 + record[3][1]
 
 -       @input_number_window.y = self.y + $game_temp.num_input_start * 32
 
 -     end
 
 -     $game_temp.message_text = nil
 
 -   end
 
 -   #-------------------------------------------------------------
 
 -   #● 更新
 
 -   def update
 
 -     super
 
 -     #○ 當設置文章時就顯示對話框
 
 -     if $game_temp.message_text != nil
 
 -       self.visible = true
 
 -       self.opacity += 28 while self.opacity < 160
 
 -       reset_window
 
 -       refresh
 
 -       @delay_input = 5 # 設置顯示完畢後的延遲時間
 
 -       Graphics.frame_reset
 
 -       @contents_showing = true
 
 -     end
 
 -     @contents_showing = nil if @contents_showing == false 
 
 -     #○ 輸入數值的情況下
 
 -     if @input_number_window != nil
 
 -       @input_number_window.update
 
 -       if Input.trigger?(Input::C) # 送出輸入的數值
 
 -         $game_system.se_play($data_system.decision_se)
 
 -         $game_variables[$game_temp.num_input_variable_id] = @input_number_window.number
 
 -         $game_map.need_refresh = true
 
 -         # 釋放輸入數值窗口
 
 -         @input_number_window.dispose
 
 -         @input_number_window = nil
 
 -         terminate_message
 
 -       end
 
 -       return
 
 -     end
 
 -     #○ 當對話框開啟的場合
 
 -     if @contents_showing
 
 -       @wait_count -= 1 if @wait_count > 0 # 自動確定
 
 -       @delay_input -= 1 if @delay_input > 0 # 全部顯示後的延遲
 
 -       @messagepause_wsword.refresh # 更新暫停標誌 
 
 -       if Input.trigger?(Input::B) or @wait_count == 0 and $game_temp.choice_max != 0
 
 -         if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
 
 -           $game_system.se_play($data_system.cancel_se)
 
 -           $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
 
 -           terminate_message
 
 -         end
 
 -       elsif Input.trigger?(Input::C) and @delay_input == 0 or @wait_count == 0
 
 -         @wait_count = -1
 
 -         @contents_showing = false
 
 -         @messagepause_wsword.visible = false
 
 -         if $game_temp.choice_max > 0
 
 -           $game_system.se_play($data_system.decision_se)
 
 -           $game_temp.choice_proc.call(self.index)
 
 -         end
 
 -         terminate_message
 
 -       end
 
 -     end
 
 -     #○ 當無內容時關閉對話框
 
 -     if @contents_showing == nil and self.visible
 
 -       @messagecharacter_wsword.visible = false
 
 -       self.opacity -= 48
 
 -       if self.opacity == 0
 
 -         self.visible = false
 
 -       end
 
 -       return
 
 -     end
 
 -   end
 
 -   #-------------------------------------------------------------
 
 -   #● 更新游標
 
 -   def update_cursor_rect
 
 -     if @index >= 0
 
 -       n = $game_temp.choice_start + @index
 
 -       self.cursor_rect.set(@cursor_width[0], n * 32, @cursor_width[1], 32)
 
 -     else
 
 -       self.cursor_rect.empty
 
 -     end
 
 -   end
 
 - end
 
 - #=======================================
 
 - #■ 執行事件命令的解釋器
 
 - class Interpreter
 
 -   #● 顯示文章
 
 -   def command_101
 
 -     if $game_temp.message_text != nil
 
 -       return false
 
 -     end
 
 -     # 設定訊息結束後待機和返回呼叫標誌
 
 -     @message_waiting = true
 
 -     $game_temp.message_proc = Proc.new { @message_waiting = false }
 
 -     # 設定為 1 行
 
 -     $game_temp.message_text = @list[@index].parameters[0] + "\n"
 
 -     line_count = 1
 
 -     # 循環
 
 -     loop do
 
 -       $game_temp.message_text.gsub!(/\\\\/) { "\036" }
 
 -       # 插入記憶控制碼
 
 -       $game_temp.message_text.gsub!(/\\[Ll]\[([\d]+)\]/) do
 
 -         $game_system.swordM_save[$1.to_i] != nil ? $game_system.swordM_save[$1.to_i] : ''
 
 -       end
 
 -       $game_temp.message_text.gsub!(/\\\\/) { "\036" }
 
 -       # 判斷下一個事件
 
 -       if @list[@index+1].code == 401
 
 -         $game_temp.message_text += @list[@index+1].parameters[0] + "\n"
 
 -         line_count += 1
 
 -       else
 
 -         if @list[@index+1].code == 102 # 下個事件為 [顯示選擇項] 的場合
 
 -           @index += 1
 
 -           $game_temp.choice_start = line_count
 
 -           setup_choices(@list[@index].parameters)
 
 -         elsif @list[@index+1].code == 103 # 下個事件為 [數值輸入處理] 的場合
 
 -           @index += 1
 
 -           $game_temp.num_input_start = line_count
 
 -           $game_temp.num_input_variable_id = @list[@index].parameters[0]
 
 -           $game_temp.num_input_digits_max = @list[@index].parameters[1]
 
 -         elsif @list[@index+1].code == 101 # 下個事件為 [顯示文章] 的場合
 
 -           if /\\[Pp]/ === $game_temp.message_text # 有「\P」控制碼的場合
 
 -             $game_temp.message_text.gsub!(/\\[Pp]/) { '' }
 
 -             @index += 1
 
 -             $game_temp.message_text += @list[@index].parameters[0] + "\n"
 
 -             next
 
 -           end
 
 -         end
 
 -         return true
 
 -       end
 
 -       @index += 1
 
 -     end
 
 -   end
 
 - end
 
  复制代码 麻煩大大們幫忙想想辦法了 自己弄了半天還是不知所以@@ |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |