И привязать бота, если в "Репутации" нету теста "Время до смены задания: " - то uspeh=false. И сделать эту проверку каждые полчаса.
176 2011-06-28 15:42:10
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
177 2011-06-28 15:34:45
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Посмотрел через дебагбар закладку "Репутация", у неё есть id, которые равно L6, значит её можно нажать как-то так?
get_mainframe().document.getElementsById("L6")[0].click();
178 2011-06-28 15:30:41
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
hyppo пишет:ZhEkA_BK не хочется упускать возможность брать задание через 23 часа, а не через 24
Поэтому раз в сутки по планировщику не катит. Делать так уж со всеми выкрутасами
Ну это уже из 86400000мс нужно час убавить... т.е. 86400000-360000мс=86040000мс (если я конечно не ошибаюсь)
Нет, на самом деле - делать по таймеру - плохая идея. Видимо только один я гружу комп раз в неделю)
179 2011-06-28 14:36:27
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Нужно ж еще условие if(uspeh=true) добавить к функции возврата. Плюс как-то закрутить это все дело не только для хаотов, но и для подземки
Ну и раз уже используешь top.frames[external.mainFrameIndex].is_accessible, то можно делать плагин не по работе счетчика по времени, а по обновлению верхнего фрейма.
Теоретически, если сделать запуск плагина по времени - то ему вродь как должно быть пофиг где ты находишься, в хаотах или подземке, можно ещё придумать нажатие кнопки выход, если в походе, но не думаю что людям это понравиться)
Тут ещё надо подумать, как сделать так, чтобы через 24 часа успех снова становился фолсом.
180 2011-06-28 14:19:54
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
uspeh=true; надо писать уже когда взято задание...т.е. когда появится строчка Задания отсюда недоступны
Т.е. в том месте, где стоит условие на выход из комнаты:if(get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/))
ссылка на выход с комнаты
uspeh=true;
top.Chat.Self.AddMessage("Работает выход из комнаты");А ты пытался вставить в строку с условием типа "если нет строки Задания отсюда недоступны". Там у тебя воскл знак вначале стоит перед гетмаинфрейм.
Т.е. сперва у тебя должно стоять условие взятия задания, потом в условии перехода обратно в комнату в конце вставить успех=тру.
По поводу последнего поста вот правильная ссылка на возврат из заданияtop.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
Проблема была не в выходе из заданий, а в выходе на грибную поляну из грибницы. Та ссылка работает, спасибо, но нужна другая) Да и таймер изначально я хотел поставить не на действие бота, а что бы он каждые 86400000 млсек запускался (то есть ровно через сутки).
181 2011-06-28 02:59:38
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Ещё, ссылка на возврат на на грибную поляну имеет вид
http://suncity.combats.com/dungeon.pl?rnd=0.881243425895349&path=1.108.1
в плагине для выхода из грибницы написал
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?rnd=" + Math.random() + "&path=" + Math.random();
но говорит что перехода не существует. Пробовал тупо перейти на лужайку и скопировать ссылку через свойства, но она вида
http://suncity.combats.com/main.pl?top=72.4959358513555
и это вродь не подходит. Пробовал через дебагбар найти кнопку по названию, но его нету(
182 2011-06-28 02:55:26
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
var uspeh=false;
function zadanie(enabled)
{
if(enabled)
{
zadanieTimer = setInterval("zadanieHandler()",5000);// тут ставил разный интервал что бы проверить, 5-10 секунд
}
else
{
clearInterval(zadanieTimer);
}
}
function zadanieHandler()
{
external.battleWeared = false;
top.Chat.Self.AddMessage(external.room_name);
if (external.room_name == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o8&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду на грибную лужайку");
else if(external.room_name == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в странное место");
else if(external.room_name == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в грибную поляну");
else if(external.room_name == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в грибницу");
else if(external.room_name == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду на ЦП");
else if(external.room_name == "Зал воинов" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в БК");
else if(external.room_name == "Зал воинов 2" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в БК");
else if(external.room_name == "Зал воинов 3" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в БК");
else if(external.room_name == "Этаж 2" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в БК");
else if(external.room_name == "Башня рыцарей-магов" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в Рыцарский зал");
else if(external.room_name == "Рыцарский зал" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в Этаж 2");
else if(external.room_name == "Торговый Зал" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
//top.Chat.Self.AddMessage("Иду в Этаж 2");
else if(external.room_name == "Грибница" && uspeh==false)
{
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();
if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
get_mainframe().document.getElementsByName("getquest")[0].click();
top.Chat.Self.AddMessage("Работает взятие задания");
}
if(get_mainframe().document.all[0].innerHTML.match(/Для вас нет заданий в этом подземелье.../))
{ //Для вас нет заданий в этом подземелье...Задания отсюда недоступны///// пока что поставил 1-й вариант, чтобы проверить работоспособность
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
top.Chat.Self.AddMessage("Работает выход из комнаты");
}
//Возврат в зв1
else if(external.room_name == "Грибница" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?top=" + Math.random();
else if(external.room_name == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
else if(external.room_name == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
else if(external.room_name == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
else if(external.room_name == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
else if(external.room_name == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd" + Math.random();
//external.AddToChat("Взял задание");
}
Никак не могу понять, куда вписать
uspeh=true;
чтобы бот шел обратно. Вставляю сюда
if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
get_mainframe().document.getElementsByName("getquest")[0].click();
uspeh=true;
top.Chat.Self.AddMessage("Работает взятие задания");
и после этого кнопка "Получить задание" не жмётся. Пробовал тыкать этот uspeh=true; уже куда угодно, но нажатие не пашет(
183 2011-06-28 01:51:06
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Gorlum, как я понимаю ты близок к осуществлению задумки?)) молодец) и все тоже кто помагал)
Ну, сан уже почти готов, ломаю голову, как бота обратно заводить в зв. По городам полетаю, сделаю маршруты, проверю, и потом уже выложу) Да, без помощи - никуда)
184 2011-06-27 22:37:51
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Берет, спасибо Жека)
185 2011-06-27 21:19:19
Re: Форум (17 ответов, оставленных в Флейм)
я просто жму "новые ссообщения" .обычно влезает в монитор
Та же фигня)
186 2011-06-27 20:29:21
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Та я уже столько возможных вариантов попробовал, и не один не пашет
else if(external.room_name == "Грибница" && top.frames[external.mainFrameIndex].location != "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random())
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();
else if(external.room_name == "Грибница" && top.frames[external.mainFrameIndex].location == "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random())
get_mainframe().document.getElementsByName("getquest")[0].click();
и так
else if(external.room_name == "Грибница") {
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();
get_mainframe().document.getElementsByName("getquest")[0].click();
}
И еще несколько комбинаций. Ничего не работает(
187 2011-06-27 15:16:47
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Так а чем не устраивает
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();Чтобы заходить в задания?
В задание заходит, а вот именно кнопку "Получить задание" не жмакает
188 2011-06-27 14:02:08
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
get_mainframe().document.getElementsByName("getquest")[0].click()
не работает, именно нажатие на кнопку, щелчек и обновление фрейма есть, но реакции - 0.
189 2011-06-27 03:11:47
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Ещё вопрос, который не относится к взятию задания: как поставить условие, если в чате бот пишет "Не могу зарядить название лука, закончились такие-то стрелы", короч нужно чтобы плагин сканил периодически чат, и если вылазит это сообщение - то делал определённую команду.
190 2011-06-27 01:29:03
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Но там нереальные бока с названиями комнат у меня были.
Вы должны зайти под своим именем, чтобы увидеть скрытый текст.
попробуешь там ссылку найти.
Ссылки нету. Зато есть имя кнопки == getquest
нажатие будет черезget_mainframe().document.getElementsByName("getquest")[0].click()как-то так, я не проверял)
Вот именно у кнопки "Получить задание" название есть, а вот а кнопки "Задания" - нету. Есть только
function onclick()
{
location="/dungeon.pl?ql=0.547ХХХХХХ"
}
191 2011-06-27 01:14:13
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Нашел,
".combats.com/main.pl?path=o1&rnd="
наугад кстати)
192 2011-06-27 01:01:08
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Сделал поправки от Жеки, бот начал ходить, но на грибной поляне стоит, наверное потому что ссылка
".combats.com/dungeon.pl?top="
это что-то не то.
И ещё, когда он ходит, если у него достаточно хп, он пытается ломиться в бои, как это убрать?
193 2011-06-27 00:51:31
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Блин, долбаная невнимательность) Спасибо)
194 2011-06-27 00:46:00
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
()
тут нормально видно, в том что выложил хрен что прочитаешь
195 2011-06-26 23:12:53
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Начал с Сана, сделал переходы, и таймер, который запускает плагин через каждые 24 часа (как сделать проверку на задание в умениях я не знаю, если подскажите - скажу спасибо). Подключил его, но он ничего не хочет делать( Подскажите в чем проблема? И заодно где можно найти инфу о том, как заставить бота клацать кнопки для полученя задания? Пытался найти - но ничего похожего нету(
function zadanie(enabled)
{
if(enabled)
{
zadanieTimer = setInterval("zadanieHandler()",86400000);// тут ставил разный интервал что бы проверить, 5-10 секунд
}
else
{
clearInterval(zadanieTimer);
}
}
function zadanieHandler()
{
if (external.room_name == "Центральная грибница")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o8&rnd=" + Math.random();
else if(external.room_name == "Грибная лужайка")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Странное Место")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
else if(external.room_name == "Грибная поляна")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?top=" + Math.random();
else if(external.room_name == "Бойцовский Клуб")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
else if(external.room_name == "Зал воинов")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Зал воинов 2")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Зал воинов 3")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Этаж 2")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
else if(external.room_name == "Башня рыцарей-магов")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
else if(external.room_name == "Рыцарский зал")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Торговый Зал")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
//тут код для взятия задания, пока что не знаю как это сделать
}
external.AddToChat("Взял задание");
}
196 2011-06-26 21:25:31
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Спасибо, сейчас попробую.
Понял, спасибо.
197 2011-06-26 21:19:03
Re: hit_throwdblaxe (20 ответов, оставленных в Настройки / Плагины)
если менять вид на стрелок пишет мало стрел и бот стоит!
Может быть у тебя стоит галочка на зарядке стрел? или на проверку оружия?
198 2011-06-26 21:17:01
Тема: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Самый последний рабочий вариант
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;
}
Создаем в папке плагинов zadanie.js и забрасываем туда текст выше. И если что-то не работает, или работает не правильно - пишите сюда.
Вписаны маршруты ВСЕХ городов, где есть подземка, плагин практически готов у употреблению) В данный момент проверить нет возможности. Кому интересно - тестите, и напишите работает ли оно вообще)
Лайт версия, которая только берет задание, и не идёт в пещеру, и не возвращается в хаоты:
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;
}
}
}
}
}
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;
}
Нужно проверить как работает, сам не тестил.
Да, кстати, сейчас плагин проверяет наличие задания каждые 6-7 минут. Это значение можно изменить, вписав в var min и var max свои значения. Время ставить в милисекундах, 1 секунда = 1000 милисекунд.
199 2011-06-26 18:58:14
Re: hit_throwdblaxe (20 ответов, оставленных в Настройки / Плагины)
Если хп выше 33% и если противник не Служитель узать Усиленные Удары.
а если Служитель юзать Двоиной Бросок.
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 33){
if(top.Battle.oBattle.sEnemyLogin.indexOf("Служитель Глубин") < 0 && top.Battle.oBattle.sEnemyLogin.indexOf("(Служитель Бездны") < 0)
_name = "hit_empower";
else
_name = "hit_throwdblaxe";
}
else
_name = "hit_willpower";
Вот так наверное правильней будет, хотя могу ошибаться, попробуй и напишешь.
200 2011-06-26 18:37:12
Re: hit_throwdblaxe (20 ответов, оставленных в Настройки / Плагины)
Если хп выше 33% и если противник не Служитель узать Усиленные Удары.
а если Служитель юзать Двоиной Бросок.
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 33){
if(top.Battle.oBattle.sEnemyLogin.indexOf("Служитель Глубин") < 0 && top.Battle.oBattle.sEnemyLogin.indexOf("(Служитель Бездны") < 0)
_name = "hit_empower";
}else
_name = "hit_throwdblaxe";Правильно ли я написал?
Тут по-моему он будет юзать бросок если хп меньше 33%.