AMX MOD X
Четверг, 25.04.2024, 14:13:10



Приветствую Вас Гость | RSS
[ Главная ] [ Поймать нажатие клавиши - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Поймать нажатие клавиши
Поймать нажатие клавиши
RockonДата: Четверг, 28.05.2009, 19:30:37 | Сообщение # 1
Подполковник
Группа: Скриптеры
Сообщений: 137
Репутация: 1
Статус: Не в сети
Собственно вопрос - как поймать нажатие клавиши клиента, как в RLHG. Если можно - помогите кодом, а не ссылками
 
defaultNick8433Дата: Четверг, 28.05.2009, 20:04:23 | Сообщение # 2
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Может я не понимаю ну вот к примеру,пример:если игрок сядет,то в чате будет писаться,что игрок присел
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
Репутация: 47
Статус: Не в сети
Разве клиент не оперирует командами в HL1? На сервер отсылаются не кнопки, а команды, а также предпоеределнные состояния игрока: зажата ли кнопка ПРЫЖОК (обратите внимание, ПРЫЖОК, а не кнопка <ПРОБЕЛ>), нажата ли кнопка <ВПЕРЕДЕ> и так далее. Т.о. ты можешь определить какое состояние было изменено. Если тебе нужен код нажатой кнопки на клавиатуре клиента, то сомневаюсь, что на amx/x ты это реализуешь корректно (биндить кнопки на клиенте не этично).
 
RockonДата: Четверг, 28.05.2009, 23:08:01 | Сообщение # 4
Подполковник
Группа: Скриптеры
Сообщений: 137
Репутация: 1
Статус: Не в сети
всё это надо мне, чтобы ловить антиматом забинденные на спам клавиши и менять их на умолчание(всем наверно известна реклама AI House server
 
defaultNick8433Дата: Четверг, 28.05.2009, 23:37:30 | Сообщение # 5
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Rockon, я ответил на твой вопрос?

Добавлено (2009-05-28, 11:37 Pm)
---------------------------------------------
Мой код не првильный,чёто не компилиться,не знаю почему


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
RockonДата: Пятница, 29.05.2009, 09:17:12 | Сообщение # 6
Подполковник
Группа: Скриптеры
Сообщений: 137
Репутация: 1
Статус: Не в сети
нет, к сожалению не ответил. Мне надо не команды ловить, а нажатия клавиши и уже потом команды, которые идут с неё.
Т.е. я планирую написать следующее: клиент нажимает клавиш, она запоминается, если в этот момент от клиента прошёл спам, клавиша перебиндивается на "умолчание"
 
defaultNick8433Дата: Пятница, 29.05.2009, 13:07:16 | Сообщение # 7
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Ну вот к примеру,если игрок нажимает на кнопку 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
Репутация: 1
Статус: Не в сети
HLTV - это эвэнт начала раунда, когда игроки еще не спавнились (не ожили)

стал ощущать рефлексы тоньше, оставаясь как всегда с идеей той же...

Сообщение отредактировал Koka - Пятница, 29.05.2009, 13:59:43
 
defaultNick8433Дата: Пятница, 29.05.2009, 14:08:19 | Сообщение # 9
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
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
Репутация: 47
Статус: Не в сети
Quote (Rockon)
чтобы ловить антиматом забинденные на спам клавиши и менять их на умолчание

периодически меняй на умолчание и все дела. а код клавиши ты не получишь с пом. amx/x.
 
defaultNick8433Дата: Пятница, 29.05.2009, 14:12:44 | Сообщение # 11
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Это так,проверил на собственном плагине,код есть в этой теме
Он компилируется только так
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
Репутация: 70
Статус: Не в сети
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
Репутация: 4
Статус: Не в сети
Quote (Rockon)
Собственно вопрос - как поймать нажатие клавиши клиента, как в RLHG

RHLG биндит клиенту на запрещенную клавишу(если об этом речь) команду(rhlg)
 
RockonДата: Вторник, 02.06.2009, 10:21:53 | Сообщение # 14
Подполковник
Группа: Скриптеры
Сообщений: 137
Репутация: 1
Статус: Не в сети
Спасибо! Посмотрел и убедился, тогда как он разбиндивает? ведь на каждом сервере разные клавиши запрещены)
И тогда ещё вопрос: как можно узнать значение у клиента, например
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
Репутация: 47
Статус: Не в сети
Quote (Rockon)
И тогда ещё вопрос: как можно узнать значение у клиента, например bind "y"

С пом. amx/x никак. Все бинды выполняются только на стороне клиента, что вполне логично. query_client_cvar() только для клиентских cvar.
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Поймать нажатие клавиши
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024