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

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- VGUI - сохранение данных (https://hlfx.ru/forum/showthread.php?threadid=4112)


Отправлено domded 25-09-2013 в 20:06:

VGUI - сохранение данных

Вот у меня возник вопрос. Есть инвентарь. В инвентаре есть слоты под пушки. Как мне сохранить привязку "индекс слота - имя пушки"? Во всём клиентском проекте (client.dsw) не нашёл никакого механизма сохранения данных, так же нет никаких специализированных сообщений "послать данные для сохранения на сервер, а потом получать их". Пока можно извратиться с pfnClientCmd("inv save 1 weapon_crowbar") и принимать их в client.cpp на сервере, конечно, но есть ли более простой метод? Что-то типа MESSAGE_BEGIN, только в обратную сторону. Мой метод мне не нравится ещё и тем, что для каждого слота (и горячего, и инвентаря) придётся посылать такое текстовое сообщение.


Отправлено Дядя Миша 25-09-2013 в 20:23:

Цитата:
domded писал:
Во всём клиентском проекте (client.dsw) не нашёл никакого механизма сохранения данных, так же нет никаких специализированных сообщений "послать данные для сохранения на сервер, а потом получать их"

Совершенно верно. Нету в голдсорсе клиентского сохранения. Только декали, но это внутри движка. И кастомную мессагу обратно на сервер не пошлёшь. Но если немножко подумать - решение всё-таки есть.
Предметы инвентаря следует держать на сервере, точно так же как и пушки. А для выбора того или иного предмета использовать, например переменную impact_index в usercmd_t. У меня сильные подозрения, она для того и предназначалась изначально. Ну или для какой-нибудь стратегии

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 26-09-2013 в 00:30:

Я всё храню на сервере, а на клиент посылаю в gmsgInventory.

__________________

xaerox on Vivino


Отправлено marikcool 26-09-2013 в 07:32:

Можешь, на сервере сейв сделать да и все, инвентарь то доступен, с клиента можешь слать не строкой а байт массивом, та же месага посути, вначале только префикс добавь отличный от простых команд.

__________________
vk.com/skullcapstudios


Отправлено PLut 27-09-2013 в 14:28:

У меня как и у XaeroX, а с клиента шлю команды типа moveitem "from" "to".

__________________
Base Defense on Steam, ModDB


Отправлено domded 05-11-2013 в 22:00:

Фух, времени совсем нет сюда залезть. Всем спасибо, но я сделал через задний проход - при обновлении худа (где m_iWeaponBits) поставил сброс и загрузку итемов в инвентарь заново.
з.ы.
Почему вальва именно так написала систему оружия? В смысле, есть же приём сообщений худом - а они поставили биты оружия в структуру информации об игроке и на клиенте её чекают на изменение в каждом тчинке (CHudAmmo, насколько помню) (именно подбор/выброс). Для чего это сделано?


Отправлено Дядя Миша 06-11-2013 в 15:51:

Цитата:
domded писал:
а они поставили биты оружия в структуру информации об игроке

Там много избыточного в халфе. Тяжкое наследие первой кваки.

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 06-11-2013 в 16:26:

Цитата:
domded писал:
Почему вальва именно так написала систему оружия?

ну а вот почему ты
Цитата:
domded писал:
Всем спасибо, но я сделал через задний проход

?

__________________
-Brain is dead-


Отправлено ~ X ~ 06-11-2013 в 20:46:

Топик хороший, хочу уточнить: можно ли сделать 1ым символом команды на сервере какой-нибудь непечатный символ чтобы она не вызывалась из консоли, а только через c2s message?

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


Отправлено domded 07-11-2013 в 16:00:

KiQ, моё решение запилить это так продиктовано наименьшим сопротивлением со стороны движка. Я вообще хочу попробовать переписать всю систему оружия на нормальные сообщения, но пока до этого руки не доходят. Плюс мне нужно ещё извратиться для создания нормальных поднимаемых предметов (ключ-карт, например).
~X~ - Можно, по идее. Тебе нужен код этого чара только. Хотя я сам таким не занимался.
А может дядя миша запилить поддержку нормального клиентского сохранения в своём ксаше?


Отправлено Дядя Миша 07-11-2013 в 16:19:

Цитата:
domded писал:
А может дядя миша запилить поддержку нормального клиентского сохранения в своём ксаше?

Дык давно уже запилил
Декали, энв-статики, звуки, музыка - всё пишется в клиентский сейв

__________________
My Projects: download page

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

Цитата:

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


Отправлено domded 07-11-2013 в 16:38:

Тогда можете ткнуть меня носом, какие функции в вашем сдк за это отвечают? Исходники просмтаривал мельком через блокнот, шестую студию себе не ставил ещё.


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

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