このページは、Windowerをある程度理解されている方が、より理解を深める目的で作成しています。
Windowerを導入したばかりの方、XML文法をご理解されていない方にはお勧めしません。
(コピーしてSpellcastフォルダに置くだけでは動作しません)
Windowerを導入したばかりの方、XML文法をご理解されていない方にはお勧めしません。
(コピーしてSpellcastフォルダに置くだけでは動作しません)
スクリプトの概要
- <Group><Set>での装備変更は行わない、装備スクリプト呼び出し型
- ヒーリング時に残MPに合わせて装備を変更(リフレ&hMP装備⇒hMP装備⇒MP最大値増加装備⇒満タンで立つ)
- ヒーリング満タン終了時にサウンド再生
- 詠唱開始→魔法着弾時用装備と、詠唱終了→リフレ装備を自動切り替え
- 詠唱する魔法の属性に合わせて対応する属性杖を装備
- 詠唱後の残MPが最大の51%未満になる場合は、ウガレピペンダントを装備
スクリプトの実行条件
- Autoexecがloadされており、ID#30000が使用可能であること。
- 次の装備変更用スクリプトを準備すること。
・Scripts/blm/sc/rest75_hmp・・・・最大ヒーリングMP装備
・Scripts/blm/sc/rest75_MPplus・・・MP最大値増加装備
・Scripts/blm/sc/rest75_reflesh・・・ヒーリング&リフレシュ装備
・Scripts/blm/sc/BLM_EM_ESkill_MPsafe・・・・MP最大値を減らさない程度の着弾時装備(精霊スキル優先)
・Scripts/blm/sc/BLM_EM_MAtk_MPsafe・・・・MP最大値を減らさない程度の着弾時装備(魔攻優先)
・Scripts/blm/sc/BLM_EM_ESkill・・・・魔法着弾時装備(精霊スキル優先)
・Scripts/blm/sc/BLM_EM_MAtck・・・・魔法着弾時装備(魔攻優先)
・Scripts/blm/sc/Uggalepih・・・・ウガレピペンダント装備
・Scripts/blm/sc/reflesh68・・・・通常時リフレシュ装備
・Scripts/sc_common/%SpellElementStaff・・・・属性杖装備(%SpellElementは属性名に置き換えられるため8属性分用意)
・Scripts/blm/sc/rest75_MPplus・・・MP最大値増加装備
・Scripts/blm/sc/rest75_reflesh・・・ヒーリング&リフレシュ装備
・Scripts/blm/sc/BLM_EM_ESkill_MPsafe・・・・MP最大値を減らさない程度の着弾時装備(精霊スキル優先)
・Scripts/blm/sc/BLM_EM_MAtk_MPsafe・・・・MP最大値を減らさない程度の着弾時装備(魔攻優先)
・Scripts/blm/sc/BLM_EM_ESkill・・・・魔法着弾時装備(精霊スキル優先)
・Scripts/blm/sc/BLM_EM_MAtck・・・・魔法着弾時装備(魔攻優先)
・Scripts/blm/sc/Uggalepih・・・・ウガレピペンダント装備
・Scripts/blm/sc/reflesh68・・・・通常時リフレシュ装備
・Scripts/sc_common/%SpellElementStaff・・・・属性杖装備(%SpellElementは属性名に置き換えられるため8属性分用意)
- play.exe(フリーソフト)とChimes.wav(Windows標準添付)を、Windowerフォルダ/Soundに置く
※ヒーリング完了時のWAV再生が不要である場合は「<Action type="Command" when="Precast">run -hide _sound/play.exe chimes.wav</Action>」の行を削除してください。
使い方
- <variables>で設定しているMPを自分の装備・種族に合わせて設定。設定する値はコメント参照
- 1行目は環境と当XMLを保存する文字コードに合わせて適宜変更
- 標準は魔法攻撃力アップ優先になっている。sc gコマンドで適宜変更。※<sets><group>部分参照
スクリプト
<?xml version="1.0" encoding="Shift-Jis"?>
<spellcast>
<config
Debug="False"
HideErrors="false"
ShowGearSwaps="False"
/>
<sets>
<group name="MAtk" default="yes">
</group>
<group name="ESkill">
</group>
</sets>
<variables>
<var name="MP_RestReflesh">680</var> <!-- リフレ付hMP装備の最大MP(実際の最大値-10程度) -->
<var name="MP_RestHmp">750</var> <!-- hMP装備の最大MP(実際の最大値-10程度) -->
<var name="MP_RestPlus">900</var> <!-- MPプラス装備の最大MP(実際の最大値-10程度) -->
<var name="MP_WeakMPPlus">550</var> <!-- 衰弱時+MPプラス装備の最大MP(実際の最大値+100程度)-->
<var name="MP_EleMagicMP">717</var> <!-- 魔法着弾時装備の最大MP(実際の最大値)-->
</variables>
<rules>
<!-- ヒーリング処理 -- START ---------------------------->
<rule spell="Absorb-TP">
<if Advanced='"$Healing"="1" AND "%Status"="Resting"'>
<Action type="Command" when="Precast">exec blm/sc/rest75_hmp</Action>
<Action type="var" cmd="set Healing 2" />
<Action type="Command" when="Precast">ae regonceq 30000 (regex)mpp_(9[5-9]|100)(/regex) Absorb-TP</Action>
</if>
<elseif Advanced='"$Healing"="2" AND "%Status"="Resting"'>
<Action type="Command" when="Precast">exec blm/sc/rest75_MPplus</Action>
<Action type="var" cmd="set Healing 3" />
<Action type="Command" when="Precast">ae regonceq 30000 mpp_100 Absorb-TP</Action>
</elseif>
<elseif Advanced='"$Healing"="3" AND "%Status"="Resting"'>
<if Advanced='"%MP">"$MP_WeakMPPlus"'> <!--衰弱中は100%でも立ち上がらない-->
<Action type="Command" when="Precast">input /heal off</Action>
<Action type="Command" when="Precast">run -hide _sound/play.exe chimes.wav</Action>
<Action type="var" cmd="set Healing 0" />
</if>
<else>
<!-- 衰弱中の場合はもう一度MP100%を待つAutoexecイベントをセット -->
<Action type="Command" when="Precast">ae regonceq 30000 mpp_100 Absorb-TP</Action>
</else>
</elseif>
<action type="cancelspell" />
<action type="return" />
</rule>
<rule spell="Autoset">
<if status="Resting" >
<!-- ヒーリング開始時に、ヒーリング中着替え用Autoexec定義をクリア -->
<Action type="Command" when="Resting">ae unregister 30000</Action>
<if MODE="AND" MPLT=$MP_RestReflesh MPPLT="100">
<!-- MPがリフレ付hMP装備の最大値以下でMPが100%未満の場合は -->
<!-- 先ずリフレ付hMP装備に変更し、18秒後に判定 -->
<Action type="Command" when="Resting">exec blm/sc/rest75_reflesh</Action>
<Action type="var" cmd="set Healing 1" />
<Action type="Command" when="Resting">wait 18;Absorb-TP</Action>
</if>
<elseif MODE="AND" MPLT=$MP_RestHmp MPPLT="95">
<!-- MPが、リフレ付ヒール最大MP<hMP装備最大MP未満 & MP95%未満の場合は hMP装備に変更し、MPが95%を超えるまで回復 -->
<Action type="var" cmd="set Healing 1" />
<Action type="Command" when="Resting">Absorb-TP</Action>
</elseif>
<elseif MPLT=$MP_RestPlus>
<!-- 上に当てはまらず、MPプラス装備を装備していない場合は、MPプラス装備に変更し、満タンまで回復 -->
<Action type="var" cmd="set Healing 2" />
<Action type="Command" when="Resting">Absorb-TP</Action>
</elseif>
</if>
<elseif status="Idle">
<!-- 立ち上がった際にも、念のため、ヒーリング中着替え用Autoexec定義をクリア -->
<Action type="Command" when="Idle">ae unregister 30000</Action>
</elseif>
</rule>
<!-- ヒーリング処理 -- END ------------------------------>
<!-- 古代1詠唱の場合は着替えまで16.1秒待ち、着弾後の着替え戻しは3秒待つ -->
<rule Spell="Burst|Flood|Flare|Tornado|Quake|Freeze">
<Action type="Command" when="Precast">input /echo ###### 1 6 s e c --> change equip ######</Action>
<Action type="midcastdelay" delay="16.1" />
<Action type="aftercastdelay" delay="3" />
</rule>
<!-- 精霊・暗黒・弱体・強化魔法発動 -->
<rule Skill="ElementalMagic">
<!-- Lv75以上の詠唱装備への着替え -->
<if mode="AND" MPGT=$MP_RestPlus Skill="ElementalMagic">
<!-- 現在MPがPlus装備の目安を超えている場合は着替えない-->
</if>
<elseif mode="AND" MPGT=$MP_EleMagicMP Skill="ElementalMagic">
<!-- 着弾時装備の最大MPを下回るまで、最低限のMP増加装備を外さない-->
<Action type="Command" when="midcast">exec blm/sc/BLM_EM_%group_MPsafe</Action>
</elseif>
<elseif Skill="ElementalMagic">
<Action type="Command" when="midcast">exec blm/sc/BLM_EM_%group</Action>
<Action type="Command" when="aftercast">exec blm/sc/reflesh68</Action>
</elseif>
<!-- Lv70以上、精霊魔法、魔法発動後の残MPが50%以下の場合はウガレピペンダント -->
<if mode="AND" MLvlGT=69 MPPAfterCastLT=51 Skill="ElementalMagic">
<Action type="Command" when="midcast">exec blm/sc/Uggalepih</Action>
</if>
</rule>
<!-- 属性杖を装備 -->
<rule Skill="ElementalMagic|DarkMagic|EnfeeblingMagic|DivineMagic|HealingMagic">
<Action type="Command" when="midcast">exec sc_common/%SpellElementStaff</Action>
</rule>
</rules>
</spellcast>