Здравствуйте! Столкнулся с очень неприятной проблемой отката игроков по уровню после вылетов из игры. Происходит следующее: Игрок заходит в игру и спокойно играет, потом случается вылет (некорректный выход) игрок заходит снова и спокойно продолжает прокачку, может играть несколько часов после чего выходит из игры и при следующем заходе возвращается на точку где был на момент вылета и теряет %, стоит ему снова пере зайти и он окажется опять на месте вылета. Подскажите в каком направлении копать? Но-кариер выпилен, но не помогло, кеш в БД отключен, проблема не у всех возникает и не после каждого вылета, случайно примерно 5% игроков сервера страдают от данной проблемы. Через время если игрок не вылетает (около 12 часов) и продолжает бегать с багом то он проходит и уже нормально записывает данные.
А как объяснить причину что специально получить данный баг не выходит, ни выдергиванием кабеля ни закрытием клиента через диспетчер? Так же проверял, в базу новые данные пишет, но релог\перезаход возвращают старые координаты и опыт, перезаписывая новые.
По идее все-таки данные должно перезаписывать, новый объект игрока формируется по данным базы. Если конечно нокерииер не остался.
Есть вариант сложный, что у тебя остается объект чара в памяти и он перезаписывает данные базы, такой баг будет несистемным и крайне сложен в повторении.
Проверь процесс удаления чара deleteMe() и особенно выключение runneable который записывает чара, что он точно выключается.
[12.03.19 10:13:28:788] INFO network.GameClient: Player: Клюква level:82 disconnected abnormally.
После данной записи проблемы, но и то не у всех и не всегда
нельзя лечить проблему не зная ее причину, откат позиции может быть связан с банально не очищенной переменной backCoords после инстаны\ивента или же хуилион других приколов, а вот откат опыта связан в любом случаи с отсутствием вызова метода сохранения саб-классов
[12.03.19 10:13:28:788] INFO network.GameClient: Player: Клюква level:82 disconnected abnormally.
После данной записи проблемы, но и то не у всех и не всегда
По поводу сабов: Проводили тест, когда игрок поймал проблему на сабе. Удалили действующий сабкласс на котором была данная проблема и взяли другой, по координатом по прежнему откатывало но опыт уже не прибавляло\убавляло. Но стоит вернуть прежний сабкласс даже без прокачки опыта, его апало до прежнего уровня и так же возвращало на место вылета.
Ребят, удалось щас вызвать баг, обратил внимание на лог, то что игрок зашел не сразу а через 3мин примерно.
[12.03.19 10:13:28:788] INFO network.GameClient: Player: Клюква level:82 disconnected abnormally.
[12.03.19 10:16:18:756] INFO clientpackets.EnterWorld: Клюква[] HWID: Level:82
Проверял на чаре без сабов 5 лвла примерно
Ребят, удалось щас вызвать баг, обратил внимание на лог, то что игрок зашел не сразу а через 3мин примерно.
[12.03.19 10:13:28:788] INFO network.GameClient: Player: Клюква level:82 disconnected abnormally.
[12.03.19 10:16:18:756] INFO clientpackets.EnterWorld: Клюква[] HWID: Level:82
Проверял на чаре без сабов 5 лвла примерно
СКРЕПКА, По сути проблема была воспроизвести баг в контролируемых условиях.
Так как получилось воспроизвести, думаю дальше не будет проблемы найти виновника.