Druhá kapitola scriptování v NWN
2.1 Deklarace proměnných
Nastavení (deklarace) proměnných a konstant neboli rezervace
paměti pro danou proměnou je jedna z nejdůležitějších částí scriptování.
Proměnné jsou prvky (hodnoty nebo data), se kterými pracujeme. Deklarace
proměnné se vždy skládá ze dvou částí: z typu proměnné a jejího
jména. Umístění deklarace proměnné, tj. místo kde se deklarace vyskytuje
v kódu scriptu, určuje oblast platnosti proměnné. Všechny proměnné
musí mít datový typ. Datový typ proměnné určuje hodnoty, které proměnná
může obsahovat a operace, které s ní mohou být prováděny.
int pocet; Tento příkaz nastaví tak zvaný "local
integer" celočíselnou proměnou "pocet
". NWN script editor může obsluhovat několik druhů nebo typů
dat a int je nejzákladnějším datovým typem. Odpovídá celému číslo
bez desetinné čárky (i záporné hodnoty). Položku "pocet"
nazýváme proměnnou, protože můžeme měnit její hodnotu. Styl deklarování
proměnné je deklarovat proměnné co nejblíže, jak je to možné, k
jejich prvnímu použití.
2.2 Přiřazovací příkaz
Přiřazovací příkaz přiřazuje hodnotu do paměťového místa. Například
příkaz
pocet = 26;
přiřazuje celé číslo 26 lokaci, která je reprezentována proměnnou
"pocet". Jinými slovy, odteď můžeme s
proměnnou pocet pracovat, jako by to bylo celé číslo 26. Můžeme
ji odečítat od jiných celých čísel (násobit, umocňovat ….), nebo
přiřazovat do jiných proměnných, které jsou deklarovány jako int.
Příklad:
int motorky;
int yamaha;
int jawa;
motorky = yamaha = jawa = 11;
Přiřazování probíhá zprava doleva. Nejprve se hodnota "11"
přiřadí do "jawa", potom hodnota "jawa",
která je nyní "11" do "yamaha"
a nakonec proměnná "yamaha" (nyní 11)
do "motorky".
2.3 Jména proměnných Měli by jste používat smysluplná
jména pro proměnné. Pokud proměnná cena představuje náklady na převoz
, nazvěte ji cenaprevoz, nebo CenaPrevoz. Měli by jste (u některých
i musíte) také poslechnout několik jednoduchých pravidel pro pojmenování.
Pravidla:
Jediné znaky, které můžete použít ve jménu, jsou alfabetické znaky,
číslice a zank podtržení ( _ )
První znak ve jménu nemůže být číslice
Velká písmena se považují za jiná, než malá písmena
Nemůžete pro jména používat klíčová slova editoru
Jména začínající jedním nebo dvěma znaky podtržení jsou rezervována
pro použití v implementaci nebo jako globální identifikátory. Sice
nevíte o co jde, ale může vám to být jedno, protože nepředpokládám,
že se v tomto kurzu dostaneme tak daleko abychom se o tom učili.
Prostě a jednoduše to nepoužívejte, pokud nevíte o co jde.
Script editor neklade žádné omezení (aspoň doufám) na délku jmen
a všechny znaky ve jménu jsou významné.
2.4 Typy proměnných
Script rozlišuje několik typů proměnných. Je na programátorovi,
aby určil vhodný typ pro proměnnou.
int – celočíselná hodnota bez desetinné čárky.
Povoleny jsou i záporné hodnoty.
float – hodnota s desetinou čárkou, taktéž
jsou povoleny i záporné hodnoty.
string – znaky.
const – zvláštní typ pro určení konstant ( const
int MONTHS = 12; ). Velká písmena nás upozorňují na to, abych zjistili,
že se jedná o konstantu. Konstanta musí být deklarována mimo funkce.
HexString – podtyp string. Pracuje s hex hodnotami.
Tento typ je určen pouze pro převod int do string. Nejspíš ho nikdy
nepoužijete.
object – object je datová struktura (např. několik
int a float typů) NWN Script editoru. Objektem se rozumí například
NPC, placeable jako jsou truhly a podobné.
OBJECT_SELF – podtyp object. Pokud použijeme OBJECT_SELF
pro deklarování proměnné například z placeable, do proměnné se přiřadí
hodnota (tag) našeho placeable.
2.5 Převod proměnných
Script editor nám umožňuje převádět jeden typ proměnné na jiný. Pokud v Okně
funkcí napíšete do filtru například IntToString, uvídíte v Okně
zpráv parametry pro převod typu proměnných. Jelikož je častým jevem,
že nám deklarovaný typ proměnné nevyhovuje, můžeme převodem typu
jednoduše deklarovat novou proměnnou.
2.6 Objekt
Deklarací objektu jako takového se zde zabývat nebudeme, jelikož
je to celkem složitá věc a deklaraci vlastního objektu na 90% nebudete
používat.
Objekt je datová struktura obsahující např. počet životů, rasu (u
placeable typ) a další důležité informace o jakémkoliv „předmětu“
v modulu. Objektem jsou například hráči, NPC, placeable, triggery
… defacto cokoliv, co v toolsetu umístíte do modulu, může být definováno
jako objekt. Definovat tyto objekty můžeme několika různými způsoby.
Všechny funkce, jejichž návratovou hodnotou je typ object, jsou
vlastně definicí. Např. pokud do filtru v okně funkcí napíšete „object“,
můžete se na zlomek těchto funkcí podívat blíže. Jsou to všechny,
které začínají „Get…“, ale i mnoho dalších.
Mole
|