#разработка_игр #клиент_сервер #защита
Никогда не разрабатывал игры, интересует такой вопрос, допустим есть клиент игры в котором есть персонаж "лучник" который стреляет со скоростью 1 выстрел в 1 секунду, если с помощью программы(например hlapex) поймать пакет который отвечает за выстрел, и отсылать его каждые 0.1 то лучник получается будет делать 10 выстрелов в 1 секунду? То есть на сервере нужно проверять когда был последний выстрел и если следующий выстрел слишком быстро произошел, то блокировать этот выстрел? Или я что-то не понимаю и выстрелы не отправляются? Вообщем может кто-то объяснить?
Ответы
Ответ 1
Все верно. Учитывай время между запросами. Блокируй если "выстрелы" приходят при меньшем таймауте чем разрешено.Ответ 2
Насколько я знаю, хорошей практикой считается не отправка на сервер пакета с действием как например "Выстрел", а отправка пакета "Начал стрельбу" по нажатию клавиши и "Закончил стрельбу" по отпусканию клавиши. Скорость атаки, количество выстрелов и всё остальное при этом будет считаться на сервере, пока идёт стрельба. Как минимум такой подход защитит от ситуации, описанной в вашем вопросе.
Комментариев нет:
Отправить комментарий