ここでやること

  • 勝利判定及び敗北判定の定義(キーワードlast breath,die, endlevelタグ,result)

勝利判定、敗北判定を定義する

 一応、「シナリオファイルを作る(2)」までで、とりあえず Battle for Wesnoth のキャンペーンとしては動きます。
 敵将を倒すと自動的に勝利となり、主人公が倒されるか時間切れとなると自動的に敗北となります。これでもう完成ですね。パチパチパチ・・・
 ・・・ん?敗北条件がもうひとつありましたね。そう「副官(Lulu)の死」です。
 やはり、面倒ですが、勝利判定、敗北判定を定義しましょう。

基本的に書く要素

 勝った負けたも「イベント」ですので、[event]~[/event] の中に記述していきます。
 書く要素は次のようなものです。
:name
|イベントの種類を書きます。
ユニットが倒されるのは、die か last breath です。die の場合は倒されるとすぐにそのユニットの画像が消滅し、last breath の場合は倒されても、そのイベントが終了するまでは画像が残っています。ですから、息絶える前に一言言わせたい場合は、敵味方関係なく last breath の方が適当でしょう。
時間切れは time over です。
:[filter]~[/filter]
|この中に、「誰」に発生したかなどを書きます。
:[message]~[message]
|必須ではありませんが、たいてい死ぬ前に何か言い残したりしますからね。「誰」がと「メッセージ」の内容を書いていきます。
:[endlevel]~[/endlevel]
|result= の後に勝利なら victory、敗北なら defeat と書きます。
勝利の場合は、他に次のシナリオに持ち越すボーナスなども書きますが、今回は次のシナリオはないので、ボーナスもありません。

まとめると
    [event]
        name=
        [filter]
            id=
        [/filter]
        [message]
            speaker=
            message=
        [/message]
        [endlevel]
            result=
         [/endlevel]
    [/event]

となります。
 以下の作例では、デフォルトの勝敗と区別できるよう、負けたユニットに一言ずつ遺言を言ってもらいました。

Gutor-Teng を倒す(勝利)

 name=die 、[filter]〜[/filter] は、Gustor-Teng 、result=victory となります。

作例
    [event]
        name=last breath
        [filter]
            id=Gustor-Teng
        [/filter]
        [message]
            speaker=Gustor-Teng
            message= _ "無念なり!"
        [/message]
        [endlevel]
            result=victory
         [/endlevel]
    [/event]

味方の死

 同じ調子で作ってしまいましょう。name=last breath 、result=defeat になります。

Kerolyn の死
    [event]
        name=last breath
        [filter]
            id=Kerolyn
        [/filter]
        [message]
            speaker=Kerolyn
            message= _ "さらばだ!"
        [/message]
        [endlevel]
            result=defeat
        [/endlevel]
    [/event]

Lulu の死
    [event]
        name=last breath
        [filter]
            id=Lulu
        [/filter]
        [message]
            speaker=Lulu
            message= _ "さよなら!"
        [/message]
        [endlevel]
            result=defeat
        [/endlevel]
    [/event]

 時間切れは、自動的に負けになりますので、今回は定義省略します。
 完成品はこちら

タグ:

+ タグ編集
  • タグ:
最終更新:2017年06月04日 14:27