Тема: МОД: Ремонт вещей почти везде и без учёта карманов.
Совместимость: версия 8.4+
Города: нубские города, Ангелс, Кэп, Сансити, Мун, Сэнд.
Изменения:
1) бот возвращается в ту комнату, откуда ушёл.
Список поддерживаемых комнат: Секретная Комната ,Будуар, ЗВ-ЗВ3, Рыцарский зал, Торговый зал, Башня рыцарей-магов, комнаты третьего этажа(не проверены, но проблем быть не должно).
2) В настройках теперь указывать надо не износ вещи, а разницу между максимальным износом и текущим.
Т.е. если выставить 1, то бот пойдёт чиниться только при 18/19, или 49/50...или 47/48 и т.д.
При 2, соответственно, 18/19 или 17/19, 47/49 или 48/49 и т.п.
3) Чинит только те вещи, которые отвечают условию. Т.е. разница между максимальным износом и текущим меньше или равна указанной в настройках
*NEW*4) не учитывает одетые в карманы предметы(во всяком случае те, картинки которых начинаются на invoke)
Установка:
Перед началом правки делаем резервную копию файла Repair.js (на случай голода во время ядерной зимы).
Новое содержание для файла Repair.js
var repaired = false;
var room_return = '';
function RepairMain()
{
var curDurability;
var mask = /Долговечность\:\s(\d+)\/(\d+)\,/g;
var temp_objects = external.objects.replace(/invoke[^,]*,/g,'');
while(curDurability = mask.exec(temp_objects)){
if(curDurability != null){
if((curDurability[2]-curDurability[1]) <= parseInt(external.SRepairNumber.Text) && curDurability[1]>0 && curDurability[2]>1)
{
external.SetStatusLabel("Ремонт");
external.repairEnabled = true;
repaired = false;
external.healWeared = false;
external.battleWeared = false;
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?setdown=all&sd4="+sd4+"&"+Math.random();
return true;
}
}
}
if(external.repairEnabled)
{
external.SetStatusLabel("Ремонт");
if(!repaired)
{
if(external.room_name == "Ремонтная мастерская")
{
repairing();
}
else if(external.room_name == "Центральная грибница" && external.SCity.Text=='suncity')
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random(); //suncity
else if(external.room_name == "Центральная Площадь" && external.SCity.Text=='capitalcity')
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].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
else if(external.room_name == "Центральная Площадь" || external.room_name == "Центральный утес")
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=o3&rnd=" + 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 == "Секретная Комната"){
room_return = "Секретная Комната";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?rnd=" + Math.random()+"&path=1.100.1.6.5";
}
else if(external.room_name == "Будуар"){
room_return = "Будуар";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
}
else if(external.room_name == "Зал воинов"){
room_return = "Зал воинов";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
}
else if(external.room_name == "Зал воинов 2"){
room_return = "Зал воинов 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"){
room_return = "Зал воинов 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 == "Этаж 3")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
else if(external.room_name == "Огненный мир"){
room_return = "Огненный мир";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o5&rnd=" + Math.random();
}
else if(external.room_name == "Колдовской мир"){
room_return = "Колдовской мир";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o5&rnd=" + Math.random();
}
else if(external.room_name == "Астральные миры"){
room_return = "Астральные миры";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o5&rnd=" + Math.random();
}
else if(external.room_name== "Башня рыцарей-магов"){
room_return = "Башня рыцарей-магов";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
}
else if(external.room_name== "Рыцарский зал"){
if(room_return==='')room_return = "Рыцарский зал";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
}
else if(external.room_name.match(/Торговый\sЗал/) != null){
room_return = "Торговый Зал";
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
}
else if (top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Кто\sздесь?/) || top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Бронзо \- чинить/))
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=2&" + Math.random();
else if(external.room_name == "Ремонтный цех" && external.SCity.Text=='suncity')
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random(); //suncity
else if(external.room_name == "Мастерская Удивительного Бронзо")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random(); //sandcity
else if(external.room_name == "Ремонтный цех" && external.SCity.Text=="mooncity"){
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/грязно\sругается/i)){
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=2&" + Math.random();
}
else if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Масса/)){
repairing();
}
else
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=&" + Math.random();
}
else if(external.room_name == "Ремонтный цех"){
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Хочу/)){
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?move_dialog=1&" + Math.random();
}
else if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Масса/)){
repairing();
}
else
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=&" + Math.random();
}
else
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?homeworld=" + Math.random();
}
else
{
if(external.room_name == "Ремонтная мастерская" && external.SCity.Text!="angelscity" && external.SCity.Text!="suncity" && external.SCity.Text!="sandcity")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/repare.pl?path=1.100&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(); //suncity
else if(external.room_name == "Ремонтный цех" && external.SCity.Text=="suncity")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random(); //suncity
else if(external.room_name == "Ремонтная мастерская" && external.SCity.Text=="suncity")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/repare.pl?rnd=" + Math.random()+"&path=1.100.4"; //suncity
else if(external.room_name == "Ремонтная мастерская" && external.SCity.Text=="sandcity")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/repare.pl?rnd=" + Math.random()+"&path=1.100.2"; //sandcity
else if(external.room_name == "Мастерская Удивительного Бронзо")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random(); //sandcity
else if(external.room_name == "Ремонтный цех")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
else if(external.room_name == "Ремонтная мастерская" && external.SCity.Text=="angelscity")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/repare.pl?rnd=" + Math.random()+"&path=1.100.2";
else if(external.room_name == "Центральная Площадь" && external.SCity.Text=='capitalcity')
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/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=o0&rnd=" + Math.random();
else if(external.room_name == "Центральный Оазис")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&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 == room_return){
room_return='';
external.repairEnabled = false;
repaired = false;
}
else if(external.room_name == "Бойцовский Клуб"){
if(room_return=="Зал воинов")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
else if(room_return=="Зал воинов 2")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
else if(room_return=="Зал воинов 3")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random();
else if(room_return=="Будуар")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
else if(room_return=="Секретная Комната")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?rnd=" + Math.random()+"&path=1.100.1.50";
else if(room_return==""){
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
room_return="Зал воинов 2";
}
else
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
}
else if(external.room_name == "Этаж 2"){
if(room_return=="Рыцарский зал" || room_return=="Башня рыцарей-магов")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
else if(room_return=="Торговый Зал")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
else
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random();
}
else if(external.room_name == "Рыцарский зал")
if(room_return=="Башня рыцарей-магов")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o5&rnd=" + Math.random();
else if(external.room_name == "Этаж 3"){
if(room_return=="Огненный мир")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
else if(room_return=="Астральные миры")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random();
else if(room_return=="Колдовской мир")
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
}
}
return true;
}
return false;
}
function repairing(){
var s = top.frames[external.mainFrameIndex].document.all[0];
var x=4;
var item ='';
var maskA = /Долговечность\:\s(\<FONT\scolor\=\#990000\>)?(\d+)\/(\d+)\</;
while(s.getElementsByTagName('TR')[x] && s.getElementsByTagName('TR')[x].innerHTML.match(/Ремонт\s1/)){
var iznos = maskA.exec(s.getElementsByTagName('TR')[x].innerHTML);
if((iznos[3]-iznos[2]) <= parseInt(external.SRepairNumber.Text)){
if(external.SRepairType.SelectedIndex == 1)
item = s.getElementsByTagName('TR')[x].innerHTML.match(/repare.pl\?rp=[A-Za-z_0-9]+?\&full=1\&n=\d+\&tooth=1\&0\.\d+/);
else
item = s.getElementsByTagName('TR')[x].innerHTML.match(/repare.pl\?rp=[A-Za-z_0-9]+?\&full=0\.\d+&n=\d+/);
if(item != '')
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + item;
return;
}
x++;
}
if(item == '')
repaired = true;
}
Выражаю благодарность Мунгу за предоставленную базовую информацию для изменения и особенно Петро за помощь в тестировании и поиске багов
Выражаю благодарность Петро, за создание маршрута для Suncity
Выражаю благодарность Anton2009, за предоставление возможности составить маршрут для Муна
Отредактировано anahronik (2010-04-11 23:04:47)