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

отлов нажатия кнопки на карте

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

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

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

отлов нажатия кнопки на карте

Сообщение 1_fps » 15 июл 2014, 14:13

Здравствуйте, подскажите пожалуйсто как отловить нажатие кнопки на карте? Какое это событие а то смотрел и не увидел такого

Обращаю внимание, что это раздел SourceMod, оффтопить своими кодами для AmxModX не нужно. А если автор перепутал SourceMod и AmxModX, то он и сам получит предупреждение. // Rejiser
Аватара пользователя
1_fps
 
Сообщения: 35
Зарегистрирован: 22 июн 2013, 19:20
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
Counter-Strike: GO

Re: отлов нажатия кнопки на карте

Сообщение Safety1st » 15 июл 2014, 15:12

Какой кнопки?
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: отлов нажатия кнопки на карте

Сообщение 1_fps » 15 июл 2014, 16:35

Да любой, стоит на карте кнопка допустим включающая свет (которая является ентити func_button) при ее активации надо вызвать меню каким событием можно отловить нажатие кнопки?
Аватара пользователя
1_fps
 
Сообщения: 35
Зарегистрирован: 22 июн 2013, 19:20
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
Counter-Strike: GO

Re: отлов нажатия кнопки на карте

Сообщение Plrip » 15 июл 2014, 16:46

Код: Выделить всё
GetClientButtons(client) & IN_USE


причём здесь func_button из амхх?

Status:
Аватара пользователя
Plrip
Скриптер
 
Сообщения: 2903
Зарегистрирован: 03 дек 2011, 19:33
Откуда: Ukraine
Благодарил (а): 237 раз.
Поблагодарили: 603 раз.
Языки программирования: Counter-Strike 1.6
X-Ray
Killing-Floor [low]

Re: отлов нажатия кнопки на карте

Сообщение 1_fps » 15 июл 2014, 16:50

Всмысле причем мне нужно отловить нажатие ентити объекта func_button который является частью картостроения а не частью амхх, как это делаеься я даже непредставляю вот я и пояснил.
А ваш пример мне несовсем понятен.
Допустим стоит несколько кнопок 1 к примеру включает свет вторая открывает дверь каждая имеет свое имя само собой и при нажатии каждой из кнопок надо вызвать разные меню и как тогда применить ваш пример к данной ситуакции? Можете пояснить пожалуйсто.
Аватара пользователя
1_fps
 
Сообщения: 35
Зарегистрирован: 22 июн 2013, 19:20
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
Counter-Strike: GO

Re: отлов нажатия кнопки на карте

Сообщение Plrip » 15 июл 2014, 17:18

Код: Выделить всё
if(GetClientButtons(client) & IN_USE)
{
decl String:class[64];
GetEntityClassname( entity, class, sizeof( class ));
if (StrEqual( class, "класс", true ))    PrintToChatAll("....");
Последний раз редактировалось Plrip 15 июл 2014, 17:24, всего редактировалось 1 раз.

Status:
Аватара пользователя
Plrip
Скриптер
 
Сообщения: 2903
Зарегистрирован: 03 дек 2011, 19:33
Откуда: Ukraine
Благодарил (а): 237 раз.
Поблагодарили: 603 раз.
Языки программирования: Counter-Strike 1.6
X-Ray
Killing-Floor [low]

Re: отлов нажатия кнопки на карте

Сообщение Safety1st » 15 июл 2014, 17:39

1_fps, ловите на здоровье ;)

[pawn]
  1. #include <hamsandwich>

  2.  

  3. RegisterHam( Ham_Use, "func_button", "Fwd_ButtonUse_Post", 1 )

  4.  

  5. public Fwd_ButtonUse_Post( ent, idcaller, idactivator, use_type, Float:value ) {

  6.         // ...

  7. }
[/pawn]
ent - индекс кнопки, idcaller - индекс исходной entity, которая 'нажала кнопку'.
При непосредственной активации 'стандартной' кнопки игроком:
use_type = 2 (USE_SET)
idcaller = idactivator = id игрока
• нужна проверка, что id от 1 до maxplayers

Добавлено спустя 15 минут 49 секунд:
Не обратил внимание на раздел :-[
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life


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

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

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