NoNameUltima, речь ведь про поток к БД.
Я видимо не правильно понял реплику, я решил что идёт речь о соединении с базой. И да команда spawn создаёт не зависимый поток исполнения кода.
Posted 10 September 2015 - 23:14
NoNameUltima, речь ведь про поток к БД.
Я видимо не правильно понял реплику, я решил что идёт речь о соединении с базой. И да команда spawn создаёт не зависимый поток исполнения кода.
Posted 10 September 2015 - 23:21
Насчет избирательности, интересно только одно - есть ли смысл отдельных потоков, для пересохранения
Это не отдельные потоки, поток в базу один, с разницей, отправляются только те данные которые требуют синхронизации, естественно сама база должна поддерживать такой режим работы, избирательный в смысле.
Если не ошибаюсь - Spawn создает нить, соответственно внутри нити вставить цикл с таймером, и походу работы сервера, сохранять, в одном потоке игроков, в другом технику, в третьем объекты...
А зачем вам несколько циклов, ни что не мешает сделать всё перечисленное в одном, синхронизирующем всё, цикле.
Я считаю нет смысла всё размазывать.
Единственное, забиндите на клавишу Esc у игрока, принудительную инициализацию сохранения, для корректной работы.
Вам нужно, либо модифицировать на предмет вызова функции этот диплей
class RscDisplayMPInterrupt : RscStandardDisplay {};
Либо при нажатии клавиши проверить открыт ли этот дисплей, что будет предполагать желание игрока выйти из игры.
Posted 12 September 2015 - 12:13
Насчет избирательности, интересно только одно - есть ли смысл отдельных потоков, для пересохранения
Это не отдельные потоки, поток в базу один, с разницей, отправляются только те данные которые требуют синхронизации, естественно сама база должна поддерживать такой режим работы, избирательный в смысле.
Если не ошибаюсь - Spawn создает нить, соответственно внутри нити вставить цикл с таймером, и походу работы сервера, сохранять, в одном потоке игроков, в другом технику, в третьем объекты...
А зачем вам несколько циклов, ни что не мешает сделать всё перечисленное в одном, синхронизирующем всё, цикле.
Я считаю нет смысла всё размазывать.
Единственное, забиндите на клавишу Esc у игрока, принудительную инициализацию сохранения, для корректной работы.
Вам нужно, либо модифицировать на предмет вызова функции этот диплей
class RscDisplayMPInterrupt : RscStandardDisplay {};Либо при нажатии клавиши проверить открыт ли этот дисплей, что будет предполагать желание игрока выйти из игры.
Да - в одном потоке и сделал сохранение.
А по поводу выхода - в onPlayerDisconnect принудительное сохранение.
Posted 20 September 2015 - 20:16
А по поводу выхода - в onPlayerDisconnect принудительное сохранение.
При дисконекте игрока, управляемый игроком бот подыхает, это не секрет, как медицину синхронизировать собираетесь?
Posted 20 September 2015 - 20:27
ЗЫ
Возьмите на вооружение лучше это
_3:_Event_Handlers#HandleDisconnect
Если я всё правильно понимаю, при дисконекте игрока, тело передаётся в управление серверу, а не дохнет, даже если в миссии отключен AI.
Ещё не маловажный плюс, в это событие передаётся объект БОТ, к которому можно обратиться из кода, в отличии от события onPlayerDisconnect, в которое объект не передаётся, а значит и нет возможности поставить телу диагноз, так как ссылки на тело нет.
Edited by SteelRat, 20 September 2015 - 20:31.
Posted 13 March 2016 - 18:37