hab den fehler mal genauer unter die lupe genommen und festgestellt, dass StopPlayer in MovePlayerEx den fehler auslöst
function MovePlayerEx (int x, int y, int direct){
// Move the player character to x,y coords, waiting until he/she gets there,
// but allowing to cancel the action by pressing a mouse button.
if (GetGlobalInt (2) > 0)
{
int cursorspritenumber = 16,
blankcursorspritenumber = 26;
ChangeCursorGraphic (7, cursorspritenumber);
GScancelable = 0;
if (direct == 0) MoveCharacter (GetPlayerCharacter (), x, y);
else MoveCharacterDirect (GetPlayerCharacter (), x, y);
// wait for release of mouse button
while (character [GetPlayerCharacter ()].walking && ((IsButtonDown (LEFT) == 1) || (IsButtonDown (RIGHT) == 1)))
{
GScancelable = RepExec_Hunting ();
Wait (1);
RefreshMouse ();
CheckDefaultAction ();
}
// abort moving on new mouse down
while (character [GetPlayerCharacter ()].walking)
{
GScancelable = RepExec_Hunting ();
if (IsButtonDown (LEFT) == 1 && (GetGUIAt (mouse.x, mouse.y) < 0 || GetInvAt (mouse.x, mouse.y) >= 0))
{
StopMoving (GetPlayerCharacter ());
GScancelable = 1;
}
else if (IsButtonDown (RIGHT) == 1 && (GetGUIAt (mouse.x, mouse.y) < 0 || GetInvAt (mouse.x, mouse.y) >= 0))
{
StopMoving (GetPlayerCharacter ()); // <== HIER TRITT DER FEHLER AUF!!!
GScancelable = 2;
}
else
{
Wait (1);
RefreshMouse ();
CheckDefaultAction ();
}
}
ChangeCursorGraphic (7, blankcursorspritenumber);
if (GScancelable == 0) return 1;
else return 0;
}
else return 0;
}