//gora moda: #define ADMIN_SPEC_TYPE_NONE 0 #define ADMIN_SPEC_TYPE_PLAYER 1 #define ADMIN_SPEC_TYPE_VEHICLE 2 new gSpectateID[MAX_PLAYERS]; new gSpectateType[MAX_PLAYERS]; //poszukaj OnPlayerInteriorChange i zamien je na: public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { if(newinteriorid == 0) { if(PlayerInfo[playerid][pLocal] != 255 && PlayerInfo[playerid][pInt] != 0) { SetTimerEx("TeleportTimer", 2000, 0, "d", playerid); } } // IF ANYONE IS SPECTATING THIS PLAYER, WE'LL ALSO HAVE // TO CHANGE THEIR INTERIOR ID TO MATCH new x = 0; while(x!=MAX_PLAYERS) { if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid && gSpectateType[x] == ADMIN_SPEC_TYPE_PLAYER ) { SetPlayerInterior(x,newinteriorid); } x++; } } //onplayercommandtext if(strcmp(cmd, "/specplayer", true) == 0) { new tmp[256]; tmp = strtok(cmdtext, idx); if (PlayerInfo[playerid][pAdmin] < 1) { return 1; } if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specplayer [playerid]"); return 1; } specplayerid = strval(tmp); if(!IsPlayerConnected(specplayerid)) { SendClientMessage(playerid, COLOR_RED, "specplayer: that player isn't active."); return 1; } TogglePlayerSpectating(playerid, 1); PlayerSpectatePlayer(playerid, specplayerid); SetPlayerInterior(playerid,GetPlayerInterior(specplayerid)); gSpectateID[playerid] = specplayerid; gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER; return 1; } // SPECTATE A VEHICLE if(strcmp(cmd, "/specvehicle", true) == 0) { new tmp[256]; tmp = strtok(cmdtext, idx); if (PlayerInfo[playerid][pAdmin] < 1) { return 1; } if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_WHITE, "USAGE: /specvehicle [vehicleid]"); return 1; } specvehicleid = strval(tmp); if(specvehicleid < MAX_VEHICLES) { TogglePlayerSpectating(playerid, 1); PlayerSpectateVehicle(playerid, specvehicleid); gSpectateID[playerid] = specvehicleid; gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE; } return 1; } // STOP SPECTATING if(strcmp(cmd, "/specoff", true) == 0) { if (PlayerInfo[playerid][pAdmin] < 1) { return 1; } TogglePlayerSpectating(playerid, 0); gSpectateID[playerid] = INVALID_PLAYER_ID; gSpectateType[playerid] = ADMIN_SPEC_TYPE_NONE; return 1; }