2008.4.12現在、SpellCastを日本語環境で利用するには次の問題があります。
以下の手順は、その問題を回避してSpellCastを利用する手順です。
以下の手順は、その問題を回避してSpellCastを利用する手順です。
※このテキストは、Windowerの基本的な操作方法を理解している方を対象としてします。
・プラグインのロード、アンロード ・Windowerスクリプト
<日本語FFXi環境上での問題>
日本語版FFXiは文字コードをShiftJisとして扱っています。
しかし、SpellCastの設定ファイル(.xml)内に記載したShiftJisの2byte文字を正しくFFXiに送ることができません。
これはSpellCastではTinyXMLを利用してXMLへのアクセスを行っており、TinyXMLはShiftJISを扱うことができないためです。
参考:http://forums.windower.net/index.php?s=2afdffa922686452a43ae69073222c27&showtopic=11758
しかし、SpellCastの設定ファイル(.xml)内に記載したShiftJisの2byte文字を正しくFFXiに送ることができません。
これはSpellCastではTinyXMLを利用してXMLへのアクセスを行っており、TinyXMLはShiftJISを扱うことができないためです。
参考:http://forums.windower.net/index.php?s=2afdffa922686452a43ae69073222c27&showtopic=11758
この問題の解決方法として、2byte文字を含むコマンドは別のスクリプトファイルに記述し、SpellCastよりスクリプトを呼び出すことで回避します。
または、アイテム名をコードに変換して書く事により機能をフルに使えるようになります。(日本語で書いたXMLを一括変換できるツールがあります)
または、アイテム名をコードに変換して書く事により機能をフルに使えるようになります。(日本語で書いたXMLを一括変換できるツールがあります)
<準備>
1.SpellCast 2.21以降をプラグインフォルダへダウンロード
2.SpellCastの起動
- 一度Windowerを起動し、FFXIを立ち上げてから、SpellCastをloadしてください。
- 初回起動時に、resourcesフォルダが自動生成され、各種xmlファイルが自動ダウンロードされます。
3.resourcesフォルダのabils.xml及びspells.xmlの編集
- いったんWindowerを終了してから、作業してください。
- abils.xmlとspells.xmlの先頭行を次のように書き換えます。
<?xml version="1.0" encoding="shift_jis"?>
※resourcesフォルダが自動で作成されなかった場合は、チャット欄に//updateresourcesとタイプして手動で読み直してください。
- 文字コードをShift-Jisにして上書き保存 参考:文字コードを変更
<SpellCast設定ファイル、及びスクリプトファイルの作成>
参考に筆者のフォルダ構成は次のようにしています。
└Windower ├ plugins │└ spellcast │ └ blm.xml ・・・・・・SpellCast設定ファイル(1) └ scripts └ blm ・・・・・・ジョブ別にスクリプトフォルダを分けると便利 └ sc ・・・・・・・・スクリプトファイル置き場 ├ Standard51 ・・・・・・・・スクリプトファイル(2) ├ rest50 ├ rest51 ├ IceStaff ├ ・・・
1.SpellCast設定ファイルを作成する
- 全ての装備変更をスクリプトで行うため、<set>は利用しません。
- <rule>及び、<if>等で条件判定を行った後に
<Action type="Command" when="タイミング"> コマンド </Action>
を利用して装備変更スクリプトを呼び出します。
タイミングは主に次の3つで、ヒット直前に装備を変えてヒット後に戻す、などが可能です。
Precast:魔法詠唱前
Midcast:魔法詠唱後
Aftercast:魔法発動後
その他にも秒数を指定したりも可能です。詳細は本家:ruleの説明をご参照ください。
を利用して装備変更スクリプトを呼び出します。
タイミングは主に次の3つで、ヒット直前に装備を変えてヒット後に戻す、などが可能です。
Precast:魔法詠唱前
Midcast:魔法詠唱後
Aftercast:魔法発動後
その他にも秒数を指定したりも可能です。詳細は本家:ruleの説明をご参照ください。
次の例は、次の2つの行動を行う設定ファイルです。
・精霊、暗黒、弱体、神聖魔法を詠唱した際に メインレベルが50を超えている場合に 1.基本装備セットを装備し ・・・・・ 10行目 blm/sc/standard51 を呼び出し 2.詠唱した魔法の属性に合わせて属性杖を装備する。 ・・・・・・ 11~27行目 ・ヒーリングした際に、レベルに応じて装備を変更する。 ・・・・・31~40行目 メインレベルが50を超えている場合は、 blm/sc/rest51を実行 それ以外の場合は、 blm/sc/rest50を実行
ファイル名:plugins/spellcast/blm.xml
<?xml version="1.0" encoding="Shift-Jis"?> <spellcast> <config Debug="false" HideErrors="false" ShowGearSwaps="False" /> <sets> </sets> <rules> <!-- 魔法発動中の着替え、属性杖の変更 --> <rule Skill="ElementalMagic|DarkMagic|EnfeeblingMagic|DivineMagic"> <if MLvlGT=50> <Action type="Command" when="midcast">exec blm/sc/Standard51</Action> <if Element="Fire"> </if> <elseif Element="Earth"> <Action type="Command" when="midcast">exec blm/sc/EarthStaff</Action> </elseif> <elseif Element="Wind"> <Action type="Command" when="midcast">exec blm/sc/WindStaff</Action> </elseif> <elseif Element="Dark"> <Action type="Command" when="midcast">exec blm/sc/DarkStaff</Action> </elseif> <elseif Element="Light"> <Action type="Command" when="midcast">exec blm/sc/LightStaff</Action> </elseif> <else> <Action type="Command" when="midcast">exec blm/sc/IceStaff</Action> </else> </if> </rule> <!-- ヒーリング時の処理 --> <rule spell="Autoset"> <if status="Resting"> <if MLvlGT=50> <Action type="Command" when="Resting">exec blm/sc/rest51</Action> </if> <else> <Action type="Command" when="Resting">exec blm/sc/rest50</Action> </else> </if> </rule> </rules> </spellcast>
2.SpellCastから呼び出すWindowerスクリプトファイルを作成する
SpellCastから呼び出す着替えスクリプトを用意します。
このスクリプトファイルはWindower標準のスクリプトファイルとなります。
例として、次に上記のblm.xmlから呼び出すスクリプトファイルを以下に示します。
ファイル名:scripts/blm/sc/rest50
このスクリプトファイルはWindower標準のスクリプトファイルとなります。
例として、次に上記のblm.xmlから呼び出すスクリプトファイルを以下に示します。
ファイル名:scripts/blm/sc/rest50
input /equip body シアーチュニック input /equip waist モブワサッシュ+1 input /equip legs バロンスロップス input /equip ear1 防毒のピアス input /echo ##### ヒーリング装備(黒50) #####
ファイル名:scripts/blm/sc/rest51
input /equip main ダークスタッフ input /equip ear1 防毒のピアス input /equip body シアーチュニック input /equip waist モブワサッシュ+1 input /equip legs バロンスロップス input /echo ##### ヒーリング装備(黒51以上) #####
ファイル名:scripts/blm/sc/standard51
input /equip Ammo モリオンタスラム input /equip Head シアークラウン+1 input /equip Neck モブワスカーフ+1 input /equip Ear1 カンニングピアス input /equip Ear2 モルダバイトピアス input /equip body カスタムベスト input /equip hands カスタムFグローブ input /equip Ring1 賢明の指輪 input /equip Ring2 賢明の指輪 input /equip Back ブラックケープ+1 input /equip waist フォレストストーン input /equip legs マジックズボン input /equip feet カスタムFブーツ input /echo ##### 通常装備(黒51) #####
ファイル名:scripts/blm/sc/earthstaff
input /equip main ライトスタッフ
ファイル名:scripts/blm/sc/icestaff
input /equip main アクィロスタッフ
ファイル名:scripts/blm/sc/darkstaff
input /equip main ダークスタッフ
ファイル名:scripts/blm/sc/Lightstaff
input /equip main ライトスタッフ
ファイル名:scripts/blm/sc/Windstaff
input /equip main ウィンドスタッフ
<アイテム名をコード変換する>
XMLにアイテム名をコードで記載する事によりSpellcastの機能をフルに使うことが出来ます。
※ うぷろだに一括変換ツールがあるので、なにも考えずに日本語アイテム名で書いたXMLを一括変換して使うことができます。(使い方は添付のREADME参照)
※ うぷろだに一括変換ツールがあるので、なにも考えずに日本語アイテム名で書いたXMLを一括変換して使うことができます。(使い方は添付のREADME参照)
表記例
<set name="Resting"> <main>\xFD\x07\x01\x44\x97\xFD</main><!-- ダークスタッフ --> </set>
コード変換の形式はこちら
\xFD\x07\x01 + ItemID 16進1-2桁目 + ItemID 16進3-4桁目 + \xFD
ItemIDはPOLUtils等で検索して下さい
http://users.telenet.be/pebbles/downloads.html
http://users.telenet.be/pebbles/downloads.html
※注「\x00」を含むItemIDは使用出来ません。該当するアイテムはexecを使ってスクリプトから使用して下さい。
<SpellCastの起動、及び設定ファイルの読み込み>
1.spellcastのロード
最初に読み込まれる設定ファイルは「plugins/spellcast/default.xml」となります。default.xmlではAutoLoadXMLが定義してあるため対応するxmlファイルがあればログイン時、ジョブ変更時等に自動で読み込みをしてdefault.xmlを置き換えてくれます。
<例>
aikar_whm_blm.xml-->pc名aikar、メイン白、サポ黒の時ロード
aikar_whm.xml-->pc名aikar、メイン白の時ロード
whm_blm.xml-->メイン白、サポ黒の時ロード
whm.xml-->メイン白の時ロード
最初に読み込まれる設定ファイルは「plugins/spellcast/default.xml」となります。default.xmlではAutoLoadXMLが定義してあるため対応するxmlファイルがあればログイン時、ジョブ変更時等に自動で読み込みをしてdefault.xmlを置き換えてくれます。
<例>
aikar_whm_blm.xml-->pc名aikar、メイン白、サポ黒の時ロード
aikar_whm.xml-->pc名aikar、メイン白の時ロード
whm_blm.xml-->メイン白、サポ黒の時ロード
whm.xml-->メイン白の時ロード
2.ファイルの読み込み
個別に作成したxmlファイルを読み込ませたい場合はWindowerコンソールにて
「spellcast load ***.xml」として読み込んでください。
編集したXML等を再度読み込ませたい場合は「spellcast reload ***.xml」
default.xmlを再読み込みの場合は「spellcast reload」だけでもOKです。
個別に作成したxmlファイルを読み込ませたい場合はWindowerコンソールにて
「spellcast load ***.xml」として読み込んでください。
編集したXML等を再度読み込ませたい場合は「spellcast reload ***.xml」
default.xmlを再読み込みの場合は「spellcast reload」だけでもOKです。
※詳細は、本家:Spellcast commandをご参照ください。
<注意点>
- Windower3.4ではコマンドラインでエスケープシーケンスに対応しました。
そのため、マクロの呼び出しに「\」を利用している場合は「\\」と指定するか
「/」に置き換える必要があります。
「/」に置き換える必要があります。
対応策は不格好ですが
input /equip ring1 ソ\ーサラーリング
としてください。ソードストラップも同じ原因です
原理についてはここを参考にしてください
http://www.kent-web.com/pubc/jcode/
http://www.kent-web.com/pubc/jcode/
- SpellCastのバージョンは2.14以降が必須です。2.11以前のバージョンでは日本語魔法・アビ名を認識しません。
- SpellCast設定ファイルの<rule>で、魔法・アビ名を指定する場合は、英語名で指定してください。
(例) ブリザドを指定したい場合
○ <rule Spell="Blizzard"> や <rule Spell="Blizzar*">
× <rule JSpell="ブリザド"> ・・・ 本来はこの指定で認識させたい意図で作られていますが、認識しません。(文字コードの問題?)
○ <rule Spell="Blizzard"> や <rule Spell="Blizzar*">
× <rule JSpell="ブリザド"> ・・・ 本来はこの指定で認識させたい意図で作られていますが、認識しません。(文字コードの問題?)