by Lava Del'Vortel
Wersja 1.1


I. WSTĘP:

Ten tutorial powstał by pomóc zupełnie początkującym stworzyć własnych NPC do gry BG2. Zaprezentowane metody nie są perfekcyjne, ale są proste. Stanowczo wystarczą do stworzenia własnej postaci. Jest to nowa wersja, bez błędów z tutorialu Riklaunima.

Programy, których będziemy potrzebowali: Near Infinity (NI), zainstalowane BG2, Notatnik.



II. Tworzenie pliku .cre:


Czym właściwie jest plik .cre? To jest plik postaci. To w nim są zapisane wszystkie statystyki, liczba punktów życia, rasa, charakter itd. Oto najprostszy sposób na stworzenie takiego pliku:


1. Włączamy Baldur's Gate II.

2. Wybieramy tryb gry dla wielu graczy i wybieramy połączenie przez port szeregowy.

3. Tworzymy (lub importujemy po prostu by było szybciej) dowódcę drużyny. Później tworzymy jako postać 2 podstawę dla naszego NPC. Najlepiej tutaj wybrać klasę, rasę, charakter etc. takie jakie już będą właściwe i odpowiednie dla naszego przyszłego NPC. Statystyki dowolne. To zmienimy później. Imię też nie robi różnicy. UWAGA: Nasza postać NPC nie powinna być dowódcą!

4. Rozpoczynamy grę i eksportujemy postać naszego przyszłego NPC.

5. Zamykamy grę.

6. Otwieramy Near Infinity i je konfigurujemy. Konfiguracja jest prosta. W konfiguracji po prostu wybieramy folder główny BG2 i źródło które w nim będzie. UWAGA: Jeżeli Twój komputer widzi NI jako spakowany plik to zainstaluj lub zaktualizuj java.

7. W lewym "drzewie" NI wyszukujemy w folderze "Characters" plik naszej postaci. Niech naszym założeniem będzie to Lava NPC. Szukamy więc pliku wyeksportowanego w punkcie 4. Powiedzmy Lava.chr.

8. Klikamy na Lava.chr po czym wybieramy zakładkę FILE w oknie NI. Klikamy na opcję "Convert CHR to CRE". Jako folder do którego konwertujemy wybieramy na chwilę obecną folder "Override".

9. Należy teraz wyłączyć i włączyć ponownie NI. Po włączeniu wybieramy w drzewie folder "Override".

10. Wyszukujemy Lava.cre, klikamy na nią i wybieramy zakładkę EDIT, która jest w OKNIE POSTACI (nie EDIT okna głównego NI).

11. Klikamy na linijkę "FLAGS" i klikamy na "EXPORT ALLOWED" by to odhaczyć.

12. Odnajdujemy linijkę "OVERRIDE SCRIPT" która jest mniej-więcej na wysokości 2/3 listy. Klikamy na tą linijkę prawym przyciskiem myszy i wybieramy "edit asstring". Klikamy na to 2 razy i wpisujemy nazwę pliku skryptu. Powiedzmy, że u nas będzie to po prostu LAVA. To samo czynimy z linijką "DEFAULT SCRIPT".

13. Odnajdujemy linijkę "DEATH VARIABLE". DV kiedyś było zwane SCRIPTING NAME. Wpisujemy tutaj "skryptowe imię" naszej postaci. Najlepiej by było to po prostu jej imię. Dla Lavy wpiszemy więc LAVA.

14. Klikamy na linijkę "DIALOG" prawym przyciskiem myszy. Wybieramy "edit as string" i wpisujemy nazwę pliku dialogu postaci. Najlepiej znowu po prostu imię.

Dla Lavy będzie to LAVA. Ostatnią rzeczą jaką jeszcze trzeba zmienić to Ally na Neutral.


PODPUNKTY 15 I 16 TEJ CZĘŚCI TUTORIALU DOTYCZĄ ZMIAN STATYSTYK ETC POSTACI. JEŻELI PRZY TWORZENIU POSTACI WYBRANO WSZYSTKO ODPOWIEDNIO TO MOŻESZ POMINĄĆ TE PODPUNKTY.


15. Możemy teraz zmienić statystyki, rasę, PŻ etc. postaci.

16. By tego dokonać musimy znać podstawy angielskiego. Dokonajcie zmian. Występują tam odpowiednie linijki statystyk (np. zręczności czyli DEXTERITY), czy np. punktów życia (PŻ czyli angielskie HP).

17. Zapisujemy dokonane zmiany i zamykamy NI.


Plik postaci jest gotowy.



III. Tworzenie dialogu przyłączenia i odłączenia:


Tutaj przedstawię sposób tworzenia rozmowy przyłączenia i odłączenia postaci. Napiszę najprostszy dialog bez wielu bloków. Link do tutorialu o tworzeniu dialogów znajdzie się na końcu tej pracy.


1. Otwieramy notatnik.

2. Rozpoczynamy cały plik od słów BEGIN ~LAVA~ (zachowujemy wielkość liter!), gdzie LAVA to plik dialogowy który ustawiliśmy w NI.

3. Piszemy dialog. Teraz podam przykład najprostszego dialogu:



BEGIN ~LAVA~

IF~NumTimesTalkedTo(0)~ THEN BEGIN LAVA-01
SAY~Witaj! Jestem Lava. Jam jest prawdziwy bard i awanturnik. Potrzebujesz mojej pomocy?~
IF~~THEN REPLY ~Tak. Dołączysz do mojej drużyny?~ GOTO LAVA-02
IF~~THEN REPLY ~Nie. Bywaj!~ GOTO LAVA-03
END

IF~~THEN BEGIN LAVA-02
SAY~Tak! Ruszajmy, przyjaciele!~
IF~~THEN DO ~JoinParty()~ EXIT
END

IF~~THEN BEGIN LAVA-03
SAY~Tak! Ruszajmy, przyjaciele!~
IF~~THEN EXIT
END

To był dialog pierwszego spotkania. Teraz dialog kolejnych rozmów, gdybyśmy wrócili porozmawiać.



IF~NumTimesTalkedToGT(0)~ THEN BEGIN LAVA-04
SAY~Wróciłeś! Zmieniłeś zdanie?~
IF~~THEN REPLY ~Tak. Dołaczysz do mojej drużyny?~ GOTO LAVA-02
IF~~THEN REPLY ~Nie. Bywaj!~ GOTO LAVA-03
END

W tym przypadku polecenia GOTO poprowadzą do bloków które już napisaliśmy. Nie będziemy ich powtarzać. Teraz dialog przy wyrzuceniu z drużyny. dodajmy po prostu literę P w nazwie.



BEGIN ~LAVAP~

IF~~THEN BEGIN LAVA-KickOut
SAY~Chcesz bym odszedł?~
IF~~THEN REPLY ~Tak.~ GOTO LAVA-KickOut1
IF~~THEN REPLY ~Nie.~ GOTO LAVA-KickOut2
END

IF~~THEN BEGIN LAVA-KickOut1
SAY~To dobrze. Idźmy dalej.~
IF~~THEN DO ~JoinParty()~ EXIT
END

IF~~THEN BEGIN LAVA-KickOut2
SAY~Szkoda. Bywajcie.~
IF~~THEN EXIT
END

NumTimesTalkedTo(0) oznacza, że jeszcze nie rozmawialiśmy z postacią czyli to pierwsza rozmowa. NumTimesTalkedToGT(0) natomiast posiada GT czyli "GREATER THAN". Warunkiem jest więc to, że rozmawialiśmy z tą postacią przynajmniej jeden raz. LAVA-01 i inne to nazwy bloków dialogowych. Nie może być 2 bloków o tej samej nazwie.

WSZYSTKIE TE BLOKI MAJĄ ZNAJDOWAĆ SIĘ W JEDNYM PLIKU. WSZYSTKIE 3 PODANE PRZEZE MNIE CZĘŚCI.


4. Zapisujemy plik. Wpisujemy LAVA.d i wybieramy format pliku jako inny (nie .txt).



IV. PLIK SKRYPTU LOKACJI:

Teraz stworzymy skrypt lokacji który sprawi, że nasza postać pojawi się w grze. Załóżmy, że miejscem gdzie pojawi się nasz NPC będzie jeden z namiotów w Targowie. (To co podam to zmieniony plik z dodatku Skie NPC mojego autorstwa.)


1. Uruchamiamy grę i odwiedzamy w niej miejsce w którym chcemy by stała nasza postać. Najeżdżamy na odpowiednie miejsce na mapie i klikamy wciskamy przycisk X. Podane zostaną nam plik AR, wartość x i wartość y. Zapisujemy sobię te dane na kartce.

2. Zamykamy grę.

3. Otwieramy notatnik. Tworzymy skrypt. Przykładowy i zarazem podstawowy wygląda tak:



IF
Exists(Player1)
!Global("LavaExists","AR2017",1)
THEN
RESPONSE #100
CreateCreature("Lava",[523.333],3)
SetGlobal("LavaExists","AR2017",1)
END

Oznacza to, że jeżeli istnieje główna postać gracza na tym obszarze, a zmienna globalna lokacji AR2017 (Przykładowa lokacja. Jako drugą część zmiennej wpisujecie takie AR jakie zapisaliście na kartce.) Global("LavaExists","AR2017",1) nie wynosi 1 (wykrzyknij oznacza "not" czyli warunkiem jest, że jest przeciwnie niż podano po wykrzykniku) to jest 100% prawdopodobieństwo, że zostanie stworzona postać "Lava" w danym miejscu (te liczy to to co zapisaliśmy na kartce w postaci [wartość x.wartość y] ). Kolejna cyfra oznacza w która stronę jest odwrócona postać. Ustalona teraz zostanie zmienna Glob("LavaExists","AR2017",1) co sprawi, że postacie nie będą się pojawiać w nieskończoność.


4. Zapisujemy plik jako ARXXXX.baf gdzie XXXX to nr lokacji. W tym przypadku byłby to AR2017.baf



V. INSTALKA MODA:


Teraz zaprezentuję jak stworzyć plik instalki moda. Po prostu teraz napiszę instalkę do dodatku który razem napisaliśmy. Oczywiście wpisujecie takie nazwy, jakie sami nadaliście plikom.


1. Tworzymy folder "Lava".

2. Wkładamy do niego wszystkie pliki jakie dziś razem stworzyliśmy.

3. Otwieramy notatnik.

4. Tworzymy instalkę. Dla tego dodatku będzie to wyglądało tak:



BACKUP ~Lava\backup~
AUTHOR ~Lava Del'Vortel~
BEGIN ~Lava NPC - BG2~

COPY ~Lava\LAVA.cre~ ~override\LAVA.cre~
SAY NAME1 ~Lava~
SAY NAME2 ~Lava~
SAY BIO~Zapytany o przeszłość LAVA nic nie mówi.~

COMPILE ~Lava\LAVA.d~
COMPILE ~Lava\LAVA.baf~

EXTEND_TOP ~AR2017.bcs~ ~Lava\AR2017.baf~

APPEND ~pdialog.2da~
~LAVA LAVAP LAVAJ LAVAD LAVA25P LAVA25J LAVA25D LAVA25~
UNLESS ~LAVA~

APPEND ~interdia.2da~

~LAVA LAVAB LAVA25B~

SAY NAME1 oraz 2 muszą być takie same. To ustawia imię postaci. SAY BIO ustawia biografię. EXTEND_TOP dopisuje nasz skrypt lokacji do innych skryptów tego miejsca. APPEND ustawia dialogi. Te z numerem 25 dotyczą ToB.


5. Zapisujemy to jako Setup-LavaNPC.tp2 (Ten plik nie wkładamy do folderu Lava!)

6. Potrzebujemy teraz plik WeiDU. Możemy go ściągnąć ze strony WeiDU albo po prostu skopiować z innego moda WeiDU. Załóżmy, że zabierzemy z Skie NPC plik Setup-Skie.exe. Zmieniamy teraz po prostu jego nazwę na Setup-Lava.exe (taka sama nazwa jak pliku .tp2 tylko inne rozszerzenie).



VI. ZAKOŃCZENIE:


Nie musimy na tym stadium modu tworzyć Lava.baf. Tak więc NPC został skończony. Teraz wystarczy go po prostu uruchomić i zainstalować.


UWAGA: Jeżeli nie tworzymy nowego skryptu dla postaci to w pliku tp2 TRZEBA usunąć linijkę:


COMPILE ~Lava\LAVA.baf~

Możemy też po prostu otworzyć notatnik i pusty plik zapisać jako Lava.baf.



VII. Tutoriale przydatne przy tworzeniu NPC:


Tutorial Audio autorsta Lavy Del'Vortela
Tutorial CD_STATE_NOTVALID autorstwa Lavy Del'Vortela (dla zaawansowanych)
Tutorial plików dialogowych autorstwa L'fa
Tutorial NPC dla początkujących i zaawansowanych autorstwa Kat “theacefes” Bella (po angielsku)



Podziękowania (za pomocą przycisku POMÓGŁ pod postem), opinie i komentarze