Modding Gothica > Skrypty

Zmiana pancerza zależnie od roździału

(1/2) > >>

Neck:
Szukałem podobnego tematu na forum lecz niestety nic nie znalazłem, tak jak w temacie chciałbym zrobić aby z roździałem kilku NPC'om się zmieniał pancerz, próbowałem to zrobić poprzez  rutynę która zmienia się w danym roździale dodając do niej:    CreateInvItems(self,ITAR_SLD_L,1);
AI_EquipArmor(self,ITAR_SLD_L);

Lecz tym sposobem pancerz npctowi zmienia się tylko wtedy gdy zmienimy roździał stojąc obok niego, gdy jesteśmy daleko to pancerz mu się nie zmienia a jedynie dodaje do ekwipunku. Moglibyście może podpowiedzieć w jaki sposób mogę to zrobić aby zadziałało poprawnie?

outlander:
Spróbuj dodać te linijki do pliku z rozdziałami. Nie wiem, którą część moddujesz, ale w G1 jest to w pliku scripts\Content\Story\CHAPTERS\B_Kapitelwechsel.d
Pamiętaj, żeby odwołać się bezpośrednio do instancji npc (tj. zastąpić self kodem na npc).

frN:
Ale gdy npc jest poza zasięgiem to chyba nie wykonuje wtedy żadnych akcji z AI i właśnie przez to to nie działa?
Można użyć Mdl_SetVisualBody i wtedy postać ubiera zbroję nawet jeśli jest poza zasięgiem, ale w wielu przypadkach mimo tego, że posiada zbroję założoną (w ekwipunku jest zaznaczona jako aktywna), to wizualnie stoi w samych gaciach i trzeba zapisać/wczytać grę.
Chociaż wydaje mi się, że i na to istniał jakiś fix.
Nie znam się za bardzo, więc mogę się mylić.

Przykład zmiany na podstawie Laresa w Gothic 2, zakłada mu szatę maga

--- Kod: ---Mdl_SetVisualBody(LARES, "hum_body_Naked0", BODYTEX_N, 0 ,"Hum_Head_Thief", FACE_N_LARES, 0, itar_kdf_l);
--- Koniec kodu ---

Nie wiem jak to wygląda w G1.

//EDIT
Można przerobić funkcję B_RefreshAtInsert(), żeby postać przy spawnie zdejmowała i zakładała ponownie zbroję i razem z Mdl_SetVisualBody powinno dać oczekiwany efekt (można wykorzystać jakiś wolny aivar, żeby sprawdzić czy postać wymaga odświeżenia zbroi)

overdriven:

--- Cytuj ---Można użyć Mdl_SetVisualBody i wtedy postać ubiera zbroję nawet jeśli jest poza zasięgiem, ale w wielu przypadkach mimo tego, że posiada zbroję założoną (w ekwipunku jest zaznaczona jako aktywna), to wizualnie stoi w samych gaciach i trzeba zapisać/wczytać grę.
--- Koniec cytatu ---
Też mam z tym problem. Nawet nie wystarczy zapisać/wczytać gry, trzeba jeszcze zapisać/wczytać grę mając w zasięgu widzenia danego NPCa.

Naprawdę nie ma na to lepszego rozwiązania?

Wolałbym uniknąć robienia tego w B_RefreshAtInsert() :/ Zawsze to dodatkowy zbędny kod który będzie się odpalał za każdym razem gdy wyrenderuje się napotkany NPC (nawet jeśli będziemy sprawdzać czy to interesujący nas NPC), więc niezbyt to optymalne.

Simon Said:
A nie lepiej zrobić nowego NPC, który będzie miał nowy pancerz?

Nawigacja

[0] Indeks wiadomości

[#] Następna strona

Idź do wersji pełnej