1.
人材が戦闘中に死亡した場合、次のターンに 陣営に復帰するスクリプトの解説を行う。 人材が死亡した事を発生条件にするには HeroFlag[%人材A]==0 と組むとよい。 これで、人材Aが死亡していることを条件に出来る。 人材Aがx陣営に所属しているのならば Set a,BaseArea[x] CharSet a,%人材A とすることで、陣営に復帰する。 さらに、x陣営が存命中でなければ 意味をなさないイベントなので x陣営が存命中であることを表す KuniFlag[x]==1 という条件式を足しておく。 また、部隊数に空きがない場合は 人材を配置し直せないので if (AreaButaiKz[a]<20) 等で、部隊数を制限しておく。 2.
動作確認を行った時のスクリプトは 下図の通りである。 この時疑問に思ったことだが、人材Aが死亡した後に再び陣営に 配置し直した場合には、人材Aが二人いることになるのではないだろうか。 つまり、エリア0と配置し直したエリアの二つに それぞれ人材Aが配置されるという現象になるのでは ないかということである。 結論から言うと、おそらくそんなことはなく 問題はないのではないか、ということだ。 図の中で示した赤線の部分のスクリプトで 実際に復帰するエリアを調査してみた。 元々死亡する前に所在しているエリアは エリア番号15の「城塞都市キリア」である。 次に、死亡した時のエリア番号は「0」である。 人材撃破数の欄も、「---」となっている。 スクリプトによって復活した場合は、 再び「15」となった。 人材撃破数の欄も、「15」の城塞都市キリアとなっており 「0」のエリアとは重複していないように思える。 3.
サンプルスクリプト。 ・人材Aが戦死した場合、次のターンにx陣営に復帰する。 x=勢力番号 人材A=復帰する人材の識別ID
蛇足。 ・復帰できる回数を制限してみる。 例では2回復帰できる。 Ley[x]を使用する場合は、ゲーム内に登場する 勢力番号と被らなければ何でも良い。 また、ほかの適当な変数でも問題ない。
4.
ただし、上記のスクリプトが使用できるのは、初期人材のみである。 例えば、ゴート8世ならフィーザレス、ドルスであり、 アルテナならスヴェステェンのみ、ということになる。 人材が死亡したことを判定する、としたスクリプトの HeroFlag[%人材A]==0 だが、確かに初期人材の死亡はこれで判定できるのだが 初期人材ではない人材(放浪人材でなくイベントで仲間になる人材) は、このスクリプトだけでは死亡が判定が出来ない。 イベント人材のHeroFlagは初めから0であるからだ。 これについては、たまごさんが調査されたものがあるので 併せて、 そちらも参照して いただきたい。 つまり、イベント人材では上記のスクリプトでは正常に動作はしないのである (ちなみに、登場してもいないのに1ターン目に仲間になる)。 それを防ぐにはどうすればよいのか、方法は簡単である。 イベント人材を仲間にするイベントに使用したFlagの真偽を 発生条件に加えればよいのである。 例えば、デフォルトではオーティが仲間になるのに Flag[53]が使用されている。 オーティが仲間になれば、Flag[53]はtrueとなる。 よって、オーティを戦死したあと復活させようと思えば、条件式に Flag[53]==true の一文を加えればよい。 続けて、オーティを例に、スクリプトを組んでみるなら if(KuniFlag[2] && HeroFlag[%オーティ]==0 && Flag[53]==true) となる。 このようにすれば、イベント人材でも、戦死から復帰するスクリプトが組める。 |