Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Edwin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.02.2014
    Адрес
    Беларусь
    Сообщений
    196
    Репутация:
    22 ±

    pickfix.inc | Фикс повторного срабатывания пикапов

    Исправление повторения срабатывания пикапов



    Как вы поняли, речь пойдёт о повторении срабатывания пикапа, когда игрок стоит на нём.
    Ни для кого не секрет, что в САМП не предусмотрено "выхода" из пикапов. Они безжалостно срабатывают каждые две секунды, мешая игроку производить действия, например, диалоговыми окнами. Кто-то борется с этим таймерами, кто-то записывает в PVar время подбора, и прибавляет по 5/10 секунд на следующее срабатывание, кто-то мучается со 2 типом пикапов, который подбирается, а потом появляется неизвестно когда. Где-то видел даже установку таймера игроку и проверку его координат.. Всё это порядочно бесит, все пытаются найти какой-нибудь оптимальный способ для себя. Более опытные скриптеры пишут фиксы, не самые опытные обходятся простым сохранением времени в формате Unix, а малоопытные вообще не знают что делать, создают кучу вопросов в разделе вопросов "как это убрать", "помогите", "что такое", или даже вообще вынуждены платить более опытным.
    Итак, с помощью этого инклуда, пикапы будут вызываться повторно только при повторном подборе.


    Автор: Edwin (то бишь я)



    Так же, прилагается версия +, которая имеет в себе некоторые дополнительные полезные функции для работы с пикапами



    Инклуд pickfix
    Коллбэки:
    - OnPlayerPickupExit (playerid, pickupid) // Срабатывает при выходе игрока из пикапа
    - OnPlayerDynamicPickupExit (playerid, pickupid) // Срабатывает при выходе игрока из динамического пикапа

    Функций не содержит.



    Инклуд pickfix+
    Коллбэки:
    Содержит в себе коллбэки инклуда pickfix.

    Функции:
    - IsValidPickup (pickupid) // Проверяет сущствование пикапа
    - GetPickupPos (pickupid, &Float:x, &Float:y, &Float:z) // Получает X, Y и Z позицию пикапа
    - GetDynamicPickupPos (pickupid, &Float:x, &Float:y, &Float:z) // Получает X, Y и Z позицию динамического пикапа
    - GetPickupVirtualWorld (pickupid) // Получает вирт. мир пикапа. Вернёт -2, если пикапа не существует
    - GetDynamicPickupVirtualWorld (pickupid) // Получает вирт. мир динамического пикапа. Вернёт -2, если пикапа не существует
    - GetDynamicPickupInterior (pickupid) // Получает интерьер динамического пикапа. Вернёт -2, если пикапа не существует



    Важно: инклуд реализован средствами плагина streamer от Incognito, поэтому он должен подключаться до инклуда pickfix.




    Подключение и использование:
    Просто подключаем инклуд рядом со всеми инклудами в моде

    Код HTML:
    #include <pickfix>
    или
    Код HTML:
    #include <pickfix+>

    и наслаждаемся правильной работой пикапов.



    Замечание:
    Лимит на динамические пикапы, размером в 4096 пикапов, можно изменить, обозначив макрос
    #define MAX_DYNAMIC_PICKUPS (число)
    до объявления инклуда в самом гейммоде;
    Инклуды pickfix и pickfix+ не стоит подключать вместе, т.к. они будут конфликтовать.




    Pickfix.inc
    Pastebin


    Pickfix+.inc
    Pastebin
    Последний раз редактировалось Edwin; 16.11.2016 в 11:47.

  2. Пользователь сказал cпасибо:
    DmitriyVasilev (01.07.2019)
  3. #2
    Аватар для TheMallard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2015
    Адрес
    San Fierro
    Сообщений
    217
    Репутация:
    39 ±
    пикап второго типа
    Disappears after pickup, respawns after 30 seconds if the player is at a distance of at least 15 meters.
    Пропадает после взятия, появляется занова через 30 секунд, если игрок на расстоянии 15 метров.

  4. #3
    Аватар для Glant
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.07.2014
    Сообщений
    54
    Репутация:
    3 ±
    Иногда нужно, чтобы пикап не пропадал вообще

  5. #4
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Useless, я лично делаю как: создаю пикап, в нем сферу, пикап служит оболочкой, а при входе в сферу выполняется мой код...

  6. #5
    Аватар для Edwin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.02.2014
    Адрес
    Беларусь
    Сообщений
    196
    Репутация:
    22 ±
    Обновлено. Исправлено. Оптимизировано)
    Достигнут максимальный эффект
    Последний раз редактировалось Edwin; 16.11.2016 в 11:47.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •