Hidevar AMAfterCastSetted = 0;
var AutoMoveIndex = 0;
var AutoMoveWhite = new Array();
var AutoMoveProcess = 0;
var AutoMoveState = 0;
var AutoMoveReturnLocation = "Торговый Зал";
var AutoMoveIsCurrReturnLocation = 0;
var AutoMoveTargetLocation = 1;
var AutoMoveTargetLocName = "";
var AutoMoveCoordinator = "";
//выше ничего менять не нужно
var AutoMoveTimeOut = "10";//тайм-аут в минутах для возврата при переходе
var AutoMoveBeforeMove = "1183446360";//номер комплекта, одевающийся перед переходом
var AutoMoveAfterMove = "1180960836";//номер комплекта, одевающийся после перехода
//============Добавляем ники персонажей, которые могут направлять персонажа=======
AutoMoveWhite.push("_Renegat_");
AutoMoveWhite.push("W-W-Web");
AutoMoveWhite.push("Energiya");
AutoMoveWhite.push("Dangerous Mage");
AutoMoveWhite.push("Lenkis");
AutoMoveWhite.push("Nebbia");
AutoMoveWhite.push("Walleery");
AutoMoveWhite.push("Watersky");
AutoMoveWhite.push("tinker-dsc");
AutoMoveWhite.push("Клим Мальгин");
AutoMoveWhite.push("Bittum");
AutoMoveWhite.push("Bloody Hunter");
AutoMoveWhite.push("Giedre");
AutoMoveWhite.push("Dangerous");
AutoMoveWhite.push("Котька Кэт");
AutoMoveWhite.push("Малмекианец");
AutoMoveWhite.push("Чип и Дейл");
AutoMoveWhite.push("The Loney");
AutoMoveWhite.push("Чучик");
AutoMoveWhite.push("King-lir");
AutoMoveWhite.push("x Golden x");
AutoMoveWhite.push("krav");
AutoMoveWhite.push("Ф Е Я");
AutoMoveWhite.push("Zipan");
AutoMoveWhite.push("Василек");
AutoMoveWhite.push("Добродеятель");
AutoMoveWhite.push("А-нгелоче-К");
AutoMoveWhite.push("FASSGEN");
AutoMoveWhite.push("Дикий кролик"); //http://rapidshare.com/files/47267742/automove.js.html
AutoMoveWhite.push("Rual Ilmarranen");
AutoMoveWhite.push("Diamonda");
AutoMoveWhite.push("Император всего");
AutoMoveWhite.push("обитатель");
AutoMoveWhite.push("ADABAS");
AutoMoveWhite.push("Elvin_Q");
AutoMoveWhite.push("Леха Лютый долб");
AutoMoveWhite.push("Мега Батя");
AutoMoveWhite.push("Я круче");
//============Конец списка персонажей, которые могут направлять персонажа=========
//ниже ничего менять не нужно
function automove(pluginIndex) {
AutoMoveIndex = pluginIndex;
if(AutoMoveState == 0)
{
AutoMoveState = 1;
external.RegisterOnDocumentComplete('AutoMoveChecker'); //зарегистрируем обработчиком событий загрузки документа
var AutoMovefilter = external.RegisterPluginFilter("AutoMove_Filter");
AutoMovefilter.Value = "(?i)(^.*<font class=.*>(.+)<\/font>.*<SPAN>(.+)</SPAN>.*<font color=.*>.*(-->.*"(.+)".*).*<\/font>.*)";
AutoMovefilter.SysMessagesEnabled = false;
AutoMovefilter.OnlySysMessages = false;
AutoMovefilter.Plugin = "AutoMoveFilter";
AutoMovefilter.Action = 'null';
alert("Плагин АвтоПерехода включен\n(c) W-W-Web");
//external.GetShortInfo("W-W-Web","AutoMoveCurrLoc");
//var AutoMoveProcess = 0;
//var AutoMoveTargetLocation = 1;
}
else
{
AutoMoveState = 0;
external.UnregisterOnDocumentComplete('AutoMoveChecker');//разрегистрируем обработчиком событий загрузки документа
alert("Плагин АвтоПерехода отключен\n(c) W-W-Web");
external.UnregisterPluginFilter("AutoMove_Filter");
var AutoMoveProcess = 0;
var AutoMoveTargetLocation = 1;
var AutoMoveTargetLocName = "";
var AutoMoveCoordinator = "";
}
//AutoMoveRegisterFilter();
external.CheckPluginButton(pluginIndex, AutoMoveState);
}
function AutoMoveSetKmp(id)//AutoMoveSetKmp(AutoMoveBeforeMove);
{
if(id != "" && !AutoMoveProcess)
{
top.cmloc("/main.pl?skmp="+id+"&"+Math.random());
ahah = setTimeout("top.returned()", 2000);
}
}
function AutoMoveGoto(locName)
{
var roomID = external.JumpIDByName(locName);
//external.QuickJump(roomID);
external.SilentQuickJump(roomID);
}
/*function AutoMoveRegisterFilter()
{
var filter = external.RegisterPluginFilter("AutoMove_Filter");
filter.Value = '(<font class=date(.+?)>(.+?)<\/font>.+\"(.+)\" --> "(.+)"\.)';
filter.SysMessagesEnabled = true;
filter.OnlySysMessages = true;
filter.Plugin = "AutoMove";
filter.Action = 'null';
}*/
function AutoMoveFilter(chattxt,private,sender)
{
var s4 = new String(chattxt[0]);
login=chattxt[2]; //ник чарушки
cmd=chattxt[4];//направлене от чарушки
AutoMoveSetKmp(AutoMoveBeforeMove);
mmove = setTimeout("AutoMoveFilter2(login,cmd)", 5000);
}
function AutoMoveFilter2(nick,commandz)
{
//var s4 = new String(chattxt[0]);
//nick=chattxt[2]; //ник чарушки
//command=chattxt[4];//направлене от чарушки
command = commandz.toLowerCase();
if(AutoMoveIsInWhite(nick) && !AutoMoveProcess && AutoMoveState == 1)
{
//если персонаж в белом списке и никто другой не "управляет" персонажем, переходим
//alert("Sender: " + nick + "; command: " + command);
AutoMoveCoordinator = nick;
b = setTimeout("if(AutoMoveTargetLocation && !AutoMoveProcess && AutoMoveState && (AutoMoveTargetLocName != AutoMoveReturnLocation && !AutoMoveIsCurrReturnLocation)){ AutoMoveGoto(AutoMoveReturnLocation); external.AddEvent('Возврат в локацию ' + AutoMoveReturnLocation, true); AutoMoveTargetLocName = AutoMoveReturnLocation; AutoMoveProcess = 1; AutoMoveTargetLocation = 0; }", AutoMoveTimeOut*60*1000);
external.SendChatMessage("private [" + nick + "] У вас есть " + AutoMoveTimeOut + " минут, после чего персонаж вернется в локацию " + AutoMoveReturnLocation + ". Обратный отсчет начнется сразу же при начале перехода...");
switch(command)
{
case "?":
external.SendChatMessage("private [" + nick + "] Описание комманд плагина: Введите --> \"команда\" , где команда может быть: зв - Зал Воинов, зв2 - Зал Воинов 2, зв3 - Зал Воинов 3, цп - Центральная Площадь, рз - Рыцарский Зал, ");
external.SendChatMessage("private [" + nick + "] брм - Башня Рыцарей Магов, э2 - Этаж2, тв - таверна, бк - Бойцовский Клуб, ск - Секретная Комната, залы - Залы, зт - Зал Тьмы, зп -Зал Паладинов, зс - Зал Стихий, бд - Будуар, ");
external.SendChatMessage("private [" + nick + "] магаз - Магазин, комок - Комиссионка, почта - Почтовое Отделение, опт - Оптовый магазин, лото - Лотерейный дом, стела - Стела Голоса, ");
external.SendChatMessage("private [" + nick + "] вокзал - Вокзал, страш - Страшилкина улица, банк - Банк, цветы - Цветочный магазин, тз - Торговый Зал");//бс - Башня смерти,
break;
case "зв":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Воинов");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Зал воинов";
AutoMoveGoto("Зал воинов");//Зал Воинов
break;
case "зв2":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Воинов 2");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Зал воинов 2";
AutoMoveGoto("Зал воинов 2");
break;
case "зв3":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Воинов 3");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Зал воинов 3";
AutoMoveGoto("Зал воинов 3");
break;
case "цп":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Центральная Площадь");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Центральная Площадь";
AutoMoveGoto("Центральная Площадь");
break;
case "рз":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Рыцарский зал");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Рыцарский зал";
AutoMoveGoto("Рыцарский зал");
break;
case "брм":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Башня рыцарей-магов");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Башня рыцарей-магов";
AutoMoveGoto("Башня рыцарей-магов");
break;
case "тв":
external.SendChatMessage("private [" + nick + "] Попытка перейти в ");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Таверна";
AutoMoveGoto("Таверна");
break;
case "бк":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Бойцовский Клуб");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Бойцовский Клуб";
AutoMoveGoto("Бойцовский Клуб");
break;
case "э2":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Этаж 2");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Этаж 2";
AutoMoveGoto("Этаж 2");
break;
case "ск":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Секретная Комната");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Секретная Комната";
AutoMoveGoto("Секретная Комната");
break;
case "залы":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Залы");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Залы";
AutoMoveGoto("Залы");
break;
case "зт":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Тьмы");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Зал Тьмы";
AutoMoveGoto("Зал Тьмы");
break;
case "зп":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Паладинов");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Зал Паладинов";
AutoMoveGoto("Зал Паладинов");
break;
case "зс":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Зал Стихий");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Зал Стихий";
AutoMoveGoto("Зал Стихий");
break;
case "бд":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Будуар");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Будуар";
AutoMoveGoto("Будуар");
break;
case "магаз":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Магазин");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Магазин";
AutoMoveGoto("Магазин");
break;
case "комок":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Комиссионка");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Комиссионка";
AutoMoveGoto("Комиссионка");
break;
case "почта":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Почтовое отделение");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Почтовое отделение";
AutoMoveGoto("Почтовое отделение");
break;
case "опт":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Оптовый магазин");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Оптовый магазин";
AutoMoveGoto("Оптовый магазин");
break;
case "лото":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Лотерейный дом");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Лотерейный дом";
AutoMoveGoto("Лотерейный дом");
break;
case "стела":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Стела Выбора");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Стела Выбора";
AutoMoveGoto("Стела голоса");
break;
case "вокзал":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Вокзал");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Вокзал";
AutoMoveGoto("Вокзал");
break;
case "страш":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Страшилкина улица");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Страшилкина улица";
AutoMoveGoto("Страшилкина улица");
break;
case "банк":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Банк");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Банк";
AutoMoveGoto("Банк");
break;
case "цветы":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Цветочный магазин");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Цветочный магазин";
AutoMoveGoto("Цветочный магазин");
break;
case "бс":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Башня смерти");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Башня Смерти";
AutoMoveGoto("Башня Смерти");//не ходит хз почему...
break;
case "тз":
external.SendChatMessage("private [" + nick + "] Попытка перейти в Торговый Зал");
AutoMoveProcess = 1;//в процессе перехода - да
AutoMoveTargetLocation = 0;//у цели перехода - нет
AutoMoveTargetLocName = "Торговый Зал";
AutoMoveGoto("Торговый Зал");
break;
default:
external.SendChatMessage("private [ " + nick + " ] не корректная команда, введите --> \"?\" ддля описания команд");
}
}
else if(AutoMoveIsInWhite(nick) && AutoMoveProcess == 1 && AutoMoveState == 1)
{
//если персонаж в белом списке и кто-то другой "управляет" персонажем, не переходим
//external.AddEvent("if(AutoMoveIsInWhite() && AutoMoveProcess == 1 && AutoMoveState == 1)", true);
external.SendChatMessage("private [ " + nick + " ] простите, персонаж в состоянии перехода...");
}
else if(AutoMoveIsInWhite(nick) && AutoMoveState == 0)
{
//плагин отключен
//external.AddEvent("if(AutoMoveIsInWhite() && AutoMoveState == 0)",true);
external.SendChatMessage("private [ " + nick + " ] простите, плагин автоперехода отключен");
}
else if(!AutoMoveIsInWhite(nick))
{
//направляющий не находится в списке персонажей, которые могут урпавлять персонажами
//external.AddEvent("!AutoMoveIsInWhite()", true);
external.SendChatMessage("private [ " + nick + " ] простите, направлять моего персонажа могут только персонажи, находящиеся в белом списке, вы в нем отсутствуете...");
}
else
external.AddEvent("else", true);
}
function AutoMoveIsInWhite(login)
{
for(i = 0; i < AutoMoveWhite.length; i++)
{
if(login.toUpperCase() == AutoMoveWhite[i].toUpperCase())
{
return 1;//персонаж в белом списке
}
/*else
external.AddEvent("Login:'" + login.toUpperCase() + "'; WhiteLogin:'" + AutoMoveWhite[i].toUpperCase() + "'",true); */
/*else
external.AddEvent("");*/
}
return 0;//не найден персонаж
}
function AutoMoveChecker(targetName)
{
//обработчик обновления верхнего фрейма
external.GetShortInfo(external.LoggedAs,"AutoMoveCurrLoc");
}
function AutoMoveCurrLoc()
{
if(!(selfInf=external.LoginInfo))
{
external.AddEvent("Не удается установить текущшее положение", true );
AutoMoveProcess = 0;//в процессе перехода - нет
AutoMoveTargetLocation = 1;//у цели перехода - да
return;
}
if(selfInf.RoomName == AutoMoveTargetLocName)
{
//если комната цели перехода достигнута, шлем в приват "направляющему", что на месте
if(AutoMoveCoordinator != "")
{
external.SendChatMessage("private [" + AutoMoveCoordinator + "] на месте");
}
x = setTimeout("AutoMoveProcess = 0;AutoMoveTargetLocation = 1;AutoMoveTargetLocName = '';AutoMoveCoordinator = '';external.AddEvent('Переход завершен',true);AutoMoveSetKmp(AutoMoveAfterMove);", 5*1000);
}
else
{
if(AutoMoveTargetLocName != "")
{
external.AddEvent("Цель: " + AutoMoveTargetLocName + ", текущая локация: " + selfInf.RoomName, true);
}
}
if(selfInf.RoomName == AutoMoveReturnLocation)
{
AutoMoveIsCurrReturnLocation = 1;
}
else
AutoMoveIsCurrReturnLocation = 0;
}