das semikolon ist da am Ende der if-anweisung auf jeden Fall fehl am Platz, damit beendest du die if-Anweisung und mehrere Fehlermeldungen sind die Folge.
Semikolon am Ende von 3097 also einmal auf jeden Fall weg.
dann versuch mal den Teil rauslöschen
if (type == 2 || type == 6)
{
if ( player.Room != GetCharacterAt (mouse.x, mouse.y).Room )
{
player.Say("Character nicht im selben Raum %d %d\n", GetCharacterAt (mouse.x, mouse.y).Room, GetCharacterAt (mouse.x, mouse.y).ID);
}
else
{
FaceCharacter (GetPlayerCharacter (), GetCharacterAt (mouse.x, mouse.y));
}
}
und schau ob ohne diesen Abschnitt alles ordnungsgemäss kompiliert wird,
damit du dir sicher sein kannst, dass das Problem auch von diesem Bereich herrührt und nicht von wo anders kommt.
edit: wenn ich mir das so anschaue, dann bezweifle ich dass dieser code je funktioniert haben könnte.
GetCharacterAt (mouse.x, mouse.y) .Room <- das ist mir neu
um es mit bernards worten auszudrücken - "Das klappt so nicht."