Что такое чекпоинт и как его создавать.
Что-же такое чекпоинт? Объясню на пальцах, чекпоинт - это такая красная метка, которая отражается на миникарте вне зависимости от дистанции между игроком и меткой. Еще одной важной деталью, будет то, что для игрока можно установить всего 1 видимый чекпоинт. И так, чекпоинты делятся на 2 типа, это: обычные, чекпоинты для игрока, и чекпоинты указатели. Выглядят эти чекпоинты примерно следующим образом:
Чекпоинт обычной метки для игрока.
Чекпоинт-указатель.
И все-же, как нам создавать подобные чекпоинты?
Ну.. Для этого в SA:MP существует пара функций, сейчас я расскажу о них.
Данная функция используется для создания обычной метки для игрока, в ней используются следующие параметры:
- playerid ID Игрока
- Float:x x-координата для чекпоинта
- Float:y y-координата для чекпоинта
- Float:z z-координата для чекпоинта
- Float:size Размер чекпоинта
Данная функция используется для создания метки-указателя для игрока, в ней используются следующие параметры:
- playerid ID игрока
- type Тип метки.0-Обычная, 1-Финиш, 2-Ничего(Просто метка), 3-Метка-кольцо обычная, 4-Метка-кольцо финиш
- Float:x X-Координата
- Float:y Y-Координата
- Float:z Z-Координата
- Float:nextx X-Координата следующей метки, для определения направления указателя(стрелки)
- Float:nexty Y-Координата следующей метки, для определения направления указателя(стрелки)
- Float:nextz Z-Координата следующей метки, для определения направления указателя(стрелки)
- Float:size Размер(диаметр) метки
Также, для работы с "метками" предусмотрено пару других функций (в том числе и автовызываемых).
Функция скрывает обычную метку, созданную для игрока. Возвратит false, если игрок не подключен к серверу.
Функция аналогичная предыдущей, только создана для скрытия метки-указателя.
Функция проверяет нахождение игрока в чекпоинте.
Функция проверяет нахождение игрока в метке-указателе.
Перейдем к автовызываемым функциям.
Функция вызывается, когда игрок оказывается внутри созданной метки.
Функция вызывается, когда игрок покидает созданную метку.
Функция вызывается, когда игрок оказывается внутри созданной метки-указателе.
Функция вызывается, когда игрок покидает созданную метку-указатель.
Теперь мы знаем все необходимые нам функции для написания простых скриптов, давайте перейдем к следующему шагу.
Использование чекпоинтов "На деле".
На основе полученных знаний и изученных функций, попробуем с вами написать пару простеньких скриптов, дабы полностью понять что-же такое эти чекпоинты. Для начала давайте поставим для себя задачу, к примеру:
- Сделать чекпоинт для игрока, встав на который он получит в руки коробку, затем ему будет указана метка куда нужно отнести эту коробку.
- Сделать метку-указатель по команде для игрока, достигнув которую игроку выведет сообщение о достижении метки.
И так, задачи поставлены, теперь перейдем к исполнению, естественно по-порядку.
Давайте для начала работы игрока, создадим команду /startwork.
Теперь, давайте проверим игрока на нахождение в нужной нам метке. Сделаем это в паблике OnPlayerEnterCheckpoint. Ну и собственно с помощью этого паблика мы будем управлять игроком, забирать коробку и устанавливать чекпоинт подбора, или же отдавать коробку и устанавливать метку склада.
Первая цель достигнута, отправляемся за второй.
Для установки метки, мы будем использовать с вами команду /grotti, ибо метка наша будет у автосалона Grotti Car's.
Ну и далее, как и в случае с нашей предыдущей целью, проверим нахождение игрока в нашей метке, на этот раз другим пабликом:
Автор: wAx



Сообщений: 922
Регистрация:
Skype: artempolozov11
