2/11/2008

duels.com duelsBot FREE skirmisher released!

duelsBot team have just released their FREE version of the duels.com BOT. It does everything that they are claiming except for any options in relation to the challenge. Thus, FREE version does skirmish only. Neither of accept challenges nor place challenges related codes are removed. You can check it out on their site on FREE skirmisher.

If you have any questions, please contact duelsBot team not me!


// ==UserScript==
// @name duelsBot
// @when Pages Match
// @description Automate the duel and skirmish from duels.com
// @include *duels.com*
// ==/UserScript==
/**************************************************************************
* auto_duel script for duels.com 2.0
**************************************************************************
* This is FREE version which stripped off all the challenge related
* options. This only include skimish option. If you want the full version
* which does challenge plus accept chllenges with action, please donate
* at http://duelsbot.selfip.com.
**************************************************************************
* FEATURES
* - Auto Skirmish until Captcha is invoked
* --> Grab all the player list is specified level range
* --> Can auto set the range based on your character level
* - Auto place challanges to all the players in level range
* --> Have option to customize the taunt message as well as choose the action
* - Auto accept challenges when message arrives
* --> Auto detect Action Set Challenges and choose the action you specified
* - Auto detect character which you challenged 3 times or with no rewards
* - Auto detect character which you skirmished 3 times or with no rewards
* - Auto detect character without weapon or none skirmishable
* - Page optmization implemented (remove flash/images for faster page load)
* - Summary of results of reward earning from the session
**************************************************************************
* BUG
* - N/A
**************************************************************************
* Future enhancements
* - bypass captcha...???
* - multi-session separation through tab? Need cookie/cache separation.
**************************************************************************/

/* Modifiable Variables */
var online = 1; // set to '0' to include offline players
var lvldiff = 4; // set this to greater then 0 to use feature
var lvlMin = 25; // set lvldiff=0 and set lvlMin/Max value in-
var lvlMax = 30; // order to use absolute Min/Max level range
var actionsetname = 'haste'; // Your predefined action name for accepting challenges
var acceptchallenge = 1; // Auto accept all challenges
var challengePly = 1; // Auto place challanges to other player
var challengeaction = 'haste'; // Action you would like to apply when placing a challenge
// Any taunting message that you would like to put in the challenge placement
//var challengemsg = '';
var challengemsg = 'This is 1 gold action duel challenge! I don\'t care if you want to use more than 1 action. Feel free.';

/* Do not touch section below */
var debug = 0;
var numofskirmish = 0;
var gold = 0;
var token = 0;
var xp = 0;
var numchallenge = 0;
var numaction = 0;
var chalgiven = 0;
var starttim = new Date();

function auto_duel () {
var counter = 1;
var numchar = 1;

gold = parseInt(find(/Gold: (\d+)/).groups[1]);
token = parseInt(find(/Tokens: (\d+)/).groups[1]);
xp = parseInt(find(/XP: (\d+)/).groups[1]);
output("Starting with "+gold+" gold "+token+" tokens "+xp+" experiences");

var tblp = getPlayerTable();
if (debug) { output("DBG(auto_duel): "+tblp.join(" ")); };

//player list element start from index 4
for (var j=0;j<3;j++){
for (var i=4;i < tblp.length;i++){
if (debug) { output("DBG(auto_duel): "+tblp[i]); };
if (tblp[i].match(/.*arena.*/)) {}
else {
if (find(/You have no messages/).element) { if (debug) {output("No new challenge found");}; }
else if (find(/View duel with (.*)/).html){
output(" ->Duel accepted message received");
click((find(/View duel with (.*)/).html));
wait();
sleep(2);
}
else if (find(/You have leveled up/).html){
output(" ->Level up message received");
click((find(/You have leveled up/).html));
wait();
sleep(2);
}
else if (find(/Message from (.*)/).html){
output(" ->Message received");
click((find(/Message from (.*)/).html));
wait();
sleep(2);
}
else if (find(/Someone bought your (.*)/).html){
output(" ->Someone bought your item");
click((find(/Someone bought your (.*)/).html));
wait();
sleep(2);
};

var cnt = numofskirmish + chalgiven + numchallenge;
output(numchar+" "+cnt+" "+tblp[i]+": checking...");
go("http://www.duels.com"+tblp[i]);
document.getElementById('leftContent').innerHTML = "<p>image removed</p>";
document.getElementById('rightContent').innerHTML = "<p>right content removed</p>";
document.getElementById('commentsContent').innerHTML = "<p>comments content removed</p>";
wait();
sleep(2);

if (find("outstanding").html || find("cannot").html) {
if (!find("skirmish").element) { output(" -Not skirmishable"); }
else if (find("No Rewards")) {
if (find("No Rewards").html) {
if (eval('find("No Rewards").html.match(/.*Skirmish.*/)')) {
output(" -Skirmish No Rewards");
}
else { output(" -Not Skirmishable"); }
}
else {
if (!startSkirmish(tblp[i],counter)) { return 0; };
counter++;
}
}
else {
if (!startSkirmish(tblp[i],counter)) { return 0; };
counter++;
};
}
else if (find("No Rewards")) {
if (eval('find("No Rewards").html')){
if (!find("skirmish").element) { output(" -Not skirmishable"); }
else if (eval('find("No Rewards").html.match(/.*Skirmish.*/)')) {
output(" -Skirmish No Rewards");
}
else {
if (debug) { output("DBG: 6 rewards"); };
if (!startSkirmish(tblp[i],counter)) { return 0; };
counter++;
go("http://www.duels.com"+tblp[i]);
document.getElementById('leftContent').innerHTML = "<p>image removed</p>";
document.getElementById('rightContent').innerHTML = "<p>right content removed</p>";
document.getElementById('commentsContent').innerHTML = "<p>comments content removed</p>";
wait();
sleep(2);
}
};
}
else {
if (!startSkirmish(tblp[i],counter)) { return 0; };
counter++;
go("http://www.duels.com"+tblp[i]);
document.getElementById('leftContent').innerHTML = "<p>image removed</p>";
document.getElementById('rightContent').innerHTML = "<p>right content removed</p>";
document.getElementById('commentsContent').innerHTML = "<p>comments content removed</p>";
wait();
if (find("cancel").html || find("accept").html) {
output(" -Challenge already placed");
}
};
numchar++;
}
}
};
return 1;
}

function numOfPages () {
var pgr = document.getElementById('search_results');
var pg = pgr.getElementsByTagName('a');
var ref = new Array();
var vMax = 0;

for (var i=0;i < pg.length;i++) {
ref.push(pg[i].getAttribute("href"));
}

for (var i=0;i < ref.length;i++){
var v;

if (ref[i].match(/.*arena\/index\/(\d+)\/.*/)){
if (debug) { output("Cur line: "+v); };
v = ref[i].match(/.*arena\/index\/(\d+)\/.*/)[0];
var test = v.search(/\/(\d+)\/0\/level/);
var t = v.substr(test+1,3).replace(/\/0/,'');
t.replace(/\//,'');
if (vMax < parseInt(t)) { vMax = parseInt(t); };
if (debug) { output("Cur pg: "+t+" Max pg: "+vMax); };
};
};
return vMax;
}

function captchaCheck() {
if (document.getElementById('captchaHolder')) {
output("XXX Captcha found... stopping the script...");
return 1;
};
}

function startSkirmish () {
numofskirmish++;
click(find("skirmish").element);
sleep(2);
wait();
if (captchaCheck()) { return 0; };

if (document.getElementById('challenger')) {
document.getElementById('challenger').innerHTML = "<p>challenger removed</p>";
document.getElementById('challengee').innerHTML = "<p>challengee removed</p>";
var k = 1;
while(document.getElementById("detail"+k)) {
document.getElementById("detail"+k).innerHTML = "<p>detail"+k+" removed</p>";
k++;
};
wait();
sleep(2);
if (captchaCheck()) { return 0; };
output(" -Skirmishing");
}
else { output(" -This player is not skirmishable"); };
return 1;
}

function getPlayerTable () {
var fplayerlist = new Array();
var lev = parseInt(getPlayerLevel());
var pagelen = 0;
if (lvldiff > 0) {
lvlMin = lev - lvldiff;
lvlMax = lev + lvldiff;
};
if (lvlMax > 40) { lvlMax = 40; };
output("--- Searching in range from "+lvlMin+" to "+lvlMax);

if (online) {
go("http://www.duels.com/arena/index/1/0/level/asc/1/"+lvlMin+"/"+lvlMax+"/-1/");
}
else {
go("http://www.duels.com/arena/index/1/1/level/asc/1/"+lvlMin+"/"+lvlMax+"/-1/");
};
wait();
sleep(2);

pagelen = numOfPages();
output("=== Character Level: "+lev+" | page_len("+pagelen+")");
for(var page=0;page < pagelen;page++) {
if (online) {
go("http://www.duels.com/arena/index/"+page+"/0/level/asc/1/"+lvlMin+"/"+lvlMax+"/-1/");
}
else {
go("http://www.duels.com/arena/index/"+page+"/1/level/asc/1/"+lvlMin+"/"+lvlMax+"/-1/");
};
wait();
sleep(2);
var table = document.getElementById('playerlist');
if (table != null) {
var player = table.getElementsByTagName('a');
for (var i=0;player != null && i < player.length;i++) {
if (!player[i].getAttribute("href").match(/.*\/arena\/index.*/))
if (debug) { output("Player list: "+player[i].getAttribute("href")); };
fplayerlist.push(player[i].getAttribute("href"));
}
}
}
output("--- "+fplayerlist.length+" number of players found");
return fplayerlist;
}

function getPlayerLevel () {
return find(/^Level (\d+)/).groups[1];
}

function actionSetChk() {
if (!actionsetname) { actionsetname = "randomsettestname"; };
if (!challengeaction) { challengeaction = "randomsettestname"; };
}

function summary() {
output("=================================");
output("==== Summary of this session ====");
output("Total Skirmish done : "+numofskirmish);
output("Total Challenges placed : "+chalgiven);
output("Total Accepted Challenges: "+numchallenge);
output("Total Action Challenges : "+numaction);
var total = numofskirmish + chalgiven + numchallenge;
output("Total Skir/Chal done : "+total);

var curgold = parseInt(find(/Gold: (\d+)/).groups[1]);
var curtoken = parseInt(find(/Tokens: (\d+)/).groups[1]);
var curxp = parseInt(find(/XP: (\d+)/).groups[1]);
var diffgold = curgold - gold;
var difftoken = curtoken - token;
var diffxp = curxp - xp;

output("---------------------------------");
output("Total Gold Earned : "+diffgold);
output("Total Token Earned : "+difftoken);
output("Total Experience Earned : "+diffxp);

var endtim = new Date();
var difftim = endtim - starttim;
diffhour = Math.floor(difftim/(60*60*1000));
diffmin = Math.floor(difftim/(60*1000)-diffhour*60);
diffsec = Math.floor(difftim/1000-diffmin*60-diffhour*60*60);
output("duelsBOT took "+diffhour+"hr "+diffmin+"min "+diffsec+"s to run");

output("=================================");
}

location.href= 'javascript:finishAll();void(0)';
output("=== auto_duel is starting...");
actionSetChk();
go('http://www.duels.com/arena');
auto_duel();
output("=== auto_duel script completed");
summary();

4 comments:

Unknown said...

Hi,
i know you tell to contact duelsBot team for any questions, but their web-site is down, and i can't find anything on google about them, so i'm asking you. First, maybe you know if there was a newer version of this code? Because now it can't find _any_ skirmishable target for me.
Second, do you have full code? I mean with challenges?
Please answer to guilty0ne[at]gmail[dot]com.

Unknown said...

http://duelscheat.servegame.com/


the new reference for duels automate/bot.

anjoy.

Anonymous said...

You have really great taste on catch article titles, even when you are not interested in this topic you push to read it

deaf dumb and blind bondage stories said...

``Whats going on. Alice watched with great interest, awed by what she was seeing and feeling.
real sex stories post
online beastiality stories
free erotic cartoon comic sex stories
young sister incest stories
teen sex stories
``Whats going on. Alice watched with great interest, awed by what she was seeing and feeling.