Mal sehen, ob ich das richtig verstanden habe:
Der Spieler ist in Raum Y und Charakter X kann auch dort sein, oder auch nicht. Wenn beide in Raum Y sind, dann soll Nachricht A ausgegeben werden, wenn X nicht im Raum ist, dann soll B ausgegeben werden. Später gibt es den Raum Z, in dem ebenfalls der Spieler und X sein können aber es soll immer die gleiche Nachricht ausgegeben werden, egal ob X dort ist oder nicht? So ganz schlau werde ich daraus nicht.
Richtig löschen kannst du Charaktere nicht. Schieb in den Charakter einfach mit ChangeRoom() in Raum 0 und gut ist. Im Script überprüfst du dann einfach, ob der Charakter im entsprechenden Raum ist:
if (Charakter.Room == RaumNr)
{
player.Say("A");
}
else player.Say("B");
Und wenn X nicht mehr im Raum ist, wird der Rest wenn X irgendwo vorkommt ein eigener Charakter sein (z.b X2)
Lass den Scheiß. Damit machst du das Script nur unübersichtlich. Ich spreche da aus Erfahrung, beim Hamstermann habe ich damals genauso solchen Käse gemacht und du kannst sehen, was dabei rausgekommen ist.