Windower 日本語Wiki

SpellCastを日本語環境で使う

最終更新:

Bot(ページ名リンク)

- view
だれでも歓迎! 編集
2008.4.12現在、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

この問題の解決方法として、2byte文字を含むコマンドは別のスクリプトファイルに記述し、SpellCastよりスクリプトを呼び出すことで回避します。
または、アイテム名をコードに変換して書く事により機能をフルに使えるようになります。(日本語で書いた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の説明をご参照ください。

次の例は、次の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
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参照)


表記例
<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

※注「\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-->メイン白の時ロード

 2.ファイルの読み込み
  個別に作成した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/
  • SpellCastのバージョンは2.14以降が必須です。2.11以前のバージョンでは日本語魔法・アビ名を認識しません。
  • SpellCast設定ファイルの<rule>で、魔法・アビ名を指定する場合は、英語名で指定してください。
 (例) ブリザドを指定したい場合
 ○ <rule Spell="Blizzard"> や <rule Spell="Blizzar*">
 × <rule JSpell="ブリザド"> ・・・ 本来はこの指定で認識させたい意図で作られていますが、認識しません。(文字コードの問題?)

タグ:

+ タグ編集
  • タグ:
記事メニュー
ウィキ募集バナー