Есть ли решения чтобы автоматически перезагружать сервер(через restart чтобы игрока не выкидывало) когда файл amxx изменяется?
А может есть способ применить изменения плагина иным образом?
В инете не нашел готового.
Идеи такие: через отдельный плагин с server_cmd(«restart») или инжектить dll в hlds или через модуль для сервера (как fakemeta и т.п.)
UPDATE:
Сделал простой плагин который решает эту проблему
Спойлер: ar.sma
/* Simple helper for plugin developers. It will auto-restart server once file change detected in pluigns folder. */ #include #include #define PLUGIN «Restart On File Change» #define VERSION «1.0» #define AUTHOR «Lopol2010» #define DIRECTORY_WATCH «addons/amxmodx/plugins/» #define FREQUENCY 1.0 new Trie:g_files public plugin_init() < register_plugin(PLUGIN,VERSION,AUTHOR); watch_files() >public ensure_trie_created( if(!trie) < trie = TrieCreate() >> public watching_task() < new TrieIter:it = TrieIterCreate(g_files) do < static filename[256] new oldLastChange, lastChange TrieIterGetKey(it, filename, charsmax(filename)) TrieIterGetCell(it, oldLastChange) lastChange = GetFileTime(filename, FileTime_LastChange) if(oldLastChange != lastChange) < server_cmd(«restart») >TrieIterNext(it) > while(!TrieIterEnded(it)) > public watch_files() < new dir[256] dir = DIRECTORY_WATCH ensure_trie_created(g_files) if(!dir_exists(dir)) < server_print(«ERROR: couldn’t find directory %s», dir) return >if(!task_exists(0)) < set_task_ex(FREQUENCY, «watching_task», 0, _, _, SetTask_Repeat) >new filename[50] new FileType:filetype new hdir = open_dir(dir, filename, charsmax(filename)) if(hdir == 0) < server_print(«ERROR: couldn’t open directory %s», dir) return >do < if(filetype == FileType_File) < new fullPath[100] formatex(fullPath, strlen(dir) + strlen(filename), «%s%s», dir, filename) TrieSetCell(g_files, fullPath, GetFileTime(fullPath, FileTime_LastChange)) >> while (next_file(hdir, filename, charsmax(filename), filetype)) close_dir(hdir) >
Источник: dev-cs.ru
ЛУЧШИЙ ПЛАГИН НА АВТОМАТИЧЕСКИЙ РЕСТАРТ СЕРВЕРА
Плагин ReloadBroadcast (Оповещение перезагрузки) для версии 1.6.2
Данный плагин ReloadBroadcast будет включать оповещение типа «Сервер перегружен, загружаются лаги». В этом случае все пользователи будут знать что пройдет перезапуск сервера и после смогут по завершению действия продолжить игру.
Так же будет доступно оповещение: «Перезапуск или обновление закончено». Думаю многие найдут это плагин интересным и с удовольствием его будут использовать в процессе игры!
Приступайте к установке плагина ReloadBroadcast: скачайте и распакуйте архив; перетащите файл в папку Plugins. Приступайте к игре, ребята. :fellow:
Скачать Плагин ReloadBroadcast (Оповещение перезагрузки) для версии 1.6.2
ReloadBroadcast.jar
Заходите на наш форум, там можно найти ответы на многие вопросы и получить помощь
Перейти на форум
Плагин GuessTheNumber (Угадай номер) для Minecraft версии 1.6.2
Плагин ServerCountDown (Счетчик обратного времени сервера) 1.6.2
Плагин No Death Messages! (Нет сообщений о смерти) версии 1.6.2
Плагин GlobalMarket для Minecraft 1.6.2
Плагин Sneeze для версии 1.6.2 игры Minecraft
Плагин GearUpgrader (Обновление инвентаря) для 1.6.2 Майнкрафт
Источник: minecraftom.ru
Скачать AutoRestart v1.3 для minecraft 1.5.2
Данный плагин добавляет очень удобную вещь, как автоматическую перезагрузку сервера. Плагин легко настраивается. Если вы желаете составить четкое расписание перезагрузок сервера, то интервалы перезагрузки можно установить вручную, что будет очень удобно для администраторов серверов с режимом работы 24/7. Также конфликтность данной версии плагина снижена до минимума, что исключает возможность краша сервера при установки различных фичей на сервер. Ниже приведенные команды можете вводить как напрямую в консоль, так и в игре.
Команды:
/Autorestart — узнать сколько времени осталось до следующего рестарта.
/Autorestart set [S/M/H] — задать конкретные интервалы перезагрузки сервера.
/Autorestart now — моментальная перезагрузка сервера.
Источник: ru-m.org