macroinclude - вкл-выкл директив !include в файле macros.txt

Дополнения к OpenKore, расширяющиее её функциональность, называются плагинами.

Модератор: 4epT

manticora
Грамотный
Сообщения: 436
Зарегистрирован: Ср авг 29, 2007 12:45 pm

macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение manticora »

Приветствую.
Плагин macroinclude предназначен для включения и выключения директив !include в файле macros.txt. К идее создать такой плагин я пришел после того, как макрос типа Ведро стал отжирать 99% ресурсов процессора. Если отключить в файле macros.txt неиспользуемые директивы, то нагрузка на процессор заметно снижается, так как уменьшается количество автомакросов, условия срабатывания которых макроплагин постоянно проверяет.
Команды плагина в консоли бота:
  1. include list - выводит список всех директив !include в файле macros.txt. Например:

    Код: Выделить всё

    include list
    
    ------on-------
    !include ..\cfg_macros\Novice_1-Start.txt
    !include ..\cfg_macros\Novice_2-Teachers.txt
    !include ..\cfg_macros\Novice_3-ZoneSelect.txt
    !include ..\cfg_macros\Novice_4-Tests.txt
    !include ..\cfg_macros\Gunslinger_1-Quest.txt
    !include ..\cfg_macros\vedro.txt
    !include ..\cfg_macros\Quest_4-Diribabl.txt
    
    ------off------
    #!include ..\cfg_macros\Swordman_1-Quest.txt
    #!include ..\cfg_macros\Archer_1-Quest.txt
    #!include ..\cfg_macros\Thief_1-Quest.txt
    #!include ..\cfg_macros\Taekwon_1-Quest.txt
    #!include ..\cfg_macros\Merchant_1-Quest.txt
    #!include ..\cfg_macros\Acolyte_1-Quest.txt
    #!include ..\cfg_macros\Mage_1-Quest.txt
    #!include ..\cfg_macros\Ninja_1-Quest.txt
    #!include ..\cfg_macros\Thief_2-Training.txt
    #!include ..\cfg_macros\Acolyte_2-Training.txt
    #!include ..\cfg_macros\Mage_2-Training.txt
    #!include ..\cfg_macros\Merchant_2-Training.txt
    #!include ..\cfg_macros\Archer_2-Training.txt
    #!include ..\cfg_macros\Swordman_2-Training.txt
    #!include autokach.mcs
    ##!include ..\cfg_macros\Quest_1-SledyBoja.txt
    # !include ..\cfg_macros\Quest_2-Soki.txt
    
    Таким образом видно, что в данный момент подключены только следующие семь файлов: Novice_1-Start.txt, Novice_2-Teachers.txt, Novice_3-ZoneSelect.txt, Novice_4-Tests.txt, Gunslinger_1-Quest.txt, vedro.txt, Quest_4-Diribabl.txt. Остальные строки - закоментированы, а значит не загружаются макроплагином.
  2. include on <имя файла> - включает (снимает комментарий - знак #) директиву !include, в которой встречается строка <имя файла>. Например:

    Код: Выделить всё

    include on Swordman
    !include ..\cfg_macros\Swordman_1-Quest.txt
    !include ..\cfg_macros\Swordman_2-Training.txt
  3. include off <имя файла> - выключает (ставит комментарий - знак #) директиву !include, в которой встречается строка <имя файла>. Например:

    Код: Выделить всё

    include off Swordman
    #!include ..\cfg_macros\Swordman_1-Quest.txt
    #!include ..\cfg_macros\Swordman_2-Training.txt
  4. include on all - включает все директивы !include.
  5. include off all - выключает все директивы !include.
Чтобы изменения, внесенные в файл macros.txt возымели действие, нужно перечитать файл macros.txt следующей командой: reload macros.txt
Вложения
macroinclude.zip
Плагин macroinclude - вкл-выкл директив !include в файле macros.txt
(2010.06.19)
(1.38 КБ) 234 скачивания
Последний раз редактировалось manticora Сб июн 19, 2010 6:16 pm, всего редактировалось 2 раза.
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение 4epT »

на сколько я знаю команду "reload macros.txt" нельзя запустить из макроса.. мне кажется команду обновление этого файла нужно запихнуть в сам плагин!

Добавлено спустя 30 минут 28 секунд:
Commands::run("reload macros.txt")
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение EternalHarvest »

Код: Выделить всё

(defined $::config{macro_file})?"$folders[0]\\".$::config{macro_file}
76 : "$folders[0]\\macros.txt"
Чтоб работало где-то кроме как в Windows, надо заменить на что-то подобное:

Код: Выделить всё

File::Spec->catfile($folders[0], defined $config{macro_file} ? $config{macro_file} : 'macros.txt')
Или хотя бы просто прямые слэши использовать.

А macro_file может быть только в первом ($folders[0]) каталоге из Settings::getControlFolders?
manticora
Грамотный
Сообщения: 436
Зарегистрирован: Ср авг 29, 2007 12:45 pm

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение manticora »

Спасибо.
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
manticora
Грамотный
Сообщения: 436
Зарегистрирован: Ср авг 29, 2007 12:45 pm

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение manticora »

EternalHarvest писал(а):А macro_file может быть только в первом ($folders[0]) каталоге из Settings::getControlFolders?
Хм, ты меня заинтересовал.
Никогда не думал и не встречался с несколькими папками control. Другую папку, отличную от папки по умолчанию - задавал, но чтобы задать сразу несколько - не делал. Интересненько, зачем это нужно и в каких ситуациях это можно использовать?

И как свой файл находит сам макро-плагин? Надо подглядеть...

Добавлено спустя 1 час 34 минуты 44 секунды:
macroinclude.pl r7372.
Подправил код с учетом нескольких папок control. Это было интересно. Надеюсь, что я нигде не накосячил...
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение EternalHarvest »

Искать во всех папках можно проще.

Код: Выделить всё

Settings::getControlFilename($config{macro_file} || 'macros.txt')
manticora
Грамотный
Сообщения: 436
Зарегистрирован: Ср авг 29, 2007 12:45 pm

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение manticora »

Мда... жесть. Спасибо.

Обновил архив в первом сообщении. Плагин подправлен по рекомендациям EthernalHarvest.
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
qwertyy
Энтузиаст
Сообщения: 62
Зарегистрирован: Чт янв 08, 2009 1:08 am
Сервер RO:: rRo

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение qwertyy »

вопрос скорее не по плагину, но смежный.

кора свн 7221.
при множественном включении макросов подгружается только один(первый не закомментированный)
есть ли какие-либо фиксы macro.pl?
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение EternalHarvest »

qwertyy писал(а):при множественном включении макросов подгружается только один(первый не закомментированный)
есть ли какие-либо фиксы macro.pl?
? viewtopic.php?t=9022
qwertyy
Энтузиаст
Сообщения: 62
Зарегистрирован: Чт янв 08, 2009 1:08 am
Сервер RO:: rRo

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение qwertyy »

спасибо, закрепили бы ссыль в первом посте, раз уж темы зависимые.
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение EternalHarvest »

Этот плагин подразумевает наличие макро плагина (иначе он бесполезен).
Ошибка с загрузкой только одного include была внутри макро плагина.
qwertyy
Энтузиаст
Сообщения: 62
Зарегистрирован: Чт янв 08, 2009 1:08 am
Сервер RO:: rRo

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение qwertyy »

понятное дело, но и без фикса работать не будет... правильнее упомянуть об этом или, если фикс попадет в свн, отметить версию с которой должен работать плаг.
manticora
Грамотный
Сообщения: 436
Зарегистрирован: Ср авг 29, 2007 12:45 pm

Re: macroinclude - вкл-выкл директив !include в файле macros.txt

Сообщение manticora »

понятное дело, но и без фикса работать не будет.
Смею поспорить.
Данный плагин исправно делает свое дело - ставит или снимает комментарий на директивах !include в файле с макросами, вне зависимости от ревизии макроплагина и наличии там каких-либо ошибок.
Так что утверждение, что данный плагин без фикса в макроплагине не будет работать - ложно.
Без фикса будет глючить сам макроплагин. Свежую версию которого, уже исправленную, можно скачать тут: Download GNU tarball
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore
Ответить