Tawerna Bibliotekarzy Strona Główna
RSS Panel

Poprzedni temat «» Następny temat
Imoen
Autor Wiadomość
Amon 
Moderator


Wysłany: 2012-03-22, 00:09   Imoen

dobra, jestem troche leniwy i nie chce mi sie tego googlać po angielsku, ew moglby mnie gdzies ktos odeslac dzie moge o to spytac:

imoen w bg1 i bgt najpierw rozmawia z nami jak kazdy inny BN w canclekeep, nastepnie pojawia sie na lokacji ze zwlokami goriona i wtedy mozna ja przylaczyc.

i to jest dokladnie co chce zrobic. czyli:
rozmawiam z jakims cre w candlekeep jak z bn'em a nasepnie pojawia sie on razem i imoen i moge go wtedy przylaczyc.

interesuje mnie jak ten skrypt jest zrobiony i gdzie go znalezc, np nie ma zadnego cre imoen na lokacji z zabitym gorionem a i tak sie ona tam pojawia.


gdy tworze przylanczalego npc w candlekeep to po rozmowie z gorionem znika i pojawia sie automatycznie w druzynie po jego smierci (ale przed podejsciem imoen) - w sumie moze byc ale wolal bym sposob imoen.

oj
_________________
Our obstacles are severe, but they are known to us.
 
 
Zed Nocear 


Wysłany: 2012-03-23, 19:52   

To jest pewna sztuczka enginu. Tak na prawdę nie ma ciągłości postaci i są dwa różne pliki CRE. IMOEN.CRE z Candlekeep jest zwykłym stworzeniem przypisanym do lokacji (w modzie przywołasz CreateCreature() ze skryptu lokacji), natomiast lokacja i współrzędne IMOEN1.CRE wpisane są do BALDUR.GAM, dzięki czemu może się ona przenosić między lokacjami bez wysypania gry. Oczywiście mają one przypisane inne pliki dialogów i skryptów, ale nie jest to obowiązkowe. Takie rozwiązanie wymusza BG1, bo postać w drużynie nie mająca wpisu w BALDUR.GAM wywala grę przy próbie wyjścia z lokacji.

W enginie BG2 CRE przyłączony do drużyny automatycznie wpisywany jest do BALDUR.GAM, jeśli go tam jeszcze nie ma. W BGT możesz więc NPCa przywołać raz za pomocą CreateCreature(), pogada z postacią gracza i znika, a potem na innej lokacji przywołać ponownie jego kopię instrukcją CreateCreature() i przez dialog przyłączyć do drużyny. Może być nawet jeden plik dialogu, jeśli dobrze ustawisz warunki rozpoczęcia dialogów na obu lokacjach.
_________________
"There are also some elements of the game that are not <<broken>> but could do with a tweak to make them just a little better in some way."
 
 
Amon 
Moderator


Wysłany: 2012-03-23, 21:11   

Dzieki, o tym ze sa rozne pliki cre juz sie dowiedzialem przegladajac zasoby gry i zrobilem tak jak powiedziales. tak wiec jeden cre ma tylko dialog a drugi na lokacji za candlekeep jest normalnym npc.
Moze moglbys mi za to poradzic w jaki sposob zapobiec istnieniu pierwszego cre (tego z candlekeep) gdy wroce w pozniejszym rozdziale z moim npc w druzynie? tak zeby nie bylo blizniakow...
dzieki
_________________
Our obstacles are severe, but they are known to us.
 
 
Zed Nocear 


Wysłany: 2012-03-23, 22:07   

Jeśli nie odpowiada Ci wariant, że postać znika na końcu rozmowy przy pomocy EscapeArea(), to można ją też usunąć przy ponownej wizycie ze skryptu lokacji instrukcją ActionOverride("NPCScriptName",DestroySelf()), tylko dobrze trzeba ustawić warunki bloku. Ale w przypadku głównej lokacji Candlekeep nawet to nie jest potrzebne, bo Candlekeep w prologu to AR2600.ARE, a Candlekeep w rozdziale 6. to AR2626.ARE. W przypadku podlokacji cześć jest wspólna (np. gospoda Winthropa), część zaś to tak samo dwie różne kopie.
_________________
"There are also some elements of the game that are not <<broken>> but could do with a tweak to make them just a little better in some way."
 
 
Amon 
Moderator


Wysłany: 2012-03-23, 22:41   

hm, no wlasnie w gospodzie owy cre stoi. I owszem, pomysl ze znikaniem na koncu ozmowy chcialem zastosowac na poczatku ale w trakcie rozbudowywania pomyslu z niego zrezynowalem, tak wiec pewnie go przestawie na zewnatrzvalbo moze do koszar... czemu wczesniej na to nie wpadlem, tam nie da sie wejsc pozniej!

W trakcie tworzenia tego modziku zauwazylem ze "czasami" po odloczeniu npc nie pojawia sie moj djalog tylko domysny dla gry wieloosobowej. Udalo mi sie tego pozbyc kiedy nazwalem plik cre dokladnie tak samo jak plik *.d. czy zawsze tak jest? nie zeby mi to przeszkadzalo bo nie zamierzam tworzyc roznych wersji o roznym XP jak to jest z domyslnymi npc, przynajmniej teraz nie jest to w mojej swerze zainteresowan.

inna refleksja to:
czy dzieki poleceniu append_top/bottom mozna wcisnac nową linie pod blok ktory konczy dialog?

Chcialem sprawic ze gdy podchodze do imoen w candlekeep poraz drugi (po jej dialogu w czasie ktorego podchodzi do charname), moge wymienic z nia pae słów. niestety jej drugi dialog to tylko cos w stylu "gadaj szybko z gorionem" i koniec rozmowy.

tak wiec czy moge zmodyfikowac ten fragment czy musze podmienic pliki.

a jesli podmienic pliki to czy mozna podmienic tylko orginalny .dlg tego cre czy musze podmienic calego cre z nowym dialogiem?
_________________
Our obstacles are severe, but they are known to us.
 
 
Zed Nocear 


Wysłany: 2012-03-23, 23:35   

Co do pierwszego problemu, to może stworzyłeś NPCa na bazie wykreowanej postaci do gry wieloosobowej? Nie mam pojęcia. Jak się weźmie na bazę innego CRE z gry, to nie powinno być takich problemów. Myślę, że to kwestia ustawienia tych tajemniczych flag w CRE, z których większości znaczenie pozostaje nieznane.

W przypadku dialogów można tylko doklejać nowe bloki na końcu instrukcją "APPEND", ale nie jest to tragedia, bo kolejność sprawdzania warunków można zmieniać, zmieniając wagi bloków. Np. w BG1 jak dodasz blok do Join-dialogu Alory instrukcją:
Cytat:
APPEND ~ALORAJ~
IF WEIGHT #-1 ~GlobalLT("Z!PartyFeeling_Alora","GLOBAL",10)~ THEN BEGIN PI_AL#10
SAY ~Chyba czas się rozdzielić, choć ciekawią mnie zawartości waszych sakiewek. Nieważne. Zrobiło się coś nudno. Muszę zajrzeć w miejsca, w które wam nie po drodze.~
IF ~~ THEN DO ~LeaveParty() TakePartyGold(1500) EscapeArea()~ EXIT
END
END
to "WEIGHT #-1" sprawi, że blok, mimo, że jest na końcu, będzie sprawdzany jako pierwszy w dialogu.
_________________
"There are also some elements of the game that are not <<broken>> but could do with a tweak to make them just a little better in some way."
 
 
Amon 
Moderator


Wysłany: 2012-03-24, 17:58   

WEIGHT #-1 jest super! wielkie dzieki :)

nie tylko mozna wymusic pojawianie sie jednego nowego bloku, ale w ogole wielu nowych blokow w jednym dialogu

bo np WEIGHT #-1 ~NumTimesTalkedTo(0) pojawi sie pierwsze a WEIGHT #-1 ~NumTimesTalkedToGT(0) jako kolejne

uzbrojony w taka wiedze przerobie cale candlekeep

dzieki
_________________
Our obstacles are severe, but they are known to us.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme made by Aiglon von Lupus based on subSilver