Всем здарова. Вот мне интересно узнать а как сделать так чтобы после того как player авторизировался, ему показывали 6 машин и можно было камерой передвигать и выбирать тачки??
Зарание спасибо, а то я в скриптинге недавно. Хотелось бы узнать.
Вид для печати
Всем здарова. Вот мне интересно узнать а как сделать так чтобы после того как player авторизировался, ему показывали 6 машин и можно было камерой передвигать и выбирать тачки??
Зарание спасибо, а то я в скриптинге недавно. Хотелось бы узнать.
Начни с чего-нибудь попроще...
Я с попроще уже пробывал...
Уже нужно что то посложнее...
Скачай FS InGame Cam Editor. Установи машины, выбери позицию камеры. После этого создай переменную. По нажатию, допустим, на стрелку вправо меняй значение переменной и позицию камеры. Ну а дальше продумай сам.
Привет!
Для "плавного" перемещения камеры от точки к точке, используется функция InterpolateCameraPos. Подробнее тут.
Расставляй автомобили и находи позицию камеры при помощи команды /save, где позиция самой камеры - твоя позиция, а координаты направления камеры - координаты автомобиля.
Дальше - проще, в OnPlayerKeyStateChange(ну или на текстдравах). Создаешь переменную, которая хранит "этап" просмотра игрока твоих автомобилей.
К примеру:
Ну и далее в таком же духе.PHP код:
if(!step[playerid])
{
step[playerid]++;
InterpolateCameraPos(playerid, fromx,fromy,fromz,tox,toy,toz, time, move);
InterpolateCameraLookAt(playerid, fromx,fromy,fromz,tox,toy,toz, time, move);
}
Также подкину команду для точного сохранения координат камеры:
Как сделать из этих координат передвижение камеры?PHP код:
CMD:savecam(playerid, params[]) // if(strcmp(cmdtext, "/savecam", true, 8) == 0)
{
static const
fmt_str0[] = "SetPlayerCameraPos(playerid, %f, %f, %f);\n",
fmt_str1[] = "SetPlayerCameraLookAt(playerid, %f, %f, %f);\n";
const
fmt_size0 = sizeof(fmt_str0) + (-2 + 11) * 3,
fmt_size1 = sizeof(fmt_str1) + (-2 + 11) * 3;
#if fmt_size0 > fmt_size1
#define final_size fmt_size0
#else
#define final_size fmt_size1
#endif
new
str[final_size],
File: cam_file = fopen("CamCoords.ini", io_append),
Float: cam_pos_axis_x,
Float: cam_pos_axis_y,
Float: cam_pos_axis_z,
Float: cam_pos_vec_axis_x,
Float: cam_pos_vec_axis_y,
Float: cam_pos_vec_axis_z;
#undef final_size
GetPlayerCameraPos(playerid, cam_pos_axis_x, cam_pos_axis_y, cam_pos_axis_z);
GetPlayerCameraFrontVector(playerid, cam_pos_vec_axis_x, cam_pos_vec_axis_y, cam_pos_vec_axis_z);
format(str, sizeof(str), fmt_str0, cam_pos_axis_x, cam_pos_axis_y, cam_pos_axis_z);
fwrite(cam_file, str);
format(str, sizeof(str), fmt_str1, cam_pos_axis_x + 5.0 * cam_pos_vec_axis_x, cam_pos_axis_y + 5.0 * cam_pos_vec_axis_y, cam_pos_axis_z + 5.0 * cam_pos_vec_axis_z);
fwrite(cam_file, str);
return fclose(cam_file);
}
Допустим мы сохранили 2 координаты в файл: Первая координата - откуда, вторая - куда, код:
Теперь используем функции InterpolateCameraPos и InterpolateCameraLookAt.PHP код:
SetPlayerCameraPos(playerid, 1647.343750, 1718.683959, 11.734600); // Откуда ( первая функция )
SetPlayerCameraLookAt(playerid, 1647.367431, 1723.648193, 11.138239); // Откуда // ( первая функция )
SetPlayerCameraPos(playerid, 1644.874145, 1863.826782, 11.175399); // Куда ( вторая функция )
SetPlayerCameraLookAt(playerid, 1641.950439, 1859.776733, 11.397855); // Куда // вторая функция )
Берём координаты из первой функции SetPlayerCameraPos и совмещаем со второй функцией. И заключаем её в функцию InterpolateCameraPos. Должно получиться как-то так ( остальные параметры не относятся к положению камеры ):
Положение перемещения камеры готово, но при перемещении камеры, она будет смотреть не туда, куда мы хотели. Для это есть функция InterpolateCameraLookAt. Совмещать координаты мы будем так же как и с первой функцией.PHP код:
InterpolateCameraPos(playerid, 1647.343750, 1718.683959, 11.734600, 1644.874145, 1863.826782, 11.175399, 10000);
Берём координаты из второй функции. Смещаем координаты из функции SetPlayerCameraPos с SetPlayerCameraLookAt.
В итоге должно получиться это:
Для примера я записал видео, этих координат:PHP код:
InterpolateCameraLookAt(playerid, 1647.367431, 1723.648193, 11.138239, 1641.950439, 1859.776733, 11.397855, 10000);
http://www.youtube.com/watch?v=yXGk7dWymbg
Всем спасбо, будем разбиратся сейчас :)