fenix05 | Дата: Среда, 17.04.2013, 13:13 | Сообщение # 1 |
.::Offline::.
Гангстер
Сообщений: 151
[ 62 ]
Награды: 4
Статус
отсутствует
| Вы наверное встречали на некоторых серверах, создание пикапа позади машины. Причём пикап создаётся именно сзади, вне зависимости от угла поворота машины.
Так вот, научимся и мы так ставить пикап.
Расмотрим код:Код GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, A); X += (1.5 * floatsin(-A+45, degrees)); Y += (1.5 * floatcos(-A+45, degrees)); Pic = CreatePickup(19197, 23, X, Y, Z, -1);
Здесь мы узнаём координаты и угол поворота игрока. Спомощью геометрической формулы, изменяем координаты по осям X и Y, где 1.5 - растояние от игрока, 45 - угол расположения пикапа относительно игрока(в градусах, 180 - сзади). Ну и создаём сам пикап с обновлёнными координатами.
Можно воспользоваться stock:
Код stock GetCreatOfPickupAngle(playerid, &Float:x, &Float:y, Float:distance, Float:DistAngle) { new Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += (distance * floatsin(-angle+DistAngle, degrees)); y += (distance * floatcos(-angle+DistAngle, degrees)); }
Теперь наш код создания пикапа будет выглядеть вот так: Код GetPlayerPos(playerid, X, Y, Z); GetCreatOfPickupAngle(playerid, X, Y, 1.5, 45); Pic = CreatePickup(19197, 23, X, Y, Z, -1);
А чтобы ставить пикапы на машины, просто узнавайте позицию не игрока, а машины.
Осталось присвоить действие пикапу, это я думаю вы сделаете сами.
Alien Brickman [vk.com/alien_brickman]Обложка:
|
|
| |