当ページは、本家サイトSpellcastのXMLファイルに関して纏めたページです。
参考にした本家ページ
参考にした本家ページ
目次
XMLファイルの基本構成
<?xml version="1.0" encoding="utf-8"?> <spellcast> |
最初から2行は必ずコレ |
<config ~ /> | [基本動作に関する設定部分] |
<Variables> </Variables> |
[Spellcastで使用できる「ユーザー変数」の定義部分] |
<sets> </sets> |
[装備セット定義部分] |
<rules> </rules> |
[魔法・アビ使用時などの動作に関する設定部分] |
</spellcast> | 最後の行は必ずコレ |
<Config>
<config
定義項目名="値"
・
・
/>
定義項目名 | 必須 | 値 | 説明 |
AutoLoadXML | × | True 又は False |
default.xmlのみに設定可能 Trueを設定しておくと、ジョブチェンジを行った際に自動的に対応するXMLファイルを読み込む。次の順でXMLファイル名を検索し、該当したファイルを読み込む。 1.「キャラ名_メインジョブ名_サブジョブ名.xml」 2.「キャラ名_メインジョブ名.xml」 3.「メインジョブ名_サブジョブ名.xml」 4.「メインジョブ名.xml」 |
RequireVersion | × | Spellcastのバージョン番号 | Spellcast.dllのバージョンが、当定義項目に示されたバージョン番号以上であることをチェックする。XML定義例を他者へ展開して共有する際に使用するとよい |
Debug | × | True又はFalse | Trueを設定すると動作ログ(spellcast\spellcast.log)が出力される。動作テスト時に出力して確認する |
ShowGearSwaps | × | True又はFalse | Trueを設定すると装備変更時にFFXIログ画面上に装備名が表示される。ただし、日本語環境では文字化け、或いはJPIDConv変換後の値が表示されるため意味はない。当設定での出力はサーバに送信されず他者には見えない(/echoと同じ) |
DisableWS | × | True又はFalse | Trueを設定すると、ウェポンスキル実行時の動作を行わなくなる |
DisableJA | × | True又はFalse | Trueを設定すると、ジョブアビリティ実行時の動作を行わなくなる |
DisablePET | × | True又はFalse | Trueを設定すると、ペットコマンド実行時の動作を行わなくなる |
DisableSO | × | True又はFalse | Trueを設定すると、歌実行時の動作を行わなくなる |
DisableNIN | × | True又はFalse | Trueを設定すると、忍術実行時の動作を行わなくなる |
DisableMA | × | True又はFalse | Trueを設定すると、魔法実行時の動作を行わなくなる |
HELMSet | × | 装備セット名 | Specify the set of gear you would like to use when doing HELM. |
FishingSet | × | 装備セット名 | 釣り実行時に変更する、装備セット名 |
ShowSpellInfo | × | True又はFalse | Trueを設定すると魔法実行時に、リキャ時間、消費MP、キャスト時間がFFXIログ画面上に装備名が表示される。当設定での出力はサーバに送信されず他者には見えない(/echoと同じ) |
<Sets>
<Sets>
<Group 定義項目名="値"・・・>
<Set 定義項目名="値"・・・>
<装備箇所>装備名</装備箇所>
</Set>
</Group>
</Sets>
<Group>
定義項目名 | 必須 | 値 | 説明 |
Name | ○ | 任意の装備グループ名 | 装備グループに名前をつける。「|」で区切って別名を付けることができる。(|は実際は半角) |
default | × | True又はFalse | Trueを設定すると、XMLファイルを読み込んだ際に当グループが選択される |
inherit | × | 装備グループ名 | 指定した装備グループの、装備セットを継承した装備グループとする |
inheritの例
<Sets>
<Group Name="Def">
<Set Name="Standard">
<Lring>全知の指輪</Lring>
<Rring>スノーリング</Rring>
</Set>
<Set Name="MaAcc">
<Lring>オメガリング</Lring>
</Set>
</Group>
<Group Name="Assult" inherit="Def">
<Set Name="Standard">
<Rring>バルラーンリング</Rring>
</Set>
</Group>
</Sets>
上記の例は、[Def]とDefを継承した[Assult]の2グループからなる装備セットです。
まず、グループがDefの状態で装備セットStandardを装備すると(コンソールでsc s Standard)、左指:全知、右指:スノーが装備されます。
まず、グループがDefの状態で装備セットStandardを装備すると(コンソールでsc s Standard)、左指:全知、右指:スノーが装備されます。
- 装備部分別の継承・・・・・グループをAssultに切り替えて(コンソールでsc g Assult)、Standardセットを装備すると左指:全知、右指:バルラーンとなります。AssultグループのStandardセットには左指の定義はありませんが、Defを継承しているので左指は全知、右指はAssultのStandardに上書きされてバルラーンとなります。
- 装備セット全ての継承・・・・・グループAssultの状態で、MaAccセットを装備すると左指:オメガリングが装備されます。inheritの定義が無い場合は「MaAccセットはAssultグループには無い」とエラーが出ます。
このように「装備セット名を変更せずに、一部分だけの装備を変えたい」場合に便利な定義方法です。
<Set>
定義項目名 | 必須 | 値 | 説明 |
Name | ○ | 任意の装備セット名 | 装備セットに名前をつける。「|」で区切って別名を付けることができる。(|は実際は半角) |
BaseSet | × | 装備セット名 | 同グループ内で継承元とする装備セットを指定 |
BaseGroup | × | 装備グループ名 | 他グループの装備セットを継承元とする場合に使用。BaseGroupを使用時はBaseSet設定が必須。 |
BaseSetの例
<Sets>
<Group Name="Def">
<Set Name="Standard">
<Lring>全知の指輪</Lring>
<Rring>スノーリング</Rring>
</Set>
<Set Name="MaAcc" BaseSet="Standard">
<Lring>オメガリング</Lring>
</Set>
</Group>
<Sets>
- 装備セットStandardに着替えると、左指:全知、右指:スノー
- 装備セットMaAccに着替えると、左指:オメガ、右指:スノーとなる。MaAccセットには右指の定義はないが、Standardセットを継承しているので右指も装備変更されます。
装備箇所名
Main | Sub | Range | Ammo |
Head | Neck | LEar | REar |
Body | Hands | LRing | RRing |
Back | Waist | Legs | Feet |
- 装備を外したい場合は、「<装備箇所名>remove</装備箇所名>」と定義する。
- 継承元の装備セットで「<装備箇所名 lock>remove</装備箇所名>」と設定すると、継承先での上書きが行われず元の装備のまま維持する。
<Variables>
VariablesではSpellcast内で利用するユーザー変数を設定できる。
<Variables clear="値">
<Var Name="値">初期値</Var>
・
・
</Variables>
定義項目名 | 必須 | 値 | 説明 |
Variables clear | × | True又はFalse | Trueを設定すると、XMLを読み込んだ際、又は再読み込みした際に、ユーザー変数を全て消去する。Falseの場合では、ユーザー変数、ユーザー変数の値を保持する(この場合はSpellcastのunloadでクリアされる) |
<Var>
定義項目名 | 必須 | 値 | 説明 |
Name | ○ | 任意のユーザー変数名 | ユーザー変数名を指定する |
初期値 | ○ | 任意の値 | ユーザー変数に割り当てる初期の値を設定する |
<Rules>
Rules内の定義によって、魔法やアビ、又はプレイヤーのステータス変更時などの動作を設定することができます。
Rulesは、動作条件を指定する<If>、<Elseif>、<Else>、行動を指定する<Action>の計4つの命令文からなる。
Rulesは、動作条件を指定する<If>、<Elseif>、<Else>、行動を指定する<Action>の計4つの命令文からなる。
<Rules>
<If 条件式A>
<Action アクション指定①>
</If>
<Elseif 条件式B>
<Action アクション指定②>
</Elseif>
<Else>
<Action アクション指定③>
</Else>
</Rules>
<If>
- <If 条件式>~</If>とは「条件に当てはまる場合に、<If>~</If>内を処理する」というものであり、条件式は例をあげると「使用した魔法の属性が炎である」や「現在MPが51%以下」などさまざま指定が可能です。
- 条件式については、こちらで詳しく説明します。→条件式
<Elseif>
- <Elseif>~</Elseif>は「直前の<If>~</if>の条件に当てはまらなかった場合であり、且つ、<Elseif 条件式>に当てはまる場合に、<Elseif>~</Elseif>内を処理する」というものである。上の例では、「条件式Aに当てはまらず条件式Bに当てはまった場合に、アクション指定②を処理」といった動きとなります。
- 条件式については、こちらで詳しく説明します。→条件式
<Else>
- <Else>~</Else>は、「直前の<If>又は<Elseif>に当てはまらなかった場合に、<Else>~</Else>内を処理する」というものであり、上の例では「条件式A、条件式Bともに当てはまらなかった場合にアクション指定③を処理する」といった動きとなります。
<Action>
<Action type="Type値" 定義項目=値・・・ />
Type値 | Typeの説明 | ||
定義項目 | 必須 | 値と説明 | |
ShowSpellInfo | 使用した魔法の情報をFFXIログ上に表示する。この出力はサーバに送信されず他者には見えない | ||
CancelSpell | 使用した魔法・アビをキャンセルする。 | ||
ChangeSpell | 使用した魔法やアビを別の魔法・アビに変更する <action type="ChangeSpell" Spell="Cure III" /> | ||
Spell | ○ | 変更対象の魔法・アビ名 | |
ChangeTarget | 魔法・アビの対象を変更する | ||
Target | ○ | 変更するターゲット | |
DefaultTarget | 魔法・アビの対象を指定しなかった場合に付与する標準のターゲット | ||
Target | ○ | 標準とするターゲット | |
Command | コンソールコマンドを実行する (例)<Action Type="Command" When="タイミング指定">任意のコンソールコマンド</Action> | ||
When | × | コンソールコマンドを実行するタイミングを指定。[タイミング定義] | |
Equip | 装備を変更する (例)<Action Type="Command" When="タイミング指定" Set="装備セット名" SetGroup="装備グループ名"/> | ||
When | × | 装備変更するタイミングを指定。[タイミング定義] | |
Set | ○ | 変更する装備セット名 | |
SetGroup | × | 装備グループ名。指定のグループ内のSetで指定した装備セットに変更する。 省略した場合は現在のグループ内でSetで指定した装備セットに変更する。 | |
GearDelay | 装備変更を開始する前の待ち時間を設定する | ||
Delay | ○ | 秒数を指定(小数点以下指定可能) | |
CastDelay | アビ・魔法を実行する前の待ち時間を設定する ※装備変更完了後~アビ・魔法実行の間の待ち | ||
Delay | ○ | 秒数を指定(小数点以下指定可能) | |
MidCastDelay | アビ・魔法詠唱開始後のタイミングであるMidCastの待ち時間を設定する。デフォルトでは魔法詠唱開始後0.6秒がMidcastのタイミングとなっている | ||
Delay | ○ | 秒数を指定(小数点以下指定可能) | |
AfterCastDelay | 詠唱完了後のタイミングであるAftercastの待ち時間を設定する。デフォルトでは魔法詠唱完了後1.5秒がAftercastのタイミングとなっている | ||
Delay | ○ | 秒数を指定(小数点以下指定可能) | |
AddToChat | 任意のテキストをFFXIログに出力する。当ログはサーバには送信されず他者からは見えない。 <Action Type="AddToChat" Color=32>任意のテキスト</Action> | ||
Color | × | テキストの色を指定する。デフォルトでは32。色に関してはこちらを参照 | |
When | × | テキストを出力するタイミングを指定する。[タイミング定義] | |
Return | Spellcastの処理を停止する | ||
ChangeLock | 装備変更のロック・ロック解除を行う | ||
When | × | ロック・ロック解除するタイミングを指定する。[タイミング定義] | |
Slot | × | ロック・ロック解除する装備箇所を指定する。省略した場合は全ての装備箇所が指定されたものとする | |
Lock | × | ロックする場合は"yes"、ロック解除する場合は"no"を指定する | |
Disable | SpellCastによる装備変更を無効に切り替える | ||
Slot | × | SpellCastによる装備変更を無効にする装備箇所を指定する。省略した場合は全ての装備箇所を無効にする | |
Enable | SpellCastによる装備変更を有効に切り替える | ||
Slot | × | SpellCastによる装備変更を有効にする装備箇所を指定する。省略した場合は全ての装備箇所を有効にする | |
Var | ユーザー変数の値を変更する | ||
Cmd | ○ | ユーザー変数を変更するコマンドを記述する。 <Action type="Var" cmd="set ユーザー変数名 値" />・・・値を設定 <Action type="Var" cmd="inc ユーザー変数名" />・・・1加算 <Action type="Var" cmd="dec ユーザー変数名" />・・・1減算 |
- Whenでのタイミング指定
- Precast・・・魔法・アビ詠唱開始前
- Midcast・・・魔法・アビ詠唱中。デフォルトでは詠唱開始後、0.6秒後
- Aftercast・・・魔法・アビ詠唱完了後。デフォルトでは詠唱完了後、1.5秒後
- ※Whenを省略した場合は、Precastとみなされる。
- アビ・魔法コマンド入力からの実行順序
- 1.魔法・アビを実行(「/ma 魔法」、又は魔法リストから選択)
- 2.Rulesに記述した条件式を処理し、Precast,Midcast,Aftercastに実行するActionを確定する。
- 3.待つ(GearDelay設定値、デフォルトではほぼ待ちなし)
- 4.実行タイミングにPrecastを設定したActionをFFXIサーバーに送信
- 5.待つ(PrecastDelay設定値、デフォルトでは0.1秒)
- 6.1.で実行した魔法・アビコマンドをFFXIサーバーに送信
- 7.待つ(MidcastDelay設定値、デフォルトでは0.6秒)
- 8.実行タイミングにMidcastを設定したActionをFFXIサーバーに送信
- 9.待つ(魔法・アビの詠唱完了まで)
- 10.待つ(AftercastDelay設定値、デフォルトでは1.5秒)
- 11.実行タイミングにAftercastを設定したActionをFFXIサーバーに送信