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

    Всего на сайте: 2
    Гостей: 1
    Пользователи: - отсутствуют
    Роботы: crawl Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 25-11-2011, 00:27 Просмотров: 2536

    client_impulse Функция вызывается когда игрок использует команды impulse

    Как показал мой опыт, функция client_impulse вызывается каждый фрейм, по этому не рекомендую ее использовать. Далее я укажу чем можно заменить эту функцию на более удобную и не нагружающую сервер.

    Инфо из engine.inc:
    /* Forward for impulses. */
    forward client_impulse(id, impulse);


    Синтаксис:
    public  client_impulse ( id, impulse )

    • id - id игрока
    • impulse - Какую impulse команду использовал

    Примечание: Каждый фрейм игрок ни чего ен использует и будет вызываться impulse 0
    Если вам необходимо поймать какую то определенную команду используйте функцию register_impulse

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

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>
    #include <engine>

    #define PLUGIN "[engine.inc] client_impulse"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    public plugin_init() {

        register_plugin(PLUGIN, VERSION, AUTHOR)

    }
    public client_impulse(id,impulse){
        
        if(impulse != 0)
            client_print(id,print_chat,"Oy use impulse: %d",impulse)
        
        
    }


    Описание:
    Самые внимательные читатели наверняка уже все поняли, где стоит функция и что внутри происходит, для тех тко еще не силен в скриптинге поясняю:
    public client_impulse(id,impulse){

    данная функция вызывается каждый фрейм, то есть каждый кадр. Если тут проделывать какие то сложные действия, то однозначно будут лаги на сервере.
    Так как есл иигрок не использует ни какую команду то получается impulse 0, по этому далее идет проверка
    if(impulse != 0)

    Где отсеиваются все эти ненужные срабатывания функции.
    Попробуйте включить фонарик на сервере и вы увидите текстовое сообщение и номер impulse команды/
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама