Сделаем простенькую камеру для ГФ , хотя она подойдет и под другие моды.
Сам код данного способа по себе легкий. Поэтому для новичков в павн будет не трудно выполнить все этапы FAQ и при этом добиться успеха. Ну чтож начнем.
Для начала создадим новый таймер.
Идем в public OnGameModeInit
У вас там будет около 9-ти таймеров, расположенных внизу паблика.
Добавляете ище один - SetTimer("Cam",100,1); (100 - милисекунды. 1 - Будет или не будет повторяться таймер. У нас 1 = будет. cam - название нашего паблика для выполнения какого либо дальнейшего кода)
По скольку в преднастройке таймера стоит значение 1 он будет повторять выполнение паблика Cam каждую милисекунду.
Благодаря этому мы и сделаем наше дельце
Теперь ко всем new добавим следующие переменные:
new Float:CamX[MAX_PLAYERS];
new Float:CamY[MAX_PLAYERS];
new Float:CamZ[MAX_PLAYERS];
new Camtime[MAX_PLAYERS];
Таким образом наш скрипт выучил что такое CamY CamX CamZ Camtime.
Теперь идем в public OnPlayerRequestClass (мог ошибиться, но основу я дал)
Добавляем следующий код в начало паблика.
CamX[playerid] = 1987.1801;
CamY[playerid] = -1439.9788;
CamZ[playerid] = 217.5764;
Мы задаем значения коодинат в переменные созданные ранее. С них мы будем считывать координаты для начальной позиции камеры.
(Координаты свои. Можете сделать свои с помощью /save но для вида рекомендую сначало мои использовать т.к под них подстраиваеться дальнейший код движения камеры).
Далее идем в public OnPlayerConnect
И т.к мы хотим что бы наша камера начинала свои движения при подключении к серверу то добавляем такой кодик:
Camtime[playerid] = 1;
Далее идем в public OnPlayerSpawn
Добавляем следующее:
Camtime[playerid] = 0;
И если у вас нет в данном паблике функции SetCameraBehindPlayer то обязательно добавьте её иначе камера зависнит в воздухе а вы будите бегать Х знает где :)
SetCameraBehindPlayer(playerid); // Возвращает камеру игрока на стандартную позицию.
Всё это лучше кАнешно в начало добавлять.
Моды бывают разные.
Ну вот вроде бы мы создали небольшие закорючки для нашей с вами камеры.
Теперь нам необходимо написать код выполняющий движение камеры. он самый основной из нашего FAQ.
Да и легкий ... )
Создаем в конце мода public Cam()
Вобщем код движения камеры будет выглядеть примерно так:
Code
public Cam()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Camtime[i] >= 1) // омг.. В таймерах объяснял что это. )
{
CamX[i] -= 0.4; // Для того что бы вам было понятней - Ето скорость движения камеры. Не рекомендую лесть до 1.0. А вот 0.9 норм =_=
SetPlayerCameraPos(i,CamX[i],CamY[i],CamZ[i]); // Позиция нашей камеры которая в дальнейшем каждую милисекунду будет изменяться брав значения из переменных.
SetPlayerCameraLookAt(i,818.5380,-1402.7738,223.9858); // Куда наша камера - смотрит.
}
}
}
}
Камера готова Вы можете изменить координаты и поднастроить камеру под них. (/save)
Напоминаю что камеры создают дополнительную нагрузку на сервер.
Но для хорошего хостинга это не проблема на мой взгляд
И мода тоже
Тестирование и разработка кода производилась на моде Cream Life 1.2
АВТОР:SMOUK
-ики нежалеем=))