プレイヤーがマップ上で戦闘することができるミニマムなプラグイン – ARPG.js

タイトル
使玩家可以在地圖上戰鬥,極小功能化的戰鬥腳本
作者名
ヘルプ
【插件指令】
//設定玩家技能
ARPG player skill <keyIndex> <skillId>

//設定玩家道具
ARPG player item <keyIndex> <skillId>

//設定跟隨者技能
ARPG follower skill <followerIndex> <keyIndex> <skillId>

//設定跟隨者道具
ARPG follower item <followerIndex> <keyIndex> <skillId>

//設定事件為指定怪物
ARPG enemy <enemyId>

//設定事件怪物死亡時,暫時消除劇情
ARPG die erase

//設定事件怪物死亡時,切換自開關
ARPG die switch <selfSwitchIndex>

//系統開啟顯示(顯示血量、魔力等資訊)
ARPG system open

//系統關閉顯示(停止顯示血量、魔力等資訊)
ARPG system close

p.s. 設定技能、道具後需重新載入地圖
(利用轉移玩家、無淡入淡出即可)

【特殊參考值】
插件常數 control key 的參考值:
<char1>, <char2>, ...
字元間以「,」隔開,空白將會忽略

插件常數 skill note regex 的參考值:
<RegExp>
用途為解析技能註解(逐行)
除非腳本衝突,否則此參數並不推薦修改

插件常數 evaluator 的參考值:
<functionName>
預設值為內建評估函數(ARPGEvaluation)
如需修改使用技能的標準可以外接函數

此函數的結構為:function(<a>, <b>, <c>) {...return <d>;}
參數 a 為技能、道具的使用者,是 Game_Actor 或 Game_Enemy
參數 b 為使用的對象目標,是 Game_Actor 或 Game_Enemy
參數 c 為使用的技能或道具,是 Game_Item
參數 d 為回傳值,為 Boolean 值(是否使用技能、或道具)

【技能、道具的註解】
寫在注釋中,使用「$ARPG」開頭(如果沒有修改預設參數)
使用空白隔開,而同一行的「#」之後會被當成一般注釋處理

$ARPG type <string> # 範圍類型(Refer to help)
$ARPG distance <number> # 距離([0, inf)Z:Number)
$ARPG cooldown <number> # 技能冷卻幀數([0, inf)Z:Number)
$ARPG expand <number> # 作用域擴張延遲幀數([0, inf)Z:Number)
$ARPG duration <number> # 作用域圖塊滯留幀數([0, inf)Z:Number)
$ARPG repelType <number> # 擊退模式(Refer to help)
$ARPG repelRate <number> # 擊退率([0, 100]Z:Number)
$ARPG object <string> # 作用對象(Refer to help)
$ARPG scope [[x1,y1],[x2,y2],...] # 定義其他類型作用域(Refer to help)

【特殊參考值】
在道具、技能註解中的 type 參考值:
none : 無(忽略距離)
self : 單位自身(忽略距離)
straight : 前方直線
cross : 正十字
x-cross : 交叉十字
star : 星型
square : 方型
diamond : 菱型
all-map : 全地圖(忽略距離)
other : 另外定義(忽略距離)

在道具、技能註解中的 repelType 參考值:
none : 無擊退(忽略擊退率)
backward : 退後
jump : 向後跳躍
flight : 退後至底

在道具、技能註解中的 object 參考值:
enemy : 敵方
actor : 我方
all : 對所有

p.s. 作用對象會依照發動者做變化

【設定範例】
# Case - 1
$ARPG type x-cross # 交叉十字範圍
$ARPG distance 7 # 影響距離 7 格
$ARPG cooldown 30 # 冷卻時間 30 幀
$ARPG expand 1 # 每 1 幀都擴張
$ARPG duration 1 # 每次滯留 1 幀
$ARPG repelType backward # 擊退時敵人退 1 格
$ARPG repelRate 30 # 百分之 30 的擊退率
$ARPG object enemy # 作用對象是敵人

# Case - 2
$ARPG type other # 自定義範圍
$ARPG scope [[-2, -2],[-1, -2],...] # 開始定義範圍
...

【其他細節】
角色裝備技能、或道具的方法
在道具、技能頁面對選中的單位
按下 control key 設定的按鈕即可

【開發者提示】
1. 跟隨者只能利用事件裝備技能或道具
未完成的原因為介面所需不同
如需要可自行擴充功能、以及調整介面
※ 請參考「技能、道具的控制掛載」區域的程式碼

2. 外接評估函數的部分 evaluator 參數
插件分開的情況,在載入 ARPG.js 之前
就應該先載入評估函數的插件

3. 不同角色的 A.I. 系統沒有實作
普通使用者的話,利用移動指令就能完成強度的控制
高級使用者可以自行添加
※ 請參考「角色 ARPG 化」及「自操作角色的更新」區域的程式碼
應該在 this._arpg 底下新增 ai 參數
在更新時把 EVALUATOR 置換成 this._arpg.ai(...) 即可
パラメータ
param control key
desc 鍵盤控制鍵(Refer to help:String)
default A, S, D, F

param follower skill count
desc 玩家隊友的技能持有數量([0, inf)Z:Number)
default 4

param actor damage range tile color
desc 玩家傷害地板的顏色(CSS format(color):String)
default #FF3300

param actor recover range tile color
desc 玩家回復地板的顏色(CSS format(color):String)
default #00FF33

param enemy damage range tile color
desc 怪物攻擊地板的顏色(CSS format(color):String)
default #3300FF

param enemy recover range tile color
desc 怪物回復地板的顏色(CSS format(color):String)
default #33FF00

param actor damage range tile cache count
desc 玩家攻擊地板的暫存精靈數量([0, inf)Z:Number)
default 50

param actor recover range tile cache count
desc 玩家回復地板的暫存精靈數量([0, inf)Z:Number)
default 50

param enemy damage range tile cache count
desc 怪物攻擊地板的暫存精靈數量([0, inf)Z:Number)
default 50

param enemy recover range tile cache count
desc 怪物回復地板的暫存精靈數量([0, inf)Z:Number)
default 50

param skill tiles margin
desc 技能作用地板的外邊距([0, inf)Z:Number)
default 4

param skill tiles opacity
desc 技能作用地板的不透明度([0, 255]Z:Number)
default 128

param status sprite margin
desc 角色血量、魔力條精靈的橫向外邊距([0, inf)Z:Number)
default 2

param status sprite width
desc 角色血量、魔力條精靈的寬度([0, inf)Z:Number)
default 5

param hp sprite color
desc 用於顯示角色血量精靈的顏色(CSS format(color):String)
default #FF9900

param hp sprite background color
desc 用於顯示角色血量精靈的背景顏色(CSS format(color):String)
default #AA3333

param mp sprite color
desc 用於顯示角色魔力精靈的顏色(CSS format(color):String)
default #0099FF

param mp sprite background color
desc 用於顯示角色魔力精靈的背景顏色(CSS format(color):String)
default #3333AA

param icon width
desc 定義的圖標寬度([1, inf)Z:Number)
default 32

param icon height
desc 定義的圖標長度([1, inf)Z:Number)
default 32

param keys sprites margin
desc 玩家操作按鍵精靈的外邊距([0, inf)Z:Number)
default 50

param keys sprite font size
desc 玩家操作按鍵精靈的字體大小([1, 64]Z:Number)
default 12

param keys sprite font x
desc 玩家操作按鍵精靈的字體橫向位置([0, inf)Z:Number)
default 18

param keys sprite font y
desc 玩家操作按鍵精靈的字體縱向位置([0, inf)Z:Number)
default 6

param arpgkey invalid opacity
desc 操作按鍵精靈對應道具不可使用時的透明度([0, 255]Z:Number)
default 64

param arpgkey valid opacity
desc 操作按鍵精靈對應道具正常時的透明度([0, 255]Z:Number)
default 255

param skill note regex
desc 技能資料庫註解解析的正則表達式(Refer to help:String)
default /\$ARPG.\S/

param evaluator
desc 戰鬥評估用的函數部件(Refer to help:String)
default ARPGEvaluation

ライセンス表記

紹介ページ https://github.com/tinytsunami/RMMV-Plugins/blob/master/Plugins/ARPG.js