new bool:CamMode[MAX_PLAYERS], Float:modz[MAX_PLAYERS], Float:modx[MAX_PLAYERS], Float:mody[MAX_PLAYERS]; COMMAND: dcmd_fp(playerid, params[]) { #pragma unused params if (!CamMode[playerid]) { CamMode[playerid] = true; } else { CamMode[playerid] = false; new Float:x, Float:y, Float:z, Float:angle; GetPlayerFacingAngle(playerid, angle); GetPlayerPos(playerid, x, y, z); SetSpawnInfo(playerid, 0, 0, x, y, z, angle, 0, 0, 0, 0, 0, 0); SpawnPlayer(playerid); } return 1; } FUNCTION: public CamMod() { for (new i; i < MAX_PLAYERS; i ++) { if ((IsPlayerConnected(i)) && (CamMode[i])) { new Float:x, Float:xx, Float:y, Float:yy, Float:z, Float:angle, hyp = 9, /* (15)distance from cam pos to cam look at pos */ dis = 5; /* (7)distance from player to cam pos */ /* if (IsPlayerInAnyVehicle(i)) { GetVehiclePos(GetPlayerVehicleID(i), x, y, z); angle = GetVehicleZAngle(GetPlayerVehicleID(i)); } else { } */ GetPlayerPos(i, x, y, z); GetPlayerFacingAngle(i, angle); xx = x + hyp * floatsin(360 - angle, anglemode:degrees); yy = y + hyp * floatcos(360 - angle, anglemode:degrees); x = x + dis * floatsin(360 - angle, anglemode:degrees); y = y + dis * floatcos(360 - angle, anglemode:degrees); SetPlayerCameraPos(i, x + modx[i], y + mody[i], z + modz[i]); SetPlayerCameraLookAt(i, xx, yy, z + modz[i]); } } }