Сабж пока еще находится в состоянии бета версии, но сопсно уже работает
Почитать описание настроек и взять версию от разработчика можно здесь (в ней сопсно прописаны маги и звери): http://unk.no-ip.org/dp/obkast/ теперь немного о том что можно получить с его помощью:
автоматический каст нужных заклов для получения требуемых значений: быра+..., сила +..., удача + ... и т.д. на основе заклов имеющихся на рефлексе и доступных для каста в быту
я не силен в программировании, но сопсно у меня получилось с помощью разработчика аддона сделать варианты для зверей (только для оборотней, для перевертов есть свои тонкости по сбору энки) и вампиров (для вампов сбора энки нет, поэтому перед запуском скрипта и после него нужно вручную укусить чела чтобы была энка).
С данным аддоном существует одна проблема - значения кастов нужно прописывать индивидуально для каждого (не у всех зверей например коготь на +8 ложится).
Сопсно чтобы использовать нижеприведенный код нужно следующее:
скопировать нужный код (полностью то что между выделенным красным цветом текстом) вставить в текстовый документ, сохранить текстовый файл a формате *.js
полученный файл положить сюда: c:\Program Files\Mozilla Firefox\DozoryPlg\addons\
в лисе нажать Инструменты/Dozory Plugin/обновить дополнения
потом F5 в игре
Для использования кликаем на значке орги перса (большом) и видим меню.
Код еще возможно где-то кривой, в будущем (если будет время постараюсь удалить из него все лишнее не относящееся к отдельным классам).
При работе скрипта може показаться что лиса зависла, это связано со скоростью интернета и количеством кастов закла для получения требуемого результата
для вампиров-рукопашников (прописан каст крыльев на +7, каст тумана на +3, каст силы на +5):
//$Id: obkast.js,v 1.6 2007/10/13 17:34:12 cvsuser Exp $
//obkast.js
//v0.2
//© guest under BSD/BSDL.
if (document.location.pathname == "/cgi-bin/main.cgi" &&
typeof __act != "undefined") {
//Настройки:
// Максимально допустимое ко-во кастов одного закла
var maxTries = 20;
//Список кастов в формате:
// текст отображаемый в меню.
// пример: 'Ход на +'
//
// Требуемый результат каста:
// Если 0, то результат каста не важен.;
//
// Параметры запроса к серверу или javascript код
// запрос - эта строка будет добавлена к "/cgi-bin/main.cgi?";
// пример: "act=spell_24_" + __act + "&rm=action"
// javascript - строка начинается с "EVAL:",
// вызываемый код должен возвращать null при ошибке.
// пример: "EVAL:myFunction(param1, param2)"
//
// Регулярное выражение для выделения из ответа
// сервера результата каста. Вызывается так:
// encodeURI(response).replace(spell[3], "$3");
// пример: /(.*)(uskoren\.gif\'\,\'.{100}\+([0-9]{1,}))(.*)/
//
// Номер цепочки кастов:
// 0 - индивидуальный каст (не включается в цепочку)
// Номера цепочек должны начинаться с 1 и итди подряд.
// Рекомендуется в цепочках заклы ставить в порядке "тяжелые"
// (требуется кастовать много раз для получения результата)
// - "легкие". Либо ставить в конец заклы с не продолжительным
// временем действия (например ярость).
var spells = new Array(
//Цепочка кастов номер 1
//ДЛЯ Вампиров
//Крылья
Array(
"Крылья +", //Текст меню
7, //Требуемый результат каста
"act=spell_210_" + __act + "&rm=action", //Запрос
/(.*)(uskoren\.gif\'\,\'.{97,104}\+([0-9]{1,}))(.*)/, //Рег. выр.'
3 //Номер цепочки
),
//Туман
Array(
"Туман +", //Текст меню
3, //Требуемый результат каста
"act=spell_149_" + __act + "&rm=action", //Запрос
/(.*)(razyaren\.gif\'\,\'.{51}([0-9]{1})\'\,\'\'\,)(.*)/, //Рег. выр.'
3 //Номер цепочки
),
//Коготь
Array(
"Коготь", //Текст меню
5, //Требуемый результат каста
"act=spell_146_" + __act + "&rm=action", //Запрос
/(.*)(usilen\.gif\'\,\'.{70}\+([0-9]{1,}))(.*)/, //Рег. выр.'
3 //Номер цепочки
)
//Тут можно добавить свое
);
}
//Конец настроек
function __spellSend(spell)
{
if (spell.indexOf("EVAL:") == 0) {
try {
var result = eval(spell.substr(5));
return result;
} catch(err) {
return null;
}
}
var req = new XMLHttpRequest();
req.open("GET", "/cgi-bin/main.cgi?" + spell, false);
req.send(null);
if ((req.readyState != 4) || (req.status != 200)) return null;
return req.responseText;
}
function __display(msg)
{
var chatDoc = window.parent.frames[1].document;
if (!chatDoc) return;
var chatDiv = chatDoc.getElementById("chat");
if (!chatDiv) return;
var msgDiv = chatDoc.createElement("div");
msgDiv.class = "message";
msgDiv.innerHTML = '<SPAN class="system"><SPAN class="private">' +
'<MSG>' +
'<STRONG>[guest]: </STRONG>' +
'<B>' + msg + '</B>' +
'</MSG></SPAN></SPAN>';
chatDiv.appendChild(msgDiv);
return;
}
function cheatDo(spell)
{
var successFlag = false;
var spellText = spell[0];
var spellNeed = spell[1];
var spellCode = spell[2];
var spellRegExp = spell[3];
var spellMacro = spell[4];
if (spellNeed == 0) {
//Выполняем 1 раз, результат не проверяем.
var i = 1;
var curVal = "";
if (__spellSend(spellCode))
successFlag = true;
} else {
//Выполняем не более maxTries раз, результат нужен.
for (var i = 0; i < maxTries; i++) {
var response = __spellSend(spellCode);
var curVal = encodeURI(response).replace(spellRegExp, "$3");
if (curVal >= spellNeed) {
successFlag = true;
i++;
break;
}
}
}
if (spellMacro > 0) return successFlag;
if (successFlag == true)
__display("Готово: " + spellText + curVal + " было " + i +" попыток.");
else
__display("не получилось");
//обновим экран.
document.location.href = "/cgi-bin/main.cgi";
}
function get_energy()
{
//если мы не в реале, то ничего не делаем
if (dm.current != 0)
return true;
if (person.magic_align == "Dark") {
if (person.class_name == "Оборотень") {
var isZver = false;
for (var i = 0; i < acts_mg.length; i++) {
if (acts_mg[i][3] == "spell_160") {
//яра доступна значит в зверьке.
isZver = true;
break;
}
}
//трансформ в зверя
if (isZver == false)
__spellSend("act=spell_130_" + __act + "&rm=action");
//грызем чела
__spellSend("act=spell_198_" + __lact + "&rm=action");
} else if (person.class_name == "Вампир") {
//Нет тестового перса - в лес
} else {
//обратить к тьме + собрать энку
__spellSend("act=spell_137_" + __lact + "&act=spell_138_" + __lact + "&rm=action");
}
} else {
if (person.class_name == "Маг-перевертыш") {
var isZver = false;
for (var i = 0; i < acts_mg.length; i++) {
if (acts_mg[i][3] == "spell_160") {
//яра доступна значит в зверьке.
isZver = true;
break;
}
}
//трансформ в чела
if (isZver == true)
__spellSend("act=spell_130_" + __act + "&rm=action");
//обратить к свету + энка + трансформ в тотем
__spellSend("act=spell_136_" + __lact +
"&act=spell_138_" + __act +
"&act=spell_130_" + __act + "&rm=action");
} else {
//обратить к свету + собрать энку
__spellSend("act=spell_136_" + __lact + "&act=spell_138_" + __lact + "&rm=action");
}
}
return true;
}
//main()
if (document.location.pathname == "/cgi-bin/main.cgi" &&
typeof __act != "undefined")
{
var hero = document.getElementById("hero");
if (hero) {
var orgImg = document.evaluate("//img[contains(@src,'/img/znaki/')]", hero, null, XPathResult.ANY_TYPE, null).iterateNext();
if (orgImg) {
var macroCode = new Array(); //код цепочек
var macroText = new Array(); //текст цепочек
var singleSpells = ""; //одиночные заклы
for (var i = 0; i < spells.length; i++) {
var spell = spells[i];
if (spell[4] == 0) {
//одиночный закл
singleSpells += '+ <a href="JavaScript: cheatDo(spells[' +
i +']);">' + spell[0];
if (spell[1] > 0)
singleSpells += spell[1];
singleSpells += '</a><br />';
} else {
//Закл входит в цепочку
if (typeof macroCode[spell[4] - 1] == "undefined")
macroCode[spell[4] - 1] = "";
macroCode[spell[4] - 1] += 'if(f==true)f=cheatDo(spells[' + i + ']);';
if (typeof macroText[spell[4] - 1] == "undefined")
macroText[spell[4] - 1] = "";
macroText[spell[4] - 1] += spell[0];
if (spell[1] > 0)
macroText[spell[4] - 1] += spell[1]
macroText[spell[4] - 1] += ' ';
}
}
var macroSpells = "";
if (macroCode.length > 0)
macroSpells = '<font size=2>= <u><b>Обкаст</b></u> =</font> <br />';
var i = 0;
while (i < macroCode.length) {
macroSpells += '+ <a href="JavaScript:var f=true;' + macroCode[i] +
'if(f==true)__display(\'Готово: '+ macroText[i] +
'\');else __display(\'Не получилось\');' +
'document.location.href=\'/cgi-bin/main.cgi\';">' +
macroText[i] +'</a><br />';
i++;
}
orgImg.setAttribute("id", "cheatz");
tooltips.cheats = {
info_content_align: 'center',
INFO_CONTENT: 'Cheats Меню',
PROMO_CONTENT:
'<div class="competitor_сheats"><font size=2>= <u><b>' +
'Одиночные заклы</b></u> =</font> <br />'+
singleSpells + macroSpells + '</div>'
}
Tooltip.bind('cheatz','click_hidebale','info_promo',{},'cheats',{});
}//orgImg
} //hero
} //addon
Для вампомагов (сопсно только каст крыльев на +7):
//$Id: obkast.js,v 1.6 2007/10/13 17:34:12 cvsuser Exp $
//obkast.js
//v0.2
//© guest under BSD/BSDL.
if (document.location.pathname == "/cgi-bin/main.cgi" &&
typeof __act != "undefined") {
//Настройки:
// Максимально допустимое ко-во кастов одного закла
var maxTries = 20;
//Список кастов в формате:
// текст отображаемый в меню.
// пример: 'Ход на +'
//
// Требуемый результат каста:
// Если 0, то результат каста не важен.;
//
// Параметры запроса к серверу или javascript код
// запрос - эта строка будет добавлена к "/cgi-bin/main.cgi?";
// пример: "act=spell_24_" + __act + "&rm=action"
// javascript - строка начинается с "EVAL:",
// вызываемый код должен возвращать null при ошибке.
// пример: "EVAL:myFunction(param1, param2)"
//
// Регулярное выражение для выделения из ответа
// сервера результата каста. Вызывается так:
// encodeURI(response).replace(spell[3], "$3");
// пример: /(.*)(uskoren\.gif\'\,\'.{100}\+([0-9]{1,}))(.*)/
//
// Номер цепочки кастов:
// 0 - индивидуальный каст (не включается в цепочку)
// Номера цепочек должны начинаться с 1 и итди подряд.
// Рекомендуется в цепочках заклы ставить в порядке "тяжелые"
// (требуется кастовать много раз для получения результата)
// - "легкие". Либо ставить в конец заклы с не продолжительным
// временем действия (например ярость).
var spells = new Array(
//Цепочка кастов номер 1
//ДЛЯ Вампиров
//Крылья
Array(
"Крылья +", //Текст меню
7, //Требуемый результат каста
"act=spell_210_" + __act + "&rm=action", //Запрос
/(.*)(uskoren\.gif\'\,\'.{97,104}\+([0-9]{1,}))(.*)/, //Рег. выр.'
3 //Номер цепочки
)
//Тут можно добавить свое
);
}
//Конец настроек
function __spellSend(spell)
{
if (spell.indexOf("EVAL:") == 0) {
try {
var result = eval(spell.substr(5));
return result;
} catch(err) {
return null;
}
}
var req = new XMLHttpRequest();
req.open("GET", "/cgi-bin/main.cgi?" + spell, false);
req.send(null);
if ((req.readyState != 4) || (req.status != 200)) return null;
return req.responseText;
}
function __display(msg)
{
var chatDoc = window.parent.frames[1].document;
if (!chatDoc) return;
var chatDiv = chatDoc.getElementById("chat");
if (!chatDiv) return;
var msgDiv = chatDoc.createElement("div");
msgDiv.class = "message";
msgDiv.innerHTML = '<SPAN class="system"><SPAN class="private">' +
'<MSG>' +
'<STRONG>[guest]: </STRONG>' +
'<B>' + msg + '</B>' +
'</MSG></SPAN></SPAN>';
chatDiv.appendChild(msgDiv);
return;
}
function cheatDo(spell)
{
var successFlag = false;
var spellText = spell[0];
var spellNeed = spell[1];
var spellCode = spell[2];
var spellRegExp = spell[3];
var spellMacro = spell[4];
if (spellNeed == 0) {
//Выполняем 1 раз, результат не проверяем.
var i = 1;
var curVal = "";
if (__spellSend(spellCode))
successFlag = true;
} else {
//Выполняем не более maxTries раз, результат нужен.
for (var i = 0; i < maxTries; i++) {
var response = __spellSend(spellCode);
var curVal = encodeURI(response).replace(spellRegExp, "$3");
if (curVal >= spellNeed) {
successFlag = true;
i++;
break;
}
}
}
if (spellMacro > 0) return successFlag;
if (successFlag == true)
__display("Готово: " + spellText + curVal + " было " + i +" попыток.");
else
__display("не получилось");
//обновим экран.
document.location.href = "/cgi-bin/main.cgi";
}
function get_energy()
{
//если мы не в реале, то ничего не делаем
if (dm.current != 0)
return true;
if (person.magic_align == "Dark") {
if (person.class_name == "Оборотень") {
var isZver = false;
for (var i = 0; i < acts_mg.length; i++) {
if (acts_mg[i][3] == "spell_160") {
//яра доступна значит в зверьке.
isZver = true;
break;
}
}
//трансформ в зверя
if (isZver == false)
__spellSend("act=spell_130_" + __act + "&rm=action");
//грызем чела
__spellSend("act=spell_198_" + __lact + "&rm=action");
} else if (person.class_name == "Вампир") {
//Нет тестового перса - в лес
} else {
//обратить к тьме + собрать энку
__spellSend("act=spell_137_" + __lact + "&act=spell_138_" + __lact + "&rm=action");
}
} else {
if (person.class_name == "Маг-перевертыш") {
var isZver = false;
for (var i = 0; i < acts_mg.length; i++) {
if (acts_mg[i][3] == "spell_160") {
//яра доступна значит в зверьке.
isZver = true;
break;
}
}
//трансформ в чела
if (isZver == true)
__spellSend("act=spell_130_" + __act + "&rm=action");
//обратить к свету + энка + трансформ в тотем
__spellSend("act=spell_136_" + __lact +
"&act=spell_138_" + __act +
"&act=spell_130_" + __act + "&rm=action");
} else {
//обратить к свету + собрать энку
__spellSend("act=spell_136_" + __lact + "&act=spell_138_" + __lact + "&rm=action");
}
}
return true;
}
//main()
if (document.location.pathname == "/cgi-bin/main.cgi" &&
typeof __act != "undefined")
{
var hero = document.getElementById("hero");
if (hero) {
var orgImg = document.evaluate("//img[contains(@src,'/img/znaki/')]", hero, null, XPathResult.ANY_TYPE, null).iterateNext();
if (orgImg) {
var macroCode = new Array(); //код цепочек
var macroText = new Array(); //текст цепочек
var singleSpells = ""; //одиночные заклы
for (var i = 0; i < spells.length; i++) {
var spell = spells[i];
if (spell[4] == 0) {
//одиночный закл
singleSpells += '+ <a href="JavaScript: cheatDo(spells[' +
i +']);">' + spell[0];
if (spell[1] > 0)
singleSpells += spell[1];
singleSpells += '</a><br />';
} else {
//Закл входит в цепочку
if (typeof macroCode[spell[4] - 1] == "undefined")
macroCode[spell[4] - 1] = "";
macroCode[spell[4] - 1] += 'if(f==true)f=cheatDo(spells[' + i + ']);';
if (typeof macroText[spell[4] - 1] == "undefined")
macroText[spell[4] - 1] = "";
macroText[spell[4] - 1] += spell[0];
if (spell[1] > 0)
macroText[spell[4] - 1] += spell[1]
macroText[spell[4] - 1] += ' ';
}
}
var macroSpells = "";
if (macroCode.length > 0)
macroSpells = '<font size=2>= <u><b>Обкаст</b></u> =</font> <br />';
var i = 0;
while (i < macroCode.length) {
macroSpells += '+ <a href="JavaScript:var f=true;' + macroCode[i] +
'if(f==true)__display(\'Готово: '+ macroText[i] +
'\');else __display(\'Не получилось\');' +
'document.location.href=\'/cgi-bin/main.cgi\';">' +
macroText[i] +'</a><br />';
i++;
}
orgImg.setAttribute("id", "cheatz");
tooltips.cheats = {
info_content_align: 'center',
INFO_CONTENT: 'Cheats Меню',
PROMO_CONTENT:
'<div class="competitor_сheats"><font size=2>= <u><b>' +
'Одиночные заклы</b></u> =</font> <br />'+
singleSpells + macroSpells + '</div>'
}
Tooltip.bind('cheatz','click_hidebale','info_promo',{},'cheats',{});
}//orgImg
} //hero
} //addon
Для зверей у кого есть яра (прописано: грызть чела, каст когтя +8, каст яры +3, грызть чела и одиночный каст силы на любой результат):
//$Id: obkast.js,v 1.6 2007/10/13 17:34:12 cvsuser Exp $
//obkast.js
//v0.2
//© guest under BSD/BSDL.
if (document.location.pathname == "/cgi-bin/main.cgi" &&
typeof __act != "undefined") {
//Настройки:
// Максимально допустимое ко-во кастов одного закла
var maxTries = 20;
//Список кастов в формате:
// текст отображаемый в меню.
// пример: 'Ход на +'
//
// Требуемый результат каста:
// Если 0, то результат каста не важен.;
//
// Параметры запроса к серверу или javascript код
// запрос - эта строка будет добавлена к "/cgi-bin/main.cgi?";
// пример: "act=spell_24_" + __act + "&rm=action"
// javascript - строка начинается с "EVAL:",
// вызываемый код должен возвращать null при ошибке.
// пример: "EVAL:myFunction(param1, param2)"
//
// Регулярное выражение для выделения из ответа
// сервера результата каста. Вызывается так:
// encodeURI(response).replace(spell[3], "$3");
// пример: /(.*)(uskoren\.gif\'\,\'.{100}\+([0-9]{1,}))(.*)/
//
// Номер цепочки кастов:
// 0 - индивидуальный каст (не включается в цепочку)
// Номера цепочек должны начинаться с 1 и итди подряд.
// Рекомендуется в цепочках заклы ставить в порядке "тяжелые"
// (требуется кастовать много раз для получения результата)
// - "легкие". Либо ставить в конец заклы с не продолжительным
// временем действия (например ярость).
var spells = new Array(
//Цепочка кастов номер 1
//ДЛЯ ОБОРОТНЕЙ
//если надо трансформ и грызем чела
Array(
"Энка", //Текст меню
0, //Требуемый результат каста
"EVAL:get_energy();", //Запрос
"fake", //Рег. выр.
3 //Номер цепочки
),
//Коготь
Array(
"Коготь +", //Текст меню
8, //Требуемый результат каста
"act=spell_66_" + __act + "&rm=action", //Запрос
/(.*)(uskoren\.gif\'\,\'.{97,104}\+([0-9]{1,}))(.*)/, //Рег. выр.'
3 //Номер цепочки
),
//Яра
Array(
"Яра +", //Текст меню
3, //Требуемый результат каста
"act=spell_160_" + __act + "&rm=action", //Запрос
/(.*)(razyaren\.gif\'\,\'.{51}([0-9]{1})\'\,\'\'\,)(.*)/, //Рег. выр.'
3 //Номер цепочки
),
//грызем чела
Array(
"Энка", //Текст меню
0, //Требуемый результат каста
"EVAL:get_energy();", //Запрос
"fake", //Рег. выр.
3 //Номер цепочки
),
//Клык
Array(
"Клык", //Текст меню
0, //Требуемый результат каста
"act=spell_65_" + __act + "&rm=action", //Запрос
/(.*)(usilen\.gif\'\,\'.{70}\+([0-9]{1,}))(.*)/, //Рег. выр.'
3 //Номер цепочки
)
//Тут можно добавить свое
);
}
//Конец настроек
function __spellSend(spell)
{
if (spell.indexOf("EVAL:") == 0) {
try {
var result = eval(spell.substr(5));
return result;
} catch(err) {
return null;
}
}
var req = new XMLHttpRequest();
req.open("GET", "/cgi-bin/main.cgi?" + spell, false);
req.send(null);
if ((req.readyState != 4) || (req.status != 200)) return null;
return req.responseText;
}
function __display(msg)
{
var chatDoc = window.parent.frames[1].document;
if (!chatDoc) return;
var chatDiv = chatDoc.getElementById("chat");
if (!chatDiv) return;
var msgDiv = chatDoc.createElement("div");
msgDiv.class = "message";
msgDiv.innerHTML = '<SPAN class="system"><SPAN class="private">' +
'<MSG>' +
'<STRONG>[guest]: </STRONG>' +
'<B>' + msg + '</B>' +
'</MSG></SPAN></SPAN>';
chatDiv.appendChild(msgDiv);
return;
}
function cheatDo(spell)
{
var successFlag = false;
var spellText = spell[0];
var spellNeed = spell[1];
var spellCode = spell[2];
var spellRegExp = spell[3];
var spellMacro = spell[4];
if (spellNeed == 0) {
//Выполняем 1 раз, результат не проверяем.
var i = 1;
var curVal = "";
if (__spellSend(spellCode))
successFlag = true;
} else {
//Выполняем не более maxTries раз, результат нужен.
for (var i = 0; i < maxTries; i++) {
var response = __spellSend(spellCode);
var curVal = encodeURI(response).replace(spellRegExp, "$3");
if (curVal >= spellNeed) {
successFlag = true;
i++;
break;
}
}
}
if (spellMacro > 0) return successFlag;
if (successFlag == true)
__display("Готово: " + spellText + curVal + " было " + i +" попыток.");
else
__display("не получилось");
//обновим экран.
document.location.href = "/cgi-bin/main.cgi";
}
function get_energy()
{
//если мы не в реале, то ничего не делаем
if (dm.current != 0)
return true;
if (person.magic_align == "Dark") {
if (person.class_name == "Оборотень") {
var isZver = false;
for (var i = 0; i < acts_mg.length; i++) {
if (acts_mg[i][3] == "spell_160") {
//яра доступна значит в зверьке.
isZver = true;
break;
}
}
//трансформ в зверя
if (isZver == false)
__spellSend("act=spell_130_" + __act + "&rm=action");
//грызем чела
__spellSend("act=spell_198_" + __lact + "&rm=action");
} else if (person.class_name == "Вампир") {
//Нет тестового перса - в лес
} else {
//обратить к тьме + собрать энку
__spellSend("act=spell_137_" + __lact + "&act=spell_138_" + __lact + "&rm=action");
}
} else {
if (person.class_name == "Маг-перевертыш") {
var isZver = false;
for (var i = 0; i < acts_mg.length; i++) {
if (acts_mg[i][3] == "spell_160") {
//яра доступна значит в зверьке.
isZver = true;
break;
}
}
//трансформ в чела
if (isZver == true)
__spellSend("act=spell_130_" + __act + "&rm=action");
//обратить к свету + энка + трансформ в тотем
__spellSend("act=spell_136_" + __lact +
"&act=spell_138_" + __act +
"&act=spell_130_" + __act + "&rm=action");
} else {
//обратить к свету + собрать энку
__spellSend("act=spell_136_" + __lact + "&act=spell_138_" + __lact + "&rm=action");
}
}
return true;
}
//main()
if (document.location.pathname == "/cgi-bin/main.cgi" &&
typeof __act != "undefined")
{
var hero = document.getElementById("hero");
if (hero) {
var orgImg = document.evaluate("//img[contains(@src,'/img/znaki/')]", hero, null, XPathResult.ANY_TYPE, null).iterateNext();
if (orgImg) {
var macroCode = new Array(); //код цепочек
var macroText = new Array(); //текст цепочек
var singleSpells = ""; //одиночные заклы
for (var i = 0; i < spells.length; i++) {
var spell = spells[i];
if (spell[4] == 0) {
//одиночный закл
singleSpells += '+ <a href="JavaScript: cheatDo(spells[' +
i +']);">' + spell[0];
if (spell[1] > 0)
singleSpells += spell[1];
singleSpells += '</a><br />';
} else {
//Закл входит в цепочку
if (typeof macroCode[spell[4] - 1] == "undefined")
macroCode[spell[4] - 1] = "";
macroCode[spell[4] - 1] += 'if(f==true)f=cheatDo(spells[' + i + ']);';
if (typeof macroText[spell[4] - 1] == "undefined")
macroText[spell[4] - 1] = "";
macroText[spell[4] - 1] += spell[0];
if (spell[1] > 0)
macroText[spell[4] - 1] += spell[1]
macroText[spell[4] - 1] += ' ';
}
}
var macroSpells = "";
if (macroCode.length > 0)
macroSpells = '<font size=2>= <u><b>Обкаст</b></u> =</font> <br />';
var i = 0;
while (i < macroCode.length) {
macroSpells += '+ <a href="JavaScript:var f=true;' + macroCode[i] +
'if(f==true)__display(\'Готово: '+ macroText[i] +
'\');else __display(\'Не получилось\');' +
'document.location.href=\'/cgi-bin/main.cgi\';">' +
macroText[i] +'</a><br />';
i++;
}
orgImg.setAttribute("id", "cheatz");
tooltips.cheats = {
info_content_align: 'center',
INFO_CONTENT: 'Cheats Меню',
PROMO_CONTENT:
'<div class="competitor_сheats"><font size=2>= <u><b>' +
'Одиночные заклы</b></u> =</font> <br />'+
singleSpells + macroSpells + '</div>'
}
Tooltip.bind('cheatz','click_hidebale','info_promo',{},'cheats',{});
}//orgImg
} //hero
} //addon