На, целиком скопипасти себе Dungeon.js с колкой сушки и разной атакой для мага и воина 
var s = "";
var dungName = "";
var dungeonCoords = "";
var dungeonDirection = 0;
var dungeonPosition = "";
var dungeonLastPosition = "";
var breakAction = false;
var _id = "";
var _object = null;
function DungeonMain()
{
s = top.frames[3].document.all[0].innerHTML;
if(IsMapVisible())
{
dungName = top.frames[3].location.href.match(/combats.com\/(.+?)\?/)[1];
var date = new Date();
var currentTime = parseInt(String(date.getTime()).substring(0,10));
if((external.SDungeonExitTime.Text != "0") && ((currentTime - dungeonStartTime)/60 >= parseInt(external.SDungeonExitTime.Text)))
{
top.frames[3].location = top.frames[3].document.links[0].href;
return;
}
external.SetStatusLabel("Поздемелье");
dungeonCoords = s.match(/arrMap = (\[\[.+?\]\])/)[1];
dungeonDirection = top.frames[3].nMyDirection;
dungeonPosition = external.MD5Hash(dungeonCoords + "," + dungeonDirection);
if(dungeonMovementCount[dungeonPosition] == undefined)
dungeonMovementCount[dungeonPosition] = 0;
if(dungeonPosition != dungeonLastPosition)
{
if(dungeonMovementCount[dungeonLastPosition] != undefined)
dungeonMovementCount[dungeonLastPosition]++;
else
dungeonMovementCount[dungeonLastPosition] = 1;
dungeonLastPosition = dungeonPosition;
}
if(external.SDungeonPickUpObjects.Checked)
{
var drop = s.match(/\?get=(\d+)/g);
if(drop != null)
{
if(s.indexOf("слишком много") > 0 || s.indexOf("У вас уже есть один такой предмет") > 0)
usedObjects[_id] = true;
for(i = 0; i < drop.length; i++)
{
_id = drop[i].match(/\d+/);
if(!usedObjects[_id])
{
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/" + dungName + drop[i];
return;
}
}
}
}
if(s.indexOf("'rollconfirm")>0)
{
var drop = s.match(/'rollconfirm\(.+?,.+?,\"\d+\"\)/g);
if(drop != null)
{
if(s.indexOf("слишком много") > 0 || s.indexOf("У вас уже есть один такой предмет") > 0 || (s.indexOf("Вы уже сделали свой бросок") > 0 && !external.SDungeonPickUpObjects.Checked))
usedObjects[_id] = true;
for(i = 0; i < drop.length; i++)
{
_id = drop[i].match(/\"(\d+)\"/)[1];
if(!usedObjects[_id])
{
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/" + dungName + "?get=" + _id + (external.SDungeonPickUpObjects.Checked ? "&tmpname423=Да": "&pass=Нет");
return;
}
}
}
}
breakAction = false;
eval(external.DungeonGetCodeForLocation(dungeonPosition));
}
else
{
if(s.indexOf("Создать группу") > 0)
{
external.SetStatusLabel("Создаю заявку");
PutKanalZayavka();
}
else if(s.indexOf("Начать") > 0)
{
external.SetStatusLabel("Начинаю поход");
StartKanalZayavka();
}
else if(s.indexOf("Наковальня")>0)
{
top.frames[3].navigate("http://"+external.SCity.Text+".combats.com/main.pl?move_dialog=0"+"&"+Math.random());
}
else
{
external.SetStatusLabel("Не видно карты, не в подземелье, или еще не истекла задержка");
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl";
}
}
}
function randomString()
{
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 8;
var randomstring = '';
for (var i=0; i<string_length; i++)
{
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
return randomstring;
}
function PutKanalZayavka()
{
top.frames[3].document.all.mut_noblock.checked = true;
top.frames[3].document.forms[top.frames[3].document.forms.length-1].pass.value = randomString();
top.frames[3].document.all.open.click();
}
function StartKanalZayavka()
{
usedObjects = [];
dungeonMovementCount = [];
dungeonCoords = "";
dungeonDirection = 0;
var date = new Date();
dungeonStartTime = parseInt(String(date.getTime()).substring(0,10));
top.frames[3].document.all.start.click();
}
function IsMapVisible()
{
if(s.match(/arrMap =/) != null)
return true;
else
return false;
}
function IsWallPresent()
{
var elements = top.frames[3].document.getElementsByTagName("*");
for(var i = 0;i < elements.length;i++)
if(elements[i].className == "LeftFront0_0")
return true;
return false;
}
function UseObjects()
{
if(!IsWallPresent())
{
try
{
if(top.frames[3].arrLayers[1][0]["l"].arrObjects[0])
{
if(s.indexOf("получили")>0 || s.indexOf("У вас уже есть один такой предмет")>0 || s.indexOf("Попахивает")>0 || s.indexOf("Ничего не произошло")>0 || s.indexOf("нет необходимых ингредиентов")>0)
usedObjects["\"" + _object.id + "\""] = true;
for(var i=0; i<top.frames[3].arrLayers[1][0]["l"].arrObjects.length; i++)
{
_object = top.frames[3].arrLayers[1][0]["l"].arrObjects[i];
if(!usedObjects["\"" + _object.id + "\""])
{
external.SetStatusLabel("Копаюсь в хламе...");
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/" + dungName + "?useobj=" + _object.id;
breakAction = true;
return;
}
}
}
}
catch(err)
{
}
}
}
function AttackMobs()
{
if(!IsWallPresent())
{
try
{
if(top.frames[3].arrLayers[1][0]["l"].arrUnits[0])
{
if(top.frames[3].arrLayers[1][0]["l"].arrUnits[0].action != "")
{
if(tkMana)
{
if(tkHP >= maxHP*0.95 && tkMana >= maxMana*0.8)
{
external.SetStatusLabel("Нападаю на мобов");
if(external.SDungeonAttackMobs.Checked)
top.frames[3].location = "http://" + external.SCity.Text +".combats.com/" + dungName + "?attack=1&use=" + top.frames[3].arrLayers[1][0]["l"].arrUnits[0].id;
}
}
else
{
if(tkHP >= maxHP)
{
external.SetStatusLabel("Нападаю на мобов");
if(external.SDungeonAttackMobs.Checked)
top.frames[3].location = "http://" + external.SCity.Text +".combats.com/" + dungName + "?attack=1&use=" + top.frames[3].arrLayers[1][0]["l"].arrUnits[0].id;
}
}
breakAction = true;
return;
}
}
}
catch(err)
{
}
}
}
function Exit()
{
if(breakAction)
return;
top.frames[3].location = top.frames[3].document.links[0].href;
}
function Walk(step)
{
if(breakAction)
return;
if(step == "rl" || step == "rr")
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/" + dungName + "?rnd=" + Math.random() + "&path=" + step;
else
{
if(top.frames[3].is_accessible)
top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/" + dungName + "?rnd=" + Math.random() + "&path=" + step;
}
}
Если уж целиком скопировать не сможешь... я буду смеяться, обещаю 
(Please
log in or
register to see this URL)