Dann gebe ich dir mal ein paar 
new Raum1 = 0;
new Raum2 = 0;
new Raum3 = 0;
new Raum4 = 0;
new Raum5 = 0;
Nun, du solltest in deinem Script Arrays nutzen, das erleichtert dir so einiges, zudem spart es Platz und ist effektiver.
Sprich das sollte so aussehen:
new Raum[5];
Dieses = 0; braucht man in Pawn bei der Deklaration der Variablen nicht, da sie automatisch mit 0x00 initialisiert werden.
So Sachen wie unter OnPlayerSpawn, lassen sich viel verkürtzter darstellen, ich gebe dir mal ein Beispiel, wenn du Arrays benutzt hättest:
public OnPlayerSpawn(playerid) {
new rand = random(sizeof(RandomSpawnEGE));
for(new i; i<5; i++) if(EinsGegenEins[playerid] || PRaum[i][playerid]) return SetPlayerPos(playerid, RandomSpawnEGE[rand][0], RandomSpawnEGE[rand][1],RandomSpawnEGE[rand][2]),GivePlayerWeapon(playerid, 24, 300);
return 1;
}
Sprich, wir nutzen 5 Zeilen, anstatt 40 
Selbiges bei deinen Befehlen, z.B. dein /exit Befehl, bin jetzt zu faul, dass alles umzustellen, aber du kannst auf jeden Fall wie du oben siehst, sehr viele Zeilen sparen 
if(PRaum2[playerid] == 1)return SendClientMessage(playerid, ROT, "Du bist bereits in einem Raum!");
if(PRaum3[playerid] == 1)return SendClientMessage(playerid, ROT, "Du bist bereits in einem Raum!");
if(PRaum4[playerid] == 1)return SendClientMessage(playerid, ROT, "Du bist bereits in einem Raum!");
if(PRaum5[playerid] == 1)return SendClientMessage(playerid, ROT, "Du bist bereits in einem Raum!");
Das hast du unter OnDialogResponse mehrere male verwendet, auch hier solltest du entweder Arrays + Schleife verwenden oder alles in 1ne if-Abfrage schreiben 
Zum Schluss noch eins, ich rate von der Funktion ReturnUser ab 
mfg. 