スキル [使用可能] の定義 - roratorio-hub/ratorio GitHub Wiki

一部のアイテムやペットを装備すると特定のスキルが使用できるようになるケースがあります。
例えばペット・バフォメットを召喚している場合にロードオブヴァーミリオンLv10が使えるようになります。
これを計算機で実現する方法を説明します。

skill.dat.js

使えるようになるスキルが roro/m/js/skill.dat.js で定義されている必要があるので確認してください。
以下の例では SkillID = 127 でロードオブヴァーミリオンが定義済みです。

image

usableskill.dat.js

それに加えて、使えるようになるスキルが roro/m/js/usableskill.dat.js で定義されている必要があるので確認してください。
usableskill.dat.js のデータ構造は以下の通りです。

image

つまりロードオブヴァーミリオンLv10を定義する場合は [?, 1, 127, 10] というレコードが存在している必要があるということです。

既存のデータを検索したところ UsableSkillID = 136 に既にデータが存在していました。
今回はこのデータを使うことにします。

image

pet.dat.js

ペットに「スキル使用可能」効果を付与する場合は roro/m/js/pet.dat.js を編集します。
アイテムの場合は roro/m/js/item.dat.js
カードの場合は roro/m/js/card.dat.js を同様に編集すればよいので適宜読み替えてください。

ペット、アイテム、カードに能力を付与する際は ItemSP と呼ばれるデータを使ってその能力を指定します。
ItemSP の詳しい説明はここでは省きますが、簡単に言えばいくつかの能力IDを加算したものが最終的な ItemSP となります。
例えば、今回指定したいItemSPは以下の通りです。

  2000000000000000 : Lv100 以上のとき  
+              220 : スキル使用可能になる  
= 2000000000000220 : Lv100以上の時、スキル使用可能になる  

先ほど確認した通りロードオブヴァーミリオン Lv10 の UsableSkillID は 136 ですから、以下のようなレコードを追加することになります。
なお、数値計算時に考慮されないいくつかの能力には ItemSP が割り当てられていません。
以下の例ではHP吸収効果がそれですが、そういった効果はItemSPではなくアイテム説明文で表現するようにしています。

image