アイテムSP - roratorio-hub/ratorio GitHub Wiki

概要

ROラトリオHUBでは、カード、エンチャント、装備が持つ特殊能力をアイテムSPと呼称しています。 アイテムSPは roro/m/js/item.h.js の EnumItemSpId によって識別されます。

EnumItemSpId 表

開始 終了 意味
000 999 基本能力
05,000 23,000 スキル性能を変化させる能力
100,000 900,000 能力発動フラグ「精錬値が◯上がる度に」
01,000,000 10,000,000 能力発動フラグ「精錬値が◯以上の時に」
100,000,000 800,000,000 能力発動フラグ「指定ステータスが◯上がる度に」
01,000,000,000 48,000,000,000 能力発動フラグ「指定ステータスが◯以上の時に」
0,100,000,000,000 6,600,000,000,000 能力発動フラグ「指定職業が装備時に」
010,000,000,000,000 990,000,000,000,000 能力発動フラグ「BaseLvが◯上がる度に」
1,000,000,000,000,000 6,000,000,000,000,000 能力発動フラグ「BaseLvが◯以上の時に」
10,000,000,000,000,000 40,000,000,000,000,000 能力発動フラグ「超越段階が◯以上の時に」

基本能力には「STRを加算する」や「魔法ダメージを増加させる」などが定義されています。 スキル性能を変化させる能力には「指定スキルの詠唱時間短縮」などが定義されています。

これらの能力は能力発動フラグと論理和を取ることが可能です。 例えば「精錬値が1上がる度に(ItemSP = 100000)」「STRを加算する(ItemSP = 001)」を表現するアイテムSPコードは 100000 + 001 = 100001 となります。 「ヘルインフェルノ(skillId = 528)」の「ダメージ増加(ItemSP = 5000)」なら 5000 + 528 = 5528 です。

発動中のアイテムSP

発動中のアイテムSP効果はグローバル変数の n_tok 配列に格納されます。 例えばノックバック無効は

if (n_tok[ITEM_SP_NEVER_KNOCK_BACK] !== 0)

でチェック可能です。

注意

javascript の制約により 9007199254740991 を超えるアイテムSPコードは Number 型として安全に扱えません。 そのため「超越段階が◯以上の時に」を表現する場合は BigInt 型として扱う必要があります。