BuildingScenariosSamples

From The Battle for Wesnoth Wiki

This page contains basic examples of WML. For more examples, you can look at the data of Wesnoth using a text editor.

to flash the screen red for a moment, we might go,

[colour_adjust]
    red=200
[/colour_adjust]

[delay]
    time=20
[/delay]

[colour_adjust]
    red=0
[/colour_adjust]

A unit remarking what a tough fight it was when they kill an Ogre:

[event]
    name=die
    [filter]
        type=Ogre
    [/filter]

    [message]
        speaker=second_unit
         message= _ "Whew! That was a tough fight!"
    [/message]
[/event]

Konrad remarks that he is scared at the start of a scenario:

[event]
    name=start
    [message]
        speaker=Konrad
        message= _ "I feel uneasy about this place"
    [/message]
[/event]

A selection of which way they should go at the end of a scenario:

[event]
    name=victory
    [message]
        speaker=narrator
        message= _ "Which way do you wish to go?"
        [option]
            message= _ "North"
            [command]
                [endlevel]
                    result=victory
                    next_scenario="Northern Advance"
                [/endlevel]
            [/command]
        [/option]
        [option]
            message= _ "South"
            [command]
                [endlevel]
                    result=victory
                    next_scenario="Southern Citadel"
                [/endlevel]
            [/command]
        [/option]
    [/message]
[/event]

Suppose you want to make it so that if a certain character, we will call him Fred the Peasant, survives in a certain scenario, he will leave, but return in a later scenario. We can do this in the first scenario:

[event]
    name=victory
    [if]
        [have_unit]
            id=Fred
        [/have_unit]
        [then]
            [message]
                speaker=Fred
                message= _ "I must go now, friends, but will return later!"
            [/message]

            [kill]
                id=Fred
            [/kill]

            [set_variable]
                name=fred_is_alive
                value=yes
            [/set_variable]
        [/then]
    [/if]
[/event]

This makes it so that if Fred is alive, he says something, then is removed from the game, and the variable 'fred_is_alive' is set to yes.

In a later scenario, we can use the following code:

[event]
    name=turn 7
    [if]
        [variable]
            name=fred_is_alive
            equals=yes
        [/variable]
        [then]
            [unit]
                id=Fred
                name= _ "Fred"
                side=1
                type=Peasant
                x,y=8,1
            [/unit]

            [message]
                speaker=Fred
                message= _ "I have returned to aid you friends!"
            [/message]
        [/then]
        [else]
            [message]
                speaker=Konrad
                message= _ "I wish Fred were still alive. He would know what to do!"
            [/message]
        [/else]
    [/if]
[/event]

If the variable 'fred_is_alive' equals 'yes' then this will create a unit, Fred, a Peasant, at (8,1), and he will give a greeting message. Otherwise, Konrad will lament Fred being dead.

Suppose the player has just come across some undead, you might like to find if the player has a unit that would truly hate the undead, and if so, and get it to say something:

[role]
    role=undead_hater
    type=Mage of Light,Paladin,White Mage
[/role]

[message]
    role=undead_hater
    message= _ "The foul hordes of the undead approach, this battle will surely be tough!"
[/message]

See Also

This page was last edited on 11 March 2014, at 18:49.