Система подойдет как вступительная сцена или же обзор карты сервера либо экрана регистрации/авторизации.
У меня на проекте VMP Dayz используется как экран регистрации и авторизации, но в дальнейшем будет как вступительная сцена.
Переменные
new gCameraTimer[MAX_PLAYERS]; new Float:CameraProgress[MAX_PLAYERS];
Удаляем таймер при спавне OnPlayerRequestSpawn
Но перед этим добавьте функцию Logged
if (gCameraTimer[playerid])
{
KillTimer(gCameraTimer[playerid]);
gCameraTimer[playerid] = 0;
}
SetCameraBehindPlayer(playerid);Удаляем таймер при отключении OnPlayerDisconnect
if (gCameraTimer[playerid])
{
KillTimer(gCameraTimer[playerid]);
gCameraTimer[playerid] = 0;
}Удаляем таймер при старте таймера OnPlayerRequestClass и обнуляем скорость на всякий случай и снова запускаем таймер
if (gCameraTimer[playerid])
{
KillTimer(gCameraTimer[playerid]);
gCameraTimer[playerid] = 0;
}
CameraProgress[playerid] = 0.0;
gCameraTimer[playerid] = SetTimerEx("MoveCameraForward", 50, true, "i", playerid);Создаем Forward ниже OnPlayerRequestClass
forward MoveCameraForward(playerid);
public MoveCameraForward(playerid)
{
new Float:startX = -208.0103;
new Float:startY = -1560.8622;
new Float:startZ = 79.9655;
new Float:startLookX = 355.6277;
new Float:endX = -376.0383;
new Float:endY = -539.4307;
new Float:endZ = 84.3659;
new Float:endLookX = 3.3517;
new Float:speed = 0.001;
CameraProgress[playerid] += speed;
if(CameraProgress[playerid] >= 1.0)
{
CameraProgress[playerid] = 1.0;
if(gCameraTimer[playerid])
{
KillTimer(gCameraTimer[playerid]);
gCameraTimer[playerid] = 0;
}
SetPlayerCameraPos(playerid, endX, endY, endZ);
SetPlayerCameraLookAt(playerid, endLookX, 0.0, 0.0);
return;
}
new Float:camX = startX + (endX - startX) * CameraProgress[playerid];
new Float:camY = startY + (endY - startY) * CameraProgress[playerid];
new Float:camZ = startZ + (endZ - startZ) * CameraProgress[playerid];
new Float:lookX = startLookX + (endLookX - startLookX) * CameraProgress[playerid];
SetPlayerCameraPos(playerid, camX, camY, camZ);
SetPlayerCameraLookAt(playerid, lookX, 0.0, 0.0);
}Обзор
YouTube
Rutube Ссылка

