HLFX.Ru Forum
Показать все 10 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Как запустить комманду у клиента ? (https://hlfx.ru/forum/showthread.php?threadid=1651)


Отправлено assd 22-12-2008 в 08:08:

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


Отправлено XaeroX 22-12-2008 в 08:11:

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

__________________

xaerox on Vivino


Отправлено assd 22-12-2008 в 09:47:

Я нашел в чем ошибка. Оказываеться надо поставить перевод коретки после 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 часа искал ошибку)). БУДЬТЕ БДИТЕЛЬНЫ !!!


Отправлено XaeroX 22-12-2008 в 11:27:

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

__________________

xaerox on Vivino


Отправлено Дядя Миша 22-12-2008 в 13:01:

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'


Отправлено LuCiFer 22-12-2008 в 13:04:

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


Отправлено XaeroX 22-12-2008 в 13:11:

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

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

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

__________________

xaerox on Vivino


Отправлено Дядя Миша 22-12-2008 в 15:02:

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'


Отправлено XaeroX 22-12-2008 в 15:12:

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

__________________

xaerox on Vivino


Отправлено Дядя Миша 22-12-2008 в 15:35:

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

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 20:41.
Показать все 10 сообщений этой темы на одной странице

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