Если я правильно понимаю, старых "Дарковских" текстов заданий уже нет 100% ?
201 2011-08-27 15:53:13
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
202 2011-08-27 13:55:45
Re: Combots 9.2 (92 ответов, оставленных в Общий)
Как называется экстернал чекбокса "Автоматически включать модуль подземелья при старте"?
203 2011-08-27 12:13:20
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Бот после проверки есть ли задержка прописал "задержка" и пошел в здание БК, я его привел в пещеру, включил карту, а он всё равно вернулся в клуб.. А если я хочу чтоб он нон-стоп копал? А когда подходило б время - брал задание и дальше копал.
Ааа...понял.
Изначально, плагин предусматривался для ситуации, когда бот находится в режиме кача в хаотах.
Попробую придумать чего-нитьь.
можно добавить к коду, чтоб при ответе сервера "Это задание невозможно завершить здесь" бот переходил к следующей кнопке "Завершить", так он перебором завершит единственно возможное в данной локации.. и потом выходил из этой функции "сдать задание", и не зацикливался.
Пока сделаю костыль с пропуском кнопки. Потом буду думать как сделать правильнее.
204 2011-08-26 17:43:30
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
1. Плагин не должен работать если бот ДОЛЖЕН быть остановлен(выключен или по расписанию остановлен). А он сам перемещается по локациям зачем-то.
Принято.
2. Бот идет в здание БК независимо от того должен ли он копать пещеру или биться в хаоте.
Поясни.
Было взятое и выполнено задание - он написал что задержка на взятие (что правильно), но сдавать его в пещеру не пошел, да и когда ручками привел - не сдал. Мне кажется должен был.. Вдруг он ходил по пещере, собрал/убил всё, а потом на сутки инет отключили, и сдать не успел.
сейчас пересмотрю код, не помню как делал
3.Когда было выполнено задание(и оказалось 2 готовых к завершению:квест на скидку и собиралка) - он его не пытался сдать. Только прописал "У Вас уже есть задание", а когда ручками сдал собиралку - снова принялся завершать "Скидку на ремонт".
сейчас скрипт не завершает именно то задание, которое было взято и выполнено, а пытается жать по всем кнопкам с надписью Завершить
по другому сделать не могу, потому как не кем мне брать и делаь задания, а значит и кнопки Завершить задания воочию я увидеть не могу. Нужен исходник страницы с кнопкой.
Можно вполне добавить строчку на вывод а-ля "Задание: Шахтерские крюки - 3/15" (в будущем может помочь для сбора статистики по заданиям, для перевыполнения)
5. При сдаче задания плагин учитывает возможность для собиралок 25%-ного перевыполнения или сдаст когда будет собрано не менее минимально необходимого (бот может за поход собрать 16/15 из 18/15 доступного)?
Для этого нужно писать парсер. Пока что тексты заданий я взял с дарков и ищу по кускам текста с именем пещеры.
Может позже займусь.
Как вижу, недоработко еще много.
205 2011-08-25 23:09:39
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
var pathDemons = ""; //имя файла маршрута кат
между кавычками надо вписать название карты? Если да - с расширением/без?
да, название файла с маршрутом
т.е. если файл называется demons123.path, то вписывать надо demons123
206 2011-08-25 20:21:48
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
var phrasesAng = ["Литейщик","Рубака Глубин","Надзиратель Глубин","Служитель Глубин","Служитель Бездны","Для достижения цели придется поучаствовать в захвате \"Бездн","\"Бур\"","обыскать не один труп в \"Бездн","Придется отнять их у монстров в \"Бездн","обшаря каждый квадратный сантиметр \"Бездн","не один темный угол в \"Бездн","Вам придется отправиться в \"Бездн","обыскать множество углов в \"Бездн"];
var phrasesMoon = ["Пустынник Атаман","Пустынник Маньяк","Пустынник Убийца","Дарьяна Корт","Маул Счастливчик","Страж Крантон","Изгнанник Мглы","Древнее Проклятье Глубин","Дух-Хранитель","Заблудшая Душа","Механический Охранник","Механический Голем","Механический Убийца","Механик","Мастер Грит","Страж Сокровищ","Каменный Страж","Глубин\", спустившись в \"Пещера Тысячи\"","\"Зелье Пустынника\"","их у монстров в \"Пещера Тысячи Проклятий","\"Механическая рука\"","\"Сердце голема\"","\"Призрачная пыль\"","\"Запчасти\"","придется поучаствовать в захвате \"Пещера Тысячи","их у монстров в \"Пещера Тысячи","квадратный сантиметр \"Пещера Тысячи","один темный угол в \"Пещера Тысячи","Вам придется отправиться в \"Пещера Тысячи","\"Инструменты\"","\"Череп Путешественников\""];
var phrasesSand = ["Рабочий Мглы","Сторож Мглы","Смотритель Мглы","Рабочий Мглы","Проклятье Глубин\", спустившись в \"Пещеры Мглы","Шахтерский Крюк","Шахтерский огонь","один десяток монстров в \"Пещеры Мглы","поучаствовать в захвате \"Пещеры Мглы","один труп в \"Пещеры Мглы","квадратный сантиметр \"Пещеры Мглы","темный угол в \"Пещеры Мглы","Вам придется отправиться в \"Пещеры Мглы"];
var phrasesDem = ["Слизь","Пожиратель Падали","Зомби","Древний Страж","\"Проклятый","Берсерк","Офицер Глубин","Зубастая Слизь","Хищная Слизь","Чернокнижник","Епископ","Шут Повелителя","Трупожор","Проклятый Пленник","Повелитель","один десяток монстров в \"Катакомбы","неся смерть монстрам из \"Катакомбы","чтобы найти \"Амулет Пустынника"];
var phrasesSun = ["Искрящийся Паразит","Пылающий Паразит","Скользкий Рогоносец","Усохший Палочник","Мясистый Гусениц","Яростная Мокрица","Брат Скорпиончика","Скорпиончик","Трутень","Королева Грибницы","Сторожевая Грибоножка","Грибковая моль","Кольчатый Страхочервь","Жвала","Куски Хитина","Усики Насекомых","Крупицы металла","Мембрана Трутня","Острый коготь","Кусок панциря","о оно вскоре покрывается слизью","Грибная шляпка","Грибная ножка","Глазик","Грибная гусеница","Потерявшийся гусениц","Улитка","Слизняк","Отросток Грибницы","Корешок","Мелкий Хлюп","Семена","Пустая бутыль из под"];
var allQuests = [];
allQuests.push(phrasesAng);
allQuests.push(phrasesMoon);
allQuests.push(phrasesSand);
allQuests.push(phrasesDem);
allQuests.push(phrasesSun);
var proverkaTimer = {};
var zadanieTimer = {};
var currentQuestChecked=false; //показывает, выполнялась ли проверка на задание
var questIsActive = false; //показывает, имеется ли задание
var pathAngels = ""; //имя файла маршрута бездны
var pathDemons = ""; //имя файла маршрута кат
var pathSun = ""; //имя файла маршрута грибов
var pathSand = ""; //имя файла маршрута мглы
var pathMoon = ""; //имя файла маршрута птп
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";
else if(external.SCity.Text == "sandcity")
tempstr = "Sandcity</B> - Рыцарь первого круга, 10000 / 24999";
else if(external.SCity.Text == "angelscity")
tempstr = "Angels city</B> - Рыцарь первого круга, 10000 / 24999";
else if(external.SCity.Text == "demonscity")
tempstr = "Demons city</B> - Рыцарь первого круга, 24999 / 24999";
else 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("Задания не требуется");
currentQuestChecked = true;
questIsActive = false;
return;
}
var patt = external.SCity.Text + " - \\d+ (мин|ч.|сек)";
if(CheckForQuestInInv(temp_inf))
{
external.AddToChat("Задание уже есть");
currentQuestChecked = true;
questIsActive = true;
}
else if(!temp_inf.toLowerCase().match(patt))
{
external.AddToChat("Требуется взять задание");
currentQuestChecked = false;
}
else
{
external.AddToChat("Задержка на взятие задания");
currentQuestChecked = 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(questIsActive && currentQuestChecked)
{
if(temp_p.match(/Для вас нет заданий/))
{
questIsActive = false;
external.ClickLink("Вернуться",4);
return;
}
if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0)
external.ClickLink("Вернуться",4);
else if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну") && top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length == 0)
{
var fp = GetPathFileName();
if(fp == "")
{
external.AddToChat("неверный файл");
return;
}
external.DungeonLoadPath(fp);
external.dungeonEnabled = true;
external.SBattleAbovePercent.Text = 100;
}
}
else if(!currentQuestChecked || questIsActive)
{
if(room)
{
if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Грибная лужайка",3);
else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Странное Место",3);
else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Грибная поляна",3);
else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Грибница",3);
else if(room == "Бойцовский Клуб" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центральная грибница",3);
else if(room == "Бойцовский Клуб" && external.SCity.Text == "angelscity" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центральный утес",3);
else if(room == "Бойцовский Клуб" && external.SCity.Text == "mooncity" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центр падения",3);
else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центральный Оазис",3);
else if(room == "Бойцовский Клуб" && external.SCity.Text == "demoncity" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центральный Разлом",3);
else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("\'Бойцовский Клуб\'",3);
else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Каменно-цветочная гряда",3);
else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Утес безысходности",3);
else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Вход в Заповедник",3);
else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Спуск в Бездну",3);
else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Цветочный Пустырь",3);
else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Последний Привал",3);
else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Внутренний двор",3);
else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Пещеры Мглы",3);
else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Спящая площадь",3);
else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Улица Камней",3);
else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Проклятые Руины",3);
else if(room == "Центральный Разлом" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Разлом Поклонения",3);
else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Дорога Храбрости",3);
else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Спуск в катакомбы",3);
else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Пещера Тысячи проклятий",3);
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Спуск в Катакомбы",3);
else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Пещера Тысячи проклятий",3);
else if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну") && !currentQuestChecked)
external.ClickLink("Задания",4);
}
else if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0 && !currentQuestChecked)
{
while(external.ClickLink("Завершить задание",4))
{
currentQuestChecked = false;
questIsActive = false;
external.AddToChat("Завершаем задание");
return;
}
if(!top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Репутация в Suncity: 0/))
{
if(external.ClickLink("Получить задание",4))
external.AddToChat("Работает взятие задания");
else
external.AddToChat("Задание уже есть");
currentQuestChecked=true;
questIsActive = true;
}
}
}
else if(!questIsActive && currentQuestChecked)
{
external.dungeonEnabled = false;
if(room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну")
{
switch (external.SCity.Text)
{
case "suncity":
external.ClickLink("Грибная поляна",2)
break
case "sandcity":
external.ClickLink("Внутренний двор",2)
break
case "angelscity":
external.ClickLink("Вход в Заповедник",2)
break
case "demonscity":
external.ClickLink("Спуск в катакомбы",2)
break
case "mooncity":
external.ClickLink("Пещера Тысячи проклятий",2)
break
default:
external.AddToChat("err");
}
}
else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Странное Место",3);
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Дорога Храбрости",3);
else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Проклятые Руины",3);
else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Разлом Поклонения",3);
else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центральный Разлом",3);
else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Улица Камней",3);
else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Спящая площадь",3);
else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центр падения",3);
else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Бойцовский Клуб",3);
else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Грибная лужайка",3);
else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центральная грибница",3);
else if(room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Бойцовский Клуб",3);
else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Зал воинов",3);
else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Утес безысходности",3);
else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Каменно-цветочная гряда",3);
else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центральный утес",3);
else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Бойцовский Клуб",3);
else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Последний Привал",3);
else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Цветочный Пустырь",3);
else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Центральный Оазис",3);
else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
external.ClickLink("Бойцовский Клуб",3);
else if(room == "Зал воинов")
external.SBattleAbovePercent.Text = 100;
}
}
catch(err)
{
external.AddToChat("Ошибка!");
}
}
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;
}
function CheckForQuestInInv(inf)
{
var index = -1;
switch (external.SCity.Text)
{
case "suncity":
index = 4;
break
case "sandcity":
index = 2;
break
case "angelscity":
index = 0;
break
case "demonscity":
index = 3;
break
case "mooncity":
index = 1;
break
default:
external.AddToChat("err");
}
for(var i = 0; i < allQuests[index].length; i++)
if(inf.match(allQuests[index][i]))
return true;
return false;
}
function GetPathFileName()
{
if(external.SCity.Text == "suncity")
return pathSun;
else if(external.SCity.Text == "sandcity")
return pathSand;
else if(external.SCity.Text == "angelscity")
return pathAngels;
else if(external.SCity.Text == "demonscity")
return pathDemons;
else if(external.SCity.Text == "mooncity")
return pathMoon;
return "";
}
RC1
207 2011-08-25 19:37:36
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Вопрос:
Скажем есть задание с таким текстом
Вам следует поднапрячься, и найти "Тряпье" в количестве 11 штук. Для достижения цели придется поучаствовать в захвате "Бездна". Удачи …
Текст задания будет меняться или для Тряпья всегда будет именно такая надпись?
208 2011-08-25 18:53:48
Re: Combots 9.2 (92 ответов, оставленных в Общий)
to Anahronik
1. external.Close - хотелось бы увидеть.
2. external.room_name - можешь модифицировать переменную, чтобы она хоть как-то определяла положение в таких ситуациях, например, как диалог (предложенный ранее external.room_name == "indialog"), страница заданий на входе в пещеру и т.д.
3. моя лс-ка - какие есть соображения?
Update:
Ах да, забыл совсем.
Очень хочется видеть external.skillsInfo, т.е. переменную со страницей Умений или с обновлением раз в 10мин или с методом обновления типа external.updateSkillsInfo();
209 2011-08-25 18:25:32
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Если глючить не будет - никто туда заглядывать не станет. Вопрос надо ли.. Если есть другое более простое решение проблемы нескольких заданий, тогда не надо..
Сделал примерно так, как ты и сказал (текст заданий). Скоро выложу обновление.
210 2011-08-24 22:32:52
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
Да, вот еще вопрос какой:
если бот словит собиралку, я так понимаю, бот зациклится на попытке подбора реса, если уже собиралка перевыполнена?
211 2011-08-24 22:28:02
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
-ну и можно настроить перелеты между городами для копания репы, с учетом времени перелетов: взял - сделал - улетел в другой
на данный момент бот работает нестабильно во время перелетов
-привязать взятие задания - ко времени сервера..чтоб он время, когда взял новое в каждом городе - заносил в переменную, и не проверял каждые 6-7 минут..
если вдруг бот не проверит задание через 23 часа из-за какого-то глюка или другого плагина, то бот останется еще на сутки без квеста
-если сделать массив с городами, а каждый город - это массив с заданиями (полный текст всех заданий можно на дарках глянуть), далее бот берет из url знание в каком он сейчас городе, и проверяет есть ли такое задание в имеющихся, если есть - пишет - "задание есть, выполнено/не выполнено"..
это конечно можно, но захламит неслабо текстом листинг плагина
212 2011-08-24 21:05:30
Re: Плагин взятия задания, все города, нужно протестить. От Gorlum (248 ответов, оставленных в JavaScript)
если задания нет, но есть другие выполненные и/или невыполненные задания из других городов - бот так же не берет задания, т.е. не нажимает на кнопку "Получить задание", а выходит из данного диалога на вход в пещеру.
А вот об этом я не подумал.
Сейчас поправлю.
213 2011-08-23 18:42:55
Re: Отключение картинок (3 ответов, оставленных в Общий)
Пользоваться гуглом
Кто нить пробывал, делать сие?
первая же ссылка
()
214 2011-08-22 17:35:30
Re: Хранилище маршрутов (49 ответов, оставленных в Подземелье / Маршруты)
не заливаются маршруты в хранилище
ERROR: A folder to place the files was not found, or the files need to be CHMODed to 777.
Anahronik, видимо, при переезде забыл поправить атрибуты на папке с маршрутами.
215 2011-08-19 20:26:59
Re: модератарам и администрации бк (92 ответов, оставленных в Общий)
Во-первых для того кто упирается и реально крутит ботофермы - это не ограничение, а легкое неудобство в виде дополных пары кликов на запуск виртуалпс.
Если пользователь способен на это, то пусть делает. Думаю, некоторые уже нашли способ запуска больше 5ти копий не прибегая к виртуалке.
А вот те, кто неспособен - зачастую неспособны даже бота настроить нормально. И таких плодить не за чем.
216 2011-08-19 20:22:21
Re: Ликантропия (4 ответов, оставленных в Настройки / Плагины)
Совместить плагин проверки на ослабление и плагин с переходами по локациям. Вот и вся идея.
Работы на минут 10.
217 2011-08-16 21:57:40
Re: Свитки выход из боя и королева со своими хлюпами. (6 ответов, оставленных в Общий)
ну смотри, когда их набил и умер в бою, засчитывают? нет
Разве?
219 2011-08-14 23:03:41
Re: Плагин автопродажи. (40 ответов, оставленных в Настройки / Плагины)
Exile, скажи а насколько сложно написать плагин плавки шмота в абе?)
Опиши что требуется от плагина.
Плавка пещерного шмота?
Руны должны получаться только VP?
Короче, распиши всё, что должно и может получиться, из каких шмоток.
220 2011-08-14 15:13:10
Re: Вопросы от Жеки (6 ответов, оставленных в JavaScript)
var inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit=3&rnd=" + Math.random());
т.е. вот эта строка содержит в себе всю инфу со всех вкладок ?
function doLoad(url) а вот это зачем? эта функция ж не используется в первых двух строках
Нет. Она загружает страницу Эликсиры.
221 2011-08-14 13:48:20
Re: Вопросы от Жеки (6 ответов, оставленных в JavaScript)
Уф...слишком сложно
morkovkaName[x][0]- это ж вроде как параметр функции Morkovka2Handler, а где он описывается ?
Мне просто нужно чистое условие на наличие предмета. если несложно, можешь показать код вида "если в инвентаре в разделе эликов лежит сыворотка, то бла бла бла" ?
В плагине, когда мы проверяли уровень хп, мы заносили в двумерный массив имя элика и раздел инвентаря, в котором он должен находиться:
var morkovkaName = [];
morkovkaName[morkovkaName.length]=[];
morkovkaName[morkovkaName.length-1].push("Печень Гусеница");
morkovkaName[morkovkaName.length-1].push(3);
т.е. теперь в morkovkaName[0][0] будет храниться "Печень Гусеница"
а в morkovkaName[0][1] - 3
Но да ладно.
Если по-простому, то как-то так:
{
var inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit=3&rnd=" + Math.random());
if(!inf.match("pot_anti_disease_3_kk"))
external.AddToChat("сыворотки нету");
else
{
}
}
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;
}
222 2011-08-14 13:18:12
Re: Вопросы от Жеки (6 ответов, оставленных в JavaScript)
Morkovka2Handler(morkovkaName[x][0],morkovkaName[x][1])
morkovkaName[x][0] - это название нашей морковки, которое передаем в функцию morkovkaName (например, "Заживляющая Настойка").
Что такое:
"(\\s\\(x\\d+\\))?','main.pl',\\s'(.+?)',\\s'.*?',\\s(\\d+)"
когда мы пьем из инвентаря элик - мы юзаем кнопку "исп-ть".
а в кнопка эта вызывает js-функцию UseMagick с параметрами.
javascript:UseMagick('Заживляющая Настойка','main.pl', 'pot_cureHP150_0', '', 26, '', ',,,,,,')
так вот эта регулярка ищет такую строчку. И если она находится - значит кнопка Исп-ть есть, а это значит что и элик есть.
Если тебе нужно только проверить наличие предмета в инвентаре, то можно сделать универсальней: искать твой предмет по возможности его выбросить
223 2011-08-14 11:39:39
Re: Плагин автопродажи. (40 ответов, оставленных в Настройки / Плагины)
Exile, скажи а насколько сложно написать плагин плавки шмота в абе?)
Я плавкой не занимался, самого процесса не знаю. Но с технической точки зрения - думаю, не сложнее продажи вещей в гос.
224 2011-08-14 11:11:23
Re: Плагин автопродажи. (40 ответов, оставленных в Настройки / Плагины)
все кроме пузырей продает!
пардон, ошибку сделал небольшую.
замени
if (this[i].indexOf(item) > -1)
на
if (item.indexOf(this[i]) > -1)
225 2011-08-13 21:35:49
Re: чем можно открыть файл ca2 ? нужно вытащить пасс от чара. (4 ответов, оставленных в Проблемы / Баги / Неполадки)
чем открыть тогда чтобы узнать пас ? что значит зерг не у дел ? анахроник теперь продает лицухи ? зы давно не заходиол
Разработкой теперь ведется анахроник.
Чтобы узнать пасс делаешь следующее:
открывает блокнотом свой файл имячара.ca
ищещь строчку
<Password>тут_цифробуквы</Password>
копируешь всё, что между <Password> и </Password
и вставляешь, скажем, в <ComplectBattle>тут_тоже_цифробуквы</ComplectBattle>
т.е. <ComplectBattle>цифро_буквы_из_пасса_</ComplectBattle>
заходишь в бк чаром через бота, заходишь в настройки и в поле комплетка должен быть твой пасс