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

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

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 7-01-2012, 00:24 Просмотров: 4300

    ExecuteHam Выполняет виртуальную функцию на игроке (объекте)

    Заголовок немного каламбурен, но это почти дословный перевод информации из hamsandwich.inc, но самом же деле все на много проще, эта функция выполняет над игроком или объектом в игровом мире определенные функции, полный список которых есть в файле ham_const.inc

    Инфо из hamsandwich.inc:
    /**
    * Executes the virtual function on the entity.
    * Look at the Ham enum for parameter lists.
    *
    * @param function        The function to call.
    * @param id            The id of the entity to execute it on.
    */
    native ExecuteHam(Ham:function, this, any:...);


    Синтаксис:
    ExecuteHam ( Ham:function, this, any:... )

    • Ham:function - Функция из списка Ham_*
    • this - id объекта к кому применяется функция
    • any:... - Дополнительные параметры если есть


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

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

    #include <amxmodx>
    #include <amxmisc>
    #include <hamsandwich>

    #define PLUGIN "[hamsandwich] ExecuteHamB"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    public plugin_init() {
        
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say /spawn","spawn")
        
    }
    public spawn(id){
        
        ExecuteHam( Ham_CS_RoundRespawn, id )
        
    }


    Описание:
    Для примера работы функции я выбрал самую наглядную - респавн игрока.
    Весь пример по большому счету это одна строчка:
        ExecuteHam( Ham_CS_RoundRespawn, id )

    Все остальное азы павна. Да и в данной строчке ни чего сложного:
    1. В файле ham_const.inc найти требуемую функцию (в данном варианте это Ham_CS_RoundRespawn)
    2. Имея описание заполняем функцию ExecuteHam
    И все готово.

    Обратите внимание, что для респавна игрока и отлова респавна игрока используется одна и та же функция из списка, но вот основная функция будет разумеется другой.
    То есть ExecuteHam - выполняет функцию, а вот RegisterHam наоборот ловит. Но если вы хотите что бы инсценированное вами событие можно было так же поймать, то используйте функцию ExecuteHamB. Так как события вызванные с помощью функции ExecuteHam не отлавливаются.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама