HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Как запустить комманду у клиента ?
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
assd
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



Question Как запустить комманду у клиента ?

Пишу плагин под AMX. Немогу запустить комманду у клиента. Нашел функцию g_engfuncs.pfnClientCommand(edict_t* pEdict, char* szFmt, ...), но она не работает.

Получаю pEdict клиента при заходе его на сервер
отправляю ему сразу же disconnect. Но ничего не получаеться.

C++ Source Code:
void OnClientPutInServer(edict_t *pEntity){
  g_engfuncs.pfnClientCommand(pEntity, "disconnect");
  RETURN_META(MRES_IGNORED);
};


даже пробовал кикнуть игрока:
C++ Source Code:
g_engfuncs.pfnServerCommand("kick #1");
g_engfuncs.pfnServerExecute();

пишет bad server command kick #1

Сообщить модератору | IP: Записан
Сообщение: 41148

Старое сообщение 22-12-2008 08:08
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35071
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Насчет особенностей AMX - не в курсе, но в принципе все сделано вроде бы правильно и должно работать.

__________________

Сообщить модератору | IP: Записан
Сообщение: 41149

Старое сообщение 22-12-2008 08:11
-
assd
Новичок

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 7

Рейтинг



Я нашел в чем ошибка. Оказываеться надо поставить перевод коретки после disconnect. (Неужели амх такой принципеальный?)

Вобщем это будет выглядить так:

C++ Source Code:
1
g_engfuncs.pfnClientCommand(pEntity, "disconnect\n");
2
 
3
char kickcmd[16];
4
sprintf(kickcmd, "kick #%d\n", GETPLAYERUSERID(pEntity));
5
g_engfuncs.pfnServerCommand(kickcmd);
6
g_engfuncs.pfnServerExecute();


Я 2 часа искал ошибку)). БУДЬТЕ БДИТЕЛЬНЫ !!!

Сообщить модератору | IP: Записан
Сообщение: 41151

Старое сообщение 22-12-2008 09:47
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35071
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Была такая мысль, кстати. Перевод каретки всегда ставить надо.
Просто я не подумал, что это настолько уж принципиально...

__________________

Сообщить модератору | IP: Записан
Сообщение: 41154

Старое сообщение 22-12-2008 11:27
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33074
Нанёс повреждений: 392 ед.

Рейтинг



assd перевод каретки тут не приделах, на самом деле.
Даже если принудительно написать "disconnect\n", твоя команда выполнится только на следующем кадре.
А Server_Execute() форсирует процесс до немедленного выполнения.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 41156

Старое сообщение 22-12-2008 13:01
-
LuCiFer
Новичок

Дата регистрации: Jan 2008
Проживает: (void)
Сообщений: 3

Рейтинг



вопрос в тему. а можно ли получить текстовый результат выполнения команды с клиента??? например с команды "alias\n"

Сообщить модератору | IP: Записан
Сообщение: 41157

Старое сообщение 22-12-2008 13:04
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35071
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
перевод каретки тут не приделах, на самом деле.

Ну если подумать логически - то в буфер может потом еще что-то дописаться, и команда будет уже не disconnect, а disconnectblablabla, а такой команды нет.
Цитата:
LuCiFer писал:
а можно ли получить текстовый результат выполнения команды с клиента???

Где-то уже была тема про это...

__________________

Сообщить модератору | IP: Записан
Сообщение: 41159

Старое сообщение 22-12-2008 13:11
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33074
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX я имею в виду, что перевод строки не запускает команду на выполнение немедленно. А если совсем не дописать, то конечно команда испортится. кстати Server_Execute не добавляет \n

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 41162

Старое сообщение 22-12-2008 15:02
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35071
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Ну и что что не добавляет, зато он выполняет ее как последнюю, т.е. мы уверены, что к ней ничего не допишется.

__________________

Сообщить модератору | IP: Записан
Сообщение: 41164

Старое сообщение 22-12-2008 15:12
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33074
Нанёс повреждений: 392 ед.

Рейтинг



XaeroX можно еще команд добавить, также с переводом строки

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 41165

Старое сообщение 22-12-2008 15:35
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 20:37. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Как запустить комманду у клиента ?
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024