| Kreowanie postaci na starcie |
| ToolSet - Skrypty |
| poniedziałek, 14 grudnia 2009 23:24 |
|
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ć. W celu stworzenia nowego skryptu, w Palette Window klikamy na przycisk Scripts (UWAGA! Nie mylić z Client Scripts - tu zupełnie inna sprawa!). ![]() Klikamy prawym klawiszem i wybieramy New->Script (skrypt nazywamy dowolnie, jednak dobrze jest trzymać się pewnych utartych kanonów) ![]() 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. ![]() 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" 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_ ![]() Przed przystąpieniem do kolejnego kroku, polecam wszystko ładnie zapisać (Save All), na wszelki wypadek.
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: ![]() Następnie wybieramy nasz moduł i klikamy na Properties: ![]() W Object Inspector wybieramy Script i klikamy na ikonkę z trzema kropkami: ![]() Teraz wybieramy po prostu nasz skrypt i klikamy OK: ![]() 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: ![]() I sprawdzenie, jak sprawuje się nasza nowa postać. W razie wszelkich wątpliwości, piszcie na forum. Tags:
Komentarze (0)
Tylko zarejestrowani użytkownicy mogą pisać komentarze!
Powered by !JoomlaComment 4.0 beta2
|















