關於部落格
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);
})();

  • 307163

    累積人氣

  • 12

    今日人氣

    0

    追蹤人氣

【腳本】魔劍工舖整合腳本


安裝方法
打開腳本編輯器,對腳本「Main」按下右鍵,選擇插入,會出現1個空白腳本
在空白腳本內貼上以下腳本:
● 建議該腳本保持放置在所有插件腳本的上面,並且在除了「Main」以外的預設腳本之下  

點選框框內的腳本按右鍵打開選單,選擇 [全選] 後在選擇 [複製] ,在指定的位置中貼上腳本即可
   
   
設置腳本   
獲取遊戲資料  
# 獲取RM資料檔案副檔名   
RM.vice_file
# 遊戲畫面的寬度(目前XP僅獲取到固定值)

RM.width
# 遊戲畫面的高度(目前XP僅獲取到固定值)
RM.height
# 獲取單行高度  
RM.wlh
# 我方隊伍列表
RM.members
# 獲取道具數量
RM.item_number(道具資料)
# 或
RM.item_number(道具種類, 道具編號) # 種類:0物品;1武器;2防具

# 獲取資料庫的屬性列表 
RM.data_element_set(資料)
# 獲取資料庫的狀態列表 
RM.data_state_set(資料)
獲取遊戲中XP或VX的資料,原則上獲得的資料差異不大,只不過因XP與VX有些寫法差異
例如某些VX有但XP沒有,不然就是單純函數名稱不同但效果卻是相同的狀況
可用這些函數,減少不必要用條件分岐判斷哪個執行哪個的麻煩問題
道具資料:可以指定物品、武器、防具的資料庫數據,指定方式如下
     物品:設定為『$data_items[物品編號]』或其它為RPG::Item的對象
     武器:設定為『$data_weapons[武器編號]』或其它為RPG::Weapon的對象
     防具:設定為『$data_armors[防具編號]』或其它為RPG::Armor的對
資料:可以指定物品、技能、武器、防具的資料庫數據,指定方式如下
   物品:設定為『$data_items[物品編號]』或其它為RPG::Item的對象
   技能:設定為『$data_skills[技能編號]』或其它為RPG::Skill的對象
   武器:設定為『$data_weapons[武器編號]』或其它為RPG::Weapon的對象
   防具:設定為『$data_armors[防具編號]』或其它為RPG::Armor的對象
   
播放SE   
# 演奏游標SE
RM.se_cursor
# 演奏確定SE
RM.se_decision
# 演奏取消SE
RM.se_cancel
# 演奏凍結(無效)SE
RM.se_buzzer
# 演奏裝備SE
RM.se_equip
# 演奏存檔SE
RM.se_save
# 演奏讀檔SE
RM.se_load
# 演奏商店SE
RM.se_shop
# 演奏戰鬥開始SE
RM.se_battle_start
# 演奏角色擊倒SE
RM.se_actor_collapse
# 演奏敵人擊倒SE
RM.se_enemy_collapse
       
變更已方隊伍位置的角色
RM.members(索引, 角色)
某方面來說,像是使用『XPVX.members[索引] = 角色』一樣,但VX這樣做會無效
原則上VX儲存隊伍資料是角色編號,再將編號轉Game_Actor的數組(原則上已經是不同的對象了)
所以VX必須使用這方式才可以更改隊伍的數組資料,而XP兩種都可以使用
不過由於是方便整合XP與VX腳本之用,所以建議XP或VX都使用此函數為佳(我在自己建議自己?!) 
索引:設定要更改隊伍中第幾個角色,從0開始為第1個隊伍位置
角色:設定該隊伍位置要變更為哪個角色,不會自動修正,所以隊伍中跑出相同角色是可能的
   可直接設定角色編號或者是『$game_actors[角色編號]』,不管設定哪個效果都一樣
    
增減道具
RM.gain_item(道具數據, 增減量)
RM
.gain_item(道具數據, 增減量, 包含身上裝備標誌)
獲得或遺失指定數量的道具
增減量:設定正數為獲得數量;設定負數為扣減數量
包含身上裝備標誌:當道具欄持有的裝備數量扣減至0以下時
         是否要轉扣向已經裝備上的裝備進行扣減
         通常由隊伍中第1個角色的裝備開始扣除
         true表示要;false表示不要,使用設置法1則視同false 
         XP本身並無該效果,不過還是稍微讓XP支援一下該功能
   
獲取圖片的位圖(Bitmap)
# 獲取動畫圖塊位圖
RM.animation('圖片檔案名稱', 色相)
# 獲取戰鬥圖位圖
RM.battler('圖片檔案名稱', 色相)
# 獲取行走圖位圖
RM.character('圖片檔案名稱', 色相)
# 獲取遠景圖位圖
RM.parallax('圖片檔案名稱', 色相)
# 獲取一般圖片位圖
RM.picture('圖片檔案名稱', 色相)
    
事件指令-場所移動   
RM.reserve_transfer(地圖編號, X座標, Y座標, 朝向)
效果類似事件指令 [場所移動] 差不多,除了兩著腳本方便使用外
場所移動的朝向可以使用八方向行走腳本來指定斜方向朝向
朝向:設定地圖角色的朝向方向,可設定1~4以及6~9,方向原則上有對應右邊數字鍵的位置
   1:面向左下,需要安裝「八方向行走」才有效果
   2:面向下
   3:面向右下,需要安裝「八方向行走」才有效果
   4:面向左
   6:面向右
   7:面向左上,需要安裝「八方向行走」才有效果
   8:面向上
   9:面向右上,需要安裝「八方向行走」才有效果
   
判斷是否習得技能 NEW  
RM.skill_learn?(角色, 技能)
判斷指定的角色是否有學習到指定的技能
角色:可設定角色編號或是『$game_actors[角色編號]』或其它為Game_Actor的對象
《返回值》該角色有習得該技能返回true;該角色沒有學習到該技能該技能返回false
   
  
Kernel:該模塊中定義了可供所有類使用的方法
hWnd   
獲取遊戲窗口hWnd(handle of window),這個函數會返回RM遊戲窗口的識別碼(以下只稱句柄)
句柄通常由一排數字組成,並且句柄的數值每次重新啟動遊戲窗口(不包含F12重新)都會不一樣
在Windows中每個窗口、程序...等,幾乎都有存在著這些句柄,用來辨識之用
當我們想要控制RM遊戲窗口的時候,但系統卻不知道是要控制哪個窗口時,可用句柄來辨認
以免辨識到其他程式、桌面等東西反而對他進行操作,所以才需要此函數獲取RM窗口的句柄
此外....本獲取句柄的方式有稍微對誤判成其他句柄有做些微處理...只是些微...
這個腳本必須Sword0_API設定為『true』才能夠使用 
注意:原則上一般使用者用不到,主要是有使用API要控制RM遊戲窗口時較可能用到...   
   
rand  
rand()

如果沒帶參數,就隨機返回truefalse(如果參數代truefalse也有一樣的效果)
如果帶了1個參數,則依照 [] 的類型決定函數的效果
如果 [] 為...
數值:隨機返回0~([] - 1),簡單來說就是不包含最後1個數值,和原rand方法效果一樣
nil:隨機返回0~1(不到1)的一個小數數值(通常小數位數很多...)
範圍:隨機返回範圍中的1個數值,適用3的點(...)的範圍表示(也就是不包含最後1個值)
數組:隨機返回數組中任一個單元的值
哈希:隨機返回哈希表中任一個單元,用數組來返回主鍵和值 [主鍵, 值]
字串:隨機返回字符串中任一個字
# 返回真偽
p rand # 隨機返回 true或false
p rand(true) # 隨機返回 true或false
p rand(false) # 隨機返回 true或false


# 返回隨機1個數值
p rand(100) # 隨機返回 0~99任一個數值
# 返回0~不到1的一個小數
p rand(nil) # 隨機返回 0~0.999999999999999任一個數值

# 返回指定範圍
p rand(7..12) # 隨機返回 7~12任一個數值
p rand(7...12) # 隨機返回 7~11任一個數值

# 返回數組中任1個單元
p rand([10, 55, 82]) # 隨機返回 10或55或82

# 返回哈希表中任1個單元,包含主鍵和值的數組
p rand({5=>77, 12=>12, 11=>52}) # 隨機返回 [12, 12]或[11, 52]或[5, 77]

# 返回字符串中任一個字
p rand('阿爾西斯')
# 隨機返回 '阿' or '爾' or '西' or '斯'
   
NaN   
p NaN #=> NaN
p 0 / 0.0 #=> NaN
獲取正負無窮的NaN值(屬於Float浮點數類)
   
Infinity  
p Infinity #=> Infinity
p 1 / 0.0 #=> Infinity
p -Infinity #=> -Infinity
p -1 / 0.0
#=> -Infinity

獲取正數無窮的Infinity值,左邊加負數為負數無窮-Infinity值(兩個都屬於Float浮點數類)
    
【1】sprite(X座標, Y座標, 寬度, 高度)  
【2】sprite(X座標, Y座標, '位圖路徑')
  
懶人腳本,省略不必要重複寫的腳本之用,快速產生精靈或是位圖(一行腳本馬上顯示圖片的意謂...)
設置法1為快速產生精靈,可先指定必要的顯示範圍,再用一般方式代入位圖顯示圖片
設置法2為快速產生位圖(含精靈),也就是一行馬上顯示圖片出來,原則上是顯示圖片原始大小
  
【1】$game_player.setup_move(朝向)  
【2】$game_player.setup_move(朝向, false)  
【3】$game_map.events[事件編號].setup_move(朝向)
【4】$game_map.events[事件編號].setup_move(朝向, false)

懶人腳本,主要效果和預設的角色行走指令是差不多的,改用數值指定方便使用
設置法1為主角的移動;設置法2為主角的移動(固定朝向)
設置法3為事件的移動;設置法4為事件的移動(固定朝向)
  
【1】$game_player.setup_direction(朝向)  
【2】$game_map.events[事件編號].setup_direction(朝向)
  
懶人兼強化腳本,主要效果和預設的角色朝向指令是差不多的
只不過此腳本有採用八方向行走的朝向設定,可以指定斜方向的朝向
設置法1為主角的朝向;設置法2為事件的朝向
朝向:設定地圖角色的朝向方向,可設定1~4以及6~9,方向原則上有對應右邊數字鍵的位置

    
   
Array:數組類
range

指定的數組中有範圍值時,將該數組位置的範圍值轉為數組並組合起來表示
a = [1, 2, 3..8, 9]
p a.range #=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
b = [1, 2, 3...8, 9]
p b.range
#=> [1, 2, 3, 4, 5, 6, 7, 9]
   
swap(索引一, 索引二)    
p [1, 2, 3, 4].swap(1, 3) #=> [1, 4, 3, 2]
p [1].swap(0, 5)
#=> [nil, nil, nil, nil, nil, 1]
將數組中兩個位置的單元值互相交換
索引一、索引二:   
  設定要將哪兩個位置的單元值互相交換,從0開始為第1個位置
    
    
Hash:哈希表類    
swap(主鍵一, 主鍵二)    
# 由於p函數右邊使用哈希表可能誤判成塊,所以必須再用『( )』框起來
p({'魔'=>10, '劍'=>20, 10=>50}.swap(10, '魔')) #=> {"劍"=>20, "魔"=>50, 10=>10}
p({0=>10}.swap(0, 5))
#=> {5=>10, 0=>nil}
將哈希表中兩個主鍵的單元值互相交換
主鍵一、主鍵二:  
  設定要將哪兩個主鍵的單元值互相交換
      
    
Numeric:數字抽象類
minus
返回數值的負數(數值左邊加上 - 符號表示負數)
和直接在左邊加上 - 符號不同的是,不管是正數還是負數,都一律返回負數
a = 1953
p a.minus #=> -1953

b = -1953
p b.minus
#=> -1953
 
per    
per(百分比)
per(百分, 之幾)

如果沒帶參數,就返回該數值的百分之一,如果拿整數計算,則獲取到的數值會忽略小數
但如果是拿小數計算,則會將計算出來的小數也給顯示出來
如果代了1個參數,就返回該數值的 [百分比] 分之一
如果代了2個參數,就返回該數值的 [百分] 分之 [之幾]
此函數的計算會採用小數點進行計算
# 100分之1
p 1953.per #=> 19
p 1953.0.per #=> 19.53
# 70分之1
p 1953.per(70) #=> 27
p 1953.0.per(70) #=> 27.9
# 20分之11

p 1953.per(20, 11) #=> 1074
p 1953.0.per(20, 11)
#=> 1074.15
 
digit 
digit(位數)

如果不帶參數,就返回這個數值的位數數量
帶參數就返回那個位數的數值,如果參數超出數值的總位數時,返回nil   
a = 1953
p a.digit #=> 4
p a.digit(1) #=> 3
p a.digit(2) #=> 5
p a.digit(3) #=> 9
p a.digit(4) #=> 1
p a.digit(5) 
#=> nil
 
digit_a  
將數值的每個位數的數值分解成一個數組來表示
p 0.digit_a #=> [0]
p 55.digit_a #=> [5, 5]
p 176658.digit_a
#=> [1, 7, 6, 6, 5, 8]
  
 
NilClass:nil 的類
to_h
返回空哈希表({})
nil.to_h #=> {}
 
to_reg 
返回空正則表達式(//)
p nil.to_reg #=> //
 
 
String:字符串類
to_reg 
將字符串轉為正則表達式,和直接使用『/#{字符串}/』差別在於
該函數會自動處理具有特殊功能的正則符號,自動將那些符號附加 符號
當成一般的匹配文字進行處理
p /#{'魔劍工舖'}/ #=> /魔劍工舖/
p '魔劍工舖'.to_reg
#=> /魔劍工舖/

p /#{'[魔劍工舖]'}/ #=> /[魔劍工舖]/
p '[魔劍工舖]'.to_reg
#=> /[魔劍工舖]/
    
【1】holomorphic   
【2】holomorphic(轉換類型)  
p 'SwoRd'.holomorphic #=> "Sword"
p 'SwoRd'.holomorphic(0) #=> "Sword"
p 'SwoRd'.holomorphic(1) #=> "Sword"
p 'SwoRd'.holomorphic(2) #=> "SwoRd"
p 'Swo⊙Rd'.holomorphic
#=> "Swo⊙rd"
將半形符號轉為全型符號,或者是將全型符號轉換為半形符號
如果遇到無法轉換的字的時候,這對那個字什麼事情也不做
這僅能轉換基本的符號而已(原則上以上範例已經將能轉換的都提供了...)
轉換標誌:可設定0~2的數值,每個數值都有一個轉換方式,每個方式如下...
     設0表示全形與半形的字互相交換,可參考範例1,沒設定時通常是採用這個
     設1表示一律轉換成半型符號,可參考範例2
     設2表示一律轉換成全型符號,可參考範例3
可以轉換的符號如下:    
ABCDEFGHIJKLMNOPQRSTUVWXZ
abcdefghijklmnopqrstuvwxyz
0 123456789
`~!@#$%^&*()-_=+|,'."<>?/;:[]{}
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0 123456789
‵~!@#$%︿&*()-_=+\|,’."<>?/;:[]{}
 
 
Input:處理遊戲手柄和鍵盤輸入信息的模塊
【1】simulate(模擬按鍵)
【2】simulate(模擬按鍵, 忽略次數)

模擬RM預設已有的按鍵,讓指定的按鍵暫時性的視同按下
使用這個方法後,則指定按鍵的press?、trigger?、repeat?方法讀取到都是真(true)
當執行到『Input.update』時,則這個效果就會取消掉
模擬按鍵:輸入RM按鍵鍵值或是常量,例如:『Input::C』
忽略次數:執行『Input.update』而不中斷的次數
Input.simulate(Input::A)
p Input.press?(Input::A) #=> true
p Input.press?(Input::A) #=> true
Input.update
p Input.press?(Input::A) #=> false
Input.simulate(Input::A, 2)
p Input.press?(Input::A) #=> true
Input.update
p Input.press?(Input::A) #=> true
Input.update
p Input.press?(Input::A)
#=> true
Input.update
p Input.press?(Input::A)
#=> false
    
  
功能設定      
Sword0_API = true  
由於本腳本有部分使用API,目前已知可能1.01版以下RMXP使用API腳本會有問題產生
此外大部分腳本需要安裝此腳本才能正常運行,所以說...
如果有使用此腳本發生問題的使用者,可以將此設定設定為false關閉此腳本API的使用
關閉此腳本的API不會造成什麼問題,此腳本主要是補助其他需要用到API的腳本之用
原則上你會想把此腳本的API關掉,我想其他API腳本原則上也一樣不能使用才是.... 

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