Kreowanie postaci na starcie
ToolSet - Skrypty
poniedziałek, 14 grudnia 2009 23:24
1. Wstęp

Tutorial ten nie jest zbyt obszerny, bowiem porusza on jedynie elementarne zagadnienie dotyczące uruchomienia kreatora postaci na początku naszego modułu. Sprawa, wbrew pozorom, jest bardziej złożona, niż można by przypuszczać (moim zdaniem tego typu rzeczy powinny być ustalane za pomocą 1 pola w edytorze). Jeśli jednak opanujecie już ten problem, stanie się to dla was intuicyjne.
Zakładam, że mamy już stworzony podstawowy moduł. Jeśli nie, powinniście to najpierw uczynić: 2. Tworzenie Modułu (http://greywardens.info/index.php?option=com_content&view=article&id=65:2-tworzenie-moduu&catid=37:tutoriale&Itemid=72)
Aby móc uruchomić kreator postaci, należy w module ustawić skrypt, który będzie uruchamiany na początku modułu. Jednak aby móc to zrobić, trzeba owy skrypt najpierw utworzyć.


2. Tworzenie nowego skryptu

W celu stworzenia nowego skryptu, w Palette Window klikamy na przycisk Scripts (UWAGA! Nie mylić z Client Scripts - tu zupełnie inna sprawa!).
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci

Klikamy prawym klawiszem i wybieramy New->Script (skrypt nazywamy dowolnie, jednak dobrze jest trzymać się pewnych utartych kanonów)
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci

Po stworzeniu nowego skryptu, powinno otworzyć się okienko edytora skryptów. Jeśli tak się nie stanie, po prostu klikamy dwa razy na świeżo stworzony skrypcik.
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci

Kolejnym krokiem jest napisanie skryptu. Ja posłużę się przykładowym kodem, uruchamiającym kreator postaci wraz ze startem modułu. Kod wygląda następująco:
#include "events_h"
#include "global_objects_h"
 
void main()
{
// keep track of whether the event has been handled
int nEventHandled = FALSE;
 
event ev = GetCurrentEvent();
switch(GetEventType(ev))
{
case EVENT_TYPE_MODULE_START:
{
// preloads resources needed for character generation
PreloadCharGen();
 
// initiates character generation
StartCharGen(GetHero(),0);
 
break;
}
}
 
// if this event wasn't handled by this script fall through to the core script
if(!nEventHandled)
{
HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE);
}
}

Osoby zaznajomione z programowaniem w językach C, C++, C# lub wszelkich odmianach JAVA powinny bez problemu zrozumieć powyższy kod skryptu. Dla tych, którzy jednak z programowaniem nie mieli zbytnio styczności, małe objaśnienie:

// Są to tak zwane "pliki nagłówków". Dzięki nim uzyskujemy dostęp do części funkcji obsługiwanych przez grę.
#include "events_h"
#include "global_objects_h"

// main jest funkcją uruchamianą na początku każdego skryptu. Samo oznaczenie "void" jest informacją, iż funkcja po zakończeniu działania nie zwraca żadnej wartości (np.: wyniku obliczeń).
void main()
{
// w tym miejscu deklarujemy zmienną nEventHandled. Zawiera ona informację o tym, czy zdarzenie EVENT_TYPE_MODULE_START miało już miejsce, czy nie.
int nEventHandled = FALSE;

// deklaracja zmiennej ev typu event. W skrócie pobiera ona (za pomocą funkcji GetCurrentEvent()) i przechowuje aktualnie wywołane wydarzenie
event ev = GetCurrentEvent();

// switch() jest pewnego rodzaju przełącznikiem. Sprawdza, jakie zdarzenie aktualnie przechowuje zmienna ev, po czym wywołuje odpowiedni blok kodu (w tym wypadku tylko dla zdarzenia EVENT_MODULE_START)
switch(GetEventType(ev))
{
case EVENT_TYPE_MODULE_START: // w przypadku EVENT_MODULE_START wykonaj poniższy kod:
{
// wczytuje wszelkie potrzebne dane i zasoby dla kreatora postaci
PreloadCharGen();

// uruchamia kreator postaci
StartCharGen(GetHero(),0);

// po zakończeniu tworzenia postaci, opuszcza switch()
break;
}
}

// jeżeli z jakiś przyczyn nie zdarzenie EVENT_MODULE_START nie zostało obsłużone, uruchamia (mimo wszystko) moduł dalej (wczytuje lokacje. itd.)
if(!nEventHandled)
{
HandleEvent(ev, RESOURCE_SCRIPT_MODULE_CORE);
}
}

EVENT_MODULE_STARTED jest tylko jednym z całej masy zdarzeń, do których możemy się odwoływać, tworząc skrypty. Jeśli chcecie zobaczyć pełny ich spis, kliknijcie na przycisk CONSTANTS i wpiszcie w wyszukiwarce EVENT_
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci
Przed przystąpieniem do kolejnego kroku, polecam wszystko ładnie zapisać (Save All), na wszelki wypadek.


3. Wybór skryptu startowego

Mamy już skrypt, jednak wciąż nie jest on w żaden sposób wykorzystywany przez nasz moduł. Pora więc to zmienić. Klikamy File->Manage Modules:
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci

Następnie wybieramy nasz moduł i klikamy na Properties:
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci

W Object Inspector wybieramy Script i klikamy na ikonkę z trzema kropkami:
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci

Teraz wybieramy po prostu nasz skrypt i klikamy OK:
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci

I to tyle. Nasz moduł ma już przypisany nasz startowy skrypt, uruchamiający na początku kreator postaci. Jedyne co nam pozostaje to zbudowanie naszego modułu:
Dragon Age ToolSet Tutorial Skrypt Kreator Postaci

I sprawdzenie, jak sprawuje się nasza nowa postać.
W razie wszelkich wątpliwości, piszcie na forum.
Komentarze (0)
Tylko zarejestrowani użytkownicy mogą pisać komentarze!
 

Online

Brak

Stwórz grę!

design3 - Learn to make games™