2023-06-10|閱讀時間 ‧ 約 6 分鐘

【筆記】Galv's Puzzle Functions MZ

關於 Galv 的謎題功能筆記,部分插件命令包含範例參考。此篇會依照個人習慣跟紀錄做更新。

控制自開關
  需要透過腳本使用該指令,可以透過該指令控制要打開或關閉自開關。   同樣指令記得皆是英文或數字。
Galv.PUZ.switch(d,s,x,e);
  d 為事件的方向,指定方式為:     2 下     4 左     6 右     8 上     0 角色下方     4dir 全方向     front 事件正面     [d,d,d] 具體指定方向     event 只改變指定事件   s 為自開關,事件頁中的 A B C D 開關。   x 可以寫 on 打開、off 關閉或 flip 翻轉。     flip 的用法是把 on 的改成 off 或 off 改成 on。   e 為事件 ID,如果指定成 this._eventId 則是目前編寫中的事件。
範例:
Galv.PUZ.switch(2,'B','on',this._eventId); 目前事件的自開關 B 打開。
Galv.PUZ.switch(2,'B','on',7); 事件 7 的自開關 B 打開。
Galv.PUZ.switch('4dir','A','off',2); 事件 2 的自開關 A 關閉。

座標判斷
  透過這個腳本,可以直接幫你確認事件的座標,使用在寫條件分歧上相當好用。
Galv.PUZ.isAt(t,e)
  t 是要判定的座標,可以是事件ID ,0 為玩家,也可以指定座標 x y 輸入   e 則是你要判定的事件 ID ,輸入 this._eventId 則是指定目前事件,0 為玩家。
範例:
Galv.PUZ.isAt([12,14]) 目前事件是否在座標 12,14 位置。
Galv.PUZ.isAt([12,14],9) 事件 9 是否在座標 12,14 位置。
Galv.PUZ.isAt(0,5) 事件 5 的座標是否跟玩家相同。
Galv.PUZ.isAt(4,this._eventId) 目前事件的座標是否跟事件 4 相同。

群組開關條件分歧
  在條件分歧中使用,用來確認群組開關是 on 還是 off 。
Galv.PUZ.selfSwitchesOn(s,x,x,x) Galv.PUZ.selfSwitchesOff(s,x,x,x)
  s 是自開關 A B C D   x 為事件 ID,用來檢查哪些事件的開關是否都已經 on 或 off。
※此指令會與 Core Engine VisuStella MZ 衝突。
-
Galv.PUZ.switchesOn(x,x,x) Galv.PUZ.switchesOff(x,x,x)
  這個是用來檢查群組開關的指令。   x 是開關 ID。

事件啟動順序
  用來記錄啟動事件順序的一個功能,可以記錄玩家啟動機關的順序,不用再寫複雜的條件分歧。
Galv.PUZ.setComb(id,v,v,v)
  id 是用來辨識哪一個群組的順序。   v 為順序的值。
範例:
Galv.PUZ.setComb(4,1,2,3) 群組ID 4 的順序為 1 2 3。
-
Galv.PUZ.addToComb(id,v)
  id 為要加入順序的群組。   v 為要加入的順序。
範例:
Galv.PUZ.addToComb(4,1) 群組ID 4 加入順序 1 的值。
Galv.PUZ.addToComb(4) 群組ID 4 加入當前事件 ID 的值。
-
Galv.PUZ.checkComb(id)
  id 為要確認順序的群組,用來確認玩家輸入的順序是否正確。

多項道具確認
  不須使用變數,可以直接透過腳本確認持有的道具 ID 來進行條件分歧。
Galv.PUZ.hasItems(x,x,x)
  x 為道具 ID
範例:
Galv.PUZ.hasItems(1,2,3) 確認玩家是否持有至少一個以上這些 ID 的道具。
-
Galv.PUZ.hasWeapons(x,x,x)
  x 為武器 ID
-
Galv.PUZ.hasArmors(x,x,x)
  x 為防具 ID
範例:
Galv.PUZ.hasArmors(1,2) 確認玩家是否持有至少一個以上這些 ID 的防具。
-
Galv.PUZ.itemAmount(t,id)
  t 為類型,可以指定下列類型     item 道具     weapon 武器     armor 防具   id 為道具 ID
  這個命令會返回道具的數量,並且可以添加比較的數字跟符號。
範例:
Galv.PUZ.itemAmount('item',1) = 10 檢查是否有大於 10 的 ID為 1 的道具。
以及如果有多項道具確認的話可以寫成下列範例。
Galv.PUZ.hasItems(1,2,3) && Galv.PUZ.hasArmors(1,2) && Galv.PUZ.itemAmount('item',1) = 10
檢查道具ID 1 2 3 、防具ID 1 2 以及道具ID 1 的數量有沒有大於 10。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.