HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Клавиша управления
Страницы (2): « 1 [2]   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
PLut писал:
Дык такие клавиши вроде как в самом движке, это вот, которые IN_ALT?

Ну да. Зареганы на клиенте, и их надо передавать на сервер. А переменная 16 битов, т.е. только на 16 клавиш. Из-за того и сыр-бор.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 49951

Старое сообщение 05-01-2010 12:25
-
0xf35
Новичок

Дата регистрации: Dec 2009
Проживает: /dev/earth0
Сообщений: 7

Рейтинг



В общем, в итоге получается, что проблему можно решить несколькими способами:
Подвинуть ненужные серверу клавиши, вроде 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, но он не был нигде обработан. А ошибка сегментации памяти - когда программа пытается записать или считать значение из сегмента памяти, ей не принадлежащего. Когда мы увеличиваем размер структуры, какая-то её часть выходит за пределы выделенного сегмента памяти - происходит ошибка сегментации.

Ещё раз, спасибо.

Сообщить модератору | | IP: Записан
Сообщение: 49979

Старое сообщение 06-01-2010 11:02
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



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'

Сообщить модератору | | IP: Записан
Сообщение: 49982

Старое сообщение 06-01-2010 11:54
-
0xf35
Новичок

Дата регистрации: Dec 2009
Проживает: /dev/earth0
Сообщений: 7

Рейтинг



На линуксе, когда я подобное вытворяю, у меня всегда выходит segmentation fault. Ради интереса написал консольную программку, вызывающую segmentation fault. Исходники одни и те же запускаю на разных платформах - на линуксе segmentation fault, на Windows - сообщение с отчётом (Отправить / Не отправлять). Windows просто не показывает, что конкретно произошло, да и в отладчике тоже почти всегда неясно - здесь, спасибо Microsoft, об этом можно только догадываться.

Сообщить модератору | | IP: Записан
Сообщение: 50000

Старое сообщение 06-01-2010 19:11
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
0xf35 писал:
Windows просто не показывает, что конкретно произошло, да и в отладчике тоже почти всегда неясно - здесь, спасибо Microsoft, об этом можно только догадываться.

Да, есть такая фигня...

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 50006

Старое сообщение 06-01-2010 21:14
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



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'

Сообщить модератору | | IP: Записан
Сообщение: 50008

Старое сообщение 06-01-2010 21:17
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 21:50. Новая тема    Ответить
Страницы (2): « 1 [2]   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Клавиша управления
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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