![]() |
Показать все 14 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- [халва] Детектирование прекращения игры на клиенте (https://hlfx.ru/forum/showthread.php?threadid=4837)
[халва] Детектирование прекращения игры на клиенте
Всем доброго утра.
Подскажите, кто хорошо знает Золотой Источник (тм): как на клиенте детектировать:
- загрузку карты
- дисконнект
- выдернутый сетевой кабель (т.е. таймаут и вылет в меню)
- любое другое прерывание игры
Для чего: нужно в срочном порядке отключать все эффекты в т.ч. системы частиц чтобы ни в коем члучае не вызвались движковые трейсы, пойнтконтенты, энтити и прочие крошилки.
Трай-кэч работает плохо и хак, так что, не предлагайте.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
- Загрузку карты можно отловить через VidInit. Каллбэк этот многоцелевой и вызывается по куче поводов, но другого способа попросту нет. Ну есть еще HUD_Init и HUD_Reset, если это как-нибудь поможет. Оно слоупочное, но более информативное. Я лично в ксаше выводил новые каллбэки, потому что в голдсорсе нет явных таких вызовов.
- дисконнект ловится... Да никак он не ловится. Это чисто для движка инфа.
В ксаше я опять-таки вывел калбэк R_ProcessEntData на высвобождение энтить.
- выдернутый сетевой кабель (т.е. таймаут и вылет в меню)
это даже движок расчухать не в состоянии. Ну то есть он ждёт какое-то время, в надежде что соединение восстановится.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Я думаю надо зайти с другой стороны. К примеру движок живёт в обстановке тотальной неизвестности, придет что-то с сервера или же нет.
Но это не мешает ему корректно всё обрабатывать. А нашему другу вдруг надо, кровь из носа. Я думаю там сама рендер-система имеет неправильную архитектуру, поэтому такое и происходит.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Надо чтобы он НЕ крэшанулся.
Оборачивая трейсы в траи мне удавалось кое-как избегать вылетов во время дисконнектов. Т.е. юзер мог играть дальше. Но это плохо.
Надо знать, КОГДА ПЕРЕСТАТЬ ОБНОВЛЯТЬ эффекты. Точнее - удалить их.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
~ X ~
Если у тебя вылеты во время дисконнектов - ты вызываешь функции из неправильных мест. Ищи ошибку в логике.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
блин, ну вы что - на другом языке говорите?
Я же сказал ПЕРЕПИСЫВАЮ К ЖИГУЛЯМ ЭТОТ КОД, вместо ответа, куда шатдаун пилить, получаю "переписывай".
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Вот и перепиши так, чтобы шотдавн был ненужен
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
если узел доступен но порт закрыт то получим 10054 ошибку на сокете при отправке, если же лаг/вылетел кабель то ошибок небудет.
__________________
vk.com/skullcapstudios
marikcool не в этом суть. Суть в том, чтобы отследить момент, когда игра вылетает в главное меню или режим "лоадинг".
В общем, проблему я обошёл и даже не хачно. Но она не единственная. Так что, вопрос остаётся открытым.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Временная зона GMT. Текущее время 09:42. | Показать все 14 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024