На самом деле я ооооочень хочу людей перевести с использования обычных переменных в плагинах на методы:
•external.InitVal(key,val) - если не существует переменной с именем key, то она создается и ей присваивается значение val. Если переменная уже есть - оставляет её значение без изменения
•external.SetVal(key,val) - как и InitVal, но присваивает значение в любом случае
•external.GetVal(key) - возвращает значение переменной key
Если использовать их, то вы можете обращаться к одним и тем же "виртуальным" переменным с именем %key% и из плагинов, и из маршрутов, и из приёмов.
Пример:
В самом начале плагина при объявлении переменных:
var Peremennaya1 = "Znachenie";
var Peremennaya2 = "Znachenie2";
external.SetVal("IsPluginNameAllowed",true);
Теперь в боте есть переменная "IsPluginNameAllowed", значение которой можно изменить отовсюду.
В самом начале главной функции плагина добавляем строку, чтобы плагин не выполнялся, если значение false:
if(external.GetVal("IsPluginNameAllowed") == false) return;
А в маршруте на любой клетке можете писать:
координата: external.SetVal("IsPluginNameAllowed",false); UseObjects(); AttackMobs(); Walk("rr");
координата: external.SetVal("IsPluginNameAllowed",true); UseObjects(); AttackMobs(); Walk("rr");
Ну и т.д.
Единственное, что надо учитывать - имена переменных должны быть уникальными. Так что включение имени бота в первую часть названия переменно крайне желательно, но не обязательно.
Software is like sex: it's better when it's free! © LinusTorvalds