Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 14
    Гостей: 7
    Пользователи: - отсутствуют
    Роботы: Google AdSense, Yandex Bot, Yandex Bot, crawl Bot, robot Bot, Yandex Bot, Yandex Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 22-10-2012, 17:10 Просмотров: 4877

    register_touch Функция рагистрирует события соприкосновения по имени класса

    С помощью функции register_touch можно отлавливать различные соприкосновения в игре, например: игроков друг с другом или игрока и лежащего на земле оружия и другие объекты по имени их класса.

    Инфо из engine.inc:
    /* Registers a touch action to a function by classnames.  Use * to specify any classname. */
    native register_touch(const Touched[], const Toucher[], const function[]);


    Синтаксис:
    register_touch(const Touched[], const Toucher[], const function[])

    • const Touched[] - Кто/что
    • const Toucher[] - С чем соприкоснется
    • const function[] - Какая функция будет вызываться


    Тип функции:
    Native

    Пример:
    #include <amxmodx>
    #include <amxmisc>
    #include <engine>

    #define PLUGIN "[http://amxxmodx.ru] register_touch"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)

        /*
        Регистрируем касание weaponbox (оружие лежащие на земле)
        С любым другим классом * ( можно оставить только player
        Тогда функция будет срабатывать только когда соприкоснется игрок
        */
        register_touch("weaponbox","*","fwd_touch")
    }
    public fwd_touch(w_box,other){
        
        client_print(other,print_chat,"Touched")
        
    }


    Описание:
    Зайдя на сервер, попробуйте выкинуть свое оружие.
    На это действие вы получите целый флуд в чат со словом Touched, так как функция register_touch будет выполняться до тех пор, пока соприкасаются два отлавливаемых класса, в данном случае weaponbox и любого другого.
    список всех классов можно найти здесь

    Мини задание для самоконтроля:
    Попробуйте отловить соприкосновение любых двух игроков.
    Свои варианты прячьте под спойлер.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Luxury

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    Молодец smile
    --------------------
    fan

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Подскажите как настроить, что бы функция вызывалась при соприкосновении игроков разных команд
    и как настроить что бы функция вызывалась при соприкосновении игроков одной команды
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    fan, нужно отловить соприкосновение любых игроков и уже в этом событии проверять из одной команды игроки или из разных.
    --------------------
    Hunter

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Подскажи как отловить соприкосновение пули и стены
    True_Hacker

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Hunter,Пуля даже не Entity так что отловить её нельзя,хотя можно попробовать создать эту Entity
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    И получится фигня, скорость пули намного больше чем максимальная скорость ентити...

    Да ещё и нагрузка большая...

    Отловить можно по декалям...
    И вроде через FM_TraceLine
    True_Hacker

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Подскажите пожалуйста как лучше отловить соприкосновение entity(по названию) и игрока,перепробывал многое,пробывал pfn_touch,fw_touch и прочее,нужно именно чтобы entity по названию
    Admin

    30.07.2011
    ICQ: 980500
    Публикаций: 507
    Комментариев: 333
    Репутация: -  56  +

    На данный вопрос функция описанная в статье полностью отвечает.
    Вопрос не точный.
    --------------------
    артист

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    True_Hacker,

    FM_Touch
    pev_classname
    equal
    if

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама