26

Re: Автопокупка стрел

И ещё, вот это

clearInterval(streluTimer[mylogin]);
    randomValue = Math.floor(Math.random()*(max - min) + min);
    streluTimer[mylogin] = setInterval("streluHandler()", randomValue);

идентично функции

function strelu(enabled)
{
    if(enabled)
    {
        streluTimer = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer);
    }

?

первый код у меня лежит в streluHandler, там где весь процесс покупки, хотя по моему это не логично, когда интервал действия в функции задается в этой же функции, походу я налажал) В общем, я выложу наработку, поправьте если что-то не так делаю

var min = 1000;
var max = 3000;
var randomValue;
var kol = 2 //количество стрел для покупки
 
 
function strelu(enabled)
{
    if(enabled)
    {
        streluTimer = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer);
    }
}
function streluHandler()
{   
    clearInterval(streluTimer[mylogin]);
    randomValue = Math.floor(Math.random()*(max - min) + min);
    streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
    if(external.ArrowsEnds==false)
    {
    external.SBattleAbovePercent.Text = 101;
 
    if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
        external.ClickLink("\'Бойцовский Клуб\'",3);
    else if (room.match("\'Бойцовский Клуб\'") && top.frames[external.mainFrameIndex].is_accessible)
        external.ClickLink("Центральная Площадь",3);
    else if (room.match("Центральная Площадь") && top.frames[external.mainFrameIndex].is_accessible)
        external.ClickLink("Магазин",3);
    // Переходы
 
 
    if(get_mainframe().location.toString().match(/shop\.pl/)){
    top.frames[external.mainFrameIndex].location = "http://"+ external.SCity.Text + ".combats.com/shop.pl?otdel6=1&sid=&" + Math.random();
    if(external.level <= "7")
    {
        var needToBuy;
        var leftToBuy;
        leftToBuy = needToBuy;
 
        if(!get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) && !get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
        {
            if(leftToBuy <= 0)           
            {
            return;
            }
        var imgs = top.frames[external.mainFrameIndex].document.images;
        for(var i = 0; i<imgs.length;i++)
        {             
            if(imgs[i].onclick && imgs[i].outerHTML.match(/bolt_common100/)&& btn[i].style.visibility!="hidden" && btn[i].length > 0 )
            {
            leftToBuy--;
            imgs[i].click();
            return;
            }
        }
        }
        else
        {
            leftToBuy = 0;
        }
    }
    if(external.level >= "8")
        {
        var imgs = top.frames[external.mainFrameIndex].document.images;
        for(var i = 0; i<imgs.length;i++)
        {
            if(imgs[i].onclick && String(imgs[i].onclick).match(/AddCount/) && imgs[i].outerHTML.match(/bolt_common100/)&& btn[i].style.visibility!="hidden" && btn[i].length > 0)
                {
                imgs[i].click();
                break;
                }
        }
        //тут проверку на видимость плюсика
        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = kol;
        top.frames[external.mainFrameIndex].document.forms[0].submit();   
        }   
 
 
 
        }
        //тут переходы обратно
     }
}

Знаю что в после последней версии нажатия на кнопки работают по другому, ещё не успел до них добраться.

Вот так смотрю - и понимаю, что походу надо делать с нуля, пользуясь новыми екстерналами)

Отредактировано gorlum (2011-07-25 01:03:10)

27

Re: Автопокупка стрел

var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 10;
var leftToBuy = 0;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(!get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) && !get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
 
        if(!buyingFinished)
        {
            if(room == null)
                {
                    if(s.match(/drwfl\("Бартоломей",/i)) external.ClickLink("подойти к прилавку",2);
                    //тут идут условия для остальных ботов
                }
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",3);
            else if (room == "Лавка Бартоломея")
                    external.ClickLink("Бартоломей",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Магазин",3);
 
            else if(room == "Магазин")
            {
                if(s.match(/Отдел \"Амуниция\"/i) == null) external.ClickLink("Амуниция",2);
                else
                {
                    if(leftToBuy == 0)
                    {
                        buyingFinished = true;
                        return;
                    }
 
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();                       
                    }                   
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",2);
            else if (room == "Лавка Бартоломея")
                external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = true;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}

черновик
если прикручивать покупку за зубы - придется выдирать кусок кода из плагина покупки за зубы.

Оставь надежду всяк сюда входящий ©

28

Re: Автопокупка стрел

В нубогороде не хочет заходить в магаз почему-то. И почему нельзя сделать покупку за зубы вот так?

function streluzub(enabled)
{
    if(enabled)
    {
        streluzubTimer = setInterval("streluzubHandler()",2000);   
    }
    else
    {
        clearInterval(streluzubTimer);
    }
}
function streluzubHandler()
{
    for(var i=0; i<needToBuy; i++)
    {
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) && get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
        {
            buyingFinished = true;
            return;
        }
        else
        external.ClickLink(itemName,3);
    }
 
 
}
if(external.level <= 7)
      {
          streluzubHandler();
      }

29

Re: Автопокупка стрел

gorlum пишет:

В нубогороде не хочет заходить в магаз почему-то. И почему нельзя сделать покупку за зубы вот так?

пардон, ошибся в условии.

SPOILER Show

var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 10;
var leftToBuy = 0;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) || get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
        if(!buyingFinished)
        {
            if(room == null)
                {
                    if(s.match(/drwfl\("Бартоломей",/i)) external.ClickLink("подойти к прилавку",2);
                    //тут идут условия для остальных ботов
                }
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",3);
            else if (room == "Лавка Бартоломея")
                    external.ClickLink("Бартоломей",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                    if(!external.ClickLink("Магазин",3)) alert("tt");
 
            else if(room == "Магазин")
            {
                if(s.match(/Отдел \"Амуниция\"/i) == null) external.ClickLink("Амуниция",2);
                else
                {
                    if(leftToBuy == 0)
                    {
                        buyingFinished = true;
                        return;
                    }
 
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();                       
                    }                   
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",2);
            else if (room == "Лавка Бартоломея")
                external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = true;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}


И почему нельзя сделать покупку за зубы вот так?

Во-первых, делать клики циклом категорически неправильно.
Во-вторых, как думаешь, что произойдет по external.ClickLink(itemName,3); ??? Подскажу: lib.combats.com

Оставь надежду всяк сюда входящий ©

30

Re: Автопокупка стрел

А если вместо итемнейма вписать bolt_common100 например?

Вот так вот:

function streluzub(enabled)
{
    if(enabled)
    {
        streluzubTimer = setInterval("streluzubHandler()",2000);   
    }
    else
    {
        clearInterval(streluzubTimer);
    }
}
function streluzubHandler()
{
    for(var i=0; i<needToBuy; i++)
    {
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) && get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
        {
            buyingFinished = true;
            return;
        }
        else
        external.ClickLink(bolt_common100,2);
    }
 
 
}

Отредактировано gorlum (2011-08-01 21:36:26)

31

Re: Автопокупка стрел

А если вместо итемнейма вписать bolt_common100 например?

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

Оставь надежду всяк сюда входящий ©

32

Re: Автопокупка стрел

Попробовал такой вариант для сана

[quote]var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 10;
var leftToBuy = 0;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) || get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
        if(!buyingFinished)
        {
            if(room == null)
                {
                    if(s.match(/drwfl\("Илена",/i)) external.ClickLink("пройти к прилавкам",2);
                    //тут идут условия для остальных ботов
                }
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная грибница",3);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Прилавки с товарами",3);
            else if (room == "Прилавки с товарами" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Илена",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                    if(!external.ClickLink("Магазин",3)) alert("tt");
 
            else if(room == "Магазин")
            {
                if(s.match(/Отдел \"Амуниция\"/i) == null)
                    external.ClickLink("Амуниция",4);
 
                else
                {
                    if(leftToBuy == 0)
                    {
                        buyingFinished = true;
                        return;
                    }
 
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();                       
                    }                   
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Прилавки с товарами",2);
            else if (room == "Прилавки с товарами")
                external.ClickLink("Центральная грибница",3);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = true;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}
[/quote]

Доходит до магазина заходит к Илене, кликает "пройти к прилавкам" и встатет, т.е. саму закупку стрел не производит. Похоже что переменная buyingFinished встает в true;
Помогите пожалуйста разобраться

Погода так и шепчет! Займи и выпей!

33

Re: Автопокупка стрел

имспользуй тэг "код" для такого.исправил

!!!!!!!

34

Re: Автопокупка стрел

var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 10;
var leftToBuy = 0;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        external.AddToChat(buyingFinished);
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) || get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
        if(!buyingFinished)
        {
            if(room == null)
                {
                    if(s.match(/drwfl\("Бартоломей",/i)) external.ClickLink("подойти к прилавку",2);
                    //тут идут условия для остальных ботов
                }
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",3);
            else if (room == "Лавка Бартоломея")
                    external.ClickLink("Бартоломей",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                    if(!external.ClickLink("Магазин",3)) alert("tt");
 
            else if(room == "Магазин")
            {
                external.AddToChat(buyingFinished);
                if(s.match(/Отдел \"Амуниция\"/i) == null) external.ClickLink("Амуниция",2);
                else
                {
                    if(leftToBuy == 0)
                    {
                        buyingFinished = true;
                        return;
                    }
 
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.AddToChat(buyingFinished);
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();
                        external.AddToChat(buyingFinished);                       
                    }                   
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",2);
            else if (room == "Лавка Бартоломея")
                external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = true;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}

Запусти этот, в нем баингфиниш показывает свое значение в чат, тогда точно будет понятно, он это или нет.

35

Re: Автопокупка стрел

Пишет, ложь.....
Тогда почему он не выбирает Амуницию раздел и не закупает стрелы интересно...

Погода так и шепчет! Займи и выпей!

36

Re: Автопокупка стрел

А в закладку "Амуниция" заходит?

37

Re: Автопокупка стрел

if(s.match(/Отдел \"Амуниция\"/i) == null)
                    external.ClickLink("Амуниция",4);

Вот здесь ошибка.

Оставь надежду всяк сюда входящий ©

38

Re: Автопокупка стрел

gorlum пишет:

А в закладку "Амуниция" заходит?

В том-то и дело, что не заходит

Exile

Вот здесь ошибка.

Пробовал и 2 и 4 все равно не выбирает Амуницию.

Погода так и шепчет! Займи и выпей!

39

Re: Автопокупка стрел

LurkeR82 пишет:
gorlum пишет:

А в закладку "Амуниция" заходит?

В том-то и дело, что не заходит

Exile

Вот здесь ошибка.

Пробовал и 2 и 4 все равно не выбирает Амуницию.

Хм...

var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 1;
var leftToBuy = 1;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        leftToBuy = needToBuy;
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) || get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
        if(!buyingFinished)
        {
            if(room == null)
                {
                    if(s.match(/drwfl\("Илена",/i)) external.ClickLink("пройти к прилавкам",2);
                    //тут идут условия для остальных ботов
                }
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная грибница",3);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Прилавки с товарами",3);
            else if (room == "Прилавки с товарами" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Илена",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Магазин",3);
            else if(room == "Магазин")
            {
                if(s.match(/Отдел \"Амуниция\"/i) == null) external.ClickLink("Амуниция",2);
                else
                {
                    if(leftToBuy == 0)
                    {
                        buyingFinished = true;
                        return;
                    }
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();                       
                    }                   
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Прилавки с товарами",2);
            else if (room == "Прилавки с товарами")
                external.ClickLink("Центральная грибница",3);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = true;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}

Если и это не заработает - то я уже и хз.

Оставь надежду всяк сюда входящий ©

40

Re: Автопокупка стрел

Exile
Вот уррра! Хотя в чем разница? Клик по амуниции аналогичный

Погода так и шепчет! Займи и выпей!

41

Re: Автопокупка стрел

LurkeR82 пишет:

Exile
Вот уррра! Хотя в чем разница? Клик по амуниции аналогичный

Тут, видимо, из-за того, что когда включался плагин, а стрел уже нету - то leftToBuy оставался равным нулю.

Оставь надежду всяк сюда входящий ©

42

Re: Автопокупка стрел

Exile
Пока плагин крутится, наблюдаю за его работой, оставил needToBuy = 1 т.к. практически после каждого проигранного боя бот ходит покупать стрелы (не могу пока догнать почему так, может просто совпадение). Вообщем смотрим.

Погода так и шепчет! Займи и выпей!

43

Re: Автопокупка стрел

LurkeR82 пишет:

Exile
Пока плагин крутится, наблюдаю за его работой, оставил needToBuy = 1 т.к. практически после каждого проигранного боя бот ходит покупать стрелы (не могу пока догнать почему так, может просто совпадение). Вообщем смотрим.

Посмотри что хранится в external.ArrowEnds
Может быть каким-то хером бот не обновляет состояние переменной, хотя external.ArrowsEnds = true; имеется при переходе в зал.

Оставь надежду всяк сюда входящий ©

44

Re: Автопокупка стрел

ArrowEnds - стрелы кончаются. Т.е. если стрелы есть, должен быть фолс. Если ставишь тру - это ошибка явно...

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

45

Re: Автопокупка стрел

anahronik пишет:

ArrowEnds - стрелы кончаются. Т.е. если стрелы есть, должен быть фолс. Если ставишь тру - это ошибка явно...

external.ArrowsEnds - возвращает false, если не нашлось нужных стрел. Значение true после этого надо задавать самому. Используется чито для контроля, на бота не влияет.

Дезинформируете, сударь)

Отредактировано Exile (2011-08-05 21:01:35)

Оставь надежду всяк сюда входящий ©

46

Re: Автопокупка стрел

Извини  smile
присваивать надо фолс - по скриптам перепроверил  smile

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

47

Re: Автопокупка стрел

Неделю юзаю данный плагин пока претензий нет,  бота без стрел еще не видал smile А то что он по 1-й покупает меня это не напрягает smile

Погода так и шепчет! Займи и выпей!

48

Re: Автопокупка стрел

Попробовал плагин с поста 39-вообще не работает...Просто стоит и ничего не делает...Не может зарядить,так как5 ничего нет((( И сейчас,купив стрел,и включив плагин,он стоит...В настройках плагином выставляет подачу зачвки при 101%-и всё,стоит...

Отредактировано Mr Blanco (2011-10-09 16:31:54)

Вранье.Вранье.Вранье.Правда.(с)Rand

49

Re: Автопокупка стрел

Mr Blanco пишет:

Попробовал плагин с поста 39-вообще не работает...Просто стоит и ничего не делает...Не может зарядить,так как5 ничего нет((( И сейчас,купив стрел,и включив плагин,он стоит...В настройках плагином выставляет подачу зачвки при 101%-и всё,стоит...

Там ттолько маршруты нескольких городов. Может, города твоего чара там не прописано?

Оставь надежду всяк сюда входящий ©

50

Re: Автопокупка стрел

SPOILER Show

var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 10;
var leftToBuy = 0;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        leftToBuy = needToBuy;
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(!external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) || get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
        if(!buyingFinished)
        {           
            if(s.match(/drwfl\("Илена",/i) || s.match(/drwfl\("Бартоломей",/i) || s.match(/drwfl\("Мафи",/i))
                external.ClickLink("подойти к прилавку",2);
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",3);
            else if (room == "Лавка Бартоломея")
                    external.ClickLink("Бартоломей",3);
            else if (room == "Прилавки с товарами" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Илена",3);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Прилавки с товарами",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Магазин",3);
            else if(room == "Магазин")
            {
                if(s.match(/Отдел \"Амуниция\"/i) == null) external.ClickLink("Амуниция",2);
                else
                {           
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();
                    }               
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",2);
            else if (room == "Лавка Бартоломея")
                external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = false;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}


Кой-чего лишнего убрал.
Но в целом на вид код верный.

Оставь надежду всяк сюда входящий ©