ここでやること
- 特定のユニット(情報)の一時的な保存(キーワード [store_unit],[store_unit],variable,scrll_to,delay)
Lulu の失踪
Kerolyn 君のあまりの不甲斐なさに Lulu は失踪してしまいます。
登場人物を消すのは、最初のシナリオで Cavezyn 司令官を退場させるときにやりました。
次のようなものです。
[kill]
id=Cavezyn
[/kill]
[move_unit_fake]
type="Elvish Lord"
x=7,6,5,4,3,2,1
y=18,17,17,17,18,17,18
[/move_unit_fake]
今回も同じように [kill]~[/kill]を使えばいいじゃないかと思われるかもしれませんが、実はこれでは具合がわるいのです。
なぜなら、[kill]~[/kill]で Lulu を消してしまうと呼び出せなくなってしまうのです。
そんなわけで、「一時的にあるユニットには退場してもらうけど、あとで今と同じ状態のまま(タイプ、ヒットポイント、経験値等)再登場してもらうので、情報を保存しておいてね」とお願いする必要があります。
そこで登場するのが、[store_unit]~[/store_unit] と [unstore_unit]~[/unstore_unit] です。
なお、"store" というのはお店という意味ではなく、「保管する」とか「保存する」という意味です。
[store_unit]~[/store_unit] で状態を保存して [unstore_unit]~[/unstore_unit] で呼び出すという感じです。
ここで、[store_unit]~[/store_unit] と [unstore_unit]~[/unstore_unit] の中に variable というものが出てきます。 "variable" というのは、「変化するもの(変化できるもの)」というような意味です(なお、日本語では「変数」と言われていますが、数字とは限りません。)。
今回は、Lulu に関する情報なので、 variable に "Lulu_store" という名前をつけます。
(注意:variable= の右側に使えるのはアルファベットと数字とアンダースコア「_ 」のみです。マイナス「-」やイコール「=」などを使うと不具合が発生します。)
そして、Lulu に関する情報だよと教えるために、[filter]~[/filter] タグを使って Lulu を指定します。
こちらが例です。
(ゲームの初期)
[store_unit]
variable=Lulu_store ← "Lulu_store" と名前をつける
kill=yes ←画面から消す
[filter]
id=Lulu ← Lulu を指定
[/filter]
[/store_unit]
[move_unit_fake]
type=$Lulu_store.type
x=39,38,37,36,35
y=2,1,2,1,1
[/move_unit_fake]
おっと、"$Lulu_store.type" と見慣れないものが出てきました。
先に "Lulu_store" という variable の中に Lulu の情報を保存しましたので、こうすることで、その情報を取り出すことができます。
"$Lulu_store.type" とやると現在の Lulu のタイプ(エルフの呪術師とかエルフのドルイドとかエルフの魔術師とか)を教えてくれます。
今回こうしたのは、ゲームをした人によって Lulu のタイプが違っているからです。すでにシルフにまでなっているのに、逃げていくとき昔の呪術師の姿だったりしては変ですからね(シンデレラなら許されるかもしれませんが。)。
また、"$Lulu_store.hitpoints" とやると、現在の lulu のヒットポイントの高さを教えてくれます。
これらを駆使すると、ユニットを状態異常にしたり、逆に全回復させたりなどいろいろできるようになります。
そして数ターン後 Lulu は無事戻ってきます。
[unstore_unit]
variable=Lulu_store
x=10
y=2
[/unstore_unit]
[clear_variable]
name=Lulu_store
[/clear_variable]
[scroll_to]
x,y=15,5
[/scroll_to]
[delay]
time=900
[/delay]
[clear_variable]〜[/clear_variable] というのは、これで挟まれた Lulu_store の内容を空っぽにするために行います。このように、明示的に空っぽにしないと、Lulu_store は以降のシナリオになっても保持されたままになっています(だから、このキャンペーンではやらなくてもいいのですが。)。
シナリオがたくさんあって「変数」を多用するような場合は、まめに [clear_variable]〜[/clear_variable] をしておく方が、トラブル防止になります。
[scroll_to]~[/scroll_to] というのは、ここで指定した座標にマップをスクロールするものです。
また、[delay]~[/delay] というのは、ここで指定した時間だけ、ゲームの進行を止めるものです。数字は多分 100分の1秒単位です。
こうしておくと、どこに Lulu が登場したかゲームしている人にわかりやすくなります。
ゲームの途中から援軍を登場させる
先ほど、陣営の設定だけしておいたオーク軍のリーダーを登場させます。
軍勢のリーダーの登場のさせ方は基本的に一般のユニットと同様です。
それに加えて「リーダー=兵士の雇用可能」なので、それを示すために canrecruit=yes の1行を記述します。
[event]
name=turn 8
略
[unit]
side=5
type=Orcish Sovereign
id=Lig-Ein
name= _ "Lig-Ein"
canrecruit=yes
x,y=10,1
find_vacant=no
[/unit]
略
[/event]
find_vacant=no というのは、登場予定のタイル(ここでは、10,1)に既に他のユニットがいる場合は、そのユニットを消して登場するという意味です(ここに Kerolyn 君がいたらえらいことになります。)。
find_vacant=yes にすると、登場予定のタイルに他のユニットがいる場合は、近くの空いているユニットに登場します。
最終更新:2012年03月04日 11:11