[G1] Co zrobić by atak nie przerywał animacji 6228 9

O temacie

Autor Revoke

Zaczęty 11.09.2016 roku

Wyświetleń 6228

Odpowiedzi 9

Revoke

Revoke

Użytkownicy
posty62
Propsy8
Profesjabrak
  • Użytkownicy
Chciałbym po prostu wiedzieć od czego zależy czy animacja jest przerywana lub odtwarzana do samego końca (bo np. animacja poruszania się nie jest przerywana kiedy ktoś nam zdzieli w plecy). Da się to jakoś zmodyfikować w mdsie?

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
Raczej sprawa engine. Ale nie jestem pewny.
 


Revoke

Revoke

Użytkownicy
posty62
Propsy8
Profesjabrak
  • Użytkownicy
A dałoby się to może Ikarusem zrobić?

Splash

Splash

Moderator
posty4208
Propsy3410
ProfesjaNierób
  • Moderator
Samym Ikarusem byłoby trochę więcej pieprzenia się. Potrzebne będzie jeszcze LeGo. Na niemieckim forum znalazłem potrzebną funkcję, ale była ona do Gothica 2. Wystarczyło tylko zmienić adres i działa.
func void DisableDmgAnimation ()
{
EAX = 0;
};

To trzeba umieścić w funkcjach INIT_NazwaŚwiata:
HookEngineF (7609592, 9, DisableDmgAnimation);
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Revoke

Revoke

Użytkownicy
posty62
Propsy8
Profesjabrak
  • Użytkownicy
Działa, dzięki Splash :ok:

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
Gods be praised
 


IceMan

IceMan

Użytkownicy
posty68
Propsy10
Profesjabrak
  • Użytkownicy
@Splash
Sorry za odświeżenie tematu, interesuje mnie jak osiągnąć efekt taki jak w CZ czyli brak przerywania ataku trolla. Powyższe rozwiązanie daje taki efekt, że animacja otrzymanego obrażenia nie jest odtwarzana ale atak jest przerywany czyli np. troll ma przerwany atak i ponawia tą animacje od początku = easy win.

Edit: nie wystarczyłby adres z silnika gry i hook i tam dać coś podobnego żeby nie przerywał ataku?
 

Splash

Splash

Moderator
posty4208
Propsy3410
ProfesjaNierób
  • Moderator
Ten skrypt zeruje rejestr przechowujący wskaźnik do obiektu zCModel po przypisaniu go. Na początku funkcja sprawdza czy wskaźnik jest prawidłowy. Jeśli nie, to funkcja jest przerywana. Tak więc animacja nie powinna być przerywana, gdyż funkcje takie jak ClearAIQueue, Interrupt i SetBodyState nie powinny być wywoływane.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

IceMan

IceMan

Użytkownicy
posty68
Propsy10
Profesjabrak
  • Użytkownicy
Jeśli chodzi o bohatera (gracza) to faktycznie atak nie jest przerywany, natomiast npc mają przerwany atak i wykonują akcję w zależności od FAI np. troll próbuje zaatakować jeszcze raz od nowa a ścierwojad wykonuje parade. Mimo że animacja otrzymanego obrażenia nie jest odpalana to odczuwają jakby dostali. Sprawdzałem to nawet na czystym Gothicu, bo pomyślałem że jakiś inny hook może to psuć, ale niestety nie.
Chyba musi być coś jeszcze co odpowiada za przekazywanie info że animacja zostaje przerwana, a może samo zadanie obrażenia?

Na WoGu było coś takiego i działa:
https://forum.worldofplayers.de/forum/threads/1495001-Scriptsammlung-ScriptBin/page5?p=26066214&viewfull=1#post26066214

Więc jednak Interrupt występował.
 

Splash

Splash

Moderator
posty4208
Propsy3410
ProfesjaNierób
  • Moderator
Prawdopodobnie te funkcje różnią się od siebie, gdyż w Gothic 2 wystarczy ustawić npc bodyStateInterruptableOverride na true.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie


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