Всё о сервере, форум!
Основы программирования
ИНФОРМАЦИОННО-РАЗВЛЕКАТЕЛЬНЫЙ ПОРТАЛ

PrR[ Проект SAMP - Romashka [0.3e] ™18+™

Pawn :: Основы скриптинга
Движение объекта

Для того, чтобы сделать, например дверь, нужно сначала получить координаты положения ворот в состояниях: открыто и закрыто. Допустим, мы уже получили данные координаты.

10184,1537.008544,-1451.453491,14.855525,0.000000,0.000000,269.343505 //закрытые ворота
10184,1537.008544,-1451.453491,19.192020,0.000000,0.000000,269.343505
//открытые ворота


Итак, делаем команду открытыя и закрытия ворот.

Сначала создаем двумерный массив.
  • Первый столбец которого хранит ID объекта, поскольку ворот мы можем делать сколько угодно пока не будет достигнут лимит объектов.
  • Второй столбец массива хранит статус ворот: открыто либо закрыто.

if(strcmp(cmdtext, "/gate", true) == 0) //
{
if(IsPlayerInRangeOfPoint(playerid,7.0,1534.5895,-1450.5264,13.3828)) //ЛС ВОРОТА В КОМ. РАЙОНЕ
{
if(Gate[0][1] == 0)
{
MoveObject(Gate[3][0],1537.008544,-1451.453491,19.192020,1.0);
Gate[0][1] = 1;
}
else
{
MoveObject(Gate[3][0],1537.008544,-1451.453491,14.855525,1.0);
Gate[0][1] = 0;
}
}
}


        Итак, для передвижения объекта, существует функция MoveObject.
        Ворота изначально у нас  закрыты.
Gate[0][1] – ссылка на ячейку в массиве хранящую статус ворот (0 – закрыто, 1 – открыто).
В данном случае оно у нас равно 0.
Перед тем как отрыть ворота нам нужно удостоверить, что игрок стоит возле ворот, и проверить в каком положении в текущий момент находятся ворота.
Сначала проверяем положение игрока с помощью функции IsPlayerInRangePoint а затем проверяем значение Gate[0][1].

Чтобы открыть ворота, нам нужно в функции MoveObject использовать координаты ворот в положении «открыто». Открыв ворота, мы должны присвоить Gate[0][1] значение 1, то есть изменить статус ворот на «открыто».

Делаем аналогичным образом, но наоборот, чтобы закрыть ворота. Используем координаты ворот в положении «Закрыто» в функции MoveObject и присваиваем Gate[0][1] значение 0.

Последним аргументом в функции MoveObject не забудьте указать скорость движения объекта. Скорость должна быть десятичным числом.



Логин: Пароль:
Забыли пароль?Регистрация
При копировании материала с сайта активная ссылка обязательна!
Сайт управляется SiNG cms © 2010-2015