魔劍工舖

關於部落格
RPG製作大師XP腳本為主要更新

RPG製作大師VX腳本為其次更新

RPG製作大師VX_Ace目前不考慮

RPG製作大師MV腳本完全沒打算

留言完建議重新整理看看是否顯示

目前不處理本舖外腳本的相關問題

其他相關事項請觀看規定注意事項

本舖未來的經營計畫與VA的支援




var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-37462754-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

  • 296198

    累積人氣

  • 10

    今日人氣

    0

    訂閱人氣

【腳本】傷害顯示強化


使用方法
打開腳本編輯器,對腳本「Main」按下右鍵,選擇插入,會出現1個空白腳本
在空白腳本內貼上以下腳本:
XP

點選框框內的腳本按右鍵打開選單,選擇 [全選] 後在選擇 [複製] ,在指定的位置中貼上腳本即可
 
VX

點選框框內的腳本按右鍵打開選單,選擇 [全選] 後在選擇 [複製] ,在指定的位置中貼上腳本即可
 
 
設置方法 
顯示傷害數值 [R] 
追加精靈.damage(數值或字符串)
追加精靈.damage(數值或字符串, 是否會心一擊)
追加精靈.damage(數值或字符串, 是否會心一擊, 顏色編號)
追加精靈.damage(數值或字符串, 顏色編號)

★以下為範例,1行分別為不同的範例☆
追加精靈.damage(3500) # 跳出3500數值(數值為正數則表示扣血顏色)
追加精靈.damage('Miss') # 跳出Miss的字樣
追加精靈.damage(-1200) # 跳出1200數值(數值為負數則表示回血顏色)
追加精靈.damage(500, true) # 跳出500數值,並上面添加Sword56_Critical設定的字樣
追加精靈.damage(120, 2) # 跳出120數值,顏色採用Sword56_Damage第2號的設置
追加精靈.damage(125, true, 2) # 跳出125數值,顯示會心一擊內容、採用2號設置的顏色
顯示傷害數值,傷害數值和XP預設的傷害數值效果相同
追加精靈:代入了XP的「RPG::Sprite」類或是VX的「Sprite_Base」類的變量
     簡單說這個傷害效果就是「RPG::Sprite(Sprite_Base)」的函數就是了...
數值或字符串:傷害可以指定顯示數值外,也可以顯示文字內容,XP顯示的Miss就是字符串...
       指定數值(設定阿拉伯數字),則就會顯示那個數值座標傷害
       通常不會顯示負數符號,而是依照Sword56_Damage設置顯示不同顏色
       指定字串(被單或雙引號包圍住的內容),則就顯示該字串的內容
是否會心一擊:true表示是;設false表示不是,是會心一擊的時候
       會在傷害數值(或文字)上面添加個小字,顯示Sword56_Critical設置的內容
       如果不設定這個參數,基本上都視為不是會心一擊
顏色編號:設定要採用的顏色,顏色通常都設定在Sword56_Damage設置中
     可以依據不同場合指定不同種顏色的傷害數值(例如HP傷害或SP傷害這樣...)
     如果不設定這個參數,基本上都視為指定了1號(文字顏色則不受影響)
 
變更傷害的移動類型 [A]   
追加精靈.damage_about = 移動編號
傷害直直的往上彈出來在往下掉的效果有些單調,有時你想要讓傷害移動的方式更多樣化
這時可以使用這個設置來變更傷害移動的方式,移動方式請在S56_Move設置中做設定
預設這個值為0號
 
判斷是否在顯示傷害 [R]  
追加精靈.damage?
確認指定的追加精靈中是否還有在顯示傷害
《返回值》還有傷害在顯示返回真(true);如果已經沒有傷害在顯示了就返回偽(false)
 
  
 
功能設定
S56_Font = ['字體名稱', 字體大小]
其實在XP中的傷害顯示其實是靠文字來描繪的,這就是其中的一部分
這個設置會影響傷害數值或是字串還有會心一擊的文字都會影響
字體名稱:設定傷害想採用的字體,但有該字體不支援的字可能會有無法顯示的情況
字體大小:設定字體有多大,數值越大當然字就越大
 
S56_Revise = 5
傷害顯示的Y座標設定,希望傷口從身上、頭部、頭上、腳本...顯示的話都可在此進行修改
指定正數的話傷害會在比較下面的地方顯示,負數的話則是上面...
 
S56_Shadow = Color.new(, ,)
設定傷害顯示中內容邊緣的顏色
紅、綠、藍:
  指定三原色,可以設定0~255的數值,數值越大則該顏色的含量就越大(越亮)
  三種顏色可以互相組合成各種不同的顏色,可以參考小畫面的編輯色彩做設定
 
【VX】S56_Rreveal = true 
是否要在預設的戰鬥中顯示傷害的效果,true為要;false為不要
要的話就會像XP一樣,技能動畫結束後敵人身上跳出傷害數值
不要的話則什麼事情都不會發生,而但會稍微降低一些腳本上的衝突率
由於VX只有敵人才有戰鬥圖像,所以只有敵人才會跳出傷害數值喔~
  
【1】S56_Critical = ['顯示內容', Color.new(, , )]
【2】S56_Critical = ['圖片檔案名稱']
 
設定成功會心一擊時,在傷害上面顯示的內容
使用設置法1為用S56_Font設置的字體還有顏色進行描繪
使用設置法2為採用圖片來顯示,指定Pictures資料夾中的圖片名稱來表示
圖片的大小基本上不受限制,不過還是建議依照原本會心一擊字樣的大小做為圖片大小
以免會心一擊的圖片還蓋到傷害會是無法顯示完全的問題
 
【1】S56_Damage['識別內容'] = 類型
【2】S56_Damage[顏色編號] = [正數類型, 負數類型, 暴擊時傷害編號&] 
設定數值傷害或是文字傷害的描繪方式,設置法1用於文字傷害,如:Miss的字樣
而設置法2主要是用於傷害數值,當傷害的數值為正數時會採用 正數顏色或字串(扣血時)
如果傷害的數值為負數,則慘用 負數顏色或字串,基本上設置方式和S56_Critical有些類似
識別內容:當文字傷害的內容和此設定一樣時,就採用這個設置的內容
類型、正數類型、負數類型:
  如果想要用字體描繪傷害(或字串內容,以下只稱傷害)的話
  就將此設為『Color.new(, , )』來指定傷害顏色的並用字體描繪傷害
  如果是想要用圖片來顯示傷害的話,就設為『'圖片檔案名稱'
  就可以指定Pictures資料夾的圖片來顯示傷害(顯示方式可參考素材規格說明)
  素材大小沒有規定,只不過建議大小和預設的傷害大小一樣為佳
  圖片依寬度分成10份,從0開始,所以圖片請以這個順序來畫:0123456789
  《範例圖片》
暴擊時傷害編號:當此傷害為暴擊傷害之時,則就切換使用別的傷害編號  
        也就是說當HP傷害採用1號,此設定為3好了,假設發生傷害
        如果沒有暴擊,就繼續採用這個傷害類型,如果發生暴擊,就切換3號的傷害類型
        這個只會判斷一次而已,也就是說切換傷害編號之後的Sword56_Damage 
        還是一樣有此設定的情況(設置法3),則將會忽略此設定不再連續採用
 
【1】S56_Move[移動編號] =  [[X座標增減Y座標增減重複次數]*] 
【2】S56_Move[移動編號] =  [水平移動距離, 上升高度移動速度最高移動距離]   NEW
設定傷害數值顯示的移動方式,目前該設定法提供三種傷害移動路徑設定
如果採用設定法1的格式為規則型,每幀時間依據移動特定距離的座標,設定較自由
如果採用設定法2的格式為拋物型,自動以拋物線的移動方式移動傷害,設定較簡單
未設定的話為預設型,也就是RMXP預設的移動方式(不過其實設定法1也可輕易實現)  
設定法1中可以自行添加指定多個S56_Move設定,每個移動編號必須設定不同
可在同一個S56_Move設定中新增多個『[X座標增減, Y座標增減, 重複次數]』
X座標增減、Y座標增減:  
  設定傷害顯示每幀時間所移動的座標距離,可以指定負數
重複次數:表示重複這個座標移動多少次,此外所有這個值的總數將會等同顯示時間
水平移動距離:跟 X座標增減 一樣的設定,只不過這個可以指定小數
上升高度:設定拋物線移動時,最高能往上移動多少距離,達距離之後就會改由下降
移動速度:拋物線移動的移動速度,也可以說每幀時間移動多少格
最高移動距離:當拋物線傷害移動總距離達到最高移動距離時,使傷害消失
 
 
腳本原理  NEW
在追加精靈類(即行走圖和戰鬥圖)建立哈希表來儲存DamageS56對象
DamageS56對象在初始化時設定移動資料、描繪傷害(文字或圖片)...等
並且哈希表中用DamageS56對象的識別碼(__id__)作為主鍵索引
DamageS56對象透過追加精靈的update方法執行自己的update方法
來更新傷害的移動位置、逐漸消失等效果,同時update返回true時表示傷害已消失
此時透過該對象的識別碼來移除對應主鍵的單元值,也可說哈希表有資料 = 有傷害再顯示
[更新:5]其實也算接近重寫的地步,當然也刪了一些東西
像原本的Sword56_Move設定不再做其他處理,將會是固定內容不變
(Sword56_Move原本會自動生成每1秒的移動資料取代Sword56_Move設定的內容)
傷害也獨立製成1類,預設腳本則是引用,原本是合在一起
  
  
XP顯示SP傷害的方法  
由於XP本身沒有SP傷害的寫法,所以必須將SP傷害給改出來才行,以下為改法
腳本「Game_Battler 1」第20行附近發現以下腳本:
attr_accessor :damage                   # 傷害值
★下方插入以下腳本☆
attr_accessor :sp_damage
 
腳本「Game_Battler 1」第46行附近發現以下腳本:
@damage = nil
★下方插入以下腳本☆
@sp_damage = nil
  
腳本「Game_Battler 3」第259行附近發現以下腳本:
self.damage = -recover_hp
★下方插入以下腳本☆
self.sp_damage = -recover_sp if recover_sp != 0
  
腳本「Game_Battler 3」第314行附近發現以下腳本:
self.damage = nil
★下方插入以下腳本☆
self.sp_damage = nil
 
腳本「Sprite_Battler」第110行附近發現以下腳本:
damage(@battler.damage, @battler.critical)
★修改成以下腳本☆
if @battler.damage and @battler.sp_damage # HP和SP傷害都有的場合
          damage(@battler.damage, @battler.critical) # ★1
          間隔時間.times{super ; Graphics.update} # 間隔時間
          damage(@battler.sp_damage, @battler.critical, 2) # ★2
        elsif @battler.sp_damage # 只有SP的場合 
          damage(@battler.sp_damage, @battler.critical, 2)
        else ; damage(@battler.damage, @battler.critical) # 只有HP的場合
        end
        @battler.sp_damage = nil
間隔時間:當HP和SP同時都有時,會先跳出HP傷害後再跳出SP傷害
     (如果想要SP傷害先跳出來再跳出HP傷害的話...
      就把有標記★1和★2的那行腳本互換即可,以下內容已HP先跳出來為準)
     此設定就是HP跳出後,過多久才會跳出SP傷害(不然會同時顯示,傷害就會重疊)
     每設定40相當於現實中的1秒
腳本中有兩個『2』被我標記為紅色,表示那是採用Sword56_Damage設置的中
顏色編號為2的資料做為SP傷害顯示方式(圖片或顏色),可依自己喜好作更改
 
腳本「Scene_Battle 4」第430行附近發現以下腳本:
if target.damage != nil
★修改成以下腳本☆
if target.damage != nil or target.sp_damage
 

相簿設定
標籤設定
相簿狀態