Z tego co mi się wydaje, to pierwszy sposób lepszy, bo dodaje w sensie stricte, drugi podmienia (ale mogę źle to pojmować, niewiele się tym bawiłem ;)). No i drugi sposób testowałem - działa
_________________ Szarotki alpejskie som tuczące :D
Wiek: 27 Posty: 380 Podziękowania: 4/24 Skąd: z Podmroku
Wysłany: 2008-02-02, 19:16
Jeszcze jedno pytanie odnośnie własnych NPC.
Czy posiada ktoś może z was stronę, gdzie po polsku mogę przeczytać, gdzie i jak można tworzyć dialogi między postacią stworzoną, a postaciami będącymi już w grze?
*Gdzie mogę znaleźć dźwięki Tiaxa z BG1 i wstawić je do mojego moda?
_________________ Chcesz być czymś w życiu, to się ucz, Abyś nie zginął w tłumie; Nauka to potęgi klucz, W tym moc, co więcej umie.
Posty: 5556 Podziękowania: 455/316 Skąd: Island of Misfit Toys
Wysłany: 2008-02-02, 23:34
Nie wiem, czy tworzysz tego NPCa do BG1, czy BG2 - odpowiem do tej drugiej:
1. Krok to zbadanie (najlepiej za pomocą DLTCEP) dialogu - jak nazywa się plik z dialogami danej osoby (w BG2 dodaje się litery J, P w SoA i 25J, 25P w ToB, zazwyczaj jest także plik zakończony cyfrą, ale nie wchodzi w zakres tych rozważań - są to ogólne gadki (np. zapoznawcze, poza drużyną itd.)) - np. Imoen będzie zapisana jako najpierw IMOENJ, po czarowięzach jako IMOEN2J (w ToB jako IMOEN 25J) - pliki zakończone na P nas nie interesują - zawierają dialogi odłączania i przyłączania itd.
W ramach sciągi mogę podać część NPC-ów (pierwsze litery wyjaśniają o kogo chodzi, wiec nie będę robił legendy):
EDWINJ
IMOENJ (jesli Twój NPC będzie w drużynie już w lochach), IMOEN2J
JAHEIRAJ
MINSCJ
VICONIJ
(zasada jest prosta - do 6 liter - pełne, powyżej - pierwsze 6)...
2. Kwestię tę można rozwiązać na dwa sposoby (przynajmniej - te są najpopularniejsze i dość łatwe):
I. (głownie duże modyfikacje) tworzysz plik danego NPCa, dodając z przodu (w przypadku zwykłych rozmów!! a-) np. aVICONIJ - i dodajesz odpowiedzi tej postaci - dopisując odniesienia (nie znam fachowego słowa) do odpowiedniego miejsca pliku dodawanego NPC-a (np. @251 DO cośtam - jesli robisz w wersji .tra)... Dla usystematyzowania dodam, że dodaje on cały ten aPlik do dialogów danej postaci
II. Tworzysz plik dialogów dodawanego przez siebie NPCa (np. TIAXJ) i rozpisujesz dialog z podziałem na role:
Może (i powinien raczej) przyjąć on taką postać:
Rozmowa Tiaxa z Viconią :
nie będę rozpisywac się o warunkach itd., bo to z pewnością wiesz:
Zaczyna Tiax:
IF ~cośtam cośtam~ THEN ~mówi~
== VICONIJ ~odpowiada~ DO ~jeśli chcesz wstawić zmienne globalne czy co tam uważasz~
== TIAXJ ~replika~
== VICONIJ ~kontra~
== TIAXJ ~rekontra~
EXIT
lub (jesli ma prowadzić dalej - co zresztą wiesz, ale może komuś jeszcze sie to przyda)
== TIAXJ ~rekontra~ GOTO np. 3
END
Wyświetli Ci dialog:
Tiax: mówi
Viconia: odpowiada
itd.
(chyba o to Ci chodziło)
(jesli chcesz możesz zastosować system własnych komentarzy, oflagowań (czy jak to tam nazwać;) - powinienem ździebko przytrzeźwieć, ale czasu brak) np. za pomocą znaków: // - oznaczenie postaci, kolejności, miejsca, odnośnika - itd.)
IF ~cośtam cośtam~ THEN ~mówi~
== VICONIJ ~odpowiada~ DO ~jeśli chcesz wstawić zmienne globalne czy co tam uważasz~
== TIAXJ ~replika~
== VICONIJ ~kontra~
== TIAXJ ~rekontra~
EXIT
Troszkę inaczej...
Kod:
BEGIN ~BILLANI~ //tworzy plik dialogowy billani.dlg (nazwy przykładowe)
CHAIN // ta komenda oznacza początek dialogu łańcuchowego
IF ~See("Viconia")
InParty("Viconia")
!StateCheck("Viconia",STATE_SLEEPING)
Global("BIllani1","LOCALS",0)~ THEN BILLANI //osoba zaczynająca dialog// illavicybanter1
~tekst~ DO ~SetGlobal("BIllani1","LOCALS",1)~
== BVICONI
~odpowiedź~
== BILLANI
~odpowiedź~
(...)
== BILLANI
~tekst końcowy~
EXIT
Ogólnie z takimi dialogami mogą być problemy, jeśli osoba rozpoczynająca dialog ma plik dialogowy istniejący w grze... wtedy można posłużyć się komendą APPEND.
Kod:
APPEND BANOMEN
IF ~See("Illanith")
InParty("Illanith")
!StateCheck("Illanith",STATE_SLEEPING)
Global("BAnomIlla1","LOCALS",0)~ THEN BEGIN anomillabanter0
SAY ~początkowy tekst dialogu~
IF ~~ THEN DO ~SetGlobal("BAnomIlla1","LOCALS",1)~ EXTERN BILLANI anomillabanter01 //komenda oznaczająca połączenie z innym plikiem dialogowym - tak zwany link zewnętrzny//
END
IF ~~ THEN BEGIN anomillabanter02 //kolejna wypowiedź Anomena
SAY ~tekst końcowy~
IF ~~ THEN EXIT //zakończenie dialogu
END
END //muszą być dwa END na końcu bloku APPEND - jeden zamyka pojedynczy blok dialogu, a drugi cały blok włączenia do pliku dialogowego.
Następnie dodajemy drugi taki blok dla odbiorcy:
Kod:
APPEND BILLANI
IF ~~ THEN BEGIN anomillabanter01
SAY ~odpowiedź na pierwszy tekst Anomena~
IF ~~ THEN EXTERN BANOMEN anomillabanter02 //kolejny link zewnętrzny
END
END
APPEND BLUVER
IF ~InParty("Cernd")
See("Cernd")
!StateCheck("Cernd",STATE_SLEEPING)
Global("CerndLuverion","GLOBAL",0)~ THEN BEGIN CerndLuverion1
SAY ~Powiedz mi, druidzie, czemuś taki patetyczny i słaby? Wszystko odnosisz do *natury*, tej swojej neutralności. Czy naprawdę sądzisz, że to co robisz, ma jakieś znaczenie?~
IF ~~ THEN DO ~SetGlobal("CerndLuverion","GLOBAL",1)~ EXTERN BCERND CerndRepliesLuver1
END
IF ~~ THEN BEGIN CerndLuverionEnds1
SAY ~Jesteś głupcem, Cerndzie. Nie masz pojęcia o tym, co rządzi światem. Tkwij sobie dalej w tym swoim śmiesznym świecie, ale miej świadomość, że kiedyś coś cię z niego wyrwie w bardzo niedelikatny, wynaturzony sposób.~
IF ~~ THEN EXIT
END
END
CHAIN BCERND CerndRepliesLuver1
~Luverionie, czyż to nie oczywiste? Równowaga istnieje w naturze, nie możesz temu zaprzeczyć. Jest zarówno w ceglanych budynkach, jakich pełno w miastach, jak i wśród kwiatów na łące...~
== BLUVER
~Tak, tak. Oczywiście. (szyderczy uśmiech) Ale po kiego diabła się doszukiwać neutralności, skoro nie jest możliwe być zawsze w równowadze między dobrem i złem, prawem i chaosem?~
== BCERND
~Mylisz się. Ja zawsze się staram zachowywać tę granicę.~
== BLUVER
~Otóż to, Cerndzie, otóż to. *Starasz się*. Przecież nie jesteś cudotwórcą, każdy z nas ulega którejś ze stron. Jak to jest z tobą?~
== BCERND
~Jestem w stanie zrobić wszystko, jeżeli w grę wchodzi większe dobro, nawet jeżeli kosztem mniejszego zła...~
== BLUVER
~(Zirytowany) No nie! Nie mów mi tylko, że ty wierzysz, że istnieje większe dobro, czy tam mniejsze zło! Zło to zło! Dobro to dobro! Zawsze jest to jedno i to samo: potęga i ci którzy tej potęgi nie mają!~
== BCERND
~Nie do końca, kapłanie. Można przecież jasno określić czyny dobre, czyny złe. Taka jest idea równowagi. Na rozróżnianiu tych dwóch ścieżek, na świadomym utrzymywaniu, aby żadna z nich nie miała zbytniej przewagi nad drugą.~
END BLUVER CerndLuverionEnds1
p.s. proszę o niekomentowanie treści, jakakolwiek by ona nie była :P
m. in. tutaj:
Piszemy skróty nazw NPC'ów? Ilu literowe mają być?
Zajrzyj sobie w plik pdialog.2da (użyj np. Infinity Explorera) i zobacz, które jak się nazywają poszczególne pliki dialogowe każdego z dołączalnych NPCów. Pliki dialogowe nie mogą mieć więcej niż 8 liter.
Cytat:
Wypowiedź Anomena piszemy po tych dwóch kreskach, czy po SAY i ~?
Te dwie kreski to był mój przypis ;] Piszesz wypowiedź osoby po komendzie SAY i zawierasz ją w tyldach :)
Revan - nie lubię Cernda, więc i tak nie skomentuję jego dialogu ;]
EDIT: Tym razem ja mam problem, a mianowicie w jaki sposób i jaki plik jest przypisany do numeru 255 w rejestrze projectiles? W DLTCEP jest prawidłowy (holylight pillar - chyba efekt Promienia Słońca, do którego nie ma przypisanego konkretnego pliku), a w rejestrze projectl.ids to jest to efekt trafienia oddechu czerwonego smoka... ;/
Konkretnie to chcę wstawić własny złożony efekt do czaru (coś w stylu tego Promienia Słońca, który wywołuje 2 sekwencje pliku .bam jednocześnie), ale za diabła nie wiem, jak to zrobić.
Z góry dziękuję za pomoc i z góry przepraszam za zagmatwany opis problemu :)
chcę wstawić własny złożony efekt do czaru (coś w stylu tego Promienia Słońca, który wywołuje 2 sekwencje pliku .bam jednocześnie), ale za diabła nie wiem, jak to zrobić.
Dodać animację normalnie w Animatoions i w Effects, powinna być odpowiednia opcja Display Specify Animation czy jakoś tak. Jeśli nie ma odpowiedniej animacji w Animations, może być problem - zostaje tylko Effects. Mówię teoretycznie, jeśli nie da rady, to nie wiem.
Ja potrzebuję w miarę pilnie pomocy w BAMACH. W niektórych przypadkach pojawia się efekt jak w załączonym obrazku i nie mam pojęcia, co z tym zrobić. Widziałem już coś podobnego w TDD. Nie chodzi o przesunięcie (szata jest w połowie klatki), tylko, że podczas przenoszenia kopiuje się jej obraz.
W dodatku przy przenoszeniu przedmiotu nie jest on wycentrowany, być może dlatego, że w BAMWorkshopie nie można wpisywać ujemnych wartości w Positions. A niektóre przedmioty raczej tego wymagają (sprawdzałem istniejące).
W sumie mogliby dopracować w końcu BAMWorkshopa 2...
EDIT: Tym razem ja mam problem, a mianowicie w jaki sposób i jaki plik jest przypisany do numeru 255 w rejestrze projectiles? W DLTCEP jest prawidłowy (holylight pillar - chyba efekt Promienia Słońca, do którego nie ma przypisanego konkretnego pliku), a w rejestrze projectl.ids to jest to efekt trafienia oddechu czerwonego smoka... ;/
Konkretnie to chcę wstawić własny złożony efekt do czaru (coś w stylu tego Promienia Słońca, który wywołuje 2 sekwencje pliku .bam jednocześnie), ale za diabła nie wiem, jak to zrobić.
Z góry dziękuję za pomoc i z góry przepraszam za zagmatwany opis problemu :)
Może odpisuja za późno, ale może ktoś innym kiedys skorzystra. :)
Takich złożonych efektów, nie dodaje się za pomocą plików pro, ona służą do wykonywania animacji "niosących" czar, czyli np. jakaś kula magicznej energii uderzająca we wroga, animacje dużych wybuchów, animacje chmur. Część pozycji w projectl.ids jest hardcoded (tak może być z numerem 255, ale nie chce mi się sprawedzać :P ).
To co chcesz zrobić robi się za pomocą plików vvc, bamów i efektu "Play 3D Effect [215]". Robisz tak aby animacje były odgrywane w tym samym czasie, ale jedna nad drugą, poprzez bawienie się współrzędnymi x, y i z.
Co do problemu Kinskiego to ja się z czymś takim nie spotkałem (a raczej spotkałem, ale nie przy obrazkach do przedmiotów tylko elementach gui, wtedy błąd się brał źle ustawionego koloru przezroczystości w mosach), ale niestety najlepiej przy tworzeniu bamów posługiwać się jednocześnie 3 narzędziami: bamworkshopem1, bamworkshopem2 i DLTCEP.
Ja BW2 używam do stworzenia pliku bam i zaimportowania do niego klatek (przy wykorzystaniu "convert to unpaletted" i "convert to paletted").
Następnie w dltcep odpowiednio kolejkuje klatki, ustawiam ich współrzędne, usuwam zbędne, rozmieszczam w odpowiednich sekwencjach, używam funkcji "check".
Jeżeli jest potrzebna jakaś edycja graficzna to robię ją w BW1 i wtedy jeszcze raz na koniec sprawdzam plik w DLTCEP.
przy tworzeniu bamów posługiwać się jednocześnie 3 narzędziami: bamworkshopem1, bamworkshopem2 i DLTCEP.
Mniej więcej tak robię. Samego BAMa robię BW1, zapisuję skompresowanego i później edytuję BW2. Do tworzenia (tworzenie sekwencji i import klatek) nie używam BW2, bo zdarzają się różne hece, m.in. przy używaniu opcji convert to un/palleted potrafi całkowicie rozwalić grafikę na piksele, szczególnie przy wcześniejszym przeklejaniu/wklejaniu elementów. Tak czy inaczej, widzę, że trzeba będzie pokombinować, a najlepiej "zrób to sam" i "ucz się na błędach" ;-)
Oczywiście, wszystko kieruje się do tego, żeby użyć DLTCP... Skończyli by BW2 i problem by zniknął... Żeby używać 3-4 programów do stworzenia BAMA, do czego to doszło...
Jeszcze jedna sprawa - przy tworzeniu klatek (BMP), jakie ma znaczenie ich rozdzielczość - czym się będą różnić wyświetlane klatki (w grze) 72 dpi, a 96 czy 150 dpi?
Jakby ktoś pytał - ta Szata powyżej pochodzi z Diablo 1.
...nie używam BW2, bo zdarzają się różne hece, m.in. przy używaniu opcji convert to un/palleted potrafi całkowicie rozwalić grafikę na piksele, szczególnie przy wcześniejszym przeklejaniu/wklejaniu elementów.
"convert" z mojego doświadczenia sprawdza się tylko przy tworzeniu bamów, zanim się go jeszcze zapisze choćby jeden raz. Jeśli się później próbuje tego używać do edycji to wszystko się chrzani. Czasami też niektóre pliki po prostu nie daj ą się poprawnie zaimportować z niewiadomych przyczyn, na szczęście zdarza się to rzadko.
Kinski napisał/a:
Jeszcze jedna sprawa - przy tworzeniu klatek (BMP), jakie ma znaczenie ich rozdzielczość - czym się będą różnić wyświetlane klatki (w grze) 72 dpi, a 96 czy 150 dpi?
DPI ma znaczenie tylko przy drukowaniu obrazków, w modowaniu jet to nic nie znaczy.
Kinski napisał/a:
widzę, że trzeba będzie pokombinować, a najlepiej "zrób to sam" i "ucz się na błędach" ;-)
To co chcesz zrobić robi się za pomocą plików vvc, bamów i efektu "Play 3D Effect [215]". Robisz tak aby animacje były odgrywane w tym samym czasie, ale jedna nad drugą, poprzez bawienie się współrzędnymi x, y i z.
Heh, a ja się bawiłem z .pro ... Na stworzenie kolejnego .vvc nie wpadłem, w ogóle raczej mało zajmuję się kwestiami graficznymi :]
Ale do którejś wersji się przyda. I lepiej późno, niż wcale. Dzięki ;)
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum