// ==UserScript==
// @name pillage Zebusoif
// @namespace zebusoif
// @version 2.0.2
// @description Travian Auto pillage Manager
// @include *://*.travian.*/build.php?*tt=99*
// @include *://*.travian.*/login.php
// @include *://*.travian.*/dorf3.php*
//
// @grant GM_addStyle
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_deleteValue
// ==/UserScript==
var Troops = {
};
Troops.Name = [
['Legionnaire',
'Praetorian',
'Imperian',
'Equites Legati',
'Equites Imperatoris',
'Equites Caesaris',
'Battering Ram',
'Fire Catapult',
'Senator',
'Settler',
'Hero'],
[
'Clubswinger',
'Spearman',
'Axeman',
'Scout',
'Paladin',
'Teutonic Knight',
'Ram',
'Catapult',
'Chief',
'Settler',
'Hero'
],
[
'Phalanx',
'Swordsman',
'Pathfinder',
'Theutates Thunder',
'Druidrider'
],
];
Troops.Speed = [
[6,
5,
6,
16,
14,
10,
4,
3,
5,
4,
16],
[
7,
7,
6,
9,
10,
9,
4,
3,
4,
5,
10
],
[
7,
6,
17,
19,
16,
13,
4,
3,
5,
5,
10
],
];
var Config = {
};
Config.DMin = 10;
Config.DMax = 15;
Config.Save = function (ListID) {
GM_setValue(dataIndex + '_Interval_' + ListID, Doc.Element('int_' + ListID).value);
GM_setValue(dataIndex + '_Pause_' + ListID, Doc.Element('p_' + ListID).value);
Log.Info('Config Changed : ' + ListID);
window.location.href = crtPage;
};
Config.Board = function () {
ctnt = Doc.Element('content');
BTable = Doc.New('table', [
['cellpadding',
5],
[
'cellspacing',
1
],
[
'style',
'margin-top: 10px;'
],
[
'class',
''
]
]);
BTable.innerHTML = '<thead><tr><th>Name</th><th>LastSent</th><th>NextSent</th><th>InterVal</th><th>State</th><th></th></tr></thead>';
aLists = GM_getValue(dataIndex + '_all', '');
if (aLists.length > 0) {
BTableBody = Doc.New('tbody');
BTable.appendChild(BTableBody);
for (var i = 0; i < aLists.split('$').length; i++) {
ListID = aLists.split('$') [i];
tr = Doc.New('tr', [
['class',
'hover']
]);
tdName = Doc.New('td', [
['class',
'vil fc'],
[
'style',
'font-size:9px;'
]
]);
tdName.innerHTML = GM_getValue(dataIndex + '_Name_' + ListID, '');
tdLast = Doc.New('td', [
['style',
'font-size:9px;']
]);
tdLast.innerHTML = GM_getValue(dataIndex + '_LastSent_' + ListID, '');
tdNext = Doc.New('td', [
['style',
'font-size:9px;']
]);
tdNext.innerHTML = GM_getValue(dataIndex + '_NextSent_' + ListID, '');
iInterval = GM_getValue(dataIndex + '_Interval_' + ListID, '10-20');
tdInterval = Doc.New('td');
tdInp = Doc.New('input', [
['type',
'text'],
[
'class',
'text'
],
[
'size',
6
],
[
'id',
'int_' + ListID
],
[
'value',
iInterval
]
]);
tdInterval.appendChild(tdInp);
is_paused = GM_getValue(dataIndex + '_Pause_' + ListID, '0');
tdPause = Doc.New('td');
tdSel = Doc.New('select', [
['id',
'p_' + ListID]
]);
tdPause.appendChild(tdSel);
tdOp0 = Doc.New('option', [
['value',
0]
]);
tdOp0.innerHTML = 0;
tdOp1 = Doc.New('option', [
['value',
1]
]);
tdOp1.innerHTML = 1;
if (is_paused == '0') {
tdOp0.selected = true;
} else {
tdOp1.selected = true;
}
tdSel.appendChild(tdOp0);
tdSel.appendChild(tdOp1);
tdBut = Doc.New('td');
saveImg = Doc.New('img', [
['src',
Images.Save],
[
'width',
'16px'
],
[
'height',
'16px'
],
[
'id',
ListID
]
]);
saveImg.addEventListener('click', function () {
Config.Save(this.id)
}, false);
tdBut.appendChild(saveImg);
tr.appendChild(tdName);
tr.appendChild(tdLast);
tr.appendChild(tdNext);
tr.appendChild(tdInterval);
tr.appendChild(tdPause);
tr.appendChild(tdBut);
BTableBody.appendChild(tr);
}
}
ctnt.appendChild(BTable);
};
var Images = {
Pause: 'data:image/gif;base64,R0lGODlhFwAXAMZQAFVXU1ZYVFdZVVdZVlhaVllbV1lbWFtdWV9gXmJlYGNlY2VmYmVmY2VnZGdpZm1va8vLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2djb1Nra2tvb29zc3N3d3dve2d7e3t7g29/h3OHh4eHj3+Lk3+Lk4OTk5OPl4OPl4eTl4uXl5eTm4uXm4uXm4+Xn4+bn4+fn5+jo6Ofp5ujp5ujq5+rq6urr6Ovs6ezs7O7u7e7u7u/w7vj5+Pn5+Pr6+fr7+vv7+/v8+/z8+/z8/Pz9/P39/P39/f3+/f7+/v///v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ywAAAAAFwAXAAAH/oBQgoOEhYaHiImKi4yNUECQHhCTlB5AGpSUIIOQQBIIAKEABhBAEAOiAAkUnJATAkmDD6URBIQLFa1AFbApKkKzQBMETioqRgsWuha9vw8RQBTExkYMGLoYsCsrwBJAFsTb1Rm6GQRLNDNDDxVAF8Q0MUcMGroaBEw6OEQPFkDmTkh8SMKAgy4O+F6cKPLgApANxE6YINhBlwd8NVwYeZABSAcCT2S0UMLAgy4QBJr0yIHkgQYgF6HwwMGEwSZBQHwACVHASZAeSR5sAIISyo8eTBqE4AQDiIiesjrstDWowQhOIoCUUBCga4ADIZwW8BrAQQlOlliMEMFWxAgWKUDUtnULgxOKTnjz6uW0A1KIECX66s3byseOG4htKF5sA/GNHTodMQoEADs=',
Resume: 'data:image/gif;base64,R0lGODlhFwAXAOeHAFlbVllbV1lcV1pcV1pcWFpdWFtdWFtdWlteW15gXV9gXmBgXmBhX2JjX2JlYWRlY2VnZGdpZWlpZ21ubG9wbnJzcXJ0cnN0cXN1cnR2cnZ2dXt8en+AfoSEg4SFhIqKiY2OjZCQjo6RjZCRj5SUk5mZmZubmpydm6SkpKurq6ysrK2trbCwr7CwsLCyrrCzsLe4t7y8vL2+u7+/v77AvsHBwcrKysvLy83Nzc7Ozs/Pz87QztDQ0NHR0dLS0tTU1NbW1tbX1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3uDg4OHh4eLi4uPj4+Pk4+Tl4+Xl5eXm4+bm5ufn5+jo6Ofp5Ofp5enp6ejq5unq5+rq6unr5+vr6+ns5+rs6Ovs6ezs7Ovt6uzt6uzt7O3t7ezu6uzu6+7u7u7v7O7w7e/w7e/w7u/x7vDx7vDx7/Hy7/Hy8PLz8vP08fP08vT08/T18/X19fX29PX29fb39ff39/f49vf49/j5+Pr6+vr7+vv8+/z8+/z8/Pz9/P39/P39/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ywAAAAAFwAXAAAI/gDPHBpIsKDBg4fOKDwDpEeThRAjChwI8QaIFD+mSIxIsGKABBZiDNGyUWHHhTcE8HFxwIONI2Q2nlSY8tCfOCIWmMixROLMMzWxwBEUBYOEFj2gQPwZFMuWOoJ2NNAwAwiVkkAFHMKCJcuWMHv8vEDw4UYRLhtxEDgURkyZt2Xc/KEzwgEKHUok8libZg2bv2nKbFkD6EkGCjUk+ihwqIuXx1yxWKlShxANACwk/jBw6IsZNGr+qqlTyAmFCzWYSBTC982cO3n4DLITIsIKJGglElnbRg6ePoUKwVBQwsjViGAUFlmL5k0fQ0EedPChdGN1I7wDjdlQocaS5CWPQCjEfkjPCQgqklzBGpPI+AEyGJAoIgUrxJ5njEzgoOO7fYgk5WdEEgH+BxEYWlCh4BQMNjiFglRoAZ5JCFWIUEAAOw==',
Map: 'data:image/gif;base64,R0lGODlhFwAXAOf/AM0AAGg5RjdHYjhIYzNJeqQ3PkVQZ684OZVBUVRVU1VWVFNXWlZXVXhOaVlbWHpUaH1Tbl5gXXpWb5hQWk9jhVpigKtRUU5njk9oj2VmZFlohVVpi1Nskz1yrlptkE9xl1FwnUd0q0F2sllymWlwhG9xbotodVpzmoxpdkV5tXN1cld5n6VobFl6oFp7olx6p1t8o0qAtmh7klx9pF58qXJ5jV1+pXZ7fmZ9mkyCuHp8eWt+lU+Eu1KGvX+Bfqh3d1qIuYKEgXeGmGiJsF+MvoWHhIOHloKJkW2NqH+LmG2OtmWSxIOPnKaKiWmWyXiUtqeLipCSj4yUm36Ws3uXuoqVonKZxoeWqZSWk32Zu36avX+bvnedyoCcv4GdwIadunmfzZGcqZidn5udmYmgvn2j0Yqhv4uiwJ6gnaKfo32mzYyjwZ+hno2kwo6lw6KkoZCnxbSho5mou4qr1KOoq6aopamnq4Wv1qKrs5Wty7mmqKmrqJqtxoiy2pevzZ+uwautqqiusKautqSwvqKxxZuy0K6wrZG22Ku0vLK0sZy4z5W526C31qu2xLG2uK63v6W40ba4tae607e5tqi71Ky7zqm81Z+/3LC8ypvA4rq8ua++0qy/2Li+wJ7D5bTAza3B2rHB1LnByb7BvabG47DE3cHDv7zEzLbG2cDFyKnJ5rTH4L7Gz7fH2rjI3MXHw6/L48bIxcDJ0cfJxq3N68jKx73M4MnLyMPM1MbMzsrMycHN28TN1bHR78bO1r/P4snO0MzOy7bS6cfP18rP0cTQ3svQ0rTU8c/RzsbS4MrS28jU4tDV183W3tXX1MzY5sDb88rZ7dLa4tXa3Nja1s/b6sLe9tLe7Nne4dDg9Mvj9d7g3c7i+9/h3tTj+ODi39fj8dvk7NXl+eHk4ODl6OXn5Nnp/ePo693p9+Tp7Ofp5tvr/+jq59/r+enr6Obs7t7u/+Lu/ePv/urv8u3v6+Tx//Dy7+7z9vHz8PP18vb49Pj69/r8+ff9//z/+/7//CwAAAAAFwAXAAAI/gDpCRxIsKBBgoEIKFxIYEeLhzuqEDsoMKFCCjbgtHp2bVmoNTaYUKSXcMOZas+Y8XMkjNSqX11wTDOY0AMfabtO4cIU7ZctbMaStcGhB6FCM+GU/Rsmr523Yqdk3bO3LIuJogKNEHjxrN+/TuDq1UOX7Zy+f/vIoZrBYmAFAm7u/XsUT57ddb4QVXr0Tl0zLxOwErgQKh0ib/ESxzOnNJ2sT+yYFUJgQSABDskuwbJmbl28ddX+if5HLhUeThIq0yMA4hkmVcegcfOmzdfof/kEdSrVAoBlF78IffK1qVcvWpy8iqaXS4glCL7pkcBA6Q62f/MUecq06MwXXPjG8xH74AdBdBIUyBwa3a9RnzlquMgp50yKkiwFogeqMaOVKH6iDVIGGFYsMYUztSQhCQwAHDCQETJkwQgw9NhzhRNLENEDErFM4sYTJgDww0CB2HHCGZtMEwYQPfAQQwohOPJHFg8AAABWAqVBxwhUcPJEDimI0EEIQ0DyRAM2xlEQNaPUoQENWfhxxClJ5JEFgzY24U5B7iCjyRs3GCDAAmIsMEAANqaJVTCJYBFECREwkMCc3XTzSgJp5gkFPdsEE8kedQCiySts+DDOLGxk4AMapiRShyGvOMPnLXtEoUMGDigw5yhjFDFnAgpEoAIWkegSEAA7',
Save: 'data:image/png;base64,R0lGODlhFwAXAMZbAAAAAExCJlRUVGtXNnBbOY9ZAm1tbW5ubnR0dHV1dXd3d3l5eXt7e35+fpt+UYOEgp+BVJ+CVKCCVqKFVaKFVqOFVYiKhaSHV42OjJKSkpSUlJycnMSgAJ+fn6CgoKOjo8ifZMuhZaenp6mpqaqqqs6maKysrK2trc+qacKris2rb9Ksas+tcbGxsbKysre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMPDw8TExMXFxcnJycrKysvLy8zMzNHR0dPT09TU1PTVl9nZ2dvb29zc3N/f3+Hh4fTivO3lxOXl5e3mxebm5u7oxufn5+jo6O7qxunp6e/rx+rq6uvr6+zs7O3t7e7u7vPz8/39/f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBHSU1QACwAAAAAFwAXAAAH/oBYglgchIaFiIaDi4RbHI6Qj5KOjIMcSRxDmZuanYVYV4sYCxwMpacHHKkGHAgWBQWLFkUjMyMyHjIjOLkfNSIKBVEssYIWWVJST1RSzMrKTzQFUysSxVgWWlbb3N1WQtMrF9fYW9s/6OnoL8IoDuTl3t1BwiUR8PFW6usFTiXjFipZMCePnhMVFAp4CMho4Ll07JiEmFBAiAuGsghyq1JACQgIFYV0wDjIob4fPhIQSFGhAAwbNTaQNKbRipQCAQYUOHHCRAwNM62YRKkDQAEBDW7cANIjgwUri5aYtFKFirMmyag0IWFhSShBRqbK29jCgpEqoLAQCeiirdu3PG8tEEErCMkDC3jz6t37AAlUQVSOBOGxY0eOw4hzFOYR5AgVRlaoQJn8pLLlJ5OhUPkraIvnz6BDi/YcCAA7',
VillageFrom: 'data:image/gif;base64,R0lGODlhFwAXAOeCAKQAAJwICIQiIdwlJdwmJt4mJuAmJuInJ3tMSlVXU+U5OTRlpIhaWGVnY+xGRpldW/FMTEp2rvBRUXJ1enV1dW52gXV2dvJVVXF4gXV4e3V4fHd4enZ5fHZ5ffNbW511c/JeXn6Ae3+BfICCfV+Gt/NjY/NkZPRmZoSFgoSGgYqIZYWHgomIcIaIg4iJfoeJhPRsbIiKhY+QjfR1daONi3eYwnmZw8CKiqqRkZeZlJiZlpmalpmal5ubmq2YmJ6enq6bm5+gnqGgnqefnaGhoaKioqKjoaOjoqOjo6SkpMShoaqqqqysrK+vr7GztrOzs7i5uMm1tbq6ubq7vLi8wbm9wb29vb+/vsS+vsLCwcLCwsbBwc3Nzc7OztLS0tzQ0NPT09TU1NbW1tfX19jX19jY2Nra2tvb29vc29zc3N3d3d7e3d7e3uLe3uDg4OLi4uPj4+Tk5OXl5ebm5ufn5+np6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/j4+Pn5+f///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ywAAAAAFwAXAAAI/gD1CBxIsKBBQYIMEiQDAMAWhQgVCsQCYMYMAGQOJlRI0aJFjAUjGuyowOKBixkHiiTY0QEEkydBClw5saKECxcrGoiZkmZHDyAuImBQsQBPPSt9VDRh4uIDFD1uVCTAc2VFGCcufpABJYsUJRUHxBRJp2KJizSCXFmzRs2YKAFmDLgoUk3Fi0OOmLHDt04dOl/i0t1od4YAIUbKzKHDeE6cOHDaxAWwEggANAkyZ/67oQOFDhb+AMBBM4GeBCFEjBgxRw4HGxRqaPCT4E7pPAlS6F4R500GEhQiTOiTAM9KO8UTtGihgsUbNxgWUFhQgU8COSLvuKmd4MULFyLcawRyQmVKlSR7EoAhKyYB8hjwY7AJVASJfSRqEnghGyYBnwY56LADD38YBEgCaUTEhR1saObggw7aEZEbedQBxxldWLEEET8QQQQTTTyhRRdv3IFUQm7okUceeNhRhxyQwTHHYnTYkYdKggQEADs=',
AttackMode: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjM2qefiJQAAAhpJREFUKFM1kd1Lk3EUxx/pQijqD/C+29qFBt7kosILQzFKijBKqSwpp6IVlClWhgjzLV2aMTOn5dRe1AUuc2K+ZeJcMVm2R1eTfC2VMt3z+31amh84FwfO93w55xui/Oezb1E39mVJv3NHqHFuOaBIQpRd27cpSyvr6bvDQrsj94SNbs0qvSPf9K0On1ppm8HUtcobt8ZLp0bR6zXyrXPU2HxqvW1cvyGY+PpD12CfVAtfzJHTJrnVruGZFTj9gqxWQUYzXKlborhFVe2DkzqltMltuFw9RZpVcvGZ5FKTpMQRoLBL43ywT26EpHpJQsk02Q9cBqWmw0tM8QIJZsHZRklKs6DHq2EbF5x5KklskJx8Iomv+kOO2Y2Sfn+UqNI1IsokR2ol51oCeOYFrhnJaavgeAPE10HsI8mx2yMoqSUfCDeusrcc9lXDqX+CBYFnUZDZKTgRvCH6seTgQ0Fc3hBKabObiHvfCa+SHAhaZ9g1Jn9KppYlhYOC5A7Yb5ZEli2TWRl0uGnqNxzOd6I3B4ixQn6/wL8imf0NtW5J2ls4ZBFE3XGTdNdhUN67/LobpkE1tnicxPZ1cgcEw9Man+Y1LB7Jtd4AR01eUo19amPHR91GFpZXY/rs8j41umA4+Bk/OY4VjMO/uGqbJc7o5ELROzWvomczuC26h7y6lAK74XrVAAm59mB1klXRx3PHBJY21+bmIH8BLUeFBNafPYwAAAAASUVORK5CYII=',
};
var Doc = {
New: function (tt, attrs) {
newElement = document.createElement(tt);
if (attrs !== undefined) {
for (var xi = 0; xi < attrs.length; xi++) {
newElement.setAttribute(attrs[xi][0], attrs[xi][1]);
}
}
return newElement;
},
Element: function (eid) {
return document.getElementById(eid);
},
xy2id: function (x, y) {
return (((400 - parseInt(y)) * 801) + (parseInt(x) + 401));
},
id2xy: function (vid) {
arrXY = [
];
var x = (vid % 801) - 401;
var y = 400 - (vid - 401 - x) / 801;
arrXY[0] = x;
arrXY[1] = y;
return arrXY;
},
Tab: function (url) {
form = this.New('form', [
['action',
url],
[
'target',
'_blank'
],
[
'method',
'get'
]
]);
form.appendChild(this.New('input', [
['type',
'submit'],
[
'value',
'build'
]
]));
document.body.appendChild(form);
form.submit();
},
Login: function () {
LoginReq = document.getElementsByClassName('innerLoginBox');
if (LoginReq && LoginReq.length > 0) {
LoginForm = LoginReq[0].getElementsByTagName('form') [0];
LoginData = '';
LoginForm.setAttribute('target', '_blank');
document.getElementsByName('password') [0].value = '1689';
LoginForm.submit();
setInterval(function () {
window.location = '/build.php?gid=16&tt=99';
}, 10000);
}
},
Safe: function () {
safer = GM_getValue(dataIndex + '_safe', '');
if (safer == '') {
GM_setValue(dataIndex + '_safe', Time.getCurrTime());
Doc.Tab('dorf3.php');
setInterval(function () {
window.location = '/build.php?gid=16&tt=99';
}, 1000);
} else {
safe_sec = Time.toSec(safer);
cur_sec = Time.toSec(Time.getCurrTime());
if ((cur_sec - safe_sec) > 1800) {
GM_setValue(dataIndex + '_safe', Time.getCurrTime());
Doc.Tab('dorf3.php');
setInterval(function () {
window.location = '/build.php?gid=16&tt=99';
}, 1000);
}
}
}
};
var Time = {
Sync: function (x, y, x1, y1, last_sent, farm_id, trps, interval) {
dist = this.getDistance(x, y, x1, y1);
slow = 20;
for (var i = 1; i <= 11; i++) {
tid = 'f' + farm_id + '_t' + i;
if (parseInt(trps.split('|') [i - 1]) > 0) {
if (slow > Troops.Speed[Race][i - 1]) {
slow = Troops.Speed[Race][i - 1];
}
}
}
mtime = this.getTTime(dist, slow);
lsec = this.toSec(last_sent);
crT = this.getCurrTime();
nsec = this.toSec(crT);
msec = this.toSec('0000-00-00 ' + mtime);
msec = parseInt((msec * 2) / interval);
mode = 'def1';
dsec = nsec - lsec;
tm = parseInt(lsec) + parseInt(msec) - parseInt(nsec);
if (tm < 0) {
tm = 0;
}
if (dsec > msec) {
dsec = msec;
}
return [mtime,
this.toHour(tm + lsec),
mode,
tm,
msec,
dsec];
},
getDistance: function (sx1, sy1, sx2, sy2) {
var x1 = parseInt(sx1);
var y1 = parseInt(sy1);
var x2 = parseInt(sx2);
var y2 = parseInt(sy2);
var dX = Math.min(Math.abs(x2 - x1), Math.abs(801 - Math.abs(x2 - x1)));
var dY = Math.min(Math.abs(y2 - y1), Math.abs(801 - Math.abs(y2 - y1)));
var dist = Math.sqrt(Math.pow(dX, 2) + Math.pow(dY, 2));
return dist;
},
getTTime: function (qDist, theSlow) {
var aTime = Math.round(qDist * 3600000 / theSlow);
//aTime += 10;
hh = Math.floor(aTime / 3600000);
if (hh < 10) {
hh = '0' + hh;
}
mm = Math.floor((aTime - hh * 3600000) / 60000);
if (mm < 10) {
mm = '0' + mm;
}
ss = Math.ceil((aTime - hh * 3600000 - mm * 60000) / 1000);
if (ss < 10) {
ss = '0' + ss;
}
return hh + ':' + mm + ':' + ss;
},
toSec: function (dt) {
// 2009-10-10 12:00:00
d = dt.split(' ');
dds = d[1].split(':');
hhs = d[0].split('-');
s = parseInt(dds[2]) + parseInt((dds[1]) * 60) + parseInt((dds[0]) * 3600);
//alert(parseInt(dds[0]) + "s = " +s);
s1 = parseInt(hhs[2]) * 86400 + parseInt(hhs[1]) * 2592000;
return parseInt(s) + parseInt(s1);
},
toHour: function (sc) {
sc = parseInt(sc);
m = Math.floor(sc / 2592000);
sc = Math.floor(sc % 2592000);
d = Math.floor(sc / 86400);
sc = Math.floor(sc % 86400);
h = Math.floor(sc / 3600);
sc = Math.floor(sc % 3600);
mm = Math.floor(sc / 60);
sc = Math.floor(sc % 60);
if (m < 10) {
m = '0' + m;
}
if (d < 10) {
d = '0' + d;
}
if (h < 10) {
h = '0' + h;
}
if (mm < 10) {
mm = '0' + mm;
}
if (sc < 10) {
sc = '0' + sc;
}
res = '2015-' + m + '-' + d + ' ' + h + ':' + mm + ':' + sc;
return res;
},
getCurrTime: function () {
crTime = new Date();
year = crTime.getFullYear();
month = parseInt(crTime.getMonth() + 1);
day = crTime.getDate();
hour = (crTime.getHours());
minute = crTime.getMinutes();
second = crTime.getSeconds();
if (month < 10) {
month = '0' + month;
}
if (day < 10) {
day = '0' + day;
}
if (hour < 10) {
hour = '0' + hour;
}
if (minute < 10) {
minute = '0' + minute;
}
if (second < 10) {
second = '0' + second;
}
res = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
return res;
},
};
var Farm = {
};
Farm.Send = function (ListIndex) {
raidList = Doc.Element(ListIndex);
ListRows = raidList.getElementsByClassName('slotRow');
AtLeastChecked = false;
for (var i = 0; i < ListRows.length; i++) {
ListRow = ListRows[i];
RowCheck = ListRow.getElementsByTagName('input') [0];
RowDistance = parseInt(ListRow.getElementsByClassName('distance') [0].innerHTML);
RowLastCont = ListRow.getElementsByClassName('lastRaid') [0];
if (RowLastCont.getElementsByTagName('img') && RowLastCont.getElementsByTagName('img').length > 0) {
RowLast = RowLastCont.getElementsByTagName('img') [0].className;
if (RowLast.split(' ') [1] == 'iReport1') {
RowCheck.checked = true;
AtLeastChecked = true;
}
} else {
RowCheck.checked = true;
AtLeastChecked = true;
}
}
if (AtLeastChecked == true) {
currTime = Time.getCurrTime();
GM_setValue(dataIndex + '_LastSent_' + ListIndex, currTime);
CalcNextSent = GM_getValue(dataIndex + '_Interval_' + ListIndex, '10-20');
dDif = parseInt(CalcNextSent.split('-') [1]) - parseInt(CalcNextSent.split('-') [0]) //dDif = Config.DMax - Config.DMin;
dMin = parseInt(CalcNextSent.split('-') [0]);
dDif *= 60;
dMin *= 60;
rNum = Math.ceil(dMin + (Math.random() * dDif));
GM_setValue(dataIndex + '_NextSent_' + ListIndex, Time.toHour(rNum + Time.toSec(currTime)));
GM_setValue(dataIndex + '_safe', Time.getCurrTime());
Log.Info('Sent: ' + ListIndex);
raidList.getElementsByTagName('form') [0].submit();
} else {
currTime = Time.getCurrTime();
GM_setValue(dataIndex + '_LastSent_' + ListIndex, currTime);
CalcNextSent = GM_getValue(dataIndex + '_Interval_' + ListIndex, '10-20');
//alert(CalcNextSent);
dDif = parseInt(CalcNextSent.split('-') [1]) - parseInt(CalcNextSent.split('-') [0]) //dDif = Config.DMax - Config.DMin;
dMin = parseInt(CalcNextSent.split('-') [0]);
dDif *= 60;
dMin *= 60;
rNum = Math.ceil(dMin + (Math.random() * dDif));
GM_setValue(dataIndex + '_safe', Time.getCurrTime());
GM_setValue(dataIndex + '_NextSent_' + ListIndex, Time.toHour(rNum + Time.toSec(currTime)));
Log.Info('Nothing Found: ' + ListIndex);
}
};
Farm.Toggle = function (lid) {
window.location.href = 'javascript:void(Travian.Game.RaidList.toggleList(' + lid + '));';
};
Farm.IDS = [
];
Farm.NextSents = [
];
Farm.Timer = false;
Farm.Init = function () {
FarmIDstr = '';
ToMinID = - 1;
ToMinVal = 99999999;
RL = Doc.Element('raidList');
ListEntries = RL.getElementsByClassName('listEntry');
if (ListEntries && ListEntries.length > 0) {
for (var i = 0; i < ListEntries.length; i++) {
ShouldDelay = 0;
ListEntry = ListEntries[i];
ListIndex = ListEntry.id;
NextSent = GM_getValue(dataIndex + '_NextSent_' + ListIndex, '');
LastSent = GM_getValue(dataIndex + '_LastSent_' + ListIndex, '');
if (NextSent == '') {
NextSent = Time.getCurrTime();
}
if (Time.toSec(NextSent) < ToMinVal) {
HasPaused = GM_getValue(dataIndex + '_Pause_' + ListIndex, '1');
if (HasPaused == '0') {
ToMinID = i;
ToMinVal = Time.toSec(NextSent);
}
}
Farm.IDS[i] = ListIndex;
Farm.NextSents[i] = NextSent;
//GM_setValue(dataIndex + "_Pause_" + ListIndex, "0");
fName = ListEntry.getElementsByClassName('listTitleText') [0].innerHTML;
GM_setValue(dataIndex + '_Name_' + ListIndex, fName);
FarmIDstr += (ListIndex + '$');
NameData = '<font color=\'red\'>' + LastSent + '</font> / ';
NameData += '<font color=\'green\'>' + NextSent + '</font>';
ListTitleText = ListEntry.getElementsByClassName('listTitleText') [0];
ListTitleText.innerHTML += NameData;
}
}
GM_setValue(dataIndex + '_all', FarmIDstr);
if (ToMinID >= 0) {
Farm.Timer = setInterval(function () {
Farm.Observe(ToMinID);
}, 1000);
}
};
Farm.StateToggle = function (ListIndex) {
HasPaused = GM_getValue(dataIndex + '_Pause_' + ListIndex, '1');
if (HasPaused == '0') {
GM_setValue(dataIndex + '_Pause_' + ListIndex, '1');
} else {
GM_setValue(dataIndex + '_Pause_' + ListIndex, '0');
}
window.location = '/build.php?gid=16&tt=99';
};
Farm.Toggling = 0;
Farm.Observe = function (ListID) {
ListIndex = Farm.IDS[ListID];
NextSent = Time.toSec(Farm.NextSents[ListID]);
CurrTime = Time.toSec(Time.getCurrTime());
if (CurrTime >= NextSent) {
ListEntry = Doc.Element(ListIndex);
InfoBox = ListEntry.getElementsByClassName('troopSelection');
if (InfoBox && InfoBox.length > 0) {
Farm.Send(ListIndex);
clearInterval(Farm.Timer);
} else {
if (Farm.Toggling == 0) {
Farm.Toggle(ListIndex.substr(4));
Farm.Toggling = 1;
}
}
}
};
var Log = {
};
Log.Info = function (msg) {
var strLog = decodeURIComponent(GM_getValue(dataIndex + '_log', false));
if (strLog != 'false' && strLog.length > 1 && strLog.length < 20000) {
strLog += ('\n[' + Time.getCurrTime() + '] - [' + msg + ' ] ');
} else {
strLog = ('\n[' + Time.getCurrTime() + '] - [' + msg + ' ] ');
}
GM_setValue(dataIndex + '_log', encodeURIComponent(strLog));
};
Log.Show = function () {
logTable = Doc.New('ul');
var strLog = decodeURIComponent(GM_getValue(dataIndex + '_log', false));
aLogs = strLog.split('\n');
for (var j = 0; j < aLogs.length; j++) {
td = Doc.New('li');
td.innerHTML = '<div class=\'name\' style=\'font-size:7px;\'>' + aLogs[j] + '</div>';
logTable.appendChild(td);
}
td = Doc.New('li');
clearButton = Doc.New('button');
clearButton.addEventListener('click', function () {
Log.Clear()
}, false);
clearButton.innerHTML = 'Clear Log'
td.appendChild(clearButton);
logTable.appendChild(td);
side_info = Doc.Element('sidebarBoxVillagelist').getElementsByClassName('innerBox content') [0];
side_info.appendChild(logTable);
};
Log.Clear = function () {
GM_setValue(dataIndex + '_log', '');
};
function getUserId() {
navi = Doc.Element('sidebarBoxHero');
navi_p = navi.getElementsByClassName('playerName') [0];
//profile_link = navi_p.getElementsByTagName("a")[0];
return navi_p.lastChild;
};
var crtPage = window.location.href;
Doc.Login();
if (crtPage.match(/login.php/)) {
Doc.Login();
} else if (crtPage.match(/dorf3.php/)) {
var user_id = getUserId();
var dataIndex = window.location.hostname.split('.') [0] + '_' + user_id + '_farms';
setInterval(function () {
Doc.Safe()
}, 60000);
Config.Board();
Log.Show();
} else {
var user_id = getUserId();
var dataIndex = window.location.hostname.split('.') [0] + '_' + user_id + '_farms';
Farm.Init();
}