Тема: Мод : задерживаем "защиту от травм"
Автор : (Please log in or register to see this URL)
Задача модификации:Как можно дольше сохранять состояние "защиты от травм",которое сохраняется при сне в общежитии.
Ход действий :
1)После завершения боя бот идёт в общагу.
2)По прибытию в Общежите 1 этаж проверяет наличие эффекта ослабления после боя \ травмы
3)Если ничего вышеперечисленого не находит, засыпает,если находит - то ждет пока отпадёт,а после засыпает.
4)После восстановления хп просыпается,и идёт обратно в указаный зал
5)Становится в обычный режим.
Совместимость: версия 8+
Города: Только Кэпитал
Установка:
ГЛАВНОЕ: до начала правки сделайте резервную копию Main.js для замены, если не заработает.
1)в Main.js вставить :
if (cHPPercent < external.SBattleAbovePercent.Text)
{
//--------Начало---------
Dorm();
//---------Конец--------
else
{
//-------Начало----------
Dorm_return();
if(!top.frames[3].document.all[0].innerHTML.match(/dungeon\d?\.pl/) && external.room_name.match(/Зал\sвоинов/) == null && external.room_name!= "Будуар" && external.room_name!= "Огненный мир" && external.room_name!= "Колдовской мир"&& external.room_name!= "Астральные миры"&& external.room_name!= "Башня рыцарей-магов"&& external.room_name!= "Рыцарский зал"&& external.room_name!= "Торговый Зал") return;
//--------Конец---------
external.SetTrayIcon(6);
ВСТАВЛЯТЬ ТОЛЬКО ТО, ЧТО МЕЖДУ //----------------НАЧАЛО и КОНЕЦ. Остальные строки написаны для того, чтобы вы нашли место для вставления этого.
2)В тот же Main.js перед
function Main()
вставить следующее :
function Dorm(){
if(!use_dorm)return;
var info = doLoad("http://"+external.SCity.Text+".combats.com/inf.pl?login="+mylogin+"&"+Math.random());
var inj = false;
if(info.match(/легкая\sтравма/) != null || info.match(/средняя\sтравма/) != null || info.match(/тяжелая\sтравма/) != null)
inj = true;
if(external.room_name == "Бойцовский Клуб" && !inj)
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
else if(external.room_name == "Будуар")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Зал воинов")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Зал воинов 2")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Зал воинов 3")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Этаж 2")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
else if(external.room_name == "Этаж 3")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
else if(external.room_name == "Огненный мир")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o5&rnd=" + Math.random();
else if(external.room_name == "Колдовской мир")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o5&rnd=" + Math.random();
else if(external.room_name == "Астральные миры")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o5&rnd=" + Math.random();
else if(external.room_name== "Башня рыцарей-магов")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
else if(external.room_name== "Рыцарский зал")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Торговый Зал")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
else if(external.room_name == "Центральная Площадь")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o12&rnd=" + Math.random();
else if(external.room_name == "Страшилкина улица")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o12&rnd=" + Math.random();
else if(external.room_name == "Общежитие")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/house.pl?path=1.200.1&rnd=" + Math.random();
else if(top.frames[3].document.all[0].innerHTML.match(/Первое\,\sчто\sвы\sвидите/))
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/house.pl?room=4&" + Math.random();
else if(top.frames[3].document.all[0].innerHTML.match(/Вы\sбодрствуете/) && info.match(/Персонаж\sослаблен/)==null && !inj)
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/house.pl?to_sleep=1&sd4=963334127&room=4&" + Math.random();
}
function Dorm_return(){ //тут обратный маршрут будет
if(!use_dorm)return;
if(external.room_name == "Бойцовский Клуб"){
if(room_return_leach=="Зал воинов")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
else if(room_return_leach=="Зал воинов 2")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
else if(room_return_leach=="Зал воинов 3")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random();
else if(room_return_leach=="Будуар")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
else
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
}
else if(external.room_name == "Этаж 2"){
if(room_return_leach=="Рыцарский зал" || room_return_leach=="Башня рыцарей-магов")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
else if(room_return_leach=="Торговый Зал")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
else
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random();
}
else if(external.room_name == "Рыцарский зал"){
if(room_return_leach=="Башня рыцарей-магов")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o5&rnd=" + Math.random();
}
else if(external.room_name == "Этаж 3"){
if(room_return_leach=="Огненный мир")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
else if(room_return_leach=="Астральные миры")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o3&rnd=" + Math.random();
else if(room_return_leach=="Колдовской мир")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
}
else if(external.room_name == "Общ. Этаж 1"){
if(top.frames[3].document.all[0].innerHTML.match(/Вы\sспите/))
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/house.pl?to_awake=1&sd4=963334127&room=4&" + Math.random();
else
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/house.pl?path=1.200&rnd=" + Math.random();
}
else if(external.room_name == "Общежитие")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/house.pl?path=1.107&" + Math.random();
else if(external.room_name == "Страшилкина улица")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o9&" + Math.random();
else if(external.room_name == "Центральная Площадь")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&" + Math.random();
}
3)В папке Modules найти файл AJAX.js и добавить в него :
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;
}
4)Если у вас стоит и работает "(Please log in or register to see this URL)" то выполнять не стоит,если же у вас не внесён этот мод ,то в файле Main.js в самое-самое начало добавляем строки:
var user_text=external.LoadFile("Modules\\Users\\"+mylogin+".txt");
eval(user_text);
5)В папке Modules создать папку Users. В ней создать текстовый файл с названием "ВАШточныйНИК.txt" и добавить в него строки:
var room_return_leach = "Башня рыцарей-магов"; //Точное название комнаты, куда возвращаться из общаги(смотреть в информации перснажа как "место нахождения")
var use_dorm = true; //true - ходить в общагу. false - не ходить.
P.S. возможны конфликты с функцией Mage() , которая была написана anahronik'oм для проверки кол-ва мп,так что если у вас существует эта функция ,то возможно что этот мод не будет работать как задумано.
P.P.S. Этот мод в ближайшее время,как сказал anahronik , разрабатываться дальше не будет,т.к. у него и так много работы с уже существующими модами и плагинами,так что используйте и модифицируйте на свой страх и риск.
Отредактировано d1sc0nn3ct (2010-03-08 19:56:05)