CRC (контрольная сумма) плагина

Dragokas

Добрая душа
Сообщения
229
Реакции
213
Здравствуйте!

Я собираюсь обновлять плагин Plugin reload, который автоматически перезагружает другие плагины,
как только изменяется признак "размер файла + время изменения smx" (т.е. когда вы обновляете какой-то плагин на сервере).

Суть обновления: прежде чем перезагружать чужой плагин, я хочу сперва проверить его целостность,
как минимум потому что загрузка по FTP занимает время, и команда "sm plugins reload" часто попадает на момент, когда физически загрузилась только половинка плагина.

ЕМНИП, SourceMod поддерживает загрузку SMX двух видов: сжатого и несжатого.
Вот, существует ли такое понятие как CRC в полях структуры каждого из этих видов SMX?
И если да, как туда добраться.
Хочу вычислить КС вручную (плагином) и сравнить с этим полем.

Ну и возможно, у кого-то будут советы, как решить задачу проще.
В текущей версии "Plugin reload" просто предпринимает повторные попытки загрузки.

Спасибо.
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #2
Нет, CRC в структурах не хранится.
 

Kailo

Участник
Сообщения
194
Реакции
896
Все верно, внутри плагина нет контрольных сумм.
 

kiri3shka

Back to Grajdanka
Сообщения
395
Реакции
227
@Dragokas, А если попробовать с задержкой проверять дату изменения? Через минуту от загрузки файла к примеру перезагружать. Думаю уж точно загружен будет на 100%
 

Paranoiiik

хачю клиентмод
Сообщения
2,047
Реакции
1,491
@Dragokas, А если попробовать с задержкой проверять дату изменения? Через минуту от загрузки файла к примеру перезагружать. Думаю уж точно загружен будет на 100%
Но тогда ведь теряется смысл плагина. Идея то, как понимаю, в том, чтобы именно сразу перезагрузить. Ну чтоб команду не вводить постоянно. А так придётся ждать условную минуту каждый раз, тогда уж легче будет вручную перезагрузить
 

Dragokas

Добрая душа
Сообщения
229
Реакции
213
@Dragokas, А если попробовать с задержкой проверять дату изменения? Через минуту от загрузки файла к примеру перезагружать. Думаю уж точно загружен будет на 100%
Да, сейчас примерно так и делается, только не минуту, а 0.5 сек после обнаружения изменения, чтобы дать время на завершение записи.
Дальше идут повторные попытки, но не дополнительным таймером, а тем же основным (задержка которого уже 2.0 сек, задаётся кваром),
Т.к. при успешном завершении заливки один из параметров (дата, размер) снова меняется, этот таймер обнаруживает признак и опять перезагружает плагин.
В принципе, всё работает хорошо (но могло бы быть лучше).

@Rolzzandik, благодарю, хороший вариант.
 
Сверху Снизу