(sk) ZnaÄ?ka campaign

From The Battle for Wesnoth Wiki
Revision as of 09:26, 8 March 2008 by Esr (talk | contribs) (Categorize)

(Návod -- Tvorba -- Značky WML -- Značka campaign)


[campaign]

Popisuje príbeh v zozname príbehov.


Nachádza sa v značke: game.

Neobsahuje žiadne značky.

Obsahuje vlastnosti: define, description, difficulties, difficulty_descriptions, first_scenario, icon, image, name, rank.


Značka [campaign] určuje, akým spôsobom sa daný príbeh zobrazí v hre po kliknutí na menu "Príbehy". Ďalej určuje výber náročnosti, a prvú scénu hry.

Pozor! Jednotlivé scény sa z hľadiska jazyka WML nenachádzajú vo vnútri značky [campaign] ale vedľa nej, asi takto:

[game]
  [campaign]
    ...
  [/campaign]
  [scenario]
    ...
  [/scenario]
  [scenario]
    ...
  [/scenario]
[/game]

Zobrazenie v menu príbehov

Poradie príbehov v menu určuje číselná vlastnosť rank. Príbehy s nižším číslom sa zobrazia skôr, príbehy s vyšším číslom neskôr, a príbehy bez čísla až nakoniec. Pre oficiálne príbehy sú vyhradené čísla do 50. Váš príbeh môže mať číslo 51 a viac, ale nie je vôbec potrebné takéto číslo zadávať.

V ľavej časti menu sa zobrazí malý obrázok určený textovou vlastnosťu icon a názov príbehu určený textovou vlastnosťou name. Po kliknutí na názov príbehu sa v pravej časti menu zobrazí popis určený textovou vlastnosťou description a pod ním veľký obrázok určený textovou vlastnosťou image.

Takto začínajú oficiálne príbehy:

rank=10
icon=konrad-commander.png
name= _ "Heir to the Throne"
description= _ "Fight to gain back the throne of Wesnoth..."
image=portraits/Heir_To_The_Throne/konrad.png
rank=30
icon=orcish-ruler.png
name= _ "Son of the Black Eye"
description= _ "Let orcish leader Kapou'e..."
image=items/orcish-flag.png
rank=40
icon=human-general.png
name= _ "The Eastern Invasion"
description= _ "There are rumors of undead attacks..."
image=portraits/Eastern_Invasion/dacyn.png
rank=50
icon=noble-lord.png
name= _ "The Rise of Wesnoth"
description= _ "Lead Prince Haldric..."
image=campaigns/The_Rise_of_Wesnoth/story/the_duel.png

Výber náročnosti

Po spustení príbehu si hráč vyberá náročnosť. Symboly náročností sú určené textovou vlastnosťou difficulties a ich spôsob zobrazenia textovou vlastnosťou difficulty_descriptions.

Symboly náročností sú vlastne symboly preprocesora. Počas hry bude definovaný ten symbol, ktorú náročnosť si hráč zvolil. Odporúča sa používať štandardné symboly "EASY,NORMAL,HARD", lebo potom môžete využiť štandardné makrá definované v súbore "utils.cfg".

Zobrazenie náročností sa zadáva ako jednotlivé položky oddelené bodkočiarkami. Položka začína hviezdičkou ("*"), ak je to predvolená položka. (Napríklad ak sú zložitosti "ľahká, stredná, ťažká", a chceme, aby program predvolil položku "stredná", zapíšeme pred ňu hviezdičku.) Ďalej použijeme makro "MENU_IMG_TXT" alebo "MENU_IMG_TXT2" podľa toho, či chceme pri obrázku zobraziť iba názov náročnosti alebo aj pomocný text. Príklad:

difficulties=EASY,NORMAL,HARD
difficulty_descriptions= {MENU_IMG_TXT2 elvish-fighter.png  _"Fighter"  _"(easiest)"} + ";" +
                   "*" + {MENU_IMG_TXT  elvish-hero.png     _"Hero"                 } + ";" +
                         {MENU_IMG_TXT2 elvish-champion.png _"Champion" _"(hardest)"}

V rámci skriptu scény sa môžeme na vybranú náročnosť odvolať pomocou konštrukcie:

#ifdef HARD
  ...  # extra príšery, alebo niečo podobné
#endif

Symbol preprocesora

Textová vlastnosť define určuje symbol preprocesora, ktorý sa definuje, keď si hráč vyberie tento príbeh. Používa sa kvôli šetreniu pamäťou; aby sa do pamäte načítali iba skripty súvisiace s týmto príbehom, a nie so všetkými. Symbol príbehu štandardne začína slovom "CAMPAIGN_".

define=CAMPAIGN_MOJ_PRIBEH

Skripty scén načítame do pamäte, len ak je definovaný tento symbol:

#ifdef CAMPAIGN_MOJ_PRIBEH
{@campaigns/Moj_pribeh/scenarios}
#endif

Prvá scéna

Textová vlastnosť first_scenario určuje, ktorá scéna sa spustí ako prvá. (V skripte scény je potom určené, ktorá scéna sa má spustiť ako nasledujúca.) Táto hodnota musí byť rovnaká ako hodnota vlastnosti "id" v značke "scenario" danej scény.

first_scenario=Moja_scena_1

Skript danej scény bude potom vyzerať takto:

[scenario]
  id=Moja_scena_1
  ...
[/scenario]