Тема: Сыворотка

Как добавить в плагин морковка функцию чтоб лечился от болезней из мусорок в катах?
Вот плагин

var temp_inf = "";
var temp_inf_razdel = 0;
 
function Morkovka(enabled)
{
    if(enabled)
    {
        PluginsOnLoad["Morkovka"] = "MorkovkaHandler";
 
    }
    else
    {
        PluginsOnLoad["Morkovka"] = "";
    }
}
 
 
function MorkovkaHandler(url)
{
    if (top.Battle.bInBattle)return;
 
    var hpRemain = parseInt(maxHP - tkHP);
    var manaRemain = 0;
    if(window.tkMana)
        manaRemain = parseInt(maxMana - tkMana);
    var morkovkaName = [];
 
    if(external.room_name=='Грибница' && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/(?:Слабость к (?:Воде|Огню|Воздуху))|(?:Дрожь в коленях)/i))
    {
        temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit=3&rnd=" + Math.random());
        temp_inf_razdel = 3;
    }
 
    if(temp_inf && (temp_inf.match(/Слабость к (?:Воде|Огню|Воздуху)/i) || temp_inf.match(/Дрожь в коленях/i)))
    {   
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Печень Гусеница");
        morkovkaName[morkovkaName.length-1].push(3);
    }
 
    if(hpRemain > 600){
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Глоток Легкой Жизни");
        morkovkaName[morkovkaName.length-1].push(3);                   //Раздел инвентаря, где лежит элексир. 3- раздел "Элексиры", 4 - "Прочее"
        }
 
    if(tkHP < 100){
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Сосуд жизненных сил");
        morkovkaName[morkovkaName.length-1].push(4);                   //Раздел инвентаря, где лежит элексир. 2- раздел "Элексиры", 3 - "Прочее"
    }
 
    if(hpRemain > 300){
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Заживляющий Эликсир");
        morkovkaName[morkovkaName.length-1].push(3);                   //Раздел инвентаря, где лежит элексир. 3- раздел "Элексиры", 4 - "Прочее"
        }
 
    if(hpRemain > 150){
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Заживляющая Настойка");
        morkovkaName[morkovkaName.length-1].push(3);                   //Раздел инвентаря, где лежит элексир. 3- раздел "Элексиры", 4 - "Прочее"
        }
 
 
    if(morkovkaName.length > 0)
    for(x=0;x<=(morkovkaName.length-1);x++){
        if(Morkovka2Handler(morkovkaName[x][0],morkovkaName[x][1]))
            break;
    }
}
 
function Morkovka2Handler(elikName,razdel)
{
    if(temp_inf_razdel != razdel)
        temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit="+razdel+"&rnd=" + Math.random());
 
    temp_inf_razdel = razdel;
    var m = elikName + "(\\s\\(x\\d+\\))?','main.pl',\\s'(.+?)',\\s'.*?',\\s(\\d+)";
 
    var found = temp_inf.match(m);
    if(found != null)
    {
        external.AddToChat("Выпиваю эликсир <b>\\\"" + elikName + "\\\"</b>");
        top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?use=" + found[2] + "&n=" + found[3];
    if(elikName == "Печень Гусеница" || elikName == "Почки Палочника")
        temp_inf = "";
        temp_inf_razdel = 0;
        return true;
    }
    return false;
}
 
function doLoad(url) {
    if (window.XMLHttpRequest)
        req = new XMLHttpRequest();
    else
        req = new ActiveXObject("Microsoft.XMLHTTP");
 
       req.open("GET", url, false); // задать параметры методу open
       req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); //чтоб не кэшировались GET запросы
       req.send(null); // отправить запрос     
    return req.responseText;
}

а вот это добавляю и не работает(

if(temp_inf && (temp_inf.match(/Гудящая Голова/i)))
    {   
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Сыворотка");
        morkovkaName[morkovkaName.length-1].push(3);
    }

Re: Сыворотка

var temp_inf = "";
var temp_inf_razdel = 0;
 
function Morkovka(enabled)
{
    if(enabled)
    {
        PluginsOnLoad["Morkovka"] = "MorkovkaHandler";
 
    }
    else
    {
        PluginsOnLoad["Morkovka"] = "";
    }
}
 
 
function MorkovkaHandler(url)
{
    if (top.Battle.bInBattle)return;
 
    var hpRemain = parseInt(maxHP - tkHP);
    var manaRemain = 0;
    if(window.tkMana)
        manaRemain = parseInt(maxMana - tkMana);
    var morkovkaName = [];
 
    if(external.room_name=='Грибница' && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/(?:Слабость к (?:Воде|Огню|Воздуху))|(?:Дрожь в коленях)/i))
    {
        temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit=3&rnd=" + Math.random());
        temp_inf_razdel = 3;
    }
    if(external.room_name=='Катакомбы' && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/(?:Болезнь)|(?:Грязная кровь)/i))
    {
        temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit=3&rnd=" + Math.random());
        temp_inf_razdel = 3;
    }
 
    if(temp_inf && (temp_inf.match(/Слабость к (?:Воде|Огню|Воздуху)/i) || temp_inf.match(/Дрожь в коленях/i)))
    {   
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Печень Гусеница");
        morkovkaName[morkovkaName.length-1].push(3);
    }
    if(temp_inf && temp_inf.match(/Болезнь/i))
    {   
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Сыворотка");
        morkovkaName[morkovkaName.length-1].push(3);
    }
    if(temp_inf && temp_inf.match(/Грязная кровь/i))
    {   
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Противоядие");
        morkovkaName[morkovkaName.length-1].push(3);
    }
    if(temp_inf && temp_inf.match(/Болезнь/i))
    {   
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Печень Гусеница");
        morkovkaName[morkovkaName.length-1].push(3);
    }
 
    if(tkHP < 100) {
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Сосуд жизненных сил");
        morkovkaName[morkovkaName.length-1].push(4);//Раздел инвентаря, где лежит эликсир. 2- раздел "Эликсиры", 3 - "Прочее"
    }
    if(hpRemain > 500) {
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Глоток Легкой Жизни");
        morkovkaName[morkovkaName.length-1].push(3);
    }
    //else
    if(hpRemain > 150) {
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Заживляющий Эликсир");
        morkovkaName[morkovkaName.length-1].push(3);
    }
    //else
    if(hpRemain > 50) {
        morkovkaName[morkovkaName.length]=[];
        morkovkaName[morkovkaName.length-1].push("Заживляющая Настойка");
        morkovkaName[morkovkaName.length-1].push(3);
    }
 
    if(morkovkaName.length > 0)
    for(x=0;x<=(morkovkaName.length-1);x++){
        if(Morkovka2Handler(morkovkaName[x][0],morkovkaName[x][1]))
            break;
    }
}
 
function Morkovka2Handler(elikName,razdel)
{
    if(temp_inf_razdel != razdel)
        temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit="+razdel+"&rnd=" + Math.random());
 
    temp_inf_razdel = razdel;
    var m = elikName + "(\\s\\(x\\d+\\))?','main.pl',\\s'(.+?)',\\s'.*?',\\s(\\d+)";
 
    var found = temp_inf.match(m);
    if(found != null)
    {
        external.AddToChat("Выпиваю <b>\\\"" + elikName + "\\\"</b>");
        top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?use=" + found[2] + "&n=" + found[3];
    if(elikName == "Печень Гусеница" || elikName == "Почки Палочника")
        temp_inf = "";
        temp_inf_razdel = 0;
        return true;
    }
    return false;
}
 
function doLoad(url) {
    if (window.XMLHttpRequest)
        req = new XMLHttpRequest();
    else
        req = new ActiveXObject("Microsoft.XMLHTTP");
 
       req.open("GET", url, false); // задать параметры методу open
       req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); //чтоб не кэшировались GET запросы
       req.send(null); // отправить запрос     
    return req.responseText;
}

реализовал вот так, работает

Отредактировано БатоВед (2012-11-30 15:52:07)

Re: Сыворотка

спс

Re: Сыворотка

БатоВед

в твоем варианте бот не сразу юзает банки,в основном сделает шаг,а потом юзает. Как в моем варианте сделать чтоб работало?

Re: Сыворотка

Висячка пишет:

БатоВед

в твоем варианте бот не сразу юзает банки,в основном сделает шаг,а потом юзает. Как в моем варианте сделать чтоб работало?

Так Ваш вариант собственно и реализован. Разница только в том, что я написал "Болезнь" и добавил юз противоядия.

Re: Сыворотка

хм

7

Re: Сыворотка

Действительно, делает шаг, а затем лечиться и в связи с этим возникает масса проблем: голый нападет(умирает), на голого нападают(умирает) и как следствие начинает идти заново. А если это происходит на первом этаже, то на клетке перед мерцающим круго(ключ управляющего) не юзает её - всё зависший бот, ходит вперед, назад(палевно). Поможет кто? sad

Selfie сейчас популярен!

8

Re: Сыворотка

Контроль одетости шмота включи нападать не будет, будет пытаться одеться и увидит что на нем болезнь и вылечится сразу smile

9

Re: Сыворотка

volok пишет:

Контроль одетости шмота включи нападать не будет, будет пытаться одеться и увидит что на нем болезнь и вылечится сразу smile

  Включен контроль и включен  переодевание комплектов, в боевом стоит необходимый, а в востановительном голый и значение НР на 5НР больше, чем у голово. Если НР не полные, то заходит и всё лечит, но вот если НР полные (будь-то с вещами или без) смело идет дальше и получает по щам, а после этого лечиться и начинает всё сначала. Что я делаю не так?

Selfie сейчас популярен!

10

Re: Сыворотка

не знаю что так что не так Вы делаете, но могу предложить вариант такой)
Разбрасываете статы что-бы у Вас минимальное значение было 7 даже если бот, проверяя кучи или что вы там проверяете получит -6 статов, то шмот не упадет а через шаг полечитесь и восстановите нр

11

Re: Сыворотка

Всё гениальное просто! Спасибо! Это ж ведь элементарно,а я чего то и не подумал об этом сразу.

Selfie сейчас популярен!