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

Вопрос про FM_Touch

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Вопрос про FM_Touch

Сообщение 1kla$ » 14 мар 2018, 19:35

Привет, расскажите кому не трудно, как убрать спам, в общем отловил classname entity в FM_Touch , но есть косяк, когда стоишь на entity в чат спам сообщений валит, как сдклать так, чтоб написалось 1 сообщение, если сошел с entity и снова наступил на нее снова 1 сообщение, а не кучу как щас, спасибо за помощь :-)
Аватара пользователя
1kla$
 
Сообщения: 122
Зарегистрирован: 19 фев 2018, 13:16
Благодарил (а): 43 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца

Re: Вопрос про FM_Touch

Сообщение 1kla$ » 15 мар 2018, 08:49

Поможете?
Аватара пользователя
1kla$
 
Сообщения: 122
Зарегистрирован: 19 фев 2018, 13:16
Благодарил (а): 43 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца

Re: Вопрос про FM_Touch

Сообщение Mistrick » 15 мар 2018, 11:29

Тач вызывается в каждом кадре, пока есть касание объектов. Какого-либо эвента при прекращении тача нет, тут и получаем проблему. Можно создать переменную, которая при первом таче позволит написать сообщение, а все последующие вызовы тача игнорировать. Но надо ее переключить в исходное значение после разрыва тача, эвента нет, нужно что-то костылить.
Свои варианты не предлагаю, может кто работал с подобным и скажет больше.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Вопрос про FM_Touch

Сообщение 1kla$ » 15 мар 2018, 13:42

Вот переменную я создал, 1 сообщение вывел, а как теперь эту переменную откл при разрыве тача с entity, как можно закостылить?

Пс: если поможет у меня есть FM_prethink , нотам вроде id игрока нет, только entity
Аватара пользователя
1kla$
 
Сообщения: 122
Зарегистрирован: 19 фев 2018, 13:16
Благодарил (а): 43 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца

Re: Вопрос про FM_Touch

Сообщение Mistrick » 15 мар 2018, 15:08

Можно попробовать во время тача сохранять gametime, если текущее значение больше секунды, то делать вывод сообщения.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Вопрос про FM_Touch

Сообщение spree » 15 мар 2018, 15:23

Кстати без тача можно проверить касание игрока с entity?
типа такого if(entity_get_int(id, EV_INT_watertype) == -3)

Можно в центр сообщение выводить.
client_print(id, print_center, "Касание с func_wall")

Этот вариант работает только с английским языком + в том что можно перемещать по высоте и не сбивать другие сообщения типа Conuter-Terrorist win!
engclient_print(0, engprint_center, "^n^n^n^n^n^n^n^n^n^n^n^n^n^n^n^nKOSANIE S FUNC_WALL")

Вот ещё может быть полезным.
Вы должны зарегистрироваться, чтобы видеть ссылки.
Аватара пользователя
spree
 
Сообщения: 708
Зарегистрирован: 05 дек 2013, 15:01
Благодарил (а): 67 раз.
Поблагодарили: 128 раз.
Языки программирования: PAWN

Re: Вопрос про FM_Touch

Сообщение 1kla$ » 15 мар 2018, 18:38

Mistrick, а примерчик можно если не трудно

Добавлено спустя 3 минуты 18 секунд:
Может в fm_prethink можно как то откл переменную ? Чтобы в Touch вывести сообщение 1, а в prethink проверить на касание с entity и откл переменную чтоб снова можно было писать сообщение пр касание, тольо вот там id игрока не получить, а ток entity, мне именно на fakemeta надо :-)

Добавлено спустя 27 минут 23 секунды:
spree, в центр не охото, именно чат хочу
Аватара пользователя
1kla$
 
Сообщения: 122
Зарегистрирован: 19 фев 2018, 13:16
Благодарил (а): 43 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца

Re: Вопрос про FM_Touch

Сообщение spree » 15 мар 2018, 20:06

Я вот попытался менять переменную с помощью 2 тачей
new player[32]
register_touch("player", "func_wall", "touch_fw") устанавливаю в true и посылаю сообщение
register_touch("player", "worldspawn", "touch_ws") когда игрок сошел с func_wall устанавливаю в false,
только вот проблема с worldspawn брашами, касание вызывается когда идёшь по неровной поверхности, склон или касание об стену, иногда с прыжка прокается.
:dntknw:

опиши точнее что ты хочешь сделать, что за entity? как они расположены, как на них попасть.
Аватара пользователя
spree
 
Сообщения: 708
Зарегистрирован: 05 дек 2013, 15:01
Благодарил (а): 67 раз.
Поблагодарили: 128 раз.
Языки программирования: PAWN

Re: Вопрос про FM_Touch

Сообщение 1kla$ » 15 мар 2018, 20:11

Блин я думал полегче будет сделать это
Аватара пользователя
1kla$
 
Сообщения: 122
Зарегистрирован: 19 фев 2018, 13:16
Благодарил (а): 43 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца

Re: Вопрос про FM_Touch

Сообщение spree » 15 мар 2018, 20:34

Можно set_task создать, искать find_ent_in_sphere по расстоянию в 1 юнит допустим, посылать игроку сообщение и устанавливать переменную в false пока игрок в зоне.
Аватара пользователя
spree
 
Сообщения: 708
Зарегистрирован: 05 дек 2013, 15:01
Благодарил (а): 67 раз.
Поблагодарили: 128 раз.
Языки программирования: PAWN

След.

Вернуться в Скриптинг

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

Сейчас этот форум просматривают: nemec21 и гости: 12