PDA

Просмотр полной версии : [Вопрос] sampgdk



Batya_Montes
27.02.2017, 18:24
пришла в голову идея, но реализуемая она ли вообще ...
суть в том, чтобы отловить отключение сервера при убийстве процесса либо его отваливании, или же иным способом при котором не вызывается OnGameModeExit
возможно ли ?

Daniel_Cortez
27.02.2017, 19:00
Что-то подобное уже реализовано в плагине CrashDetect, так что да, скорее всего, возможно.

Batya_Montes
27.02.2017, 19:45
Что-то подобное уже реализовано в плагине CrashDetect, так что да, скорее всего, возможно.

посмотрел немного, нашел в инклуде интересный коллбек - OnRuntimeError
я так понимаю это он вызывается при отказе процесса ?
безопасно ли будет в нем сохранять игроков или же они отключаются раньше чем данный коллбек ?

суть моя в том, чтобы успеть сохранить данные игроков перед вылетом процесса либо его ином отказе

Batya_Montes
01.03.2017, 12:50
up ...

Daniel_Cortez
01.03.2017, 14:38
посмотрел немного, нашел в инклуде интересный коллбек - OnRuntimeError
я так понимаю это он вызывается при отказе процесса ?
безопасно ли будет в нем сохранять игроков или же они отключаются раньше чем данный коллбек ?
Это в любом случае будет небезопасно по одной очень простой причине: при сбое данные могут оказаться повреждены и вряд ли есть способ со 100% уверенностью убедиться в обратном. Единственный способ защиты, который мне приходит в голову - генерировать контрольную сумму при модификации данных (например, при изменении одного из значений в информации об игроке) и проверка этой суммы перед сохранением данных при сбое, но это будет затратно (по сути лишние вычисления на каждый чих) и всё ещё будут возможны коллизии.