Тема: плагин для включения плагинов в маршруте :))

вот собственно чтоб лишний раз не было палева при переодивании чтоб бот не пил морковки.. ну одним словом надо чтоб он в определенном месте отключил плагин морковка (или какой нибудь другой) и потом включил на N-ной клетке

Женщины - инквизиторы мужского сердца...

2

Re: плагин для включения плагинов в маршруте :))

Решился ли данный вопрос???
Если да то как?

3

Re: плагин для включения плагинов в маршруте :))

актуально smile

4

Re: плагин для включения плагинов в маршруте :))

На самом деле я ооооочень хочу людей перевести с использования обычных переменных в плагинах на методы:
•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

5

Re: плагин для включения плагинов в маршруте :))

А нельзя ли как то проше сделать это дело , типа

координата: external.PluginName("Морковка",false);
координата: external.PluginName("Морковка",true);

ато если перезагрузить бота и морковка не с тем значением с которым должна быть, тоже есть не хорошо

6

Re: плагин для включения плагинов в маршруте :))

volok пишет:

А нельзя ли как то проше сделать это дело , типа

координата: external.PluginName("Морковка",false);
координата: external.PluginName("Морковка",true);

ато если перезагрузить бота и морковка не с тем значением с которым должна быть, тоже есть не хорошо

То, как я описал в примере, сперва из плагина значение получает.
Поэтому перезапуск бота никак не повлияет на значение по умолчанию.

Software is like sex: it's better when it's free! © LinusTorvalds

7

Re: плагин для включения плагинов в маршруте :))

anahronik пишет:

На самом деле я ооооочень хочу людей перевести с использования обычных переменных в плагинах на методы:
............


Трудно доходит... покажи плз на примере
например плагин сна в бою

var WakeUpTimer = {};
var SleepInBattleHandlerTimer = {};
var randomValue;
var min = 8000;
var max = 90000;
 
function SleepAndAntiweakness(enabled)
{
    if(enabled)
    {   
        WakeUpTimer[mylogin] = setInterval("WakeUpHandler()", 3000);
        SleepInBattleHandlerTimer[mylogin] = setInterval("SleepInBattleHandler()", 3000);
    }
    else
    {
        clearInterval(WakeUpTimer[mylogin]);
        clearInterval(SleepInBattleHandlerTimer[mylogin]);
    }
}
 
function SleepInBattleHandler(){
    try
    {
        if(!external.inBattle) return;
 
        if(((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) <= 0) && document.all[0].innerHTML.match(/Для вас бой окончен/))
            external.Stop();
    }
    catch(err)
    {
    }
}
 
function WakeUpHandler()
{
    try
    {
        clearInterval(WakeUpTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        WakeUpTimer[mylogin] = setInterval("WakeUpHandler()", randomValue);
 
        if(!external.inBattle) return;
 
        if(document.all[0].innerHTML.indexOf("Для вас бой окончен. Ожидаем пока закончат и другие игроки")>= 0 && ((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) <= 0))
            top.Battle.oBattle.arrButtons.refresh.click();
        else if(document.all[0].innerHTML.indexOf("<TD class=UserBattleError colSpan=2>Бой закончен. Всего вами нанесено урона")>= 0 )
            external.Start();
    }
    catch(err)
    {
        location.reload();
        external.AddToChat("ошибка");
    }
}

8

Re: плагин для включения плагинов в маршруте :))

Опять стал вопрос с запуском и отключением плагина на определенной точке, попробовал так как писал анахроник в плагин дописал первой строкой

if(external.GetVal("IsPluginNameAllowed") == false) return;

после перезапуска плагина ошибка!!! если у кого нибудь получается ткните носом что делаю не так!!!