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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Client User Info String (https://hlfx.ru/forum/showthread.php?threadid=5141)


Отправлено ~ X ~ 12-11-2018 в 10:51:

Half-Life Client User Info String

Доброго дня!
Проблемка такая: надо завести новое поле для клиентской настройки аналогично name, model, skin, *color. Для этого на клиенте надо добавить возможность отправки на сервер, а с сервера - рассылку клиентам.
Как я понимаю, для этого служит FCVAR_USERINFO, но как заставить его работать не понятно. Завёл на клиенте квар, на сервере попытался сделать SET_USER_KV (или как оно называется), но на клиенте ничего не изменилось.
Вопрос: как заставить это работать? И, насколько удалось разобраться, userinfo в клиентке не доступен.

PS: нужно в т.ч. для голосовых чатов игроков, как в UT.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено a1batross 12-11-2018 в 11:46:

Мыслишь правильно, но серверный userinfo -- это копия и на клиент обратно не отправляется.

Как вариант, можно в stufftext писать setinfo somevar someval, но тогда и на сервере не надо менять -- обновится само.

А тебе зачем вообще? Может и не нужно.


Отправлено ~ X ~ 12-11-2018 в 19:45:

a1batross спасиб, но не до конца ясно.
То, что с сервера userinfo рассылается - это я понял по svc_userinfo (или как-то так). А надо чтоб инфа о клиенте рассылалась от него ко всем.

Конкретный пример: юзер должен иметь возможность вводить в консоль:
model hgrunt
skin 3
voicename hgrunt
и окружающие должны быть в курсе, потому что каждый параметр настраивается индивидуально.

В итоге - на клиенте достаточно создать квар voicename с флигом FCVAR_USERINFO? И потом надо как-то этот voicename вычитать у других игроков на клиенте. Проблема в том, что cl API не позволяет (вроде как) считывать userinfostring. Даже свой.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено a1batross 15-11-2018 в 12:39:

~ X ~ по svc_updateuserinfo приходит на клиент userinfo, точно.

В общем, тебе городить ничего не нужно, движок уже позаботился. Достаточно создать квар с соответствующим флагом. Только учти, что userinfo не резиновый и он всего 256 байт.

userinfo других игроков и свой собственный считать не проблема вообще. Достаточно воспользоваться вызовом gEngfuncs.PlayerInfo_ValueForKey.


Отправлено Дядя Миша 16-11-2018 в 22:13:

Цитата:
~ X ~ писал:
В итоге - на клиенте достаточно создать квар voicename с флигом FCVAR_USERINFO?

Да, именно так. Остальное движок уже сам сделает.

Цитата:
~ X ~ писал:
Проблема в том, что cl API не позволяет (вроде как) считывать userinfostring. Даже свой.

C++ Source Code:
const char *( *PlayerInfo_ValueForKey )( int playerNum, const char *key );

но тут только значение для известного ключа. Если нужна вся строка, то можно её взять через
C++ Source Code:
struct player_info_s *( *PlayerInfo )( int index );

в StudioApi. Там в структуре есть userinfo

__________________
My Projects: download page

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

Цитата:

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


Отправлено ~ X ~ 17-11-2018 в 09:02:

Пля, джва дня ждал ответов. Только сам додебажился, как вы ответили Спасибо

Про ограничние - это спасибо, буду иметь в виду.
В итоге всё получилось и довольно хорошо.
Но теперь нужны звукопаки.
И ещё одна тема: хочу генерировать аватары для чата из models/player/*/*.bmp
Но, похоже, надо как минимум - писать свой загрузчик BMP-файлов, и рисовать на экране при помощи выгуи. Так что, мб нафиг это...

Можно было бы отрендерать модели игроков по расположению головы в какие-нибудь битмапы, но это вообще нереально без залезания за пределы GS API.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Ku2zoff 17-11-2018 в 09:42:

Цитата:
~ X ~ писал:
Но теперь нужны звукопаки.

Ты разным моделям игроков разные голоса хочешь сделать? Идея неплоха. Плохо то, что звуков нету. Если кое-что и можно найти в сети для каких-то персонажей или склеить из разных слов для того же hgrunt'a, всё равно придётся записывать большую часть озвучки самостоятельно.


Отправлено ~ X ~ 17-11-2018 в 12:11:

Ku2zoff звуков вагоны. только нужно их выдрать )
Я мог бы сделать для 2-3 персонажей, но их же кучи.
Вот была бы модель Пахома, например - проблем со звуками не было бы в принципе. )
А запилить звуки к 200 моделям, что у меня валяются в принципе - это нереально. Легче всего делать звуки Гордону )))

Как думаешь, если объявить сбор звуков на форуме, кто-нить подтянется? Хотя бы для своего любимого персонажа.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


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

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