Proměnné:
- Kód: Vybrať všetko
new Float:CamX[MAX_PLAYERS_EX];
new Float:CamY[MAX_PLAYERS_EX];
new Float:Uhel[MAX_PLAYERS_EX];
new Float:CamZ[MAX_PLAYERS_EX];
new Float:DefaultX[MAX_PLAYERS_EX];
new Float:DefaultY[MAX_PLAYERS_EX];
new timer[MAX_PLAYERS_EX];
new bool:Casovac[MAX_PLAYERS_EX];
Samotná funkce:
- Kód: Vybrať všetko
stock SetPlayerRotationCamera(playerid, Float:X, Float:Y, Float:Z, time)
{
CamX[playerid] = X+40;
CamY[playerid] = Y;
Uhel[playerid] = 0.0;
CamZ[playerid] = Z+20;
DefaultX[playerid] = X;
DefaultY[playerid] = Y;
SetPlayerCameraPos(playerid, CamX[playerid], CamY[playerid], CamZ[playerid]);
SetPlayerCameraLookAt(playerid, X, Y, Z);
if (Casovac[playerid] == false)
{
Casovac[playerid] = true;
timer[playerid] = SetTimerEx("RotationCamera", 25, true, "i", playerid);
SetTimerEx("KonecRotace", time, false, "i", playerid);
}
return 1;
}
Rotace kamery a výpočet:
- Kód: Vybrať všetko
public RotationCamera(playerid)
{
new Float:PosX;
new Float:PosY;
PosX += (40 * floatcos(Uhel[playerid], degrees) + DefaultX[playerid]);
PosY += (40 * floatsin(Uhel[playerid], degrees) + DefaultY[playerid]);
SetPlayerCameraPos(playerid, PosX, PosY, CamZ[playerid]);
SetPlayerCameraLookAt(playerid, DefaultX[playerid], DefaultY[playerid], CamZ[playerid]-20);
if (Uhel[playerid] < 360)
{
Uhel[playerid]++;
}
else
{
Uhel[playerid] = 0.0;
}
return 1;
}
Vrácení zpět:
- Kód: Vybrať všetko
public KonecRotace(playerid)
{
KillTimer(timer[playerid]);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
Casovac[playerid] = false;
return 1;
}
Předpokládám že forwardy si sami doplníte. Zde je malé video jako ukázka toho jak to vypadá: http://www.youtube.com/watch?v=5bJ03VDl7TU

