Welcome to Sdružení ONLINE zábavy

Hledat   v  

  Vytvoř účetDomů | Vložit příspěvek | Tvůj účet | Obsah | Témata | Top 10  

Navigace
· Domů
· Ankety
· Archiv článků
· Diskuze SOZ
· Downloads
· Hledat
· NWN server status
· NWN2 server status
· Obsah
· Slovníček pojmů
· Statistiky
· Témata
· Webové odkazy

Obsah
NWN obecně
NWN World Building
Průvodce PW NWN
SOZ
SOZ Forum

NWN světy
Arkhalia
Demona
Dragon Hammer
Equilibrie
Gwain Tharr
Ilandria2
Kandelábrie1
Kandelábrie2
Mystake
Sferie
Thalie

NWN fora
Arkhalia
BG TSCC
Demona
Demona2
Dragon Hammer
Equilibrie
GamePark
Ilandria2
Kandelábrie1
Kandelábrie2
NWN 1
NWN 2
Thalie

NWN stránky
Čeština do NWN1
Bioware
BioWare Social Network
NWN GamePark
NWN Lexicon
NWN Speciál
NWN Vault (IGN)
NWN Vault (Nový)
NWN Wikipedia
NWN2 CZ překlad
NWN2 Blog
NWN2 scripting
NWN2 Toolset Guide
NWN2 Toolset manuál
Seznam NWN serverů
NWNWiki
NWN2Wiki

Subdomeny
Demona
DragonHammer
Gwain Tharr
NWNWiki

D&D stránky
D20 v kostce
Překladový klíč
WotC

Herní weby
Bonusweb.cz
Doupě.cz
gamerzines.com
mmogames.cz
mmorpg.com
mmorpgtoplist.com

  
První kapitola scriptování v NWN





První kapitola scriptování v NWN

Kořením každého modulu jsou scripty. Dodají vašim NPC inteligenci, pomůžou vám udělat z vašeho modulu trvalý svět nebo prostě a jednoduše pracují za vás. Tento kurz by vás měl naučit základům scriptingu a pomoci vám vytvořit vaše první scripty, nebo alespoň scriptům porozumět.

V první kapitole se naučíme ovládat základní funkce script editoru, poznáme jak to chodí a zjistíme některé důležité věci.

1.1 Popis script editoru

Po otevření script editoru (také Ctrl+Alt+S) se nám objeví několik oken a hlavní lišta. Okno s čísly po levé straně je defacto to nejdůležitější, do něj se zapisují veškeré funkce, proměnné apod. V tuto chvíli by zde měla figurovat pouze funkce main.

1 void main()
2  {
3
4  }

Tyto řádky vyjadřují, že máte funkci, která se jmenuje main() a popisují, jak se funkce chová. Společně vytvářejí definici funkce. Tato definice má dvě části. První řádek void main (), který se nazývá hlavičkou funkce a část uzavřená do složených závorek, která je tělem funkce. Existuje extrémně nepřekonatelný důvod pojmenovat funkci v našem programu main(), musíte to udělat. Každý script vyžaduje funkci, která se nazývá main() – nakonec se však ukáže, že toto není tak úplně pravda. Mimochodem ne Main() nebo MAIN(). Když nwn spouští script, provedení vždy začíná na začátku funkce main(). Před tuto funkci se obvykle píše na první místo hlavička scriptu (popis, jméno autora, datum …), dále vložené soubory (#include ‘’jméno souboru’’), deklarace proměnných (object oPC = GetFirstPC) a definice funkcí. Do těla funkce (mezi složené závorky) se pak píše samotný script.

Všechny věci zde popsané probereme postupně důkladněji. Prozatím se spokojíme s tímto stručným popisem. Tomuto oknu dále budeme říkat Scriptové okno.

Horní lišta slouží k ukládání, kompilování (jinými slovy otestování), otevírání a dalším věcem. Ostatně to už je úděl všech lišt.

Spodní okno script editoru slouží k vypisování chyb (při save nebo build) a k popisu funkcí. Tomuto oknu budeme říkat Okno zpráv.

V okně vpravo jsou vypsány veškeré dostupné funkce. Tyto funkce mají na svědomí tvůrci hry, nebo nějaký šikovný scripter, který tu byl před vámi ?. Okénko „Filter“ slouží jako vyhledávač funkcí (podobně jako kterýkoliv internetový vyhledávač). Pokud do něho napíšete „getfirst“ (všimněte si, že zde se malá a velká písmenka nerozlišují, na rozdíl od Scriptového okna), vyhledávač nám najde několik funkcí podobného jména. Můžeme kliknout na funkci GetFirstPC a podíváme se, jaký popis se nám zobrazí v Okně zpráv.

1.2 Práce se standartními funkcemi

Podle popisku nám tato funkce najde hráče, který je první v player listu (v tom samém listu, který se objeví pokud ve hře stisknete tlačítko „P“). Slovíčko „objekt“, které je před jménem funkce, nám oznamuje návratovou hodnotu funkce GetFirstPC. Hned vysvětlím. Object je typ proměnné, podobně jako třeba int (celočíselná proměnná) nebo string (řetězec znaků). Pokud tedy chceme opravdu poznat který hráč je první v Party listu, musíme definovat proměnnou. Víme, že proměnná bude object, takže na řádek 3 do Scriptového okna napište toto :

object oPC = GetFirstPC();

object – typ proměnné. Podle popisku funkce GetFirstPC jsme zjistili, že musíme definovat proměnnou jako object.

oPC – naprosto volitelné jméno proměnné. Ovšem i tady platí pravidla (dalo by se říct pravidla slušného scriptování). Malé „o“ nám neoznamuje nic jiného, než že se jedná o proměnnou typu object. PC nám zase podává kusé informace, že proměnná obsahuje jakési informace o PC (PC = player character – tedy postava hráče). Snažte se alespoň trochu dodržovat takovýto styl a usnadnit práci ostatním lidem, kteří po vás budou script číst.

(=)Rovnítko – slovy laika : přiřazuje to co je nalevo do toho co je napravo. Čily výsledek funkce GetFirstPC přiřadí do proměnné oPC. Nikdy nepřiřazuje hodnotu nalevo do hodnoty napravo.

GetFirstPC() – tělo funkce. Hoši od Bioware byli tak hodní a tuto funkci pro nás vytvořili.

(;)Středník – ukončuje každý řádek ve Scriptovém okně. Existují však výjimky, jako je podmínka if a podobné. Kompilátor musí poznat kde končí příkaz a k tomu slouží právě středník

Doporučuji alespoň letmo obhlédnout všechny dostupné funkce a zjistit tak, co už někdo udělal za mě a s čím se nemusím zabývat.

1.3 Komentáře ve script editoru

Pokud chci k nějaké části scriptu (funkci, proměnné …) přidat komentář, abych se já nebo kdokoliv jiný později snáze orientoval v kódu, mohu použít komentář.

Jakýkoliv text, před kterým jsou dvě lomítka // je považován za komentář a kompilátor scriptu ho nebere v potaz. Takovýto komentář končí na konci řádku. Příklad :

1 void main()
2  {
3    // Definuje hráče, který je první v player listu
4   object oPC = GetFirstPC();
5  }

ale také

1 void main()
2  {
3   object oPC = GetFirstPC(); // Definuje hráče, který je první v player listu
4 }

nebo

1 void main()
2  {
3   // Definuje hráče,
4   // který je první
5   // v player listu
6   object oPC = GetFirstPC();
7  }

Všechny uvedené příklady jsou správné (i když třetí příklad není zrovna nejšťastnější). Nwn script editor také rozpoznává ještě jeden druh komentáře.

Veškerý text mezi značkami:

/*
*/
je také považován za komentář.

1.4 Formátování kódu

Aby byl script přehledný a nedocházelo k omylům, je třeba dodržet již zmiňovaná pravidla slušného programování. Obecně platí, že každý jednotlivý příkaz má svůj vlastní řádek. Použití odsazení od okraje také velmi zpřehledňuje script. Příklad :

1 void main()
2  {
3   if (GetFirstPC()==OBJECT_INVALID)
4    {
5      // script, který se provede pokud platí podmínka if
6    }
7  }

Vězte, že takovéto dodržování etiky programování vám v budoucnu (až opět otevřete nějaký starší script) ušetří velmi mnoho práce.

Pravidla :

Jeden příkaz na řádku

Otevírací a uzavírací složená závorka funkce, každá z nich má svůj řádek

Příkazy ve funkcích odsazené od složených závorek

Žádné oddělovače kolem závorek, které jsou spojeny s tělem funkce

V další kapitole se si povíme něco více o proměnných a návratových hodnotách funkcí.

Mole









Copyright © by Sdružení ONLINE zábavy Všechna práva vyhrazena.

Publikováno: 2005-12-17 (1863 čtenářů)

[ Zpět ]
Copyright © Sdružení Online zábavy, Všechna práva vyhrazena
Můžete šířit naše zprávy pomocí tohoto souboru backend.php
PHP-Nuke Copyright © 2005 by Francisco Burzi.
This is free software, and you may redistribute it under the GPL.
PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky: 0.04 sekund