°•°•° Проект 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 объекта, поскольку ворот мы можем делать сколько угодно пока не будет достигнут лимит объектов.
Второй столбец массива хранит статус ворот: открыто либо закрыто.
Итак, для передвижения объекта, существует функция MoveObject.
Ворота изначально у нас закрыты. Gate[0][1] – ссылка на ячейку в массиве хранящую статус ворот (0 – закрыто, 1 – открыто).
В данном случае оно у нас равно 0.
Перед тем как отрыть ворота нам нужно удостоверить, что игрок стоит возле ворот, и проверить в каком положении в текущий момент находятся ворота. Сначала проверяем положение игрока с помощью функции IsPlayerInRangePoint а затем проверяем значение Gate[0][1].
Чтобы открыть ворота, нам нужно в функции MoveObject использовать координаты ворот в положении «открыто». Открыв ворота, мы должны присвоить Gate[0][1] значение 1, то есть изменить статус ворот на «открыто».
Делаем аналогичным образом, но наоборот, чтобы закрыть ворота. Используем координаты ворот в положении «Закрыто» в функции MoveObject и присваиваем Gate[0][1] значение 0.
Последним аргументом в функции MoveObject не забудьте указать скорость движения объекта. Скорость должна быть десятичным числом.