Re: Плагин взятия задания, все города, нужно протестить. От Gorlum
Вот когда я тестил - как раз так и делал, только ручками. Понял, спасибо)
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Вот когда я тестил - как раз так и делал, только ручками. Понял, спасибо)
Фигня какая-то с выставлением 101% для подачи заявки. Плагин не работает и выбивает ошибку. Вставлял вот так:
var uspeh=false;
var questIsActive = false;
var room ='';
var randomValue;
var min = 360000;
var max = 400000;
function zadanie(enabled)
{
if(enabled)
{
zadanieTimer = setInterval("zadanieHandler()",2000);
proverkaTimer = setInterval("proverkaHandler()",1000);
}
else
{
clearInterval(zadanieTimer);
clearInterval(proverkaTimer);
}
}
function proverkaHandler()
{
clearInterval(proverkaTimer);
randomValue = Math.floor(Math.random()*(max - min) + min);
proverkaTimer = setInterval("proverkaHandler()", randomValue);
if(top.Battle.bInBattle) return;
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 - Рыцарь первого круга, 24999 / 24999";
if(external.SCity.Text == "sandcity")
tempstr = "Sandcity - Рыцарь первого круга, 10000 / 24999";
if(external.SCity.Text == "angelscity")
tempstr = "Angels city - Рыцарь первого круга, 10000 / 24999";
if(external.SCity.Text == "demonscity")
tempstr = "Demons city - Рыцарь первого круга, 24999 / 24999";
if(external.SCity.Text == "mooncity")
tempstr = "Mooncity - Рыцарь первого круга, 24999 / 24999";
if(temp_inf.indexOf(tempstr) > -1 )
{
external.AddToChat("Задания не требуется");
uspeh = true;
questIsActive = false;
return;
}
if(!temp_inf.toLowerCase().match(external.SCity.Text + " - "))
{
external.AddToChat("Требуется взять задание");
uspeh = false;
}
else
{
external.AddToChat("Задания не требуется");
uspeh = true;
questIsActive = false;
}
}
function zadanieHandler()
{
try
{
if(top.Battle.bInBattle) return;
// if(get_mainframe().document.all[0].innerHTML.match(/смотрим на/)) return;
var temp_p = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
if(room = temp_p.match(/<nobr>([^<]+)<\/nobr>/))
room = String(room[1])
//external.battleWeared = false;
if(uspeh==false || questIsActive)
{
// external.SBattleAbovePercent = 101; если работает - выбивает ошибка
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 == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
Walk("Центральный Оазис");
else if(room == "Зал воинов" && top.frames[external.mainFrameIndex].is_accessible)
Walk("\'Бойцовский Клуб\'");
else if(room == "Зал воинов 2" && top.frames[external.mainFrameIndex].is_accessible)
Walk("\'Бойцовский Клуб\'");
else if(room == "Зал воинов 3" && 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 == "Пещеры Мглы" && uspeh == false)
{
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(room == "Грибница" && uspeh == false)
{
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(room == "Спуск в Бездну" && uspeh == false)
{
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;
}
}
external.AddToChat(uspeh);
external.AddToChat(questIsActive);
}
else if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0 && uspeh == false)
{
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("Работает взятие задания");
external.AddToChat(uspeh);
external.AddToChat(questIsActive);
}
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("Работает выход из комнаты");
external.AddToChat(uspeh);
external.AddToChat(questIsActive);
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)
{
external.dungeonEnabled = true;
external.SBattleAbovePercent = 100;
}
if(!questIsActive && uspeh)
{
if(room == "Грибница" && top.frames[external.mainFrameIndex].is_accessible)
{
external.SBattleAbovePercent = 101;
var tmp = top.frames[external.mainFrameIndex].document.anchors;
for(i = 0;i<tmp.length;i++)
{
if(tmp[i].outerHTML.match(/Грибная поляна/) && tmp[i].style.visibility!="hidden" && tmp[i].onclick)
{
tmp[i].click();
break;
}
}
}
else if(room == "Спуск в Бездну" && top.frames[external.mainFrameIndex].is_accessible)
{
var tmp = top.frames[external.mainFrameIndex].document.anchors;
for(i = 0;i<tmp.length;i++)
{
if(tmp[i].outerHTML.match(/Вход в Заповедник/) && tmp[i].style.visibility!="hidden" && tmp[i].onclick)
{
tmp[i].click();
break;
}
}
}
else if(room == "Пещеры Мглы" && top.frames[external.mainFrameIndex].is_accessible)
{
var tmp = top.frames[external.mainFrameIndex].document.anchors;
for(i = 0;i<tmp.length;i++)
{
if(tmp[i].outerHTML.match(/Внутренний двор/) && 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].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 = 100;
external.dungeonEnabled = false;
}
}
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;
}
Отредактировано gorlum (2011-07-01 21:41:23)
Завтра днём посмотрю, работают ли в плагинах эти экстерналы
Ошибка про гусей - это здорово, но err.description был бы нагляднее
Кстати, кусок напряг слегка:
else if(room == "Зал воинов")
external.SBattleAbovePercent = 100;
external.dungeonEnabled = false;
где фигурные скобки?
Завтра днём посмотрю, работают ли в плагинах эти экстерналы
Ошибка про гусей - это здорово, но err.description был бы нагляднееКстати, кусок напряг слегка:
else if(room == "Зал воинов")
external.SBattleAbovePercent = 100;
external.dungeonEnabled = false;где фигурные скобки?
Упс, завтыкал)
Видимо не посмотрю я сегодня ничего
всё на работе забыл...точне забыть не забыл, а скопировалось хреново - не все файлы заменились актуальными, а проверить было некогда.
Ну вот)))Значит будут полноценные выходные)))
Видимо не посмотрю я сегодня ничего
всё на работе забыл...точне забыть не забыл, а скопировалось хреново - не все файлы заменились актуальными, а проверить было некогда.
Ну и фиг с ним) Выходные для отдыха) Да, кста, по поводу вопроса о зарядке стрел, а нельзя ли отталкиваться от
top.Chat.Self.AddMessage("Не могу зарядить лук закончились стрелы");
?
Как-то так сделать:
if(top.Chat.Self.AddMessage("Не могу зарядить лук закончились стрелы"))
{
что-то делаем
}
{
что-то делаем(топаем в гос за стрелами,раз переходы сделаны)
}
{
что-то делаем(топаем в гос за стрелами,раз переходы сделаны)
}
Ну это я и имел в виду)
gorlum,извиняюсь,что тут пишу,но тогда уже про лучников продолжу.Когда он пойдет покупать стрелы в гос,то тогда нужно будет сделать так,чтобы и за креды покупал,и за зубы(с новым плагином от Exile)
gorlum,извиняюсь,что тут пишу,но тогда уже про лучников продолжу.Когда он пойдет покупать стрелы в гос,то тогда нужно будет сделать так,чтобы и за креды покупал,и за зубы(с новым плагином от Exile)
Угу, я как раз об этом думал. Попробую сделать, вот только с этим закончу, осталось не много.
Демонс:
Бойцовский Клуб - Центральный Разлом
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
Центральный Разлом - Разлом Поклонения
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
Разлом Поклонения - Дорога Храбрости
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random();
Дорога Храбрости - Спуск в катакомбы
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
Спуск в катакомбы - Спуск в Катакомбы
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
Обратный путь:
Спуск в катакомбы - Дорога Храбрости
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
Дорога Храбрости - Разлом Поклонения
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random();
Разлом Поклонения - Центральный Разлом
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
Центральный Разлом - Бойцовский Клуб
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
тогда вроде вот так должно быть
Отредактировано drsn (2011-07-03 23:06:13)
Тут не названия, тут ссылки нужны
предлагаю рабочий плагин поставить во главе каждой страницы
а чем плохо если он только на первой будет?
Тут не названия, тут ссылки нужны
Помоему только названия) Алгоритм ходьбы же другой)
ZhEkA_BK пишет:Тут не названия, тут ссылки нужны
Помоему только названия) Алгоритм ходьбы же другой)
ну в любом случае выложил и то и другое) если чтото еще надо - говори)
предлагаю рабочий плагин поставить во главе каждой страницы
Когда мне автор скажет что плагин готов для публикации, то либо я тут всё сотру кроме первого поста, либо эту тему закрою, чтобы автор открыл новую. Пока идёт разработка пишите сколько хотите, кому надо заглянет на первую страницу или даже прочитает всё тему Кто в теме тем не сложно листать, глядя на фрагменты кода они понимают о чём речь, старый это код или новый или проба какая-то. Те же кто не участвует в разработке пусть ждут. Если что-то надо тестировать отдельно объявят.
Godness пишет:предлагаю рабочий плагин поставить во главе каждой страницы
Когда мне автор скажет что плагин готов для публикации, то либо я тут всё сотру кроме первого поста, либо эту тему закрою, чтобы автор открыл новую. Пока идёт разработка пишите сколько хотите, кому надо заглянет на первую страницу или даже прочитает всё тему
Кто в теме тем не сложно листать, глядя на фрагменты кода они понимают о чём речь, старый это код или новый или проба какая-то. Те же кто не участвует в разработке пусть ждут. Если что-то надо тестировать отдельно объявят.
а почему нельзя тут тему просто закрыть, а в разделе плагины создать новую. в этой теме хорошо описано много моментов, которые будут полезны в дальнейщем, все по-этапно расписано
gorlum пишет:ZhEkA_BK пишет:Тут не названия, тут ссылки нужны
Помоему только названия) Алгоритм ходьбы же другой)
ну в любом случае выложил и то и другое) если чтото еще надо - говори)
Ещё маршруты муна нужны)
Godness пишет:предлагаю рабочий плагин поставить во главе каждой страницы
Когда мне автор скажет что плагин готов для публикации, то либо я тут всё сотру кроме первого поста, либо эту тему закрою, чтобы автор открыл новую. Пока идёт разработка пишите сколько хотите, кому надо заглянет на первую страницу или даже прочитает всё тему
Кто в теме тем не сложно листать, глядя на фрагменты кода они понимают о чём речь, старый это код или новый или проба какая-то. Те же кто не участвует в разработке пусть ждут. Если что-то надо тестировать отдельно объявят.
Ну, тереть может и не надо, может быть потом кто-то тоже захочет писать плагины, а в этом топе есть куча ответов на банальные и не очень вопросы)
а если я не силен в плагинах и считаю что мне не пригодятся эти знания
могу ли я рассчитывать на то что автор и соавторы безвозмездно со мной поделятся своими трудами ?![]()
Само собой, мне не жалко) Да и делаю я это скорее для себя, расширение знаний так сказать) А если это ещё и пригодиться кому-то - я буду очень рад)
Анахроник, сегодня сможешь подсказать как сделать чтобы бот не ломился в бой? По сути, осталась только эта задача.