|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
Поймать нажатие клавиши
|
|
Rockon | Дата: Четверг, 28.05.2009, 19:30:37 | Сообщение # 1 |
Подполковник
Группа: Скриптеры
Сообщений: 137
Статус: Не в сети
| Собственно вопрос - как поймать нажатие клавиши клиента, как в RLHG. Если можно - помогите кодом, а не ссылками
|
|
| |
defaultNick8433 | Дата: Четверг, 28.05.2009, 20:04:23 | Сообщение # 2 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| Может я не понимаю ну вот к примеру,пример:если игрок сядет,то в чате будет писаться,что игрок присел Code #include <amxmodx>
public plugin_init() { register_plugin("x3","x3","x3") register_event("HLTV","event_round_start","a","1=0","2=0") } public event_round_start() { if(!client_cmd(id,"+duck")) new name[32] get_user_name(id,name,31) client_print(0,print_chat,"uprok %s /7PuceJI",name) }
Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
|
|
| |
slogic | Дата: Четверг, 28.05.2009, 20:08:18 | Сообщение # 3 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Разве клиент не оперирует командами в HL1? На сервер отсылаются не кнопки, а команды, а также предпоеределнные состояния игрока: зажата ли кнопка ПРЫЖОК (обратите внимание, ПРЫЖОК, а не кнопка <ПРОБЕЛ>), нажата ли кнопка <ВПЕРЕДЕ> и так далее. Т.о. ты можешь определить какое состояние было изменено. Если тебе нужен код нажатой кнопки на клавиатуре клиента, то сомневаюсь, что на amx/x ты это реализуешь корректно (биндить кнопки на клиенте не этично).
|
|
| |
Rockon | Дата: Четверг, 28.05.2009, 23:08:01 | Сообщение # 4 |
Подполковник
Группа: Скриптеры
Сообщений: 137
Статус: Не в сети
| всё это надо мне, чтобы ловить антиматом забинденные на спам клавиши и менять их на умолчание(всем наверно известна реклама AI House server
|
|
| |
defaultNick8433 | Дата: Четверг, 28.05.2009, 23:37:30 | Сообщение # 5 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| Rockon, я ответил на твой вопрос? Добавлено (2009-05-28, 11:37 Pm) --------------------------------------------- Мой код не првильный,чёто не компилиться,не знаю почему
Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
|
|
| |
Rockon | Дата: Пятница, 29.05.2009, 09:17:12 | Сообщение # 6 |
Подполковник
Группа: Скриптеры
Сообщений: 137
Статус: Не в сети
| нет, к сожалению не ответил. Мне надо не команды ловить, а нажатия клавиши и уже потом команды, которые идут с неё. Т.е. я планирую написать следующее: клиент нажимает клавиш, она запоминается, если в этот момент от клиента прошёл спам, клавиша перебиндивается на "умолчание"
|
|
| |
defaultNick8433 | Дата: Пятница, 29.05.2009, 13:07:16 | Сообщение # 7 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| Ну вот к примеру,если игрок нажимает на кнопку 3,то в чат пишется:вы выбрали нож Code #include <amxmodx>
public plugin_init() { register_plugin("k","k","k") register_event("HLTV","event_round_start","a","1=0","2=0") } public event_round_start(id,key) { key++ if(key==3)client_print(id,print_chat,"вы выбрали нож") }
Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
|
|
| |
Koka | Дата: Пятница, 29.05.2009, 13:58:37 | Сообщение # 8 |
Полковник
Группа: Пользователи
Сообщений: 169
Статус: Не в сети
| HLTV - это эвэнт начала раунда, когда игроки еще не спавнились (не ожили)
стал ощущать рефлексы тоньше, оставаясь как всегда с идеей той же...
Сообщение отредактировал Koka - Пятница, 29.05.2009, 13:59:43 |
|
| |
defaultNick8433 | Дата: Пятница, 29.05.2009, 14:08:19 | Сообщение # 9 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| Koka, спасибо,забыл,тогда так Code #include <amxmodx> #include <hamsandwich> #include <fakemeta>
public plugin_init() { register_plugin("k","k","k") RegisterHam(Ham_Spawn,"player","fwd_Ham_Spawn",1) } public fwd_Ham_Spawn(id,key) { key++ if(key==3)client_print(id,print_chat,"вы выбрали нож") }
Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
Сообщение отредактировал defaultNick8433 - Пятница, 29.05.2009, 14:08:38 |
|
| |
slogic | Дата: Пятница, 29.05.2009, 14:09:57 | Сообщение # 10 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (Rockon) чтобы ловить антиматом забинденные на спам клавиши и менять их на умолчание периодически меняй на умолчание и все дела. а код клавиши ты не получишь с пом. amx/x.
|
|
| |
defaultNick8433 | Дата: Пятница, 29.05.2009, 14:12:44 | Сообщение # 11 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| Это так,проверил на собственном плагине,код есть в этой теме Он компилируется только такCode key++ if(key==3)client_print(id,print_chat,"вы выбрали нож") А если вместо 3 поставить y,чтобы войти в чат,уже не компилиться Code key++ if(key==y)client_print(id,print_chat,"вы выбрали нож")
Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
Сообщение отредактировал defaultNick8433 - Пятница, 29.05.2009, 14:13:13 |
|
| |
PomanoB | Дата: Пятница, 29.05.2009, 14:52:08 | Сообщение # 12 |
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Quote (defaultNick8433) RegisterHam(Ham_Spawn,"player","fwd_Ham_Spawn",1) public fwd_Ham_Spawn(id,key) Это вообще бред какой-то Во первых это вызывается после спавна игрока, во вторых этот форвард имеет только 1 параметр, и никаких key там нету
http://romanov4400.mybrute.com
|
|
| |
pike | Дата: Понедельник, 01.06.2009, 23:51:47 | Сообщение # 13 |
Полковник
Группа: Пользователи
Сообщений: 207
Статус: Не в сети
| Quote (Rockon) Собственно вопрос - как поймать нажатие клавиши клиента, как в RLHG RHLG биндит клиенту на запрещенную клавишу(если об этом речь) команду(rhlg)
|
|
| |
Rockon | Дата: Вторник, 02.06.2009, 10:21:53 | Сообщение # 14 |
Подполковник
Группа: Скриптеры
Сообщений: 137
Статус: Не в сети
| Спасибо! Посмотрел и убедился, тогда как он разбиндивает? ведь на каждом сервере разные клавиши запрещены) И тогда ещё вопрос: как можно узнать значение у клиента, например bind "y" и тп? пробовал считать с помощью query_client_cvar выглядело это примерно так: Code format(bindSet, 32, "bind ^"y^"") bindValue = query_client_cvar(id, bindSet,"lolgo") дальше шла функция lolgo: Code public lolgo(id, const cvar[], const value[]) { new logname[128] new message[264] format(message, 264,"%s %s 1 ",bindSet, bindValue) format(logname, 127, "addons\amxmodx\loggoga.txt") write_file(logname, message) } но выходил там непонятный код после bind "y" моя задача была тут - проверить значение бинда. Подскажите нужную функцию для работы с этим
Сообщение отредактировал Rockon - Вторник, 02.06.2009, 10:29:27 |
|
| |
slogic | Дата: Вторник, 02.06.2009, 12:50:02 | Сообщение # 15 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (Rockon) И тогда ещё вопрос: как можно узнать значение у клиента, например bind "y" С пом. amx/x никак. Все бинды выполняются только на стороне клиента, что вполне логично. query_client_cvar() только для клиентских cvar.
|
|
| |
| AMX Mod X Russian Community © 2006-2025 | |
|
| |