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

    Всего на сайте: 2
    Гостей: 0
    Пользователи: RelaxJobert
    Роботы: crawl Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 18-08-2011, 17:30 Просмотров: 10348

    Ham_killed отлов события убийства игрока (объекта)

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

    Данная функция возвращает 3 параметра:
    (victim, attacker, corpse)

    • victim - Наша жертва, точнее id жертвы, так же и для убийцы
    • attacker - Наш убийца
    • corpse - Эффекты с трупом ( честно гвооря ни разу не использовал)

    Совсем немного :)

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

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

    #define PLUGIN "HamSandWich killed"
    #define VERSION "1.0"
    #define AUTHOR "Admin"


    public plugin_init ( )
    {
        register_plugin ( PLUGIN, VERSION, AUTHOR )
        //Регистрируем событие убийства
        RegisterHam(Ham_Killed,"player","ham_player_kill")
        
    }
    //Функция которая вызывается при событии "Убийство объекта)
    public ham_player_kill(victim, attacker, corpse){
        
        //Массивы для имен жертвы и убийцы
        new VictimName[32],AttackerName[32]
        //получаем имя жертвы
        get_user_name(victim,VictimName,31)
        //имя убийцы
        get_user_name(attacker,AttackerName,31)
        
        //С помощью инклуда колорчат выводим цветное сообщене кто кого убил
        //Если у вас нет этог оинклуда удалите строку 6 и 32
        ColorChat(0,RED,"%s ^1killed ^3%s",AttackerName,VictimName)
        
        //Обычный вывод в чат
        client_print(id,print_chat,"%s killed %s",AttackerName,VictimName)
        
    }


    Описание:
    В коде плагина уже добавлены все основные комментарии, но все же я пару слов скажу:
    Первое что мы сделали это подключили модуль HamSandWich,
    Затем зарегистрировали необходимое нам событие - Функция Ham_Killed назначили функцию, которая при этом событии будет выполняться.
    В нашей функции ham_player_kill, как написано в комментариях, мы получаем ники жертвы и убийцы и сразу же записываем их в массивы, заранее объявленные.

    И в самом конце выводим с помощью Колорчата цветное сообщение в чат, о том,. кто кого убил.

    Практическое использование, или мини задание для самоконтроля.
    Создайте Глобальный массив и при каждом убийстве, игрока суммируйте фраги со свеженьким фрагом. заодно выводя сколько он всего убил.
    Проконтролировать правильность вы сможете сравнивая результат со стандартной таблицей очков игроков ( клавиша TAB по умолчанию)
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
    Ham_killed отлов события убийства игрока (объекта)
    Небожитель

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

    Могут быть ошибки из-за не достоющих проверок

        if( !is_user_connected( victim ) )
            return;
        
        if( attacker == victim || !attacker )
            return;
    WaterBall

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

    return;
    =>
    return HAM_IGNORED;
    Pain96

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

    А вот если я хочу сделать что-то с attacker и victim в начале раунда. Тобишь в форварде startround, id = read_data(1), а attacker и victim чему равен? smile я просто запутался
    Valer4

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

    id убившего и убитого соответственно
    артист

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

    Что за эффекты с трупом?

    Простое убийство и разрывание трупа?

    Как его изменить?

    set_param_byref(3, 1)

    ???

    Информация

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

Реклама