ШРЕК НАГЕБАТОР
Пользователь
- Сообщения
- 153
- Реакции
- 68
1). Ваш игровой ник-нейм и номер аккаунта: NAGEBATOR_MYCAP0B
2). Суть вашей проблемы: Уже примерно месяц парят краши на вашем сервере. В какой-то спонтанный момент игры на любом режиме (в т.ч. и /gw), игра вылетает в краш, и после этого какое-то время, иногда минуту, а иногда полчаса наблюдается следующая картина: при подключении к серверу до появления каких-либо диалогов, игра крашится, и так каждый раз, но при этом любой другой сервер работает нормально без каких-либо нареканий, когда этот отрезок времени заканчивается, то всё возвращается на круги своя.
Теория.
Думаю дело в недавнем обновлении тренировочного режима. Объясняю почему так решил. Для начала оговоримся, что у нас в Сампе всё взаимодействие между игроками и сервером происходит исключительно посредством отправки RakNet пакетов синхронизации и RPC, следовательно единственный путь, через который сервер может крашнуть игрока — это отправить ему кривую синхру, которая при обработке на его компьютере спровоцирует ошибку. Это значит, что искать ответ нам следует во входящих пакетах и RPC. Что указывает на тренировочный режим, ну во-первых это период времени когда всё началось, как раз примерно после обновления тренировок когда боты научились стрелять, во-вторых я использую скрипт Shotlog, который логирует входящие/исходящие пакеты выстрелов, и там не раз уже замечал, что отображаются выстрелы ваших ботов TS_BOT, даже когда они находятся в другом виртуальном мире.
Что же, есть теория, её можно проверить. Включим лог всех пакетов и RPC, и посмотрим что успевает отправить сервер прежде, чем игру крашнет. Результат:
Как видим, ровно один пакет успевает отправить сервер, и это синхра пуль, напомню, что это происходит до появления диалога с авторизацией. Если посмотрим на поле playerId, то увидим, что посылает всё это дело серверный бот под ID 335, т.к. на сервере всего 300 слотов для игроков, а остальные зарезервированы для ботов. Дальше не будем вдаваться подробности почему это вызывает краши у одних, и не вызывает у других, тут может быть много вариантов, но очевидно, что
именно эта кривая синхра ставит раком мою ГТА
и не даёт нормально постреляться. Сделайте так, чтобы боты не слали синхронизацию в другие вирт. миры и тем более игрокам, которые не успели даже авторизоваться.
3). Ваш игровой сервер: One.
4). Доказательства:
2). Суть вашей проблемы: Уже примерно месяц парят краши на вашем сервере. В какой-то спонтанный момент игры на любом режиме (в т.ч. и /gw), игра вылетает в краш, и после этого какое-то время, иногда минуту, а иногда полчаса наблюдается следующая картина: при подключении к серверу до появления каких-либо диалогов, игра крашится, и так каждый раз, но при этом любой другой сервер работает нормально без каких-либо нареканий, когда этот отрезок времени заканчивается, то всё возвращается на круги своя.
Теория.
Думаю дело в недавнем обновлении тренировочного режима. Объясняю почему так решил. Для начала оговоримся, что у нас в Сампе всё взаимодействие между игроками и сервером происходит исключительно посредством отправки RakNet пакетов синхронизации и RPC, следовательно единственный путь, через который сервер может крашнуть игрока — это отправить ему кривую синхру, которая при обработке на его компьютере спровоцирует ошибку. Это значит, что искать ответ нам следует во входящих пакетах и RPC. Что указывает на тренировочный режим, ну во-первых это период времени когда всё началось, как раз примерно после обновления тренировок когда боты научились стрелять, во-вторых я использую скрипт Shotlog, который логирует входящие/исходящие пакеты выстрелов, и там не раз уже замечал, что отображаются выстрелы ваших ботов TS_BOT, даже когда они находятся в другом виртуальном мире.
Что же, есть теория, её можно проверить. Включим лог всех пакетов и RPC, и посмотрим что успевает отправить сервер прежде, чем игру крашнет. Результат:
Код:
-- RakLogger++ Started Logging --
Time: 10:57:37
Date: 10/02/21
----------------------------------
[RECV] > [BULLET_SYNC(206)] -> lenBytes: 43 | lenBits: 344
playerId: 335
targetType: 0
targetId: 65535
origin: -1427.7917480469 -1579.3485107422 101.75782012939
target: 2002.5400390625 -2485.3828125 18.402433395386
center: 0 0 0
weapon: 24
Как видим, ровно один пакет успевает отправить сервер, и это синхра пуль, напомню, что это происходит до появления диалога с авторизацией. Если посмотрим на поле playerId, то увидим, что посылает всё это дело серверный бот под ID 335, т.к. на сервере всего 300 слотов для игроков, а остальные зарезервированы для ботов. Дальше не будем вдаваться подробности почему это вызывает краши у одних, и не вызывает у других, тут может быть много вариантов, но очевидно, что
3). Ваш игровой сервер: One.
4). Доказательства:
Последнее редактирование: