Re: Плагин взятия задания, все города, нужно протестить. От Gorlum
Анахроник, сегодня сможешь подсказать как сделать чтобы бот не ломился в бой? По сути, осталась только эта задача.
Если делать некрасиво, то external.Stop-Start
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Анахроник, сегодня сможешь подсказать как сделать чтобы бот не ломился в бой? По сути, осталась только эта задача.
Если делать некрасиво, то external.Stop-Start
external.SBattleAbovePercent.Text = 100;
external.dungeonEnabled = false;
Обновил шапку топа, велкам)
Ещё вопрос Анахронику: как называется екстернал, который отвечает за комплект костылей для лича?
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спуск в катакомбы");
вот этот участок не работает. как я понимаю из-за того что именно то место где уже пещера она называется "Спуск в Катакомбы", а предбанник "Спуск в катакомбы".
gorlum, поменяй тот участок на:
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спуск в Катакомбы");
Проверено, инфа 100%
Отредактировано drsn (2011-07-05 18:59:13)
и еше)) при включенном плагине бот вообще не ходит по пещере, а стоит и тупо втыкает) (демонс) после того как выключил плагин, бот все равно висит, приходиться перезаходить
и еше)) при включенном плагине бот вообще не ходит по пещере, а стоит и тупо втыкает) (демонс)
Не знаю что именно происходит, но напоминаю заголовок этой темы:
Плагин взятия задания, сан и ангелс (пока что). От Gorlum
Навеки ваш, Капитан Очевидность.
Ещё вопрос Анахронику: как называется екстернал, который отвечает за комплект костылей для лича?
external.SLichKostyl.Text
Обновил переходы.
и еше)) при включенном плагине бот вообще не ходит по пещере, а стоит и тупо втыкает) (демонс) после того как выключил плагин, бот все равно висит, приходиться перезаходить
А вот эту проблему я не знаю как решить, может быть кто-то поможет.
drsn пишет:и еше)) при включенном плагине бот вообще не ходит по пещере, а стоит и тупо втыкает) (демонс)
Не знаю что именно происходит, но напоминаю заголовок этой темы:
Плагин взятия задания, сан и ангелс (пока что). От GorlumНавеки ваш, Капитан Очевидность.
открою секрет что поменяли название топика))) Плагин взятия задания, все города, нужно протестить. От Gorlum
поэтому я и потестил демонс и написал
Отредактировано drsn (2011-07-05 21:17:01)
Ну, я поменял только после замечания от хиппи))
drsn пишет:и еше)) при включенном плагине бот вообще не ходит по пещере, а стоит и тупо втыкает) (демонс) после того как выключил плагин, бот все равно висит, приходиться перезаходить
А вот эту проблему я не знаю как решить, может быть кто-то поможет.
Только что потестил. Дело не в коде, а в external.DungeonEnabled. Видать, поломался.
var uspeh=false;
var proverkaTimer = {};
var zadanieTimer = {};
var questIsActive = false;
var room ='';
var randomValue;
var min = 360000;
var max = 400000;
function zadanie(enabled)
{
if(enabled)
{
proverkaTimer[mylogin] = setInterval("proverkaHandler()",1000);
}
else
{
if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);
external.SBattleAbovePercent.Text = 100;
clearInterval(proverkaTimer[mylogin]);
}
}
function proverkaHandler()
{
clearInterval(proverkaTimer[mylogin]);
randomValue = Math.floor(Math.random()*(max - min) + min);
proverkaTimer[mylogin] = setInterval("proverkaHandler()", randomValue);
if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
{
external.SBattleAbovePercent.Text = 100;
return;
}
external.SBattleAbovePercent.Text = 101;
var tempstr = '';
var temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?skills=1&rand=" + Math.random());
if(external.SCity.Text == "suncity")
tempstr = "Suncity</B> - Рыцарь первого круга, 24999 / 24999";
if(external.SCity.Text == "sandcity")
tempstr = "Sandcity</B> - Рыцарь первого круга, 100300 / 24999";
if(external.SCity.Text == "angelscity")
tempstr = "Angels city</B> - Рыцарь первого круга, 10000 / 24999";
if(external.SCity.Text == "demonscity")
tempstr = "Demons city</B> - Рыцарь первого круга, 24999 / 24999";
if(external.SCity.Text == "mooncity")
tempstr = "Mooncity</B> - Рыцарь первого круга, 24999 / 24999";
if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);
zadanieTimer[mylogin] = setInterval("zadanieHandler()",3000);
if(temp_inf.indexOf(tempstr) > -1 )
{
external.AddToChat("Задания не требуется");
uspeh = true;
questIsActive = false;
return;
}
var patt = external.SCity.Text + " - \\d+ (мин|ч.|сек)";
if(!temp_inf.toLowerCase().match(patt))
{
external.AddToChat("Требуется взять задание");
uspeh = false;
}
else
{
external.AddToChat("Задания не требуется");
uspeh = true;
questIsActive = false;
}
}
function zadanieHandler()
{
try
{
if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i)) return;
var temp_p = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
if(room = temp_p.match(/<nobr>([^<]+)<\/nobr>/))
room = String(room[1])
if(uspeh==false || questIsActive)
{
if(room)
{
if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Грибная лужайка");
else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Странное Место");
else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Грибная поляна");
else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Грибница");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральная грибница");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "angelscity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный утес");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "mooncity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центр падения");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Оазис");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "demoncity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Разлом");
else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
Walk("\'Бойцовский Клуб\'");
else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Каменно-цветочная гряда");
else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Утес безысходности");
else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Вход в Заповедник");
else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спуск в Бездну");
else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Цветочный Пустырь");
else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Последний Привал");
else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Внутренний двор");
else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Пещеры Мглы");
else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спящая площадь");
else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Улица Камней");
else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Проклятые Руины");
else if(room == "Центральный Разлом" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Разлом Поклонения");
else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Дорога Храбрости");
else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спуск в катакомбы");
else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Пещера Тысячи проклятий");
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спуск в Катакомбы");
else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Пещера Тысячи проклятий");
else if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну"))
{
if(uspeh == false && top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0)
{
var btn = top.frames[external.mainFrameIndex].document.getElementsByTagName("INPUT");
for(i = 0;i<btn.length;i++)
{
if(btn[i].outerHTML.match(/Задания/) && btn[i].style.visibility!="hidden")
{
btn[i].click();
break;
}
}
}
}
}
else
{
if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0 && uspeh == false)
{
external.AddToChat("Завершаем задание");
if(top.frames[external.mainFrameIndex].document.getElementsByName("finishquest").length > 0)
{
top.frames[external.mainFrameIndex].document.getElementsByName("finishquest")[0].click();
uspeh = false;
questIsActive = false;
external.AddToChat("Завершаем задание");
}
if(!top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Репутация в Suncity: 0/))
{
if(top.frames[external.mainFrameIndex].document.getElementsByName("getquest").length > 0)
{
top.frames[external.mainFrameIndex].document.getElementsByName("getquest")[0].click();
external.AddToChat("Работает взятие задания");
}
else external.AddToChat("Задание уже есть");
uspeh=true;
questIsActive = true;
}
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Вы получили новое задание/))
{
uspeh=true;
questIsActive = true;
}
else if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Для вас нет заданий/))
{
uspeh = true;
questIsActive = false;
}
if(uspeh == true)
{
external.AddToChat("Работает выход из комнаты");
btn = top.frames[external.mainFrameIndex].document.getElementsByTagName("INPUT");
for(i = 0;i<btn.length;i++)
{
if(btn[i].outerHTML.match(/Вернуться/) && btn[i].style.visibility!="hidden")
{
btn[i].click();
break;
}
}
}
}
}
}
if(questIsActive && uspeh)
{
if(top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0 && (room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну"))
{
external.dungeonEnabled = true;
external.SBattleAbovePercent.Text = 100;
}
}
if(!questIsActive && uspeh)
{
external.dungeonEnabled = false;
var loc = '';
if(external.SCity.Text == "suncity")
loc = "Грибная поляна";
if(external.SCity.Text == "sandcity")
loc = "Внутренний двор";
if(external.SCity.Text == "angelscity")
loc = "Вход в Заповедник";
if(external.SCity.Text == "demonscity")
loc = "Спуск в катакомбы";
if(external.SCity.Text == "mooncity")
loc = "Пещера Тысячи проклятий";
if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну") && top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0)
{
external.SBattleAbovePercent.Text = 101;
var tmp = top.frames[external.mainFrameIndex].document.anchors;
for(i = 0;i<tmp.length;i++)
{
if(tmp[i].outerHTML.match(loc) && tmp[i].style.visibility!="hidden" && tmp[i].onclick)
{
tmp[i].click();
break;
}
}
}
else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Странное Место");
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Дорога Храбрости");
else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Проклятые Руины");
else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Разлом Поклонения");
else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Разлом");
else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Улица Камней");
else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спящая площадь");
else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центр падения");
else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Бойцовский Клуб");
else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Грибная лужайка");
else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральная грибница");
else if(room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Бойцовский Клуб");
else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Зал воинов");
else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Утес безысходности");
else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Каменно-цветочная гряда");
else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный утес");
else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Бойцовский Клуб");
else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Последний Привал");
else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Цветочный Пустырь");
else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Оазис");
else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Бойцовский Клуб");
else if(room == "Зал воинов")
external.SBattleAbovePercent.Text = 100;
}
}
catch(err)
{
external.AddToChat("Ошибка!");
}
}
function Walk(name)
{
var imgs = top.frames[external.mainFrameIndex].document.images;
for(i = 0;i<imgs.length;i++)
{
if(imgs[i].outerHTML.match(name) && imgs[i].style.visibility != "hidden" && imgs[i].onclick && (imgs[i].height*imgs[i].width)>60)
{
external.AddToChat("Иду в " + name);
imgs[i].click();
break;
}
}
}
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;
}
Ну, я поменял только после замечания от хиппи))
ну в подписи было, я думаю что не в этом суть, и тестить в любом случае надо все города
Блин, и что теперь с этим екстерналом делать?) Да, кстати, я вот думаю, может выложить 2 версии? Одна - одет в пещеру после взятия, а другая возвращается в хаоты. Может тут кто-то не может ходить на боте в одиночку, и ходит ручками, а вот задание во-время взять - будет хорошо.
gorlum пишет:drsn пишет:и еше)) при включенном плагине бот вообще не ходит по пещере, а стоит и тупо втыкает) (демонс) после того как выключил плагин, бот все равно висит, приходиться перезаходить
А вот эту проблему я не знаю как решить, может быть кто-то поможет.
Только что потестил. Дело не в коде, а в external.DungeonEnabled. Видать, поломался.
SPOILERvar uspeh=false;
var proverkaTimer = {};
var zadanieTimer = {};
var questIsActive = false;
var room ='';
var randomValue;
var min = 360000;
var max = 400000;
function zadanie(enabled)
{
if(enabled)
{
proverkaTimer[mylogin] = setInterval("proverkaHandler()",1000);
}
else
{
if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);
external.SBattleAbovePercent.Text = 100;
clearInterval(proverkaTimer[mylogin]);
}
}
function proverkaHandler()
{
clearInterval(proverkaTimer[mylogin]);
randomValue = Math.floor(Math.random()*(max - min) + min);
proverkaTimer[mylogin] = setInterval("proverkaHandler()", randomValue);
if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
{
external.SBattleAbovePercent.Text = 100;
return;
}
external.SBattleAbovePercent.Text = 101;
var tempstr = '';
var temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?skills=1&rand=" + Math.random());
if(external.SCity.Text == "suncity")
tempstr = "Suncity</B> - Рыцарь первого круга, 24999 / 24999";
if(external.SCity.Text == "sandcity")
tempstr = "Sandcity</B> - Рыцарь первого круга, 100300 / 24999";
if(external.SCity.Text == "angelscity")
tempstr = "Angels city</B> - Рыцарь первого круга, 10000 / 24999";
if(external.SCity.Text == "demonscity")
tempstr = "Demons city</B> - Рыцарь первого круга, 24999 / 24999";
if(external.SCity.Text == "mooncity")
tempstr = "Mooncity</B> - Рыцарь первого круга, 24999 / 24999";
if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);
zadanieTimer[mylogin] = setInterval("zadanieHandler()",3000);
if(temp_inf.indexOf(tempstr) > -1 )
{
external.AddToChat("Задания не требуется");
uspeh = true;
questIsActive = false;
return;
}
var patt = external.SCity.Text + " - \\d+ (мин|ч.|сек)";
if(!temp_inf.toLowerCase().match(patt))
{
external.AddToChat("Требуется взять задание");
uspeh = false;
}
else
{
external.AddToChat("Задания не требуется");
uspeh = true;
questIsActive = false;
}
}
function zadanieHandler()
{
try
{
if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i)) return;
var temp_p = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
if(room = temp_p.match(/<nobr>([^<]+)<\/nobr>/))
room = String(room[1])
if(uspeh==false || questIsActive)
{
if(room)
{
if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Грибная лужайка");
else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Странное Место");
else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Грибная поляна");
else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Грибница");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральная грибница");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "angelscity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный утес");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "mooncity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центр падения");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Оазис");
else if(room == "Бойцовский Клуб" && external.SCity.Text == "demoncity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Разлом");
else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
Walk("\'Бойцовский Клуб\'");
else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Каменно-цветочная гряда");
else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Утес безысходности");
else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Вход в Заповедник");
else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спуск в Бездну");
else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Цветочный Пустырь");
else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Последний Привал");
else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Внутренний двор");
else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Пещеры Мглы");
else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спящая площадь");
else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Улица Камней");
else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Проклятые Руины");
else if(room == "Центральный Разлом" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Разлом Поклонения");
else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Дорога Храбрости");
else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спуск в катакомбы");
else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Пещера Тысячи проклятий");
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спуск в Катакомбы");
else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Пещера Тысячи проклятий");
else if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну"))
{
if(uspeh == false && top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0)
{
var btn = top.frames[external.mainFrameIndex].document.getElementsByTagName("INPUT");
for(i = 0;i<btn.length;i++)
{
if(btn[i].outerHTML.match(/Задания/) && btn[i].style.visibility!="hidden")
{
btn[i].click();
break;
}
}
}
}
}
else
{
if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0 && uspeh == false)
{
external.AddToChat("Завершаем задание");
if(top.frames[external.mainFrameIndex].document.getElementsByName("finishquest").length > 0)
{
top.frames[external.mainFrameIndex].document.getElementsByName("finishquest")[0].click();
uspeh = false;
questIsActive = false;
external.AddToChat("Завершаем задание");
}
if(!top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Репутация в Suncity: 0/))
{
if(top.frames[external.mainFrameIndex].document.getElementsByName("getquest").length > 0)
{
top.frames[external.mainFrameIndex].document.getElementsByName("getquest")[0].click();
external.AddToChat("Работает взятие задания");
}
else external.AddToChat("Задание уже есть");
uspeh=true;
questIsActive = true;
}
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Вы получили новое задание/))
{
uspeh=true;
questIsActive = true;
}
else if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Для вас нет заданий/))
{
uspeh = true;
questIsActive = false;
}
if(uspeh == true)
{
external.AddToChat("Работает выход из комнаты");
btn = top.frames[external.mainFrameIndex].document.getElementsByTagName("INPUT");
for(i = 0;i<btn.length;i++)
{
if(btn[i].outerHTML.match(/Вернуться/) && btn[i].style.visibility!="hidden")
{
btn[i].click();
break;
}
}
}
}
}
}
if(questIsActive && uspeh)
{
if(top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0 && (room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну"))
{
external.dungeonEnabled = true;
external.SBattleAbovePercent.Text = 100;
}
}
if(!questIsActive && uspeh)
{
external.dungeonEnabled = false;
var loc = '';
if(external.SCity.Text == "suncity")
loc = "Грибная поляна";
if(external.SCity.Text == "sandcity")
loc = "Внутренний двор";
if(external.SCity.Text == "angelscity")
loc = "Вход в Заповедник";
if(external.SCity.Text == "demonscity")
loc = "Спуск в катакомбы";
if(external.SCity.Text == "mooncity")
loc = "Пещера Тысячи проклятий";
if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну") && top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0)
{
external.SBattleAbovePercent.Text = 101;
var tmp = top.frames[external.mainFrameIndex].document.anchors;
for(i = 0;i<tmp.length;i++)
{
if(tmp[i].outerHTML.match(loc) && tmp[i].style.visibility!="hidden" && tmp[i].onclick)
{
tmp[i].click();
break;
}
}
}
else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Странное Место");
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Дорога Храбрости");
else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
Walk("Проклятые Руины");
else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Разлом Поклонения");
else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Разлом");
else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Улица Камней");
else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Спящая площадь");
else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центр падения");
else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Бойцовский Клуб");
else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Грибная лужайка");
else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральная грибница");
else if(room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Бойцовский Клуб");
else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Зал воинов");
else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Утес безысходности");
else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Каменно-цветочная гряда");
else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный утес");
else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Бойцовский Клуб");
else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Последний Привал");
else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Цветочный Пустырь");
else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Оазис");
else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Бойцовский Клуб");
else if(room == "Зал воинов")
external.SBattleAbovePercent.Text = 100;
}
}
catch(err)
{
external.AddToChat("Ошибка!");
}
}
function Walk(name)
{
var imgs = top.frames[external.mainFrameIndex].document.images;
for(i = 0;i<imgs.length;i++)
{
if(imgs[i].outerHTML.match(name) && imgs[i].style.visibility != "hidden" && imgs[i].onclick && (imgs[i].height*imgs[i].width)>60)
{
external.AddToChat("Иду в " + name);
imgs[i].click();
break;
}
}
}
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;
}
Исправил мелкие ошибки и кой-чего подправил в плане работы.
Насчёт поломки - хз, он же в саму пещеру залазит вродь? И если обычным способом ботом заходить в пещеру - то всё работает.
Блин, и что теперь с этим екстерналом делать?) Да, кстати, я вот думаю, может выложить 2 версии? Одна - одет в пещеру после взятия, а другая возвращается в хаоты. Может тут кто-то не может ходить на боте в одиночку, и ходит ручками, а вот задание во-время взять - будет хорошо.
Босс обещал в новой версии починить нерабочие экстерналы)
Насчёт поломки - хз, он же в саму пещеру залазит вродь? И если обычным способом ботом заходить в пещеру - то всё работает.
Я проверял двумя способами: вручную включал подземку и через dungeonEnabled. В первом случае всё гуд, во втором - спуск и затуп.
Насчёт поломки - хз, он же в саму пещеру залазит вродь? И если обычным способом ботом заходить в пещеру - то всё работает.Я проверял двумя способами: вручную включал подземку и через dungeonEnabled. В первом случае всё гуд, во втором - спуск и затуп.
Тогда может быть есть другой способ запуска подземки?
Либо у вас не выбан маршрут(из-за чего после входа он не понимает, чего ему делать), либо действительно экстернал выпендривается
сегодня проверю.
Хм, а после выполнения и сдачи задания можно сделать выход из программы?) Тогда можно было бы ежедневно запускать в определенное время бота, делать задание и закрываться...
Хм, а после выполнения и сдачи задания можно сделать выход из программы?) Тогда можно было бы ежедневно запускать в определенное время бота, делать задание и закрываться...
Так а смысл плагина в том, что если надо задание - он идёт, берет его, выполняет. Потом через минут 20-30 проверяет, можно ли взять задание? Если да, то идёт, берет и выполняет, если нет - сидит дальше в хаотах.
Так вот я к тому, что не хочу сидеть в хаотах... т.к. мало статов, допустим, или пур. вещи на персе...
Так вот я к тому, что не хочу сидеть в хаотах... т.к. мало статов, допустим, или пур. вещи на персе...
тогда просить анахроника добавить какой external.close)
ага, и мне даный плагин больше интересен без хаотов)