Neverwinter Nights by Tichondrius

Banner-Tichondrius

Toolset > Scripting


Neverwinter Nights Scripting průvodce od Mole.

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


     
     

    Toolset


    Toolset Tutorial

    Or-Horo Tutorial

    První Kapitola Scriptování

    Druhá Kapitola Scriptování

    Třetí Kapitola Scriptování

    Čtvrtá Kapitola Scriptování