Why are you using GetPlayerPos when you already have the coordinates that the player is going to be put on? SetPlayerPos probably hasn't been fully executed by the time you use GetPlayerPos, so the coordinates are a somewhat delayed version.
PHP код:
SetPlayerTeamFromClass(playerid,classid);
SetPlayerPos(playerid, 1558.1510, -1370.1229, 330.0528);
// SetPlayerFacingAngle(playerid, ...); ?
new Float:A; // Remove if using SetPlayerFacingAngle
GetPlayerFacingAngle(playerid, A); // If you're going to use SetPlayerFacingAngle, use the angle from that instead.
SetPlayerCameraPos(playerid, 1558.1510 + (R * floatsin(-A,degrees)), -1370.1229 + (R * floatcos(-A,degrees), 330.0528 + 1.0);
SetPlayerCameraLookAt(playerid, 1558.1510, -1370.1229, 330.0528);
Though there is a lazy but clean way of doing this, which could be helpful if you decide that you want to change these coordinates in the future.
PHP код:
new
Float:pX = 1558.1510,
Float:pY = -1370.1229,
Float:pZ = 330.0528,
Float:pA = 0.0
;
SetPlayerTeamFromClass(playerid,classid);
SetPlayerPos(playerid, pX, pY, pZ);
SetPlayerFacingAngle(playerid, pA);
SetPlayerCameraPos(playerid, pX + (4.0 * floatsin(-pA, degrees)), pY + (4.0 * floatcos(-pA, degrees)), pZ + 1.0);
SetPlayerCameraLookAt(playerid, pX, pY, pZ);