Bo czĹowiek gĹupi jest tak bez przyczyny
Jeśli chodzi o skryptowanie, to jestem totalnym laikiem, dlatego też proszę Was o pomoc! Pracuję właśnie nad modułem i potrzebne mi będą pewne skrypty. Większość już sobie jakoś wykombinowałem, ale trzeba mi jeszcze dwóch. A mianowicie:
- chcę, aby w rozmowie z npc, po wybraniu odpowiedniej opcji dialogowej cała przygoda dobiegła końca; np. wybieram odpowiedź THE END i gra wychodzi do głównego menu (może to też nastąpić po zakończeniu rozmowy, obojętnie)
- chcę, aby po kliknięciu na npc pojawiała się jedna odzywka; znaczy się to nie ma być rozmowa; ma to wyglądać tak, że klikam na npc i pojawia się nad nim napis (nie tylko raz, ale za każdym razem gdy kliknę).
To tyle. Ostatnio mi bardzo pomogliście i mam nadzieję, że teraz będzie tak samo. Wybaczcie, że może piszę o pierdołach, ale jak już mówiłem skrypty, to dla mnie czarna magia. Znam tylko takie, które mi ktoś podyktował
Ad2.
Po prostu tworzysz dla niego zwykla konwersacje, z jednym tylko tekstem np "Siema", nie dodając zadnych opcji odpowiedzi PC. W ten sposob NPC po kliknięciu nań wypowie tylko Siema, bez uruchamiania okna dialogowego.
Ad1.
W konwersacji ktora ma kończyć gre: Wybierz linijke, ktora ma kończyć modul i w zakladce Actions walnij skrypt:

Jesli przypiszesz to do linijki wypowiedzianej przez NPC, to gra zakonczy sie, w chwili gdy ten tekst pojawi sie na ekranie, czyli w praktyce gracz nie bedzie mial szans na przeczytanie go. Gdy przypiszesz to do wypowiedzi wybieranej przez PC po kliknieciu na ta opcje dialogową gra przejdzie do menu.
Mysle ze nie będziesz mial z tym klopotu
No więc tak: to pierwsze rzeczywiście działa (takie proste, a jednocześnie tak genialne!), ale z zakończeniem gry jest problem. No i nie wiem czy to ma znaczenie, ale zapomniałem wspomnieć, że ten moduł jest dla NWN1. Zrobiłem wszystko podobnie. Tzn. stworzyłem konwersację i chciałem przypisać ten skrypt ga_end_game. Rzeczywiście jest tam takie coś! Przypisałem to w zakładce "Podjęte działania". Potem zadowolony wchodzę do gry, testuje i... nic. Po prostu konwersacja się zakończyła. Gra wcale nie wyszła do menu.
Na początku - ja kretyn - wpisałem ten skrypt ręcznie w edytorze, ale nie mogłem go skompilować, bo wywalał jakiś błąd. Potem okazało się, że wpisywałem go IDENTYCZNIE jak ten gotowy. Dziwne :/
To walnij do tej konwersacji jako podjete akcje skrypt:
To znaczy jak go mam "sensownie zapisać"? Wpisałem tak jak mi powiedziałeś, ale nie mogę go skompilować.
utwórz nowy skrypt -> wpisz w niego kod podany przez Elfiora -> skompiluj -> zamknij
-> zmień mu nazwę na pożądaną (i sprawdź czy wersja skompilowana też zmieniła w folderze, na którym pracujesz)
nazwa nie powinna przekraczać 16 znaków ASCII
Ok, otwieram Edytor Skryptów, wpisuje ten kod:
void main()
{
EndGame()
}
naciskam "Zapisz i kompiluj" i wyskakuje błąd:
"Błąd. 'end' nie kompiluje się.
end.nss(4) : BŁĄD: BRAK ŚREDNIKA PO WYRAŻENIU"
Czwartą linijkę podkreśliło mi na czerwono, więc tam właśnie postawiłem średnik. Nic to nie zmieniło. Błąd dokładnie taki sam. Może coś źle zrozumiałem i mam ten średnik postawić gdzie indziej?
daj po end_game() średnik
Już wcześniej tego próbowałem. Kiedy daje średnik po EndGame(), to wywala mi coś takiego:
Błąd. 'end' nie kompiluje się.
end.nss(3) : BŁĄD: DEKLARACJA NIE ZGADZA SIĘ Z PARAMETRAMI
Masakra :/
Też nie działa. Dobra, nie będę Wam już tym głowy zawracał. Będę musiał zrobić zakończenie jakoś inaczej.
Mozesz dac taki skrypt:
Ekhem. To może zabiorę głos.
Po pierwsze, ten średnik po EndGame musi się tam znaleźć.
Po drugie, parametry podane do funkcji muszą być zgodne z jej deklaracją:
CytatJak widać, w nawiasach nie ma żadnego parametru, podczas gdy parametr jest wymagany (patrz deklaracja).
Trzeba więc w nawiasy wpisać jakiś string (nazwę filmu, który odpali się po zakończeniu modułu).
Wpisanie pustego stringu ( pusty cudzysłów: ) lub nazwy nieistniejącego filmu spowoduje odtworzenie standardowych creditsów.
WTF, lol, od zarania dziejów parametrow opcjonalnych w funkcjach mozna bylo nie wpisywac i w takim wypadku uzywane byly standardowe ustawienia. Film wyswietlany na koncu modulu powinien byc paremetrem opcjonalnym, bo przeciez nie kazdy ma szanse coś takiego zrobić. Dlaczego w tej funkcji jest inaczej?
No cóż, jak widać, tutaj parametr nie jest opcjonalny.
To nie nowość, że opisy w toolsecie są skąpe i, bazując tylko na nich, w sumie nie wiadomo jaki parametr wrzucić do tej funkcji.
Dlatego bez Lexiconu nie ma co się zabierać za większe skryptowanie.
Rzeczywiście zadziałało! Odpalają się autorzy gry. W sumie to by mi już wystarczyło, ale można by iść o krok dalej. Kiedyś na "Krainie Płonących Cieni" był artykuł na temat tego jak zrobić własny filmik do NWN. Niestety nie zapoznałem się z nim, a teraz strony już nie ma :/ Czy ktoś wie jak taki filmik zrobić? Chodzi mi o taki bardzo prosty. Miało by się pojawić kilka napisów na temat autorów.
Po prostu musisz zapisać go w formacie Bink Video (*.bik)
http://www.radgametools.com/bnkdown.htm
Darmowy hosting zapewnia PRV.PL