abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:11 | IT novinky

    Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.

    Ladislav Hagara | Komentářů: 1
    včera 13:33 | Komunita

    Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    25.10. 15:44 | Zajímavý software

    Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.

    Ladislav Hagara | Komentářů: 0
    25.10. 05:11 | Zajímavý článek

    Obrovská poptávka po plynových turbínách zapříčinila, že datová centra začala používat v generátorech dodávajících energii pro provoz AI staré dobré proudové letecké motory, konvertované na plyn. Jejich výhodou je, že jsou menší, lehčí a lépe udržovatelné než jejich průmyslové protějšky. Proto jsou ideální pro dočasné nebo mobilní použití.

    karkar | Komentářů: 8
    24.10. 19:55 | Nová verze

    Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.

    Ladislav Hagara | Komentářů: 0
    24.10. 13:33 | Bezpečnostní upozornění

    Specialisté společnosti ESET zaznamenali útočnou kampaň, která cílí na uživatele a uživatelky v Česku a na Slovensku. Útočníci po telefonu zmanipulují oběť ke stažení falešné aplikace údajně od České národní banky (ČNB) nebo Národní banky Slovenska (NBS), přiložení platební karty k telefonu a zadání PINu. Malware poté v reálném čase přenese data z karty útočníkovi, který je bezkontaktně zneužije u bankomatu nebo na platebním terminálu.

    Ladislav Hagara | Komentářů: 20
    24.10. 13:22 | Upozornění

    V Ubuntu 25.10 byl balíček základních nástrojů gnu-coreutils nahrazen balíčkem rust-coreutils se základními nástroji přepsanými do Rustu. Ukázalo se, že nový "date" znefunkčnil automatickou aktualizaci. Pro obnovu je nutno balíček rust-coreutils manuálně aktualizovat.

    Ladislav Hagara | Komentářů: 13
    24.10. 04:55 | Komunita

    VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.

    Ladislav Hagara | Komentářů: 1
    24.10. 03:22 | Nová verze

    Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    23.10. 20:11 | Komunita

    V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (20%)
     (19%)
     (23%)
     (17%)
     (21%)
     (17%)
     (18%)
    Celkem 277 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    wesnoth wml - proměnné + datové typy

    17.9.2007 22:21 | Přečteno: 729× | wesnoth | poslední úprava: 28.9.2007 09:16

    WML jazyk Wesnothu je dost podivný, špatně zdokumentovaný a proto obtížně použitelný, je to jen pro silné povahy. Podivná je i práce s proměnnými, které se věnuje tento zápisek. Vzhledem k mlhavým informacím roztroušených náhodně po celé wiki wesnothu se může stát, že zde budu psát bludy.

    Typy a nastavení proměnných

    Jednoduché (skalární) proměnné

    Proměnnou lze nastavit pomocí elementu [set_variable]. Například to co se v ostatních jazyích udělá takto:

        promenna = "hodnota"
    
    se ve WML dělá takto:

        [set_variable]
            name=promenna
            value="hodnota"
        [/set_variable]
    

    Protože je to dlouhé, existuje i předdefinované makro, které to trochu zjednodušuje. Pomocí makra se to samé udělá takto:

        {VARIABLE promenna "hodnota"}
    

    Pozor, nastavení proměnné funguje jen v eventu, jinde se proměnné nastavit nedají. Tahle veledůležitá informace není nikde napsaná, takže klidně strávíte několik hodin rvaním si vlasů, jak to že vám nic nefunguje. Tohle a podobné špeky způsobuje, že se do tohoto obskurního jazyku snažím proniknout už asi po třetí s tím, že se vždycky naštvu, že na tohle nemám nervy a čas se dá ztrácet i příjemnějším způsobem.

    Kontejnery (skládání proměnných)

    Ve WML je možno proměnné jakoby objektově skládat, protože proměnná může fungovat i jako kontejner pro další proměnné. Lze tak mít například proměnou souradnice, která obsahuje proměnné x a y.

        [set_variable]
            name=souradnice.x
            value=10
        [/set_variable]
        [set_variable]
            name=souradnice.y
            value=20
        [/set_variable]
    

    Pole

    Pole je ve WML proměnná, která obsahuje jiné proměnné s číselným indexem, podle kterého pak lze procházet v cyklu. Ukázka definice pole:

        [set_variable]
            name=pole[0].x
            value=10
        [/set_variable]
        [set_variable]
            name=pole[1].x
            value=12
        [/set_variable]
        [set_variable]
            name=pole[2].x
            value=14
        [/set_variable]
        [set_variable]
            name=pole[2].y
            value=10
        [/set_variable]
    

    Pozor, na rozdíl od jiných jazyků pole[1] nemůže obsahovat hodnotu, je to jen kontejner pro jednu nebo více dalších proměnných. Nelze tedy mít jen "name=pole[1]".

    Každé pole má speciální atribut lenght, v kterém je uveden počet prvků pole.

    Práce s proměnnými

    Proměnnou je možno měnit, předávat, odstranit a nebo použít její hodnotu.

    Změna proměnné

    Proměnná se mění stejně jako se definuje nová.

    Předávání proměnné

    Proměnnou je možno předat například jako parametr makru nebo některým speciálním atributům pro práci s proměnnou místo její hodnotou. Proměnná se předává svým názvem. Například předání proměnné promenna makru MAKRO:

        {MAKRO promenna}
    

    Smazání proměnné

    Pro smazání proměnné je k dispozici element [clear_variable]. Protože všechny nesmazané proměnné se musí ukládat do sejvů a zabírají místo v paměti, je velmi vhodné všechny pomocné a dočasné proměnné po použití smazat. Příklad smazání proměnné promenna:

        [clear_variable]
            name=promenna
        [/clear_variable]
    

    Mimochodem, tohle je i příklad předání proměnné atributu.

    K této akci je pro zkrácení zápisu rovněž předdefinováno makro CLEAR_VARIABLE:

        {CLAER_VARIABLE promenna}
    

    Použití hodnoty proměnné

    Obecně se hodnota proměnné získá použitím znaku $. Tedy asi nějak takto:

        {VARIABLE text "Hello world!"}
        [message]
            speaker=narrator
            message="Text je $text"
        [/message]
        {CLEAR_VARIABLE text}
    

    Použití $ se ve WML také říká substituce. Aby to nebylo jednoduché, WML rozlišuje tři různé druhy substituce. Jaký druh substituce se použije nezávisí na uživateli, ale je dán atributem u kterého se proměnná používá, tudíž je nutno to konkrétně o každém atributu vědět. Tyto tři substituce jsou: literal, simple a complex.

    Literal znamená žádná substituce. U takového atributu se proměnná hodnotou nenahradí. Atribut získá hodnotu názvu proměnné i se znakem $, nikoli její hodnotu. Jinými slovy, u takového atributu nejde proměnnou použít.

    Tato substituce je použita v elementu [set_variable] u atributu literal.

    Simple znamená, že proměnná se rozezná a nahradí hodnotou jen když není v řetězci nebo je na jeho začátku. Tedy znak $ následuje hned za znakem ".

    Tato substituce je použita všude, kde se nepoužívá literal ani complex.

    Complex znamená, že proměnná se rozezná a nahradí hodnotou kdekoli v řetězci, jako je tomu u výše uvedené ukázky.

    Tato substituce se používá:

    Poznámky ke komplexní substituci

    Je-li u nějakého atributu simple substituce a vy potřebujete complex substituci, pak si musíte vypomoci pomocnou proměnnou vytvořenou pomocí [set_variable] a atributů name a format.

    Pokud potřebujete substituovat proměnnou tak, aby za ní mohl hned následovat text, je si možno vypomoci znakem | a ukončit jím název proměnné. Například takto:

        [message]
            message="Pozor, právě jsem zahlédnul $rasa|!"
        [/message]
    

    Když ho budete používat vždycky, nemusíte se učit pravidla, ktará říkají, kdy ho potřeba je a kdy není, tj. před kterými znaky se rozezná konec proměnné automaticky. S tím souvisí i možnost vloření samotného znaku $ do řetězce, provede se to takto: "Upgrade stojí 100 $|".

    WML umožňuje, aby název proměnné byl vytvořen pomocí jiné proměnné. Například mějme proměnné rasa, zlato_elfova a zlato_trpaslici. Pak je možno použít syntaxe "$zlato_$rasa||" k získání obsahu druhé nebo třetí proměnné podle toho, zda proměnná rasa má hodnotu etfove nebo trpaslici.

    Procházení polem

    Procházení polem je trochu složitější, ale naštěstí pro to existují dvě předdefinovaná makra FOREACH a NEXT, která to zjednodušují. S jejich pomocí lze realizovat procházení polem takto:

        {FOREACH pole i}
            [message]
                message="X a Y je $pole[$i].x $pole[$i].y"
            [/mesage]
        {NEXT i}
    

    Nedefinovaná proměnná

    Nedefinovaná proměnná se rovná nedefinovanné proměné, nebo proměnné s hodnotou prázdný řetězec.

        {VARIABLE def_a ""}
        {VARIABLE def_b 0}
    
        # TRUE
        [if]
            [variable]
                name=undef
                equals=$none
            [/variable]
            [then]
                [message]
                   speaker=narrator
                   message="undef"
                [/message]
            [/then]
        [/if]
    
        # TRUE
        [if]
            [variable]
                name=def_a
                equals=$none
            [/variable]
            [then]
                [message]
                    speaker=narrator
                    message="def_a"
                [/message]
            [/then]
        [/if]
     
        # FALSE
        [if]
            [variable]
                name=def_b
                equals=$none
            [/variable]
            [then]
                [message]
                    speaker=narrator
                    message="def_b"
                [/message]
            [/then]
        [/if]
    
    
           

    Hodnocení: 25 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.