Русское сообщество по скриптингу

Hamsandwich: HamUse

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

Hamsandwich: HamUse

Сообщение unrealfart » 17 июн 2016, 10:41

Делал режимы для деатрана и никак не мог найти блокировку кнопок, задавал вопрос на форуме ответа не получил, этот фрагмент скорее для новичков, которые только начинают писать плагины(собсна как и я :crazy: )

Прошу какашками в меня не кидаться

Подключаем библиотеки
Код: Выделить всё
#include <hamsandwich>                    

Далее создаем переменную, называем как угодно
Код: Выделить всё
new BlockButton

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

В plugin_init регистрируем Ham_Use
Код: Выделить всё
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    RegisterHam(Ham_Use, "func_button", "BlockButton")
}
 

Далее идет функция, которая отвечает за обработку события блокировки нажатия кнопок
Blocked вызывается из зарегистрированного Ham_Use
Код: Выделить всё
public BlockButton(entityidcaller
{
    if(BlockButton >= 1)
    {
        client_print(idcaller, print_center, "Запрещено нажимать на кнопки")
        return HAM_SUPERCEDE
    
}
    else
    
{
    return HAM_IGNORED
    
}
    return PLUGIN_HANDLED
}


Чтобы запретить нажатие, нужно присвоить BlockButton значение = 1
Чтобы разрешить нажатие, нужно присвоить BlockButton значение = 0
Последний раз редактировалось unrealfart 18 июн 2016, 10:16, всего редактировалось 6 раз(а).
Аватара пользователя
unrealfart
 
Сообщения: 264
Зарегистрирован: 23 фев 2016, 19:45
Благодарил (а): 53 раз.
Поблагодарили: 18 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Hamsandwich: HamUse

Сообщение Mistrick » 17 июн 2016, 15:40

unrealfart, у вас неправильные параметры у форварда.
Код: Выделить всё
/**
     * Description:        Called whenver one entity uses another.
     * Forward params:    function(this, idcaller, idactivator, use_type, Float:value)
     * Return type:        None.
     * Execute params:    ExecuteHam(Ham_Use, this, idcaller, idactivator, use_type, Float:value);
     */
    
Ham_Use
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Hamsandwich: HamUse

Сообщение Subb98 » 17 июн 2016, 17:10

Прошу прощения, это что, статья? :-)
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Hamsandwich: HamUse

Сообщение unrealfart » 17 июн 2016, 17:22

Mistrick писал(а):unrealfart, у вас неправильные параметры у форварда.
Код: Выделить всё
/**
     * Description:        Called whenver one entity uses another.
     * Forward params:    function(this, idcaller, idactivator, use_type, Float:value)
     * Return type:        None.
     * Execute params:    ExecuteHam(Ham_Use, this, idcaller, idactivator, use_type, Float:value);
     */
    Ham_Use

а зачем мне лишнее в форварде, если оно не используется, если это не правильно, скажите почему другие параметры так важны

Добавлено спустя 44 секунды:
Subb98 писал(а):Прошу прощения, это что, статья? :-)

Скажите, что не так, я этой инфы ни где не нашел, может кому-то понадобится, раз уж это не статья удалите...
Аватара пользователя
unrealfart
 
Сообщения: 264
Зарегистрирован: 23 фев 2016, 19:45
Благодарил (а): 53 раз.
Поблагодарили: 18 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Hamsandwich: HamUse

Сообщение Subb98 » 17 июн 2016, 17:29

unrealfart, да нет, ну раз уж вы решили рассказать о том, как это работает, то можно было бы это сделать и более детально что ли. Например, для чего вы создаёте переменную, откуда будет вызываться обработчик Blocked (по вашему коду это не очевидно), и т.д.

Добавлено спустя 2 минуты 35 секунд:
П.с.: я думаю, что вы, всё-таки перепутали название обработчика с переменной при регистрации в вашем коде.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Hamsandwich: HamUse

Сообщение unrealfart » 17 июн 2016, 17:33

Subb98 писал(а):unrealfart, П.с.: я думаю, что вы, всё-таки перепутали название обработчика с переменной при регистрации в вашем коде.


Вот это я не понял, даже не понял термин "обработчик" в данном моменте
Аватара пользователя
unrealfart
 
Сообщения: 264
Зарегистрирован: 23 фев 2016, 19:45
Благодарил (а): 53 раз.
Поблагодарили: 18 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Hamsandwich: HamUse

Сообщение Subb98 » 17 июн 2016, 17:39

unrealfart, нде.

unrealfart писал(а):регистрируем Ham_Use

Код: Выделить всё
RegisterHam(Ham_Use, "func_button", "BlockButton"

Далее идет паблик, который и будет отвечать за блокировку нажатия на кнопки

Код: Выделить всё
public Blocked(idactivator

Откуда вы вызываете Blocked? Не вижу его в регистрации. По-щучьему велению сам вызывается?

Добавлено спустя 1 минуту 32 секунды:
П.с.:

unrealfart писал(а):паблик, который и будет отвечать за блокировку нажатия на кнопки

В вашем случае это и есть обработчик: функция, которая отвечает за обработку определённого события / команды.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Hamsandwich: HamUse

Сообщение unrealfart » 17 июн 2016, 17:44

Subb98 писал(а):unrealfart, нде.

unrealfart писал(а):регистрируем Ham_Use

Код: Выделить всё
RegisterHam(Ham_Use, "func_button", "BlockButton")

Далее идет паблик, который и будет отвечать за блокировку нажатия на кнопки

Код: Выделить всё
public Blocked(idactivator)

Откуда вы вызываете Blocked? Не вижу его в регистрации. По-щучьему велению сам вызывается?

Добавлено спустя 1 минуту 32 секунды:
П.с.:

unrealfart писал(а):паблик, который и будет отвечать за блокировку нажатия на кнопки

В вашем случае это и есть обработчик: функция, которая отвечает за обработку определённого события / команды.

Ой, я ошибся, извиняюсь, поправил
Аватара пользователя
unrealfart
 
Сообщения: 264
Зарегистрирован: 23 фев 2016, 19:45
Благодарил (а): 53 раз.
Поблагодарили: 18 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Hamsandwich: HamUse

Сообщение Subb98 » 17 июн 2016, 17:45

unrealfart, ну слава Богу. :-)
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Hamsandwich: HamUse

Сообщение unrealfart » 17 июн 2016, 17:46

Subb98 писал(а):unrealfart, ну слава Богу. :-)

может вы ответите, что имел ввиду мистрик, мне ведь не нужны остальные параметры форварда
Аватара пользователя
unrealfart
 
Сообщения: 264
Зарегистрирован: 23 фев 2016, 19:45
Благодарил (а): 53 раз.
Поблагодарили: 18 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10