Я взял твой первый код, где функции повторялись, и сам заменил...попробуй
var cBattle = false;
var ZayavkaOut = 0;
var ZayavkaTimer = 0;
var BattleReady;
var user_text=external.LoadFile("Modules\\Users\\"+mylogin+".txt");
eval(user_text);
var LichProcess = false;
var script = external.LoadFile("Modules\\Leach.js");
eval(script);
function Main()
{
external.RequestInfoFromServer(mylogin, false);
external.SetHPStatusLabel("HP: " + external.hpCurrent + "/" + external.hpMaximum);
if (external.injury && !external.SBattleWithInjury.Checked)
{
external.SetTrayIcon(5);
external.SetStatusLabel("Травма");
if (external.SCureInjuries.Checked && !external.inBattle)
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?edit=2&" + Math.random();
}
else
{
if (!external.inBattle)
{
cBattle = false;
if (top.User.Framework.GetTab("battle").bSelected)
top.Battle.End("http://" + external.SCity.Text + ".combats.com/main.pl");
else
{
if(external.SRepairType.SelectedIndex > 0)
{
if(RepairMain())
return;
}
if((external.room_name.match(/Врата\sДуш/)) && (external.SCity.Text == "angelscity" || external.SCity.Text == "capitalcity"))
{
LichProcess = true;
}
//external.AddToChat(external.injury+" : "+LichProcess);
if(((LichHeal && external.level>=8 && external.injury) || LichProcess) && (external.SCity.Text == "angelscity" || external.SCity.Text == "capitalcity"))
{
external.SetStatusLabel("ЛичУемся");//чисто чтоб видеть
if(!LichProcess){
external.AddToChat("кастыли : "+Kostili);
httpGetPageRequest(Kostili);
LichProcess=true;
return;
}
LichHealMain();
return;
}
if(external.SStatsAdder.Checked)
{
var s = top.frames[3].document.all[0].innerHTML;
if(s.indexOf("+ Способности") > 0)
{
var currentStat = external.GetCurrentStat(external.my_default_stats);
if(currentStat.length > 0)
{
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?upr=save&" + currentStat + "=1";
return;
}
}
}
if(external.hpMaximum<setMaxHP){
BattleReady=false;
if(external.injury==false){
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skmp=" + external.SComplectBattle.Text;}
}
else{ BattleReady=true;}
var cHPPercent = external.hpCurrent * 100 / external.hpMaximum;
if (cHPPercent < external.SBattleAbovePercent.Text)
{
external.SetStatusLabel("Восстанавливаю HP");
if(cHPPercent <34)
external.SetTrayIcon(1);
else if(cHPPercent < 67)
external.SetTrayIcon(2);
else
external.SetTrayIcon(3);
if(external.SComplectEnabled.Checked)
{
if(external.hpCurrent < parseInt(external.SComplectChangeOn.Text))
{
if(!external.healWeared && external.SComplectHeal.Text.length > 0)
{
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skmp=" + external.SComplectHeal.Text;
return;
}
}
else if(!external.battleWeared && external.SComplectBattle.Text.length > 0)
{
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skmp=" + external.SComplectBattle.Text;
return;
}
}
}
else
{
external.SetTrayIcon(6);
if(external.SComplectEnabled.Checked)
{
if(!external.battleWeared && external.SComplectBattle.Text.length > 0 && (external.hpCurrent >= parseInt(external.SComplectChangeOn.Text) || external.hpCurrent >= external.hpMaximum))
{
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skmp=" + external.SComplectBattle.Text;
return;
}
}
if(!external.dungeonEnabled && BattleReady==true)
PutZayavka(external.SBattleType.SelectedIndex);
}
if(external.dungeonEnabled && !external.BrowserBusy)
DungeonMain();
}
}
else
{
external.SetTrayIcon(4);
external.SetStatusLabel("Идет бой!");
if(external.SCharType.SelectedIndex == 0)
DoWarriorBattle();
else
DoWizardBattle();
if (!cBattle)
{
cBattle = true;
external.healWeared = false;
external.battleWeared = false;
top.User.Framework.GetTab("battle").Select();
external.OnBattleStartEvent();
}
}
}
}
function CheckInfo()
{
if(xmlResponse.match(/травма/) != null)
external.injury = true;
DoAction = false;
for(i = 0; i < PluginsList.length; i++)
{
if(PluginsOnInfoLoad[PluginsList[i]] != undefined && PluginsOnInfoLoad[PluginsList[i]] != "")
eval(PluginsOnInfoLoad[PluginsList[i]] + "();");
}
if (!external.injury || (external.injury && external.SBattleWithInjury.Checked))
{
if (!external.inBattle)
UseElikSvitok();
else
setTimeout("UseElikSvitok();", 5000);
}
}
function UseElikSvitok()
{
if(!DoAction)
{
if (external.SEliksirEnabled.Checked)
EliksirMain(false);
if (external.SSvitokEnabled.Checked)
EliksirMain(true);
if (external.SAnimalEat.Checked)
AnimalMain();
}
else
setTimeout("UseElikSvitok();", 5000);
}
function CureInjuries()
{
for (i = 0; i < top.frames[3].document.links.length; i++)
{
if(top.frames[3].document.links[i].href.indexOf("Лечение") > 0)
{
external.injury = false;
top.frames[3].document.links[i].click();
setTimeout("top.frames[3].document.getElementById(\"slform\").submit()", 1000);
break;
}
}
}
function PutZayavka(type)
{
var step = GetZayavkaStep(type);
if(type == 0)
{
if(step == 0)
{
external.SetStatusLabel("Готов к бою");
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/zayavka.pl?level=fiz";
}
else if(step == 1)
{
external.SetStatusLabel("Подаю заявку");
top.frames[3].document.F1.open.click();
}
else if(step == 2)
{
external.SetStatusLabel("Жду игроков...");
}
}
else if(type == 1)
{
if(step == 0)
{
external.SetStatusLabel("Готов к бою");
ZayavkaOut = 0;
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/zayavka.pl?level=dgv";
}
else if(step == 1)
{
if(external.SBattleDogovorZayavkaType.SelectedIndex == 0)
{
external.SetStatusLabel("Подаю заявку");
PutFizZayavka();
}
else
{
external.SetStatusLabel("Принимаю заявки");
SelectFizZayavka();
}
}
else if(step == 2)
{
if( ! ZayavkaOut)
{
if(external.SBattleDogovorZayavkaType.SelectedIndex == 0)
external.SetStatusLabel("Жду игроков...");
else
external.SetStatusLabel("Жду ответа...");
RefreshFizZayavka();
}
else
{
external.SetStatusLabel("Отзываю заявку");
OutFizZayavka();
}
}
else if(step == 3)
{
if(TestFizZayavka())
{
AgreeFizZayavka();
}
else
{
external.SetStatusLabel("Бой отказан");
DisagreeFizZayavka();
}
}
}
else if(type == 2)
{
if(step == 0)
{
external.SetStatusLabel("Готов к бою");
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/zayavka.pl?level=group";
}
else if(step == 1)
{
external.SetStatusLabel("Подаю заявку");
PutGroupZayavka();
}
else if(step == 2)
{
external.SetStatusLabel("Подаю заявку");
PutGroupZayavka2();
}
else if(step == 3)
{
external.SetStatusLabel("Жду начала групового боя...");
RefreshGroupZayavka();
}
}
else if(type == 3)
{
if(step == 0)
{
external.SetStatusLabel("Готов к бою");
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/zayavka.pl?level=haos";
}
else if(step == 1)
{
if(external.SBattleHaotZayavkaType.SelectedIndex == 0)
{
external.SetStatusLabel("Подаю заявку");
PutHaotZayavka();
}
else
{
external.SetStatusLabel("Принимаю заявку");
SelectHaotZayavka();
}
}
else if(step == 2)
{
external.SetStatusLabel("Жду начала хаотичного боя...");
RefreshHaotZayavka();
}
}
}
function GetZayavkaStep(type)
{
var s = top.frames[3].document.all[0].innerHTML;
if(type == 0)
{
if(s.indexOf("После подачи заявки") > 0)
return 1;
else if(s.indexOf("Отозвать") > 0)
return 2;
else
return 0;
}
else if(type == 1)
{
if(s.indexOf("Подать заявку на бой") > 0)
return 1;
else if(s.indexOf("Отозвать") > 0)
return 2;
else if(s.indexOf("Ожидаем подтверждения вызова") > 0)
return 2;
else if(s.indexOf("Отказать") > 0)
return 3;
else
return 0;
}
else if(type == 2)
{
if(s.indexOf("Подать новую заявку") > 0)
return 1;
else if(s.indexOf("Подать заявку на групповой бой") > 0)
return 2;
else if(s.indexOf("Ожидаем начала группового боя") > 0)
return 3;
else
return 0;
}
else if(type == 3)
{
if(s.indexOf("Подать заявку на хаотичный бой") > 0)
return 1;
else if(s.indexOf("Ожидаем начала группового боя") > 0)
return 2;
else
return 0;
}
}
function PutFizZayavka()
{
top.frames[3].document.F1.timeout.selectedIndex = external.SBattleDogovorTimeout.SelectedIndex;
top.frames[3].document.F1.k.value = external.SBattleDogovorType.SelectedIndex;
top.frames[3].document.F1.open.click();
ZayavkaOut = 0;
}
function RefreshFizZayavka()
{
top.frames[3].document.F1.tmp.click();
}
function OutFizZayavka()
{
top.frames[3].document.F1.close.click();
ZayavkaOut = 0;
clearTimeout(ZayavkaTimer);
}
function TestFizZayavka()
{
var s = top.frames[3].document.all[0].innerHTML;
var _temp = s.substring(s.indexOf("Поединок с") + 34, s.indexOf("Поединок с") + 51);
var op_login = _temp.substring(0, _temp.indexOf(",") - 1);
external.RequestInfoFromServer(op_login, true);
var r = false;
if(external.level >= external.enemy_level)
r = true;
else
r = false;
if(r)
{
var atype = external.SBattleDogovorStatsAnalyze.SelectedIndex;
if(atype > 0)
{
switch(atype)
{
case 1 :
r = external.enemy_stats < external.my_stats;
break;
case 2 :
r = external.enemy_stats <= external.my_stats;
break;
case 3 :
r = external.enemy_stats == external.my_stats;
break;
case 4 :
r = external.enemy_stats >= external.my_stats;
break;
case 5 :
r = external.enemy_stats > external.my_stats;
break;
}
}
external.SetStatusLabel(op_login + " принял вызов. Сумма статов: " + external.enemy_stats);
}
return r;
}
function TestFizZayavka2(op_login)
{
external.RequestInfoFromServer(op_login, true);
var r = false;
if(external.level >= external.enemy_level)
r = true;
else
r = false;
if(r)
{
var atype = external.SBattleDogovorStatsAnalyze.SelectedIndex;
if(atype > 0)
{
switch(atype)
{
case 1 :
r = external.enemy_stats < external.my_stats;
break;
case 2 :
r = external.enemy_stats <= external.my_stats;
break;
case 3 :
r = external.enemy_stats == external.my_stats;
break;
case 4 :
r = external.enemy_stats >= external.my_stats;
break;
case 5 :
r = external.enemy_stats > external.my_stats;
break;
}
}
external.SetStatusLabel("Принимаю заявку " + op_login + ". Сумма статов: " + external.enemy_stats);
}
return r;
}
function AgreeFizZayavka()
{
top.frames[3].document.F1.confirm.click();
ZayavkaOut = 0;
clearTimeout(ZayavkaTimer);
}
function DisagreeFizZayavka()
{
top.frames[3].document.F1.close.click();
}
function SelectFizZayavka()
{
var elements = top.frames[3].document.F1.getElementsByTagName("input");
for(i = 0; i < elements.length; i++)
{
var element = elements[i];
if(element.type == "radio")
{
var _name = element.nextSibling.nextSibling.nextSibling.outerHTML.match(/drwfl\(\"(.+)\",[0-9]+,\"[0-9]\",.+\)/)[1];
var cLevel = element.nextSibling.nextSibling.nextSibling.outerHTML.match(/drwfl\(\"[^"]+\",[0-9]+,\"(.+)\",.+\)/)[1];
if(cLevel == external.level)
{
var battleType = (element.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.alt == "Кулачный бой") ? 1 : 0;
if(battleType == external.SBattleDogovorType.SelectedIndex)
{
if(TestFizZayavka2(_name))
{
element.checked = true;
top.frames[3].document.F1.confirm2[0].click();
return;
}
}
}
}
}
PutFizZayavka();
}
function PutGroupZayavka()
{
top.frames[3].document.F1.open.click();
}
function PutGroupZayavka2()
{
top.frames[3].document.F1.startime.selectedIndex = external.SBattleGroupTime.SelectedIndex;
top.frames[3].document.F1.timeout.selectedIndex = external.SBattleGroupTimeout.SelectedIndex;
top.frames[3].document.F1.nlogin1.value = external.SBattleGroupAllies.Text;
top.frames[3].document.F1.nlogin2.value = external.SBattleGroupEnemies.Text;
top.frames[3].document.F1.levellogin1.selectedIndex = 3;
top.frames[3].document.F1.levellogin2.selectedIndex = 3;
top.frames[3].document.F1.k.checked = external.SBattleGroupKulak.Checked;
top.frames[3].document.F1.travma.checked = external.SBattleGroupBlood.Checked;
top.frames[3].document.F1.mut_clever.checked = external.SBattleGroupDeath.Checked;
if(top.frames[3].document.F1.mut_snowman != undefined)
top.frames[3].document.F1.mut_snowman.checked = external.SBattleGroupOtmoroz.Checked;
top.frames[3].document.F1.open.click();
}
function RefreshGroupZayavka()
{
top.frames[3].document.F1.submit();
}
function PutHaotZayavka()
{
top.frames[3].document.F1.startime2.selectedIndex = external.SBattleHaotTime.SelectedIndex;
top.frames[3].document.F1.timeout.selectedIndex = external.SBattleHaotTimeout.SelectedIndex;
top.frames[3].document.F1.levellogin1.selectedIndex = 1;
top.frames[3].document.F1.k.selectedIndex = external.SBattleHaotType.SelectedIndex;
top.frames[3].document.F1.travma.checked = external.SBattleHaotBlood.Checked;
top.frames[3].document.F1.mut_clever.checked = external.SBattleHaotDeath.Checked;
top.frames[3].document.F1.mut_hidden.checked = external.SBattleHaotInvisible.Checked;
if(top.frames[3].document.F1.mut_snowman != undefined)
top.frames[3].document.F1.mut_snowman.checked = external.SBattleHaotOtmoroz.Checked;
top.frames[3].document.F1.open.click();
}
function RefreshHaotZayavka()
{
top.frames[3].document.F1.submit();
}
function SelectHaotZayavka()
{
var elements = top.frames[3].document.F1.getElementsByTagName("input");
for(i = elements.length - 1; i >= 0; i--)
{
var element = elements[i];
if(element.type == "radio" && element.name == "gocombat")
{
var battleInvisible = (element.nextSibling.nextSibling.nextSibling.nextSibling.innerHTML == "неизвестно") ? true : false;
if(battleInvisible)
{
var battleType = (element.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.alt.match(/кулачный/)) ? 1 : (element.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.alt.match(/без/)) ? 3 : 0;
if(battleType == external.SBattleHaotType.SelectedIndex)
{
var battleLevels = element.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nodeValue.match("\\((" + external.level + ")-(" + external.level + ")\\)");
if(battleLevels != null)
{
if(battleLevels[1] == external.level && battleLevels[2] == external.level);
{
var _element = element;
var _count = 0;
for (m = 0; m < 20; m++)
{
_element = _element.nextSibling;
_count = (_element.tagName == "FONT") ? ++_count : _count;
if (_count == 2)
{
var time = parseInt(_element.innerHTML.match(/<B>(.+)<\/B>/)[1]);
if(time < 10)
{
element.checked = true;
top.frames[3].document.F1.confirm1[0].click();
return;
}
break;
}
}
}
}
}
}
}
}
PutHaotZayavka();
}
function DoWarriorBattle()
{
var k = document.all[0].innerHTML;
var name = top.Battle.oBattle.sEnemyLogin;
if(name==top.Battle.oBattle.sMyLogin)name="1";
name = name.replace(/\(/g,"\\(");
name = name.replace(/\-/g,"\\-");
name = name.replace(/\)/g,"\\)");
stati = k.match(name+"\<\/B\>\<BR\>Сила\: ([\-]{0,1}[0-9]+)\<BR\>Ловкость\: ([\-]{0,1}[0-9]+)\<BR\>Интуиция: ([\-]{0,1}[0-9]+)\<BR\>Выносливость: ([\-]{0,1}[0-9]+)\<BR\>(?:.){0,11}([\-]{0,1}[0-9]{0,3})");
Sila = stati[1];
Lovka = stati[2];
Inta = stati[3];
Vinos = stati[4];
if(stati[5]!="")Intell = stati[5];
else Intell = 0;
var checked = 0;
for(x=0;x<top.Battle.oBattle.oGroupsLayer.innerHTML.split(", ").length;x++)
{
var currEnemyLayer = top.Battle.oBattle.oGroupsLayer.innerHTML.split(", ")[x];
if(currEnemyLayer.match("/underline\".{1,2} \?\>"+name+"\</")){
IsUnderlined = true;
checked = 1;
}
if(checked == 0)
IsUnderlined = false;
}
var team1 = top.Battle.oBattle.oGroupsLayer.getElementsByTagName('IMG')[0].sList;
var team2 = top.Battle.oBattle.oGroupsLayer.getElementsByTagName('IMG')[1].sList;
var count_team1=top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[0].sList.split(", ").length;
var count_team2=top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.split(", ").length;
if(team1.indexOf(top.Battle.oBattle.sMyLogin)>=0){
EnemiesCount=count_team2;
SoratnikiCount=count_team1;
}
if(team2.indexOf(top.Battle.oBattle.sMyLogin)>=0){
EnemiesCount=count_team1;
SoratnikiCount=count_team2;
}
DoWarriorPriem(1);
DoHit();
}
function DoWizardBattle()
{
var k = document.all[0].innerHTML;
var name = top.Battle.oBattle.sEnemyLogin;
if(name==top.Battle.oBattle.sMyLogin)name="1";
name = name.replace(/\(/g,"\\(");
name = name.replace(/\-/g,"\\-");
name = name.replace(/\)/g,"\\)");
stati = k.match(name+"\<\/B\>\<BR\>Сила\: ([\-]{0,1}[0-9]+)\<BR\>Ловкость\: ([\-]{0,1}[0-9]+)\<BR\>Интуиция: ([\-]{0,1}[0-9]+)\<BR\>Выносливость: ([\-]{0,1}[0-9]+)\<BR\>(?:.){0,11}([\-]{0,1}[0-9]{0,3})");
Sila = stati[1];
Lovka = stati[2];
Inta = stati[3];
Vinos = stati[4];
if(stati[5]!="")Intell = stati[5];
else Intell = 0;
var checked = 0;
for(x=0;x<top.Battle.oBattle.oGroupsLayer.innerHTML.split(", ").length;x++)
{
var currEnemyLayer = top.Battle.oBattle.oGroupsLayer.innerHTML.split(", ")[x];
if(currEnemyLayer.match("/underline\".{1,2} \?\>"+name+"\</")){
IsUnderlined = true;
checked = 1;
}
if(checked == 0)
IsUnderlined = false;
}
var team1 = top.Battle.oBattle.oGroupsLayer.getElementsByTagName('IMG')[0].sList;
var team2 = top.Battle.oBattle.oGroupsLayer.getElementsByTagName('IMG')[1].sList;
var count_team1=top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[0].sList.split(", ").length;
var count_team2=top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.split(", ").length;
if(team1.indexOf(top.Battle.oBattle.sMyLogin)>=0){
EnemiesCount=count_team2;
SoratnikiCount=count_team1;
}
if(team2.indexOf(top.Battle.oBattle.sMyLogin)>=0){
EnemiesCount=count_team1;
SoratnikiCount=count_team2;
}
DoWizardPriem(1);
}
function DoHit()
{
if (!top.Battle.oBattle.arrButtons.commit.disabled)
{
var arrParams = { enemy: top.Battle.oBattle.sEnemy, attack0: GetRandomPoint(0), attack1: GetRandomPoint(1), defend0: GetRandomPoint(2) };
top.Battle.oBattle.Send(arrParams);
}
else
setTimeout("DoHit()", 1000);
}
function GetRandomPoint(type)
{
for(i = 1; i <= 5; i++)
eval("target" + i + " = external.SBattlePercent" + (i + type * 5) + ".Value;");
var r = Math.ceil(Math.random() * 100);
if(r <= target1)
return 1;
else if(r <= target1 + target2)
return 2;
else if(r <= target1 + target2 + target3)
return 3;
else if(r <= target1 + target2 + target3 + target4)
return 4;
else
return 5;
}
Software is like sex: it's better when it's free! © LinusTorvalds