MTI Crash

05/12/2014 13:58 Drabur#1
Hey,

gibt ja diesen Crash mit dem MTI Swim.

Wird das noch auf vielen Server ausgenutzt? Oder wäre ein Fix zu releasen useless?
05/12/2014 15:31 TrøublêMakêr#2
Es gibt weitere Animationen die nicht vorhanden sind. Damit kann man genauso crashen
05/12/2014 21:46 Drabur#3
Ja das ist mir klar. Mein Fix behebt halt alle.
05/12/2014 21:56 Sedrika#4
Wehe du released es, nur dödel kommen nicht darauf warum es crashed...
05/12/2014 22:01 Drabur#5
Joar der Fix is wirklich mehr als Easy!!!
05/14/2014 12:17 TrøublêMakêr#6
darf ich mal raten ...

Du hast bestimmt wieder ein Return rein gepackt. Mehr auch nicht.
05/14/2014 15:44 FlyCraft.TobiLap#7
Quote:
Originally Posted by Drabur View Post
Joar der Fix is wirklich mehr als Easy!!!
Sagt der der den fix nichmal selbst rausgefunden hat .

Wie du dauernd bei mir gegeiert hast damit ich dir den fix gegeben hab,
da bis vor kurzem nur Markus und ich den Crash verursachen konnten weil wir die einzigen waren die wussten wies geht(ist jetz glaub auch schon mehr als 1 jahr her).

Ist eh fast überall fixed da ichs an paar leute weitergegeben hab die paar Clients crashen wollten.

Naja, have fun mr procoder Velmore
05/14/2014 21:47 Drabur#8
Tobi hab den Fix selber gemacht und hab keinen Try and catch rotz.
05/14/2014 22:32 Mognakor#9
Kann mir jemand sagen wie der Crash funzt bzw. einen Hinweiß für den Fix geben?
05/14/2014 23:11 TrøublêMakêr#10
Man nimmt die ID von einem Motion MTI_RUN und ändert es im CE zu MTI_SWIM. Die Animation wird ausgeführt, jedoch wenn es keine gibt, bekommt jeder ein Client crash
05/15/2014 00:17 Mognakor#11
Nachdem ich mir das ganze mal grob angeschaut hab, eine kurze Frage um zu sehen ob ich alles richtig verstehe.


Der Bug funktioniert deshalb weil in der mdlDyna diese Zeile steht:
"GenSwim" MTI_SWIM
Da es keine Datei mvr_MI_MALE_GenSwim.ani gibt wird das ganze auch nicht im Source festgestellt (ModelMng.cpp CModelMng::MakeMotionName).
Code:
if( lpszMotion[0] == 0 )
{
	dwMotion = MTI_STAND;
	lpszMotion = lpModelElem->GetMotion( dwMotion ); 
}

Sollte es nicht völlig ausreichen die entsprechenden Zeilen einfach im Ressource zu entfernen? (Man könnte sich ja einen Parser bauen der solche fehlenden Dateien aufspürt)
05/15/2014 11:57 Drabur#12
ja geht auch nur sind das ziemlich viele.
05/16/2014 07:39 *~Valvatorez~*#13
Eine X beliebige Animation kopieren und zu Swim umbenennen.
05/16/2014 07:46 420twisted1#14
Quote:
Originally Posted by Chaos_Member View Post
Eine X beliebige Animation kopieren und zu Swim umbenennen.
I guess you don't understand
Code:
if( lpszMotion[0] == 0 )
{
	dwMotion = MTI_STAND;
	lpszMotion = lpModelElem->GetMotion( dwMotion ); 
}
means if the file does not exist

Code:
dwMotion = MTI_STAND;
and

Code:
lpszMotion = lpModelElem->GetMotion( dwMotion );
is the file that can't be found.
05/16/2014 10:08 Drabur#15
Quote:
Originally Posted by Chaos_Member View Post
Eine X beliebige Animation kopieren und zu Swim umbenennen.
Nicht ganz so sinnvoll, da es einige Animationen gibt, wo der Client Crasht.