Допилил плагин до работоспособного состояния, взяв за основу старый плагин продажи(найденный на форуме, где бот нормально ходил).
Сейчас продаёт сразу весь шмот, списком. В чат пишет какие предметы добавлены к продаже.
Тестируем
P.s. Спасибо Andy_SPB, за пробуждение интереса к задаче и за функцию ChangeTime();
Собственно сам код:
var sellTimer = {};
var sellDone = false;
var sellRoom = '';
var Pause = false;
var itemsToSell = [];
itemsToSell.push("Название шмотки"); // список шмота можно скопировать из старого плагина.
function SellInShop(enabled)
{
if(enabled)
{
sellTimer[mylogin] = setInterval("SellAction()", 2000);
}
else
{
clearInterval(sellTimer[mylogin]);
}
}
Array.prototype.inArray = function(item)
{
for (var i in this)
if (item.indexOf(this[i]) > -1)
return true;
return false;
}
function SellAction()
{
try
{
if(!external.dungeonEnabled || !external.Started()) return;
if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
{
sellDone = false;
return;
}
var sellTemp = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
if(sellRoom = sellTemp.match(/<nobr>([^<]+)<\/nobr>/))
{
sellRoom = String(sellRoom[1]);
}
else
sellRoom = "unknown";
if(!sellDone)
{
if(sellTemp.match(/drwfl\("(?:Дуалон|Илена|Мафи|Бартоломей|Амарл)",/i) && sellTemp.match(/(подойти к прилавку|пройти к прилавкам|пройти к прилавку)/))
external.ClickLink(sellTemp.match(/(подойти к прилавку|пройти к прилавкам|пройти к прилавку)/)[0],2);
else if (sellRoom.match(/(Центральная грибница|Торговые скалы)/) && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Прилавки с товарами",3);
else if (sellRoom == "Грибница" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Грибная поляна",2);
else if (sellRoom == "Грибная поляна" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Странное Место",3);
else if (sellRoom == "Странное Место" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Грибная лужайка",3);
else if (sellRoom == "Грибная лужайка" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Центральная грибница",3);
else if (sellRoom == "Прилавки с товарами" && sellTemp.match(/Илена|Мафи/))
external.ClickLink(sellTemp.match(/Илена|Мафи/)[0],3);
else if (sellRoom == "Пещеры Мглы" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Внутренний двор",2);
else if (sellRoom == "Внутренний двор" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Последний Привал",3);
else if (sellRoom == "Последний Привал" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Цветочный Пустырь",3);
else if (sellRoom == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Центральный Оазис",3);
else if (sellRoom == "Центральный Оазис" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Базар",3);
else if (sellRoom == "Базар" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Лавка Бартоломея",3);
else if (sellRoom == "Лавка Бартоломея")
external.ClickLink("Бартоломей",3);
else if (sellRoom == "Спуск в Бездну" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Вход в Заповедник",2);
else if (sellRoom == "Вход в Заповедник" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Утес безысходности",3);
else if (sellRoom == "Утес безысходности" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Каменно-цветочная гряда",3);
else if (sellRoom == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Центральный утес",3);
else if (sellRoom == "Центральный утес" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Торговые скалы",3);
else if (sellRoom == "Туманные Низины" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Тропинка в Туман",2);
else if (sellRoom == "Тропинка в Туман" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Призрачный Лес",3);
else if (sellRoom == "Врата Душ" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Поляна Возрождения",3);
else if (sellRoom == "Поляна Возрождения" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Лесной Портал",3);
else if (sellRoom == "Призрачный Лес" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Лесной Портал",3);
else if (sellRoom == "Лесной Портал" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Опушка Поединков",3);
else if (sellRoom == "Опушка Поединков" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Торговый Лес",3);
else if (sellRoom == "Торговый Лес" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Магазин",3);
else if (sellRoom == "Спуск в Катакомбы" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Спуск в катакомбы",2);
else if (sellRoom == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Дорога Храбрости",3);
else if (sellRoom == "Дорога Храбрости" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Разлом Поклонения",3);
else if (sellRoom == "Разлом Поклонения" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Центральный Разлом",3);
else if (sellRoom == "Центральный Разлом" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Разлом Великолепия",3);
else if (sellRoom == "Разлом Великолепия" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Торговый Разлом",3);
else if (sellRoom == "Торговый Разлом" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Магазин",3);
else if(sellRoom == "Магазин")
{
external.ClickLink("dem_newbot_magaz|dev_new_magaz",3); //demons+devils
if(!sellTemp.match(/Отдел \"Скупка\"/i))
external.ClickLink("Продать вещи",4);
else
{
clearInterval(sellTimer[mylogin]);
ChangeTime();
var items = sellTemp.match(/продать за/);
if(items != null) {
for(var i = 0; i < itemsToSell.length; i++)
{
if(sellTemp.match(itemsToSell[i])) {
$('a[onclick*="'+itemsToSell[i]+'"]',get_mainframe().document).css('background','green').prev().each(function(){this.click();});
external.AddToChat("добавлено к списку продажи: "+itemsToSell[i]+"");
}
}
$('#sell_button',get_mainframe().document).each(function(){this.click();});
$('button[onclick*="return do_sell_checked();"]',get_mainframe().document).each(function(){this.click();});
sellDone = true;
ChangeTime();
sellTimer[mylogin] = setInterval("SellAction()", 2000);
}
}
}
}
else
{
if (sellRoom == "Магазин" && top.frames[external.mainFrameIndex].check_access()) {
if (external.SCity.Text.match(/(angelscity|suncity|mooncity)/))
external.ClickLink("Прилавки с товарами",2);
else if (external.SCity.Text == "demonscity")
external.ClickLink("Торговый Разлом",2);
else if (external.SCity.Text == "devilscity") {
external.ClickLink("Магазин",2);
if (sellTemp.match(/dev_new_magaz/i) && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Торговый Лес",3);
}
else if (external.SCity.Text == "sandcity")
external.ClickLink("Лавка Бартоломея",2);
}
else if(sellRoom == "Прилавки с товарами" && top.frames[external.mainFrameIndex].check_access())
{
if(external.SCity.Text == "suncity")
external.ClickLink("Центральная грибница",3);
if(external.SCity.Text == "angelscity")
external.ClickLink("Торговые скалы",3);
}
else if (sellRoom == "Центральная Поляна" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Монетная Просека",3);
else if (sellRoom == "Врата Душ" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Поляна Возрождения",3);
else if (sellRoom == "Поляна Возрождения" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Лесной Портал",3);
else if (sellRoom == "Монетная Просека" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Торговый Лес",3);
else if (sellRoom == "Торговый Лес" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Опушка Поединков",3);
else if (sellRoom == "Опушка Поединков" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Лесной Портал",3);
else if (sellRoom == "Лесной Портал" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Призрачный Лес",3);
else if (sellRoom == "Призрачный Лес" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Тропинка в Туман",3);
else if (sellRoom == "Тропинка в Туман" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Туманные Низины",3);
else if (sellRoom == "Врата Душ" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Поляна Возрождения",3)
else if (sellRoom == "Поляна Возрождения" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Лесной Портал",3)
else if (sellRoom == "Лавка Бартоломея" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Базар",3);
else if (sellRoom == "Торговые скалы" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Центральный утес",3);
else if (sellRoom == "Центральный утес" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Каменно-цветочная гряда",3);
else if (sellRoom == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Утес безысходности",3);
else if (sellRoom == "Утес безысходности" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Вход в Заповедник",3);
else if (sellRoom == "Вход в Заповедник" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Спуск в Бездну",3);
else if (sellRoom == "Базар" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Центральный Оазис",3);
else if (sellRoom == "Центральный Оазис" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Цветочный Пустырь",3);
else if (sellRoom == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Последний Привал",3);
else if (sellRoom == "Последний Привал" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Внутренний двор",3);
else if (sellRoom == "Внутренний двор" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Пещеры Мглы",3);
else if (sellRoom == "Центральная грибница" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Грибная лужайка",3);
else if (sellRoom == "Грибная лужайка" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Странное Место",3);
else if (sellRoom == "Странное Место" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Грибная поляна",3);
else if (sellRoom == "Грибная поляна" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Грибница",3);
else if (sellRoom == "Торговый Разлом" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Разлом Великолепия",3);
else if (sellRoom == "Разлом Великолепия" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Центральный Разлом",3);
else if (sellRoom == "Центральный Разлом" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Разлом Поклонения",3);
else if (sellRoom == "Разлом Поклонения" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Дорога Храбрости",3);
else if (sellRoom == "Дорога Храбрости" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Спуск в катакомбы",3);
else if (sellRoom == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].check_access())
external.ClickLink("Спуск в Катакомбы",3);
}
}
catch(err)
{
external.AddToChat("error");
}
}
function ChangeTime(){
if (!Pause){
external.Stop();
Pause = true;
}else{
external.Start();
Pause = false;
}
}
Йа нуб!!!Шарите в js? Уверены?) Тогда загляните (Please log in or register to see this URL), может вы ошибаетесь в своих силах