chodzenie/stanie z pochodnią w ręku (gothic1) 7562 11

O temacie

Autor pawbuj

Zaczęty 5.08.2009 roku

Wyświetleń 7562

Odpowiedzi 11

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
temat wałkuję długo. jak zrobić aby nps stali/chodzili z zapaloną pochodnią. Funkcję ai-useitem albo equpitem etc. w pochodnią w inventory nie skutkują. proszę o propozycje. :P
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Spróbuj używać alternatywnych instance pochodni. Są odrębne dla palącej się, zapalonej, wypalonej. Zerknij też do skryptu postaci testowych, kilka z nich, m.in. "L5"  po pojawieniu się zaczyna numer z połykaniem ognia, a do tego też używa się pochodni. Znane mi instance pochodni to

itlstorch
itlstorchburning   /* to najbardziej prawdopodobne */
itlstorchburned
itlstorchfirespit

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
wszystkie te instance pochodni nic nie dają w przypadku uzycia przez npc innych niż główny bohater.
dział tylko pochodnia, z którą tańczy model z in extremo.

mam skrypt, niestety nie działa,a oto on:

unc void ZS_GuardNight ()
{
PrintDebugNpc (PD_ZS_FRAME,"ZS_GuardNight");

GuardPerception ();
AI_StandUp (self);
AI_SetWalkmode (self,NPC_WALK);

CreateInvItem (self, ItLsTorchBurning);
AI_UseItemToState (self, ItLsTorchBurning, 5);
AI_UseItemToState (self, ItLsTorchBurning, -1);
EquipItem (self, ItLsTorchBurning);
próbowałem wielu kombinacji, ale bez rezultatu
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Porównałem skrypty pochodni zwykłej i tej do żonglowania. Okazało się, że w odróżnieniu od całej reszty zwykłych "używalnych" przedmiotów, pochodnia nie ma określonego parametru "scemeName". Wobec tego nikt nie powinien móc jej używać. Nie mam pojęcia jak hero to robi. Trzeba by było dodać w skrypcie parametr "scemeName" i określić jedną z możliwych scen do wyświetlenia. Niestety wszystkie które znalazłem umieszczają ją w "dłoni" beziego, wykonuja prosty krótki ruch i od razu chowają z powrotem. Trzeba by jakoś zmusić grę aby po wyciągnięciu pochodni została ona już w ręce. Podejrzewam ze cały sposób działania pochodni został jakoś zaprogramowany w pliku ZEN, bo mimo ze kazałem wyszukać wszystkie stringi "torch" w katalogu scripts, to nie znalazło mi żadnego specjalnego skryptu jej obsługi.

Trzeba zrobić nową pochodnię specjalnie przystosowaną dla NPC.
Chyba najlepszym rozwiązaniem byłoby skopiowanie systemu noszenia tarcz i zbroi oraz użycia modelu pochodni jako właśnie takiej dodatkowej tarczy. Wtedy zamiast krótkiego "użycia", jak ma to miejsce przy zwykłych interaktywnych przedmiotach, pochodnia była by "nałożona" aż do wydania polecenia ściągnięcia. Aby postaci niosąc pochodnię nie trzymałyby rąk prosto w dół trzeba by dodać funkcję on_equip z linijką:
Mdl_ApplyOverlayMds (self,"Humans_Torch.mds");oraz analogiczną funkcję on_unEquip z
Mdl_RemoveOverlayMds (self,"Humans_Torch.mds");Kolejny problem, to zachowanie NPC kiedy musi wyciągnąć prawdziwą broń. Pochodnia powinna zostać upuszczona/schowana do ekwipunku, ale do tego trzeba by zrobić osobny skrypt uaktywniany w  momencie wyciągania broni. Ostatnim rozwiązaniem było by potraktowanie pochodni właśnie jako broni a nie jako tarczy, ale wtedy dani NPC musieli by chodzić cały czas z wyciągniętą "bronią" i walczyć pochodnią. Niestety nie chce się wyświetlić jako założona broń, jest jakby niewidzialna (pamiętam że ktoś na forum już zajmował się tym problemem).  Jeśli wymyślisz coś więcej daj znać, bo sam od dawna szukam skutecznego rozwiązania. Cała sprawa jest nieco dziwna, bo mimo ze rzeczywiście nie da się normalnie dać pochodni NPCom, to jednak istnieją nawet animacja noszenia jej przez orków.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
wiele godzin przy tym straciłem inic. myslę, że do tej pory nie udało sie tego nikomu zrobić, przynajmniej oficjalnie, a w suemi skoro bezio może wyjąć pochodnię to dlaczego inni nie mogą- trochę to nie ma sensu
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Chyba jednak jest to możliwe. Do niedawna wydawało mi się też że niemożliwa  jest też walka pochodnią, a jednak z filmików n YT wynika że w GWW udało im się to osiągnąć. Można by po prostu dodać taką pochodnię do walczenia i skrypt który nocą podmieniałby normalne bronie strażników na pochodnie, a potem przywracał zwykłe. Jednak nie mam pojęcia jak załadowali ZEN pochodni jako broń, mi po prostu się nie pokazywała założona.

Baardzo dokładnie zbadałem mechanizm działania pochodni i doszedłem do wniosku że nie ma on nic wspólnego ze skryptami, jest wbudowany w sam silnik gry, nawet w G2 pochodnie muszą mieć tą samą instance co w G1 mimo że u większości przedmiotów zostały one zmienione i uporządkowane. Sam skrypt przedmiotu pochodnia nie zawiera żadnych danych, tak na prawdę jako pochodni można użyć dowolnego przedmiotu któremu jako flags damy ITEM_torch. Gra i tak nie użyje tak na prawdę jego, sama podmieni mesh na ZEN pochodni zapalonej mimo ze nigdzie nie jest to zaprogramowane. Jednak jest pewne rozwiązanie, podobne do tego o którym wcześniej wspominałem. Grałem w GWW Demo i zobaczyłem że zrobiono tam pochodnię-broń która jest normalnie noszona przy pasie, a kiedy ją wyciągniemy, zapala się i normalnie oświetla otoczenie. Podejrzewam że użyto tam innego mechanizmu niż w zwykłej pochodni (ZEN z efektem). Według mnie wykorzystano tam zwyczajny mesh niepalącej się pochodni, dodano w Spacerze trigger efektu ognia oraz jakiś aktywator w momencie wyciągnięcia, niestety nie mam pojęcia jak wykonano to ostatnie. Chyba sam spytam się na PW Xardasa17, w końcu i tak z tego zrezygnował w pełnej wersji moda, może zgodzi się wytłumaczyć mechanizm.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
daj znac jak będziesz wiedział więcej - w międzyczasie ja pracuję nad innym projektem.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Chyba jednak nic z tego. Kontaktowałem się z Xardasem17, ale powiedział że nie zrezygnował z tego pomysłu i że w tej sprawie nie pomoże. Z tego wnioskuję ze rozwiązanie musi być naprawdę trudne i on włożył w to tak dużo pracy że nie chce tak po prostu dzielić się tą wiedzą z innymi. Ja mam pewne ogólne podejrzenia co do sposobu działania takiej pochodni, jednak wymagałyby one obsługi skryptów bardziej zaawansowanej niż moja obecna oraz wykorzystania Spacera.
Mianowicie, uważam że można by było zrobić broń która jako visual ma ustawiony zwykły mesh niepalącej się pochodni. Dodało by się coś, co na jej końcu dodawało by efekt ognia i oświetlenia terenu, chyba ScriptTrigger,  ustawia się to w pliku świata  Spacerem. Normalnie byłby on nieaktywny. Potem trzeba by było zrobić jakąś pętlę lub tick tocka który sprawdzałby czy wyciągnięta (nie tylko założona) broń to pochodnia i wtedy aktywowałby efekt ognia. Nie jestem też pewien czy inni NPC nie wkurzali by się na strażników że cały czas łażą z wyciągniętą bronią, ale skoro na "treningach" tak nie jest, to tu chyba też nie będzie. Jeśli ktokolwiek wie jak wykonać skrypty które opisałem poniżej (chodzi głównie o efekt ognia i oświetlenia terenu) proszę o pomoc. Próbowałem już korzystać z tutoriala Kazzmira dotyczącego tworzenia pliku ZEN zawierającego mesh obiektu oraz pfx ognia, ale gra w ogóle nie chce się z takim czymś włączć. Chodzi mi o efekt podobny jak TU ale dodatkowo oświetlający teren i widoczny na końcu pochodni nie jej początku.

Zysk

Zysk

Użytkownicy
posty606
Propsy451
  • Użytkownicy
1. Chyba jednak nic z tego. Kontaktowałem się z Xardasem17, ale powiedział że nie zrezygnował z tego pomysłu i że w tej sprawie nie pomoże. Z tego wnioskuję ze rozwiązanie musi być naprawdę trudne i on włożył w to tak dużo pracy że nie chce tak po prostu dzielić się tą wiedzą z innymi.
2. Ja mam pewne ogólne podejrzenia co do sposobu działania takiej pochodni...
3. Nie jestem też pewien czy inni NPC nie wkurzali by się na strażników że cały czas łażą z wyciągniętą bronią.
4. Jeśli ktokolwiek wie jak wykonać skrypty które opisałem poniżej (chodzi głównie o efekt ognia i oświetlenia terenu) proszę o pomoc.
5.tutoriala Kazzmira
6.TU ale dodatkowo oświetlający teren i widoczny na końcu pochodni nie jej początku.
1. To nie świadczy o trudności rozwiązania, tylko o tym, że Xardas17 chce mieć je na wyłączność.
2. Słuszne.
3. Reagują chyba tylko na gracza, nawet jeśli nie, to łatwo to naprawić.
4. Zgodnie z tutorialem z punktu 6.
5. kazzmir nigdy nie pisał tutoriali o skryptach i raczej nigdy o Spacerze, skopiował trochę ze starego forum, tylko autorów czasem pogubił.
6. No to trzeba pewnie poeksperymentować z VisualFXem, strzelałbym w atrybuty emTrjTargetElev (i resztę emTrjTarget*) i lightPresetname.

ale ostrzegam, że ja nigdy się efektami nie zajmowałem i możliwe, że trzeba to zrobić zupełnie innaczej.
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
biorąc na logikę , rozwiązanie nie powinno byc tak skomplikowane jak piszecie.
skoro bezimienny może korzystać z pochodni, to pozostali npc też powinni. myślę, że jest to kwestią ustawien w instance pochodni.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Właśnie że nie. Baardzo dokładnie analizowałem skrypt pochodni, używać jej może tylko aktywny player, bo została ona jakoś wręcz wprogramowana w silnik gry, ustawienia w skrypcie pochodni nie mają tu ŻADNEGO znaczenia. Działanie pochodni jest inicjowane za pomocą specjalnych dodatkowych atrybutów flags: ITEM_BURN i ITEM_TORCH. Każdy przedmiot któremu je nadasz zostanie rozpoznany i użyty jako pochodnia, niezależnie jakie miałby ustawienia, gra sama podmieni go na prawdziwą zapaloną pochodnię i odpowiednio zmieni oryginalny mesh na ZEN płonącej pochodni. Nie mamy na jej zachowanie wpływu, pochodnia nie ma ani parametru scemename ani nawet on_state. Gdyby jej funkcjonowanie opierało się tylko na skryptach, nie miała by prawa działać.

Można albo robić nową inaczej działającą pochodnię (trudne ale możliwe) albo przerabiać tą, ale wymaga to grzebania przynajmniej w silniku skryptów. Ja doszedłem do wniosku że chyba dam sobie spokój z tym, bo w silniku grzebać nie będę, a robienie nowej wymagało by dość zaawansowanego użycia Spacera, z którym ja strasznie się nie lubię. Jeśli sam chcesz kombinować patrz mój poprzedni post i odpowiedź Zyska.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
powiem szczerze, ze skoro to tak arcytrudne to sobie niestety odpusczę
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry