FANDOM


Dość ważnym elementem podczas tworzenia modułu jest zdefiniowanie ekwipunku dla Geralta, czyli gracza. Niestety, nie możemy tego zrobić w prosty sposób, bo nie ma fizycznego obiektu Geralta, któremu moglibyśmy zdefiniować ekwipunek. Punkt startowy (ang. start point) definiuje tylko punkt, w którym pojawi się Geralt.


Jeżeli czegoś nie można zrobić lub nie można zrobić w prosty sposób, to na pewno można to zrobić z pomocą skryptu. Tworzymy zatem nowy skrypt. Tym razem tworzymy go w sposób standardowy, czyli z menu File wybieramy New -> Neverwinter Script (.nss):

Witcher equip1.jpg

Otworzy się okno new neverwinternights script:

Witcher equip2.jpg

Na początek wpisujemy komentarz:

Witcher equip3.jpg

Funkcja, której użyjemy do stworzenia przedmiotu w ekwipunku nazywa się CreateItemOnObject. Jednym z argumentów tej funkcji, który musimy podać, to obiekt, u którego ten przedmiot ma zostać stworzony. W naszym przypadku jest to Geralt, czyli gracz. Musimy pobrać obiekt gracza. Do tego służy bezargumentowa funkcja GetFirstPC.


Najpierw dodajemy kolejny komentarz, aby nasz skrypt był bardziej czytelny:

Witcher equip4.jpg

Potem wpisujemy linię z funkcją GetFirstPC:

Witcher equip5.jpg

Linię tę można odczytać tak: pobierz obiekt pierwszego gracza i przypisz go do obiektu oPC.


Czas na funkcję tworzącą przedmiot. Kolejnym argumentem, który musimy podać w funkcji CreateItemOnObject jest nazwa szablonu (ang. template) przedmiotu. Wszystkie szablony przedmiotów zapisane są w folderze \Data\Templates\Items\. Dla przykładu dodamy do ekwipunku Geralta, czyli gracza, kilka orenów (waluta stosowana w grze Wiedźmin) oraz srebrny miecz (standardowo Geralt posiada stalowy miecz, więc nie musimy mu go dodawać). Szablon orenów posiada nazwy od it_gold_001.uti do it_gold_014.uti. Te szablony zapisane są w folderze \Data\Templates\Items\Valuables\. Szablon srebrnego miecza posiada nazwę it_svswd_004.uti i jest zapisany w folderze \Data\Templates\Items\Weapons&Armor\. Proszę pamiętać, że w funkcji CreateItemOnObject podajemy samą nazwę szablonu, bez rozszerzenia .uti.


Wracamy do naszego skryptu. Oczywiście dodajemy kolejny komentarz, tym razem zrobimy to jednak w innym miejscu. Najpierw dodajemy funkcję CreateItemOnObject(:

Witcher equip6.jpg

Wyświetlona została podpowiedź z argumentami funkcji. Ostatnim argumentem, jaki musimy podać w funkcji CreateItemOnObject jest ilość. Jest to ilość obiektów o podanej nazwie szablonu, jaka ma zostać stworzona. Wpisujemy całą linię:

Witcher equip7.jpg

I obiecany komentarz w innym miejscu:

Witcher equip8.jpg

Jak widać komentarze możemy umieszczać też na końcu linii. Nie można ich natomiast zrobić na początku linii tzn. nie za pomocą znaków //. Jeżeli z jakiegoś powodu (a nie jest to zalecane, bo jest mało czytelne), chcielibyśmy dopisać komentarz na początku linii, to musimy posłużyć się komentarzem typu /* */.

Witcher equip9.jpg

Dodaną linię możemy odczytać tak: stwórz 50 obiektów na podstawie szablonu it_gold_005 w obiekcie oPC. Musimy jeszcze dodać miecz:

Witcher equip10.jpg

To wszystko. Nasz skrypt jest gotowy. Musimy go zapisać, a także przypisać do odpowiedniego zdarzenia. Najpierw zapisujemy skrypt. Z menu File wybieramy Save As...:

Witcher equip11.jpg

Otworzy się standardowe okno systemu Windows służące do zapisywania plików. Przechodzimy do folderu \Data\Scripts (w tym folderze zapisane są wszystkie skrypty), wpisujemy nazwę ekwipunek i klikamy w przycisk Zapisz. Proszę pamiętać, że nazwa pliku nie może być dłuższa niż 16 znaków. Zwróćcie uwagę, że przy zapisywaniu pliku będziemy zapisywać plik w formacie .nss:

Witcher equip12.jpg

Jeżeli widnieje tam inny typ pliku oznacza to, iż prawdopodobnie chcemy zapisać zawartość innego otwartego okna. Przed zapisaniem naszej postaci upewnijcie się, że aktywnym oknem jest okno new neverwinternights script. Jeżeli będzie nieaktywne to pasek tytułu wyświetli się w kolorze szarym:

Witcher equip13.jpg

Inny kolor paska niż szary oznacza, że okno jest aktywne:

Witcher equip14.jpg

Gwiazdka widniejąca przed nazwą okna w pasku tytułowym oznacza, że plik nie został zapisany od czasu wprowadzenia ostatniej zmiany. Proszę pamiętać o możliwości zapisania skryptu bezpośrednio do modułu. W tym celu z menu File wybieramy Save new neverwinternights scripts i w oknie Save File klikamy w przycisk Module.


W niniejszym podręczniku nie stosowano tej metody, dodawano „ręcznie” pliki do modułu za pomocą eksploratora zasobów (ang. resources explorer). O takim sposobie zostało napisane w jednym z poprzednich rozdziałów.


Sprawdzamy w oknie Aurora log czy zapis i kompilacja skryptu powiodły się:

Witcher equip15.jpg

Pierwszy wpis oznacza, że zapis powiódł się (ang. saved successfully), natomiast drugi wpis, że kompilacja także się powiodła (ang. compiled successfully). Trzeci wpis to ponowny zapis skryptu.


Teraz musimy przypisać nasz skrypt do modułu. Najlepszym wyjściem będzie przypisanie skryptu do zdarzenia On Client Enter we właściwościach modułu. Tym samym skrypt zostanie uruchomiony w momencie, gdy tylko na module pojawi się Geralt, czyli gracz. Wczytujemy nasz moduł, o ile nie jest już wczytany. Otwieramy eksplorator modułu (ang. module explorer). W tym celu z menu View wybieramy Utility Windows -> Module Explorer:

Witcher equip16.jpg

W oknie eksploratora modułu dwukrotnie klikamy w wierszu Module Properties:

Witcher equip17.jpg

Tym samym z prawej strony otworzy się okno właściwości (ang. properties) modułu z atrybutami. Teraz klikamy w małą żółtą ikonę w prawej kolumnie obok atrybutu On client enter:

Witcher equip18.jpg

Otworzy się standardowe okno systemu Windows służące do wczytywania plików. Przechodzimy do folderu \Data\Scripts\ (tam zapisaliśmy nasz skrypt), zaznaczamy plik ekwipunek.nss i klikamy w przycisk Otwórz. Tym samym skrypt ekwipunek.nss zostanie przypisany do zdarzenia On client enter:

Witcher equip19.jpg

Pozostało nam zapisanie całego modułu. W tym celu z menu Module wybieramy Save Module:

Witcher equip20.jpg

Gdy teraz uruchomimy nasz moduł, Geralt, czyli gracz, będzie miał w ekwipunku 50 orenów i dodatkowo srebrny miecz. W ten sposób można definiować zawartość ekwipunku nie tylko dla gracza, ale także dla innych obiektów.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Więcej z Fandomu

Losowa wiki