Hallo,
Erklärung:
Die Funktion d.spawn_mob_ac_dir(vnum, x, y, dir) spawnt eine Instanz 'vnum' in den lokalen Koordinaten 'x' und 'y' mit der Richtung 'dir'.
Der Datentyp von 'dir' in der folgenden Funktion ist BYTE => unsigned char => Wertebereich geht von 0 - 255. Möglich für die Variable dir wären 0 - 360 Grad.
Gibt man nun einen Wert zwischen 255 und 360 (Grad) an, dann wird der Wertebereich des Datentyps 'unsigned char' überschritten (Overflow).
Beim FIX stelle ich den Datentyp dieser Variable auf DWORD => typedef für 'unsigned int' => Ganz viel größere Werte (0 bis etwa 4.3 Milliarden).
Für mehr Infos: Bitte melden Sie sich an, um diesen Link zu sehen.
Tutorial zum Fixxen:
game/src/questlua_dungeon.cpp:
Suche folgende Zeile:
und ersetze sie mit:
in der Funktion:
War mir nur grad aufgefallen, außer mir nutzt die Funktion wahrscheinlich eh keiner. Aber falls doch: Gerngeschehen.
MfG