All pastes #484691 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-12 10:54 UTC
rendered paste body
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]);
		   }
	 }
}