![]() |
Страницы (2): « 1 [2] Показать все 21 сообщений этой темы на одной странице |
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=2045)
__________________
В общем, в итоге получается, что проблему можно решить несколькими способами:
Подвинуть ненужные серверу клавиши, вроде IN_SCORE, за пределы 16 бит (/common/in_buttons.h). Можно использовать переменную int impact_index и структуру vec3 impact_position, в которой вообще ещё три переменные (imact_position.x, impact_position.y, impact_position.z). Но, если нет необходимости проверять состояние клавиши, лучше сэкономить место для других клавиш, и обработать её как консольную команду в функции ClientCommand в файле client.cpp. Команда, поступившая от конкретного игрока, будет обрабатываться кодом, относящимся к этому конкретному игроку - проблем никаких.
XaeroX, Дядя Миша, спасибо, проблема решена.
Да, и, Дядя Миша, к вопросу об unhandled exception и segmentation fault - здесь, скорее, второе. Unhandled exception возникает, когда какой-то объект вызвал exception, но он не был нигде обработан. А ошибка сегментации памяти - когда программа пытается записать или считать значение из сегмента памяти, ей не принадлежащего. Когда мы увеличиваем размер структуры, какая-то её часть выходит за пределы выделенного сегмента памяти - происходит ошибка сегментации.
Ещё раз, спасибо.
0xf35 я очень редко ловлю segfault. Это скорее для доса характерно, нежели для винды.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
На линуксе, когда я подобное вытворяю, у меня всегда выходит segmentation fault. Ради интереса написал консольную программку, вызывающую segmentation fault. Исходники одни и те же запускаю на разных платформах - на линуксе segmentation fault, на Windows - сообщение с отчётом (Отправить / Не отправлять). Windows просто не показывает, что конкретно произошло, да и в отладчике тоже почти всегда неясно - здесь, спасибо Microsoft, об этом можно только догадываться.
__________________
0xf35 ну можно по возвращемому адресу сделать некоторые выводы.
Например Acess Violation 0x00005 - это вызов указателя на функцию, который не проинициализирован.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 08:38. | Страницы (2): « 1 [2] Показать все 21 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024