Тема: Бот не подает заявку на бой (версия: 7.1)
Бот ссыт дратся в хаотах! Говорит: Воть травму палучу, а лечить то йА не умею...
Отредактировано Summerline (2009-06-12 11:17:37)
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны вход или регистрация
Бот ссыт дратся в хаотах! Говорит: Воть травму палучу, а лечить то йА не умею...
Отредактировано Summerline (2009-06-12 11:17:37)
вставь этот текст в kanal.txt вместо старого текста:
" /////////////////////////////////////////////////////////////////////////////
///////////////////Система подземелья для Combots (c) ZergNM/////////////////
/////////////////////////////////////////////////////////////////////////////
//////////////////// Настройки ////////////////////
var pickupobjects = true; //Подбирать предметы
var attackmobs = true; //Нападать на мобов
//Возможные значения: true - да, false - нет
// номер шага с которого начинать движение при смерти. Если машрут для второго этажа то пишите шаг 10, если маршрут на Оба этажа то шаг 180.
var startDirection = 180;
/////////////////////////////////////////////////////////////////////////////
//////////////////// Функции и переменные ////////////////////
var s = "";
var DoAction = 0;
var CurrentLocation = "";
var City = "";
var DungName = "";
var startKanal2 = ",,d17,d13,,,,,,,,d57,d3,,,,,,,,,d7,d15,d15,d15,d135,,d135,d17,d135,d37,,,,,,,d37,,d7,d135,1.04,,,,,,d37,,d37,,,,,,d15,d,d15,d3,d17,d13,,,,,d37,,d37,d57,d3,,,,,d37,,d37,,d37,,,";
var dontGo = 0;
try {
var checkDeath = (String(top.frames[3].window.arrMap) == startKanal2 &&
top.frames[3].document.getElementById("m1") == null) ? 1 : 0;
} catch (e) {
var checkDeath = 0;
}
function InitializeKanalSystem()
{
try { clearTimeout(walktimer); }
catch(err) { walktimer = 0; }
try { usedObjects; }
catch(err) { usedObjects = new Array(); }
try { KanalMapCoords; }
catch(err) { KanalMapCoords = ""; }
try { KanalDirection; }
catch(err) { KanalDirection = 0; }
try { KanalCurrentMapCoords; }
catch(err) { KanalCurrentMapCoords = ""; }
try { KanalCurrentDirection; }
catch(err) { KanalCurrentMapDirection = 0; }
try { top.frames[4].document.all.kanalst.value; }
catch(err) { top.frames[4].document.body.insertAdjacentHTML("afterBegin","<center><b>Подземелье</b><br>Номер шага: <input name=kanalst size=5 value=0></b></center><br>"); }
s = top.frames[3].document.all[0].innerHTML;
DoAction = 0;
CurrentLocation = top.location.href;
City = CurrentLocation.substring(7,CurrentLocation.indexOf(".combats.com"));
if(s.indexOf("dungeon.pl")>0)
DungName = "dungeon.pl";
else
DungName = s.substring(s.indexOf("dungeon"),s.indexOf("dungeon")+11);
KanalMapCoords = "";
}
function CheckForError()
{
if(s.indexOf("нет при себе необходимого")>0)
return true;
return false;
}
function Exit()
{
top.frames[4].location = top.frames[4].location;
top.frames[3].location = "http://"+City+".combats.com/"+DungName+"?out="+Math.random();
}
function Walk(step)
{
if(top.frames[3].is_accessible) {
top.frames[3].navigate("http://"+City+".combats.com/"+DungName+"?rnd="+Math.random()+"&path="+step);
}
else {
walktimer = setTimeout("Walk("+step+")",1000);
}
}
function IsMapVisible()
{
var retn;
if(s.indexOf("arrMap =") > 0)
retn = true;
else
retn = false;
return retn;
}
function GetCurrentLocation()
{
KanalMapCoords = s.substring(s.indexOf("arrMap =")+9,s.indexOf("arrMap =")+549);
KanalMapCoords = KanalMapCoords.substring(2,KanalMapCoords.indexOf("']];")+1);
KanalMapCoords = KanalMapCoords.replace(/\[/g, "");
KanalMapCoords = KanalMapCoords.replace(/\]/g, "");
}
function GetCurrentDirection()
{
var Direction = top.frames[3].document.getElementById("DungMap").all[top.frames[3].document.getElementById("DungMap").all.length-1].href;
if(Direction.indexOf("d0") > 0)
KanalDirection = top.frames[3].nMyDirection;
else
{
if(Direction == "(Please log in or register to see this URL)")
KanalDirection = 1;
else if(Direction == "(Please log in or register to see this URL)")
KanalDirection = 3;
else if(Direction == "(Please log in or register to see this URL)")
KanalDirection = 5;
else if(Direction == "(Please log in or register to see this URL)")
KanalDirection = 7;
}
}
function IsDropPresent()
{
var result = 0;
if(s.indexOf("?get")>0 && s.indexOf("слишком много")<1 && s.indexOf("mater247")<1)
result = 1;
if(s.indexOf("'rollconfirm")>0)
result = 2;
return result;
}
function IsWallPresent()
{
var elements = top.frames[3].document.getElementsByTagName("*");
for(var i = 0;i < elements.length;i++)
if(elements[i].className == "LeftFront0_0")
return true;
return false;
}
function PutKanalZayavka()
{
top.frames[3].document.all.mut_noblock.checked = false;
top.frames[3].document.forms[top.frames[3].document.forms.length-1].pass.value = "123654";
top.frames[3].document.all.open.click();
}
function StartKanalZayavka()
{
usedObjects = [];
KanalMapCoords = "";
KanalDirection = 0;
KanalCurrentMapCoords = "";
KanalCurrentMapDirection = 0;
top.frames[4].location = top.frames[4].location;
top.frames[3].document.all.start.click();
}
function getElementsByClassName(clsName)
{
var retVal = new Array();
var elements = top.frames[3].document.getElementsByTagName("*");
for(var i = 0;i < elements.length;i++)
{
if(elements[i].className.indexOf(" ") >= 0)
{
var classes = elements[i].className.split(" ");
for(var j = 0;j < classes.length;j++)
{
if(classes[j] == clsName)
retVal.push(elements[i]);
}
}
else if(elements[i].className == clsName)
retVal.push(elements[i]);
}
return retVal;
}
/////////////////////////////////////////////////////////////////////////////
//////////////////// Выполенние ////////////////////
//Проверяем или инициализируем глобальные переменные
InitializeKanalSystem();
//Если какая-то ошибка случалась - выходим из подземелья
if(CheckForError() == true)
Exit();
//Если видна карта передвижения
if(IsMapVisible())
{
//Загружаем текущее местонахождение
GetCurrentLocation();
GetCurrentDirection();
//Если находимся у входа (возможно умерли), обнуляем счетчик
if(s.indexOf("right>Этаж 1 - Вход")>0)
{
KanalCurrentMapCoords = KanalMapCoords;
KanalCurrentDirection = KanalDirection;
top.frames[4].document.all.kanalst.value = 0;
}
if(checkDeath)
{
KanalCurrentMapCoords = KanalMapCoords;
KanalCurrentDirection = KanalDirection;
top.frames[4].document.all.kanalst.value = startDirection;
top.frames[3].navigate("http://"+City+".combats.com/"+DungName+"?rnd="+Math.random()+"&path="+"rr");
dontGo = 1;
}
//Если мы еще не делали ни шага, надо запомнить исходное положение
if(KanalCurrentMapCoords == "")
{
KanalCurrentMapCoords = KanalMapCoords;
KanalCurrentDirection = KanalDirection;
}
//Проверяем если мы успешно переместились и увеличиваем номер шага
if(KanalMapCoords != KanalCurrentMapCoords || KanalDirection != KanalCurrentDirection)
top.frames[4].document.all.kanalst.value++;
//Запоминаем текущее положение
KanalCurrentMapCoords = KanalMapCoords;
KanalCurrentDirection = KanalDirection;
//Может что-то валяется на полу, если это так то подбираем
var CurrentDrop = IsDropPresent();
if(CurrentDrop > 0)
{
if(CurrentDrop == 1 && pickupobjects == true)
{
var KanalStatLink = s.substring(s.indexOf("?get")+5,s.indexOf("?get")+25);
KanalStatLink = "?get="+KanalStatLink.substring(0,KanalStatLink.indexOf("IMG")-3);
top.frames[3].navigate("http://"+City+".combats.com/"+DungName+KanalStatLink);
DoAction = 1;
}
else if(CurrentDrop == 2)
{
var KanalStatLink = s.substring(s.indexOf("'rollconfirm")+14,s.indexOf("'rollconfirm")+74);
KanalStatLink = KanalStatLink.substring(KanalStatLink.indexOf(")'"),KanalStatLink.indexOf(")'")-10);
KanalStatLink = KanalStatLink.substring(KanalStatLink.indexOf(","),10-KanalStatLink.indexOf(",")+1);
KanalStatLink = KanalStatLink.replace(/\,/g, "");
KanalStatLink = KanalStatLink.replace(/\"/g, "");
if(pickupobjects)
KanalStatLink = "?get="+KanalStatLink+"&tmpname423=Да";
else
KanalStatLink = "?get="+KanalStatLink+"&pass=Нет";
top.frames[3].navigate("http://"+City+".combats.com/"+DungName+KanalStatLink);
DoAction = 1;
}
}
if(!DoAction)
{
//Если перед нами нет стены, а ты бывает что мобы видны из за стены а напасть нельзя
if(!IsWallPresent())
{
try
{
//Если перед нами есть какой либо объект, например сундук
if(top.frames[3].arrLayers[1][0]["l"].arrObjects[0])
{
//Если мы успешно использовали объект, например открыли сундук
//Нужно этот объект добавить в список использованных
if(s.indexOf("получили")>0 || s.indexOf("Попахивает")>0 || s.indexOf("не произошло")>0 || s.indexOf("нет необходимых ингредиентов")>0)
{
usedObjects[object.id] = true;
}
//Перебираем все объекты на клетке
for(var i=0; i<top.frames[3].arrLayers[1][0]["l"].arrObjects.length; i++)
{
//Текущий объект
var object = top.frames[3].arrLayers[1][0]["l"].arrObjects[i];
//Если объект еще не использованный, открываем его
if(!usedObjects[object.id])
{
top.frames[3].navigate("http://"+City+".combats.com/"+DungName+"?useobj="+object.id);
DoAction = 1;
break;
}
}
}
//Если перед нами сидит моб, давай его завалим
if(top.frames[3].arrLayers[1][0]["l"].arrUnits[0])
{
if(top.frames[3].arrLayers[1][0]["l"].arrUnits[0].action != "")
{
if(tkHP >= maxHP)
{
if(attackmobs)
top.frames[3].navigate("http://"+City+".combats.com/"+DungName+"?attack=1&use="+top.frames[3].arrLayers[1][0]["l"].arrUnits[0].id);
}
DoAction = 1;
}
}
}
catch(err)
{
}
}
}
//Если мы не предприняли ничего, надо идти дальше
if(!DoAction && !window.dontGo)
{
CurrentStep = KanalSteps[top.frames[4].document.all.kanalst.value];
//Если конец маршрута, выходим
if(CurrentStep == "ex")
Exit();
//Если текущий шаг - поворот, делаем его не дожидаясь окончания задержки передвижения
else if(CurrentStep == "rl" || CurrentStep == "rr")
top.frames[3].navigate("http://"+City+".combats.com/"+DungName+"?rnd="+Math.random()+"&path="+CurrentStep);
//В противном случае ждем окончания задержки и идем вперед
else
Walk(CurrentStep);
} else if (window.dontGo){
KanalCurrentMapCoords = "";
KanalCurrentDirection = "";
}
}
else //Если карты не видно
{
//Подаем заявку
if(s.indexOf("Создать группу")>0)
PutKanalZayavka();
//Начинаем поход
else if(s.indexOf("Начать")>0)
StartKanalZayavka();
}
/////////////////////////////////////////////////////////////////////////////"
sheffff
Ты не понял. У него бот не дерётся в хаотах а не в подземке.
та же проблема(
Страницы 1
Чтобы отправить ответ, вы должны вход или регистрация