· 8 years ago · Mar 24, 2018, 01:24 AM
1/*!
2// ==UserScript==
3// @name SALT
4// @namespace http://www.relentless.ws/salt/
5// @description Strategic Alliance Lashing Tool v.7.1
6// @include http://www.kingsofchaos.com/*
7// @include http://www.kingsofchaos.com/detail.php?attack_id=*&suspense=1
8// @include https://www.kingsofchaos.com/*
9// @include https://www.kingsofchaos.com/detail.php?attack_id=*&suspense=1
10// @updateURL http://www.relentless.ws/salt/ac/SALT.user.js
11// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
12// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
13// @exclude http://www.kingsofchaos.com/login.php
14// @exclude http://www.kingsofchaos.com/register.php
15// @exclude http://www.kingsofchaos.com/error.php
16// @exclude https://www.kingsofchaos.com/login.php
17// @exclude https://www.kingsofchaos.com/register.php
18// @exclude https://www.kingsofchaos.com/error.php
19// @grant GM_getResourceURL
20// @grant GM_getValue
21// @grant GM_setValue
22// @grant GM_addStyle
23// @grant GM_xmlhttpRequest
24// @grant GM_log
25// @grant GM_registerMenuCommand
26// @grant GM_openInTab
27// ==/UserScript==
28*/
29
30// Author: Original Shane Mackenzie
31// Edited by: Hacker
32// Further editing by: Source
33// Edited by: Curiosity, mIRC Erebus irc.cyanide-x.net
34// Edited by: hackman, blame him for weird things
35// fixed Undefined on attack/sab page from version 2.4 to 2.5
36// Added a new script access way for Admins to give access 3.0
37// Obfustication done by Erebus
38
39var cver = 7.1;
40var dis = 0;
41var c = document.cookie;
42c = c.split("koc_session=");
43var cookie = c[1];
44var placed = false;
45var str = "error";
46var params = '';
47var turing = '';
48var defenderId = '';
49var tmp;
50var firstuser;
51var h4xed;
52var TheChain = "NULL";
53var sTBG = '???';
54var LSO = "???";
55var uTag = '?';
56var sSA = "Strike: ???";
57var sDA = "Defence: ???";
58var sSpy = "Spy: ???";
59var sSentry = "Sentry: ???";
60var sGold = "Gold: ???";
61var sBPM = "BPM: ???";
62var sIS = "IS: ???";
63var sNUN = "NUN: ???";
64var sLT = "LT: ???";
65var sCH = "Skins: ???";
66var sDS = "Chariots: ???";
67var sCoverts = "Coverts: ???";
68var gUser;
69var totalAttacks = 0;
70var strengthBPM = '';
71var strengthIS = '';
72var strengthNUN = '';
73var strengthLT = '';
74var fields = new Array();
75var buttons = new Array();
76var pgload = new Array();
77var list;
78var gold;
79var num_untrained;
80var num_sa = 0;
81var num_da = 0;
82var iNunLost = 0;
83var iFailedSab = 0;
84var BASE = "GM_Farm.php?gold=GOLD&da=DA&minute=MIN&tff=TFF";
85var gold = FindText(document.body.innerHTML, 'Gold:<font color="#250202">', '<').replace(/,/g,'');
86GM_setValue("BasePageEdits",'0');
87
88var request = {
89 get: function(url, cb) {
90 var details = {};
91 details.method = 'GET';
92 details.url = url;
93 details.headers = {};
94 details.headers['Content-Type'] = 'application/x-www-form-urlencoded';
95 details.onload = function (responseDetails) {
96 cb(responseDetails.responseText);
97 };
98 GM_xmlhttpRequest(details);
99 },
100 post: function(url, data, cb) {
101 var details = {};
102 details.method = 'POST';
103 details.url = url;
104 details.headers = {};
105 details.headers['Content-Type'] = 'application/x-www-form-urlencoded';
106 details.data = data;
107 details.onload = function (responseDetails) {
108 cb(responseDetails.responseText);
109 };
110 GM_xmlhttpRequest(details);
111 }
112};
113//script.server
114var script = {
115 access: "http://www.relentless.ws/salt/ac/users/access/",
116 server: "http://www.relentless.ws/salt/ac/script/",
117 update: "http://www.relentless.ws/salt",
118 page: document.location.toString().split(".com/")[1].split("?")[0],
119 version: 6.7
120};
121
122var username = FindText(document.title,"Kings of Chaos :: ","'s ");
123var userid = FindText(document.body.innerHTML, '<td><a href="stats.php?id=' , '">');
124
125//hackman functions
126function rmCommas(num) {return num.replace(/,/g,'');}
127function isNumber(n) {return !isNaN(parseFloat(n)) && isFinite(n);}
128var obj = function(elem) {if (document.getElementById(elem)) return document.getElementById(elem);return false;};
129var objName = function(node,elem,num) {if (node.getElementsByTagName(elem).length > 0) {if (isNumber(num)) {var allnodes=node.getElementsByTagName(elem);return allnodes[num];}else {return node.getElementsByTagName(elem);}}return false;};
130var objClass = function(node,searchClass,tag,num) { var classElements = new Array();var els = node.getElementsByTagName(tag); var elsLen = els.length;var pattern = new RegExp("\\b"+searchClass+"\\b"); for (ii=0, j=0; ii < elsLen; ii++) {if (pattern.test(els[ii].className)) { classElements[j] = els[ii]; j++;}}if (isNumber(num)) { return classElements[num]; } else { return classElements; }};
131//hackman functions
132//
133
134(function(){
135
136//accessCheck();
137
138
139
140
141GM_setValue("serverURL", "http://www.relentless.ws/salt");
142var x = '';
143
144//compressed + new
145var warsimg ="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUAHoDASIAAhEBAxEB/8QAGwAAAgMBAQEAAAAAAAAAAAAAAAcDBQYEAQj/xAAvEAACAQMDAwIGAQQDAAAAAAABAgMEBREAEiEGMUEHExQVIlFhcSMIF0KCMpHB/8QAGAEAAwEBAAAAAAAAAAAAAAAAAAIDAQT/xAAeEQACAgIDAQEAAAAAAAAAAAAAAQIRAxIEMUEhMv/aAAwDAQACEQMRAD8AgsUtHH6dUttFXFNDPXNT2523+5PK1RtTG7DxsU55HY4BBPKvrblNBbDFUz1ck3voIpkr5AFXs6YZu+BncOBnTIrLfPa/S631TrNFWV95pUiZdyF1YqwyXJbaOcBjndknsNI+oqxBWRl4o5kRXTZINy5YEbv2Mg/6jUpnfxknZqrRaut+orVLcLLUVE1vpt4ll+bJGVAycyBpARwO5A4GqIVPVRtkdx+Ouq295/hVqWqnEZkxnbuLY7c6139O97S39cm11eGobxA1LIjf8S2CVyPP+S/762XS/wAmv3TvV/p69TFFQ2lWnpK1k5/jb+SVsdxv5++18eNKlZaUtW00Ku60fWNoq6Clqq+q+Jrwhpo4LoszSBsbCBHIcA54J4PjXLfJuq7DeZbVd7hcaaviKh42rSQNwBH1BiuMEc51rOm6Wa7Xi9daVNHcobJboGWjkpqf3XjIURQ7BlQfaXDk5AGwZ76vvWGxz9VdK9OdZ2ejuFQz0wp6wy0+yVlXO2ZkUnAOGOckYK86KN2SaTRnIulev99IjTVTvWRGemRbxGzToACWQCXLDBB4zxqlWruId46qsrxKjFXV6iQEMO4Iz3zp7mGltv8AbiW7wVVHWU9pFPT1UwIp6epMKKqTrgHvn/JeRj8hMdS2u8W29VRv8EiVc8rzGUj6JiTkujdmBJ7jQ1QsJbdo0PTfTV0vVserpGlmjhUtKzXHZsHPLAuCBwefxqOitc1ZWpSU0szTu21A1cyhj9gxcD9c8+Nbb0goqqXpLqX26eVhPQtHEQpw7bXG0HyeR/3rgtfTVxornZ5qqmminkrUCUxjO8opUs5HhRka2hHL60UVf01d6W6R2p46pq+UcU8da0jds8hXOOOefHOok6fvLvTLE00vxEhhjMVx3guBkrlZCAQOecaY19+aUHqtX19vhVpVgWWGKZSBVKI0VkQ+T37eV1TdX09s+At1ztaT2OvqJXWagckbAVIZwvGB2HjIPYY0UCldFGnSF7NJHUlh8PI3txy/N02u3P0g+7gng8fjVNWUD0txmo7lV1NPNCzIyipdtrAeTuxjxxpj1lqrV9JrTBNSTK8dc0sqshGxP5Prb7LyOfzpcVsZmqqnfVrUSyKWaX6mLseSBkZLZ8n86GbF2M70OjjcVcdFLKlQIWjaqaRpA+HXaQrHgAHt+9OOGgpJoklqqOjNQ6hpCCh+o8nx99Kf0JQRLuSmaPdG31gkmUhkyAPx+NMG2Wu0y22kkiqado3hRlZFG0ggYI47apHo4837YlnjirfTu01tVBDLM11imjDLlYQicRoOwTEQBBznc331891n1Vcw7AMe2jRpMnh18T0h2D868KDnvo0amdh4FB17tGjRrEB2Ui5xq9oIwwwSdGjWiyNXQRKtJFgnt/7rp9sbR30aNMRIJ41x51ze2M+dGjQB1RKNo41BUSMkZUHhW3D9/vRo0AN/0Mqp6+Wr+KleQCIhQTwoyg4+3A0zl6DsUih3iq9zDcdtZKoyfsA2B+ho0arHo4Mzqbo//9k=";
146var targetsimg = "data:image/png;base64,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";
147var linksimg = "data:image/gif;base64,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";
148var farmsimg = "data:image/gif;base64,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";
149var sl = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAYADUDASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAUIAgYHAwT/xAAoEAACAgICAgEEAgMBAAAAAAABAgMEBREAEgYhBxMxQVFhgSIyUnH/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAcEQADAAIDAQAAAAAAAAAAAAAAAREhcUHR8LH/2gAMAwEAAhEDEQA/AKtV4ZLE8cFeN5ZpGCIiKWZmPoAAfck8+jKYy/ibRq5SjapWR94rMTRuPev9WAP3B5MfG9i1T88wNmhQORsxXI3SoDozEHfQH8E/j+ed9wiYWvkcrkPH2sXcJb8OyDVamU7Ceiscjd6x6sCU7Mw2SSANBvW+HhXfwLLmirvHLJY7wnB4fE+HZ2HCmpk48zjI3jsyyGWRZYwS0gWUqD3/AM16hCAAGT9xXyHgcFlU+QL8FWlH5DXylyUrZNiJzFHKgaSu/cxSH2e0ZXe3YggBVJ49rsLJxRsFllwqZhsXeGIdui3TXcQM2yNCTXXewRrf45G87PhcPLnvgfC4+H0JPKJTJJsajjWt2dzv1pVBP9c2/J/GfhVPMwST1YatKnevUJEnvNFFYEUCtFJNI8g6kyMqnoVBLqAF/NeHPcdkTsK0645ufy3F47W83uVfDoaqYeuqRo9aZ5VkfqC57u7dtMSoIOiFH/pcymaahqEE0kEgkhkeORfsyEgj+xyXXyzyNcqMoufy4yYi+gLYuSCb6f8Ax33vr/G9ccc0Q9JfMvJ5qcdOXyPNSVI+nSBr0pRehBTS9tDqQCP0QNcxyPl/kuSp2KuS8hzFurYYPNDPdkkSVhrRZSxBI6r7P6H6445AYVfKvIKmHbE1c9lYMW6sjUo7kiwsrb7AoD10dnfr3vk/4b8lZzAeTVcxdv5LIyVqz1YS9vckKMNajaVZEXXr0UYa36B0Q45byIR/yP5ha838lfL3VcSfSSEGVkaQhR93ZERSfZ9hF9aGvW+OOOZhaf/Z";
150var hittargets = "data:image/png;base64,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";
151
152ReturnRequest('GM_WarCheck.php',0,function(responseTextz){
153 if (responseTextz.indexOf("1") > -1) {
154 GM_setValue('war', true);
155 } else {
156 GM_setValue('war', false);
157 }
158});
159
160
161 if (GM_getValue('war', false)) {
162 x += '<tr><td><a href="https://www.kingsofchaos.com/stats.php?id=wartab"><img alt="War List" border="0" width="100%" src="' + warsimg + '" ></a></td></tr>';
163 }
164 x += '<tr><td><a href="https://www.kingsofchaos.com/stats.php?id=targetlist"><img alt="Target List" border="0" height="22px" src="' + targetsimg + '" ></a></td></tr><tr><td><a href="https://www.kingsofchaos.com/stats.php?id=farmlist"><img alt="Farm List" border="0" src="' + farmsimg + '" ></a></td></tr><tr><td><a href="https://www.kingsofchaos.com/stats.php?id=targets"><img alt="hit List" border="0" height="22px" src="' + hittargets + '" ></a></td></tr>';
165
166 var y = '<tr><td><a href="https://www.kingsofchaos.com/stats.php?id=links"><img alt="Third Party Links" border="0" src="' + linksimg + '" ></a></td></tr>';
167
168 var q = document.getElementsByClassName('menu_cell')[0].innerHTML.replace('<tr><td><a href="attacklog',x+'<tr><td><a href="attacklog');
169
170 q = q.replace('<tr><td><a href="buddylist',y+'<tr><td><a href="buddylist');
171 document.getElementsByClassName('menu_cell')[0].innerHTML=q;
172
173h4xed = 0;
174var CurrentURL = document.URL;
175TehURL = CurrentURL.split(".com/");
176TehURL = TehURL[1].split(".php");
177if (TehURL[0] == "base") {
178 checkAuthorization(false);
179 base();
180 //checkUpdate();
181}
182else {
183 checkAuthorization(true);
184 //checkUpdate();
185}
186if (GM_getValue('gr','')) {
187 if (TehURL[0] == "base") {
188 //nope its already done on line 191
189 chatBox();
190 } else if (TehURL[0] == "stats") {
191 stats();
192 processLogDetails();
193 //raidbutton();
194 } else if (TehURL[0] == "battlefield") {
195 battlefieldUser();
196 battlefield();
197 chatBox();
198 } else if (TehURL[0] == "attack") {
199 attack();
200 processLogDetails();
201 //attacklog();
202 //raidbutton();
203 } else if (TehURL[0] == "writemail") {
204 writemail();
205 chatBox();
206 } else if (TehURL[0] == "armory") {
207 //WeaponSearch();
208 //displayValue();
209 armory();
210 //addMenus();
211 } else if (TehURL[0] == "inteldetail") {
212 CheckIntel();
213 } else if (TehURL[0] == "intel") {
214 intel();
215 chatBox();
216 } else if (TehURL[0] == "train") {
217 train();
218 chatBox();
219 } else if (TehURL[0] == "recruit") {
220 recruit();
221 } else if (TehURL[0] == "detail") {
222 //processLogDetails();
223 attacklog();
224 // raid();
225 } else if (TehURL[0] == "mercs") {
226 mercs();
227 chatBox();
228 } else if (TehURL[0] == "security") {
229 security();
230 } else if (TehURL[0] == "attacklog") {
231 realattacklog();
232 chatBox();
233 } else if (TehURL[0] == "links") {
234 StatsFunction();
235 } else if (TehURL[0] == "inbox") {
236 chatBox();
237 } else if (TehURL[0] == "buddylist") {
238 chatBox();
239 } else if (TehURL[0] == "alliances") {
240 chatBox();
241 }
242}
243//serverurl
244checkUpdate();
245function checkUpdate(){
246 var d=new Date();
247 var hour = d.getHours();
248 //var seconds = d.getSeconds();
249 var lastchecked = GM_getValue("Koc_LastVerCheck");
250 if(hour == lastchecked) {
251 //Do nothing, we've already checked this hour...
252 } else {
253 request.post(script.server+"ver.php",0,function(response){
254 GM_setValue("Koc_LastVerCheck",hour); //reset the last "updated time"
255 if(responseText > cver){
256 var updateQ = confirm("You're using an old version. Do you want to update?");
257 if (updateQ){
258 //alert("Updating");
259 GM_openInTab(request.post(script.update+'/ac/SALT.user.js'));//MAY HAVE TO RE CHECK AFTER FINISHING OTHER SERVER MARKS
260 //GM_openInTab(GM_getValue("serverURL") + '/ac/SALT.user.js');
261 } else {
262 alert("Since you cancelled, it may not ask again. so use the direct link on base page if this happens.");
263 }
264 }
265 });
266 }
267}
268
269})();
270
271function get(url, cb) {
272 GM_xmlhttpRequest({
273 method: "GET",
274 url: url,
275 onload: function(xhr) {
276 cb(xhr.responseText);
277 }
278 });
279}
280
281function security() {
282 var whoami = GM_getValue("Koc_User");
283 MakeRequestNoMsg('GM_Security.php?u=' + whoami);
284}
285
286function armory() {
287 var logs = document.getElementsByTagName("table");
288 var stuff = document.body.innerHTML;
289 var Username=GM_getValue("Koc_User");
290 var Strike = FindText(FindText(stuff,"<td><b>Strike Action</b></td","/td>"),'<td align="right">','<');
291 var Defence = FindText(FindText(stuff,"<td><b>Defensive Action</b></td","/td>"),'<td align="right">','<');
292 var TheSpy = FindText(FindText(stuff,"<td><b>Spy Rating</b></td","/td>"),'<td align="right">','<');
293 var TheSentry = FindText(FindText(stuff,"<td><b>Sentry Rating</b></td","/td>"),'<td align="right">','<');
294 var tff = FindText(FindText(stuff,"<td><b>Total Fighting Force</b></td","/td>"),'<td align="right">','<');
295 GM_setValue('userTFF',rmCommas(tff));
296 //data = "user=" + Username + "&sa=" + Strike + "&da=" + Defence + "&spy=" + TheSpy + "&sentry=" + TheSentry + "&u=" + Username + "&rid=0&tff=" + tff ;
297
298 request.post(script.server+"GM_SelfUpdate.php?user=" + Username + "&sa=" + Strike + "&da=" + Defence + "&spy=" + TheSpy + "&sentry=" + TheSentry + "&u=" + Username + "&rid=0&tff=" + tff,function(response){
299 //alert("Test");
300 });
301
302 var stuff = document.body.innerHTML;
303 var str = '';
304 var unheld = '';
305 var armoryBuy =0;
306 var armorySell=0;
307 var BPMPercentSell = 0;
308 var ISPercentSell = 0;
309 var LTPercentSell = 0;
310 var NUNPercentSell= 0;
311 var skelKeyPercentSell = 0;
312 var BPMPercentBuy = 0;
313 var ISPercentBuy = 0;
314 var LTPercentBuy = 0;
315 var NUNPercentBuy = 0;
316 var skelKeyPercentBuy = 0;
317 var SkinPercentBuy = 0;
318 var SkinPercentSell = 0;
319 var CHPercentBuy = 0;
320 var CHPercentSell = 0;
321 var htmlHead = document.getElementsByTagName("head")[0].innerHTML;
322 var myRace = FindText(FindText(htmlHead,'<link href="/images/css/common.css" rel="','css" r'),'/css/','.');
323 var saBonus = 1;
324 var daBonus = 1;
325 var DS = 0;
326 var IS = 0;
327 var CH = 0;
328 var BPM = 0;
329 var stick = 0;
330 var skelKey = 0;
331 var gDog = 0;
332 switch(myRace)
333 {
334 case 'Dwarves': { daBonus = 1.4; break }
335 case 'Orcs': { daBonus = 1.2;saBonus = 1.35; break }
336 default: { daBonus = 1.0; saBonus = 1.0; break; }
337 }
338
339 if(InStr(stuff,"scrapsell[74]") == true) // LT
340 {
341
342 var LT = String(FindText(FindText(stuff,'<td>Lookout Tower</td>','<td align="center">1,000'),">","<")).replace(/,/g, "");
343 if(GM_getValue("weapon_LT") > LT) {
344 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_LT")-LT) + ' LTs';
345 logLostWeapon(Math.max(GM_getValue("weapon_LT")-LT) + ' Lts');
346 }
347 GM_setValue("weapon_LT", LT);
348 armoryBuy = armoryBuy + LT*1000000;
349 armorySell = armorySell + LT*700000;
350 }
351 if(InStr(stuff,"scrapsell[75]") == true) // NUN
352 {
353 var NUN = String(FindText(FindText(stuff,'<td>Nunchaku</td>','<td align="center">1,000</td>'),">","<")).replace(/,/g, "");
354 if(GM_getValue("weapon_NUN") > NUN) {
355 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_NUN")-NUN) + ' NUNs';
356 logLostWeapon(Math.max(GM_getValue("weapon_NUN")-NUN) + ' Nuns');
357 }
358 GM_setValue("weapon_NUN",NUN);
359 armoryBuy = armoryBuy + NUN*1000000;
360 armorySell = armorySell + NUN*700000;
361 }
362 if(InStr(stuff,"scrapsell[71]") == true) // IS
363 {
364 IS = String(FindText(FindText(stuff,'<td>Invisibility Shield</td>','1,000</td>'),">","<")).replace(/,/g, "");
365 if(GM_getValue("weapon_IS") > IS) {
366 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_IS")-IS) + ' ISs';
367 logLostWeapon(Math.max(GM_getValue("weapon_IS")-IS) + ' ISs');
368 }
369 GM_setValue("weapon_IS",IS);
370 armoryBuy = armoryBuy + IS*1000000;
371 armorySell = armorySell + IS*700000;
372 }
373 if(InStr(stuff,"scrapsell[70]") == true) // BPM
374 {
375 BPM = String(FindText(FindText(stuff,'<td>Blackpowder Missile</td>','/ 1,000</td>'),">","<")).replace(/,/g, "");
376 if(GM_getValue("weapon_BPM") > BPM) {
377 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_BPM")-BPM) + ' BPM';
378 logLostWeapon(Math.max(GM_getValue("weapon_BPM")-BPM) + ' BPMs');
379 }
380 GM_setValue("weapon_BPM",BPM);
381 armoryBuy = armoryBuy + BPM*1000000;
382 armorySell = armorySell + BPM*700000;
383 }
384 if(InStr(stuff,"scrapsell[51]") == true) // Dragon Skinn
385 {
386 DS = String(FindText(FindText(stuff,'<td>Dragonskin</td>','/ 256</td>'),">","<")).replace(/,/g, "");
387 if(GM_getValue("weapon_DS") > DS) {
388 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_DS")-DS) + ' DSs';
389 logLostWeapon(Math.max(GM_getValue("weapon_DS")-DS) + ' DSs');
390 }
391
392 GM_setValue("weapon_DS",DS);
393 armoryBuy = armoryBuy + DS*200000;
394 armorySell = armorySell + DS*140000;
395 }
396 if(InStr(stuff,"scrapsell[72]") == true) // Chariot
397 {
398
399 CH = String(FindText(FindText(stuff,'<td>Chariot</td>','/ 600</td>'),">","<")).replace(/,/g, "");
400
401 if(GM_getValue("weapon_CH") > CH) {
402 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_CH")-CH) + ' Chariots';
403 logLostWeapon(Math.max(GM_getValue("weapon_CH")-CH) + ' CHs');
404 }
405 GM_setValue("weapon_CH",CH);
406 armoryBuy = armoryBuy + CH*450000;
407 armorySell = armorySell + CH*315000;
408 }
409
410 if(InStr(stuff,"scrapsell[69]") == true) //Broken Stick
411 {
412 var stick = String(FindText(FindText(stuff,'<td>Broken Stick</td>','/ 0</td>'),">","<")).replace(/,/g, "");
413 // console.log(stick);
414 if(GM_getValue("weapon_stick") > stick) {
415 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_stick")-stick) + ' Broken Sticks';
416 logLostWeapon(Math.max(GM_getValue("weapon_stick")-stick) + ' Broken Sticks');
417 }
418 GM_setValue("weapon_stick", stick);
419 armoryBuy = armoryBuy + stick*100;
420 armorySell = armorySell + stick*70;
421 }
422 if(InStr(stuff,"scrapsell[28]") == true) //Flaming Arrow
423 {
424 var arrow = String(FindText(FindText(stuff,'<td>Flaming Arrow</td>','/ 256</td>'),">","<")).replace(/,/g, "");
425 if(GM_getValue("weapon_arrow") > arrow) {
426 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_arrow")-arrow) + ' Flaming Arrows';
427 logLostWeapon(Math.max(GM_getValue("weapon_arrow")-arrow) + ' Flaming Arrows');
428 }
429 GM_setValue("weapon_arrow", arrow);
430 armoryBuy = armoryBuy + arrow*200000;
431 armorySell = armorySell + arrow*140000;
432 }
433 if(InStr(stuff,"scrapsell[27]") == true) //Excalibur
434 {
435 var excal = String(FindText(FindText(stuff,'<td>Excalibur</td>','/ 256</td>'),">","<")).replace(/,/g, "");
436 if(GM_getValue("weapon_excal") > excal) {
437 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_excal")-excal) + ' Excaliburs';
438 logLostWeapon(Math.max(GM_getValue("weapon_excal")-excal) + ' Excaliburs');
439 }
440 GM_setValue("weapon_excal", excal);
441 armoryBuy = armoryBuy + excal*200000;
442 armorySell = armorySell + excal*140000;
443 }
444 if(InStr(stuff,"scrapsell[30]") == true) //Dragon
445 {
446 var drag = String(FindText(FindText(stuff,'<td>Dragon</td>','/ 256</td>'),">","<")).replace(/,/g, "");
447 if(GM_getValue("weapon_drag") > drag) {
448 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_drag")-drag) + ' drag';
449 logLostWeapon(Math.max(GM_getValue("weapon_drag")-drag) + ' Dragons');
450 }
451 GM_setValue("weapon_drag", drag);
452 armoryBuy = armoryBuy + drag*200000;
453 armorySell = armorySell + drag*140000;
454 }
455 if(InStr(stuff,"scrapsell[29]") == true) //Battle Axe
456 {
457 var bataxe = String(FindText(FindText(stuff,'<td>Battle Axe</td>','/ 256</td>'),">","<")).replace(/,/g, "");
458 if(GM_getValue("weapon_bataxe") > bataxe) {
459 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_bataxe")-bataxe) + ' Battle Axes';
460 logLostWeapon(Math.max(GM_getValue("weapon_bataxe")-bataxe) + ' Battle Axe');
461 }
462 GM_setValue("weapon_bataxe", bataxe);
463 armoryBuy = armoryBuy + bataxe*200000;
464 armorySell = armorySell + bataxe*140000;
465 }
466 if(InStr(stuff,"scrapsell[6]") == true) //Dragon Claw
467 {
468 var dclaw = String(FindText(FindText(stuff,'<td>Dragon Claw</td>','/ 256</td>'),">","<")).replace(/,/g, "");
469 if(GM_getValue("weapon_dclaw") > dclaw) {
470 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_dclaw")-dclaw) + ' Dragon Claw';
471 logLostWeapon(Math.max(GM_getValue("weapon_dclaw")-dclaw) + ' Dragon Claw');
472 }
473 GM_setValue("weapon_dclaw", dclaw);
474 armoryBuy = armoryBuy + dclaw*200000;
475 armorySell = armorySell + dclaw*140000;
476 }
477 if(InStr(stuff,"scrapsell[24]") == true) //Steed
478 {
479 var steed = String(FindText(FindText(stuff,'<td>Steed</td>','/ 64</td>'),">","<")).replace(/,/g, "");
480 if(GM_getValue("weapon_steed") > steed) {
481 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_steed")-steed) + ' Steeds';
482 logLostWeapon(Math.max(GM_getValue("weapon_steed")-steed) + ' Steed');
483 }
484 GM_setValue("weapon_steed", steed);
485 armoryBuy = armoryBuy + steed*50000;
486 armorySell = armorySell + steed*35000;
487 }
488 if(InStr(stuff,"scrapsell[26]") == true) //Warg
489 {
490 var warg = String(FindText(FindText(stuff,'<td>Warg</td>','/ 64</td>'),">","<")).replace(/,/g, "");
491 if(GM_getValue("weapon_warg") > warg) {
492 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_warg")-warg) + ' Wargs';
493 logLostWeapon(Math.max(GM_getValue("weapon_warg")-warg) + ' Warg');
494 }
495 GM_setValue("weapon_warg", warg);
496 armoryBuy = armoryBuy + warg*50000;
497 armorySell = armorySell + warg*35000;
498 }
499 if(InStr(stuff,"scrapsell[25]") == true) //Hammer of Thor
500 {
501 var thor = String(FindText(FindText(stuff,'<td>Hammer of Thor</td>','/ 64</td>'),">","<")).replace(/,/g, "");
502 if(GM_getValue("weapon_thor") > thor) {
503 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_thor")-thor) + ' Hammers of Thor';
504 logLostWeapon(Math.max(GM_getValue("weapon_thor")-thor) + ' Hammer of Thor');
505 }
506 GM_setValue("weapon_thor", thor);
507 armoryBuy = armoryBuy + thor*50000;
508 armorySell = armorySell + thor*35000;
509 }
510 if(InStr(stuff,"scrapsell[23]") == true) //Heavy Steed
511 {
512 var hsteed = String(FindText(FindText(stuff,'<td>Heavy Steed</td>','/ 64</td>'),">","<")).replace(/,/g, "");
513 if(GM_getValue("weapon_hsteed") > hsteed) {
514 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_hsteed")-hsteed) + ' Heavy Steeds';
515 logLostWeapon(Math.max(GM_getValue("weapon_hsteed")-hsteed) + ' Heavy Steed');
516 }
517 GM_setValue("weapon_hsteed", hsteed);
518 armoryBuy = armoryBuy + hsteed*50000;
519 armorySell = armorySell + hsteed*35000;
520 }
521 if(InStr(stuff,"scrapsell[22]") == true) //Warblade
522 {
523 var wblade = String(FindText(FindText(stuff,'<td>Warblade</td>','/ 10</td>'),">","<")).replace(/,/g, "");
524 if(GM_getValue("weapon_wblade") > wblade) {
525 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_wblade")-wblade) + ' Warblades';
526 logLostWeapon(Math.max(GM_getValue("weapon_wblade")-wblade) + ' Warblade');
527 }
528 GM_setValue("weapon_wblade", wblade);
529 armoryBuy = armoryBuy + wblade*10000;
530 armorySell = armorySell + wblade*7000;
531 }
532 if(InStr(stuff,"scrapsell[21]") == true) //Warhammer
533 {
534 var whammer = String(FindText(FindText(stuff,'<td>Warhammer</td>','/ 30</td>'),">","<")).replace(/,/g, "");
535 if(GM_getValue("weapon_whammer") > whammer) {
536 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_whammer")-whammer) + ' Warhammers';
537 logLostWeapon(Math.max(GM_getValue("weapon_whammer")-whammer) + ' Warhammer');
538 }
539 GM_setValue("weapon_whammer", whammer);
540 armoryBuy = armoryBuy + whammer*25000;
541 armorySell = armorySell + whammer*17500;
542 }
543 if(InStr(stuff,"scrapsell[20]") == true) //Steel Bow
544 {
545 var stbow = String(FindText(FindText(stuff,'<td>Steel Bow</td>','/ 30</td>'),">","<")).replace(/,/g, "");
546 if(GM_getValue("weapon_stbow") > stbow) {
547 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_stbow")-stbow) + ' Steel Bows';
548 logLostWeapon(Math.max(GM_getValue("weapon_stbow")-stbow) + ' Steel Bow');
549 }
550 GM_setValue("weapon_stbow", stbow);
551 armoryBuy = armoryBuy + stbow*25000;
552 armorySell = armorySell + stbow*17500;
553 }
554 if(InStr(stuff,"scrapsell[19]") == true) //Broadsword
555 {
556 var bsword = String(FindText(FindText(stuff,'<td>Broadsword</td>','/ 30</td>'),">","<")).replace(/,/g, "");
557 if(GM_getValue("weapon_bsword") > bsword) {
558 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_bsword")-bsword) + ' Broadswords';
559 logLostWeapon(Math.max(GM_getValue("weapon_bsword")-bsword) + ' Broadsword');
560 }
561 GM_setValue("weapon_bsword", bsword);
562 armoryBuy = armoryBuy + bsword*25000;
563 armorySell = armorySell + bsword*17500;
564 }
565 if(InStr(stuff,"scrapsell[18]") == true) //Spear
566 {
567 var spear = String(FindText(FindText(stuff,'<td>Spear</td>','/ 10</td>'),">","<")).replace(/,/g, "");
568 if(GM_getValue("weapon_spear") > spear) {
569 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_spear")-spear) + ' Spears';
570 logLostWeapon(Math.max(GM_getValue("weapon_spear")-spear) + ' Spear');
571 }
572 GM_setValue("weapon_spear", spear);
573 armoryBuy = armoryBuy + spear*10000;
574 armorySell = armorySell + spear*7000;
575 }
576 if(InStr(stuff,"scrapsell[5]") == true) //Scimitar
577 {
578 var Scimitar = String(FindText(FindText(stuff,'<td>Scimitar</td>','/ 10</td>'),">","<")).replace(/,/g, "");
579 if(GM_getValue("weapon_Scimitar") > Scimitar) {
580 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Scimitar")-Scimitar) + ' Scimitars';
581 logLostWeapon(Math.max(GM_getValue("weapon_Scimitar")-Scimitar) + ' Scimitar');
582 }
583 GM_setValue("weapon_Scimitar", Scimitar);
584 armoryBuy = armoryBuy + Scimitar*10000;
585 armorySell = armorySell + Scimitar*7000;
586 }
587 if(InStr(stuff,"scrapsell[16]") == true) //Longbow
588 {
589 var Longbow = String(FindText(FindText(stuff,'<td>Longbow</td>','/ 10</td>'),">","<")).replace(/,/g, "");
590 if(GM_getValue("weapon_Longbow") > Longbow) {
591 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Longbow")-Longbow) + ' Longbows';
592 logLostWeapon(Math.max(GM_getValue("weapon_Longbow")-Longbow) + ' Longbow');
593 }
594 GM_setValue("weapon_Longbow", Longbow);
595 armoryBuy = armoryBuy + Longbow*10000;
596 armorySell = armorySell + Longbow*7000;
597 }
598 if(InStr(stuff,"scrapsell[15]") == true) //Lance
599 {
600 var Lance = String(FindText(FindText(stuff,'<td>Lance</td>','/ 10</td>'),">","<")).replace(/,/g, "");
601 if(GM_getValue("weapon_Lance") > Lance) {
602 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Lance")-Lance) + ' Lances';
603 logLostWeapon(Math.max(GM_getValue("weapon_Lance")-Lance) + ' Lance');
604 }
605 GM_setValue("weapon_Lance", Lance);
606 armoryBuy = armoryBuy + Lance*10000;
607 armorySell = armorySell + Lance*7000;
608 }
609 if(InStr(stuff,"scrapsell[17]") == true) //Mace
610 {
611 var Mace = String(FindText(FindText(stuff,'<td>Mace</td>','/ 10</td>'),">","<")).replace(/,/g, "");
612 if(GM_getValue("weapon_Mace") > Mace) {
613 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Mace")-Mace) + ' Maces';
614 logLostWeapon(Math.max(GM_getValue("weapon_Mace")-Mace) + ' Mace');
615 }
616 GM_setValue("weapon_Mace", Mace);
617 armoryBuy = armoryBuy + Mace*10000;
618 armorySell = armorySell + Mace*7000;
619 }
620 if(InStr(stuff,"scrapsell[14]") == true) //Club
621 {
622 var Club = String(FindText(FindText(stuff,'<td>Club</td>','/ 5</td>'),">","<")).replace(/,/g, "");
623 if(GM_getValue("weapon_Club") > Club) {
624 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Club")-Club) + ' Clubs';
625 logLostWeapon(Math.max(GM_getValue("weapon_Club")-Club) + ' Club');
626 }
627 GM_setValue("weapon_Club", Club);
628 armoryBuy = armoryBuy + Club*5000;
629 armorySell = armorySell + Club*3500;
630 }
631 if(InStr(stuff,"scrapsell[12]") == true) //Crossbow
632 {
633 var Crossbow = String(FindText(FindText(stuff,'<td>Crossbow</td>','/ 5</td>'),">","<")).replace(/,/g, "");
634 if(GM_getValue("weapon_Crossbow") > Crossbow) {
635 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Crossbow")-Crossbow) + ' Crossbows';
636 logLostWeapon(Math.max(GM_getValue("weapon_Crossbow")-Crossbow) + ' Crossbow');
637 }
638 GM_setValue("weapon_Crossbow", Crossbow);
639 armoryBuy = armoryBuy + Crossbow*5000;
640 armorySell = armorySell + Crossbow*3500;
641 }
642 if(InStr(stuff,"scrapsell[11]") == true) //Long Sword
643 {
644 var longSword = String(FindText(FindText(stuff,'<td>Long Sword</td>','/ 5</td>'),">","<")).replace(/,/g, "");
645 if(GM_getValue("weapon_longSword") > longSword) {
646 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_longSword")-longSword) + ' Long Swords';
647 logLostWeapon(Math.max(GM_getValue("weapon_longSword")-longSword) + ' longSword');
648 }
649 GM_setValue("weapon_longSword", longSword);
650 armoryBuy = armoryBuy + longSword*5000;
651 armorySell = armorySell + longSword*3500;
652 }
653 if(InStr(stuff,"scrapsell[13]") == true) //Pike
654 {
655 var pike = String(FindText(FindText(stuff,'<td>Pike</td>','/ 5</td>'),">","<")).replace(/,/g, "");
656 if(GM_getValue("weapon_pike") > pike) {
657 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_pike")-Pike) + ' Pikes';
658 logLostWeapon(Math.max(GM_getValue("weapon_pike")-pike) + ' Pike');
659 }
660 GM_setValue("weapon_pike", pike);
661 armoryBuy = armoryBuy + pike*5000;
662 armorySell = armorySell + pike*3500;
663 }
664 if(InStr(stuff,"scrapsell[10]") == true) //Sling
665 {
666 var Sling = String(FindText(FindText(stuff,'<td>Sling</td>','/ 2</td>'),">","<")).replace(/,/g, "");
667 if(GM_getValue("weapon_Sling") > Sling) {
668 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Sling")-Sling) + ' Slings';
669 logLostWeapon(Math.max(GM_getValue("weapon_Sling")-Sling) + ' Sling');
670 }
671 GM_setValue("weapon_Sling", Sling);
672 armoryBuy = armoryBuy + Sling*2000;
673 armorySell = armorySell + Sling*1400;
674 }
675 if(InStr(stuff,"scrapsell[9]") == true) //Hatchet
676 {
677 var Hatchet = String(FindText(FindText(stuff,'<td>Hatchet</td>','/ 2</td>'),">","<")).replace(/,/g, "");
678 if(GM_getValue("weapon_Hatchet") > Hatchet) {
679 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Hatchet")-Hatchet) + ' Hatchets';
680 logLostWeapon(Math.max(GM_getValue("weapon_Hatchet")-Hatchet) + ' Hatchet');
681 }
682 GM_setValue("weapon_Hatchet", Hatchet);
683 armoryBuy = armoryBuy + Hatchet*2000;
684 armorySell = armorySell + Hatchet*1400;
685 }
686 if(InStr(stuff,"scrapsell[8]") == true) //Short Bow
687 {
688 var sBow = String(FindText(FindText(stuff,'<td>Short Bow</td>','/ 2</td>'),">","<")).replace(/,/g, "");
689 if(GM_getValue("weapon_sBow") > sBow) {
690 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_sBow")-sBow) + ' Short Bows';
691 logLostWeapon(Math.max(GM_getValue("weapon_sBow")-sBow) + ' Short Bow');
692 }
693 GM_setValue("weapon_sBow", sBow);
694 armoryBuy = armoryBuy + sBow*2000;
695 armorySell = armorySell + sBow*1400;
696 }
697 if(InStr(stuff,"scrapsell[8]") == true) //Staff
698 {
699 var staff = String(FindText(FindText(stuff,'<td>Staff</td>','/ 2</td>'),">","<")).replace(/,/g, "");
700 if(GM_getValue("weapon_staff") > staff) {
701 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_staff")-staff) + ' Staffs';
702 logLostWeapon(Math.max(GM_getValue("weapon_staff")-staff) + ' Staff');
703 }
704 GM_setValue("weapon_staff", staff);
705 armoryBuy = armoryBuy + staff*2000;
706 armorySell = armorySell + staff*1400;
707 }
708 if(InStr(stuff,"scrapsell[3]") == true) //Knife
709 {
710 var Knife = String(FindText(FindText(stuff,'<td>Knife</td>','/ 1</td>'),">","<")).replace(/,/g, "");
711 if(GM_getValue("weapon_Knife") > Knife) {
712 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Knife")-Knife) + ' Knifes';
713 logLostWeapon(Math.max(GM_getValue("weapon_Knife")-Knife) + ' Knife');
714 }
715 GM_setValue("weapon_Knife", Knife);
716 armoryBuy = armoryBuy + Knife*1000;
717 armorySell = armorySell + Knife*700;
718 }
719 if(InStr(stuff,"scrapsell[50]") == true) //Mist Veil
720 {
721 var mVeil = String(FindText(FindText(stuff,'<td>Mist Veil</td>','/ 64</td>'),">","<")).replace(/,/g, "");
722 if(GM_getValue("weapon_mVeil") > mVeil) {
723 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_mVeil")-mVeil) + ' Mist Veils';
724 logLostWeapon(Math.max(GM_getValue("weapon_mVeil")-mVeil) + ' Mist Veil');
725 }
726 GM_setValue("weapon_mVeil", mVeil);
727 armoryBuy = armoryBuy + mVeil*50000;
728 armorySell = armorySell + mVeil*35000;
729 }
730 if(InStr(stuff,"scrapsell[49]") == true) //Heavy Shield
731 {
732 var hShield = String(FindText(FindText(stuff,'<td>Heavy Shield</td>','/ 64</td>'),">","<")).replace(/,/g, "");
733 if(GM_getValue("weapon_hShield") > hShield) {
734 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_hShield")-hShield) + ' Heavy Shields';
735 logLostWeapon(Math.max(GM_getValue("weapon_hShield")-hShield) + ' Heavy Shield');
736 }
737 GM_setValue("weapon_hShield", hShield);
738 armoryBuy = armoryBuy + hShield*50000;
739 armorySell = armorySell + hShield*35000;
740 }
741 if(InStr(stuff,"scrapsell[48]") == true) //Gauntlets
742 {
743 var gauntlets = String(FindText(FindText(stuff,'<td>Gauntlets</td>','/ 64</td>'),">","<")).replace(/,/g, "");
744 if(GM_getValue("weapon_gauntlets") > gauntlets) {
745 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_gauntlets")-gauntlets) + ' Gauntlets';
746 logLostWeapon(Math.max(GM_getValue("weapon_gauntlets")-gauntlets) + ' Gauntlets');
747 }
748 GM_setValue("weapon_gauntlets", gauntlets);
749 armoryBuy = armoryBuy + gauntlets*50000;
750 armorySell = armorySell + gauntlets*35000;
751 }
752 if(InStr(stuff,"scrapsell[47]") == true) //Elven Cloak
753 {
754 var eCloak = String(FindText(FindText(stuff,'<td>Elven Cloak</td>','/ 64</td>'),">","<")).replace(/,/g, "");
755 if(GM_getValue("weapon_eCloak") > eCloak) {
756 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_eCloak")-eCloak) + ' Elven Cloaks';
757 logLostWeapon(Math.max(GM_getValue("weapon_eCloak")-eCloak) + ' Elven Cloak');
758 }
759 GM_setValue("weapon_eCloak", eCloak);
760 armoryBuy = armoryBuy + eCloak*50000;
761 armorySell = armorySell + eCloak*35000;
762 }
763 if(InStr(stuff,"scrapsell[46]") == true) //Mithril
764 {
765 var mithril = String(FindText(FindText(stuff,'<td>Mithril</td>','/ 64</td>'),">","<")).replace(/,/g, "");
766 if(GM_getValue("weapon_mithril") > mithril) {
767 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_mithril")-mithril) + ' Mithril';
768 logLostWeapon(Math.max(GM_getValue("weapon_mithril")-mithril) + ' Mithril');
769 }
770 GM_setValue("weapon_mithril", mithril);
771 armoryBuy = armoryBuy + mithril*50000;
772 armorySell = armorySell + mithril*35000;
773 }
774 if(InStr(stuff,"scrapsell[45]") == true) //Plate Armor
775 {
776 var pArmor = String(FindText(FindText(stuff,'<td>Plate Armor</td>','/ 30</td>'),">","<")).replace(/,/g, "");
777 if(GM_getValue("weapon_pArmor") > pArmor) {
778 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_pArmor")-pArmor) + ' Plate Armor';
779 logLostWeapon(Math.max(GM_getValue("weapon_pArmor")-pArmor) + ' Plate Armor');
780 }
781 GM_setValue("weapon_pArmor", pArmor);
782 armoryBuy = armoryBuy + pArmor*25000;
783 armorySell = armorySell + pArmor*17500;
784 }
785 if(InStr(stuff,"scrapsell[41]") == true) //Chainmail
786 {
787 var chainmail = String(FindText(FindText(stuff,'<td>Chainmail</td>','/ 10</td>'),">","<")).replace(/,/g, "");
788 if(GM_getValue("weapon_chainmail") > chainmail) {
789 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_chainmail")-chainmail) + ' Chainmail';
790 logLostWeapon(Math.max(GM_getValue("weapon_chainmail")-chainmail) + ' Chainmail');
791 }
792 GM_setValue("weapon_chainmail", chainmail);
793 armoryBuy = armoryBuy + chainmail*10000;
794 armorySell = armorySell + chainmail*7000;
795 }
796 if(InStr(stuff,"scrapsell[38]") == true) //Shield
797 {
798 var Shield = String(FindText(FindText(stuff,'<td>Shield</td>','/ 5</td>'),">","<")).replace(/,/g, "");
799 if(GM_getValue("weapon_Shield") > Shield) {
800 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Shield")-Shield) + ' Shields';
801 logLostWeapon(Math.max(GM_getValue("weapon_Shield")-Shield) + ' Shield');
802 }
803 GM_setValue("weapon_Shield", Shield);
804 armoryBuy = armoryBuy + Shield*5000;
805 armorySell = armorySell + Shield*3500;
806 }
807 if(InStr(stuff,"scrapsell[34]") == true) //Helmet
808 {
809 var Helmet = String(FindText(FindText(stuff,'<td>Helmet</td>','/ 2</td>'),">","<")).replace(/,/g, "");
810 if(GM_getValue("weapon_Helmet") > Helmet) {
811 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Helmet")-Helmet) + ' Helmet';
812 logLostWeapon(Math.max(GM_getValue("weapon_Helmet")-Helmet) + ' Helmet');
813 }
814 GM_setValue("weapon_Helmet", Helmet);
815 armoryBuy = armoryBuy + Helmet*2000;
816 armorySell = armorySell + Helmet*1400;
817 }
818 if(InStr(stuff,"scrapsell[73]") == true) //Skeleton Key
819 {
820 var skelKey = String(FindText(FindText(stuff,'<td>Skeleton Key</td>','<td align="center">600</td>'),">","<")).replace(/,/g, "");
821 if(GM_getValue("weapon_skelKey") > skelKey) {
822 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_skelKey")-skelKey) + 'Skeleton Key';
823 logLostWeapon(Math.max(GM_getValue("weapon_skelKey")-skelKey) + ' Skeleton Keys');
824 }
825 GM_setValue("weapon_skelKey", skelKey);
826 armoryBuy = armoryBuy + skelKey*600000;
827 armorySell = armorySell + skelKey*420000;
828 }
829 if(InStr(stuff,"scrapsell[67]") == true) //Grappling Hook
830 {
831 var grapHook = String(FindText(FindText(stuff,'<td>Grappling Hook</td>','<td align="center">250</td>'),">","<")).replace(/,/g, "");
832 if(GM_getValue("weapon_grapHook") > grapHook) {
833 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_grapHook")-grapHook) + ' Grappling Hooks';
834 logLostWeapon(Math.max(GM_getValue("weapon_grapHook")-grapHook) + ' Grappling Hook');
835 }
836 GM_setValue("weapon_grapHook", grapHook);
837 armoryBuy = armoryBuy + grapHook*250000;
838 armorySell = armorySell + grapHook*175000;
839 }
840 if(InStr(stuff,"scrapsell[65]") == true) //Cloak
841 {
842 var cloak = String(FindText(FindText(stuff,'<td>Cloak</td>','<td align="center">140</td>'),">","<")).replace(/,/g, "");
843 if(GM_getValue("weapon_cloak") > cloak) {
844 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_cloak")-cloak) + ' Cloaks';
845 logLostWeapon(Math.max(GM_getValue("weapon_cloak")-cloak) + ' Cloak');
846 }
847 GM_setValue("weapon_cloak", cloak);
848 armoryBuy = armoryBuy + cloak*140000;
849 armorySell = armorySell + cloak*98000;
850 }
851 if(InStr(stuff,"scrapsell[63]") == true) //Dirk
852 {
853 var Dirk = String(FindText(FindText(stuff,'<td>Dirk</td>','<td align="center">75</td>'),">","<")).replace(/,/g, "");
854 if(GM_getValue("weapon_Dirk") > Dirk) {
855 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Dirk")-Dirk) + ' Dirks';
856 logLostWeapon(Math.max(GM_getValue("weapon_Dirk")-Dirk) + ' Dirk');
857 }
858 GM_setValue("weapon_Dirk", Dirk);
859 armoryBuy = armoryBuy + Dirk*75000;
860 armorySell = armorySell + Dirk*52500;
861 }
862 if(InStr(stuff,"scrapsell[58]") == true) //Rope
863 {
864 var Rope = String(FindText(FindText(stuff,'<td>Rope</td>','<td align="center">40</td>'),">","<")).replace(/,/g, "");
865 if(GM_getValue("weapon_Rope") > Rope) {
866 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_Rope")-Rope) + ' Ropes';
867 logLostWeapon(Math.max(GM_getValue("weapon_Rope")-Rope) + ' Rope');
868 }
869 GM_setValue("weapon_Rope", Rope);
870 armoryBuy = armoryBuy + Rope*40000;
871 armorySell = armorySell + Rope*28000;
872 }
873 if(InStr(stuff,"scrapsell[68]") == true) //Guard Dog
874 {
875 var gDog = String(FindText(FindText(stuff,'<td>Guard Dog</td>','<td align="center">250</td>'),">","<")).replace(/,/g, "");
876 if(GM_getValue("weapon_gDog") > gDog) {
877 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_gDog")-gDog) + ' Guard Dogs';
878 logLostWeapon(Math.max(GM_getValue("weapon_gDog")-gDog) + ' Guard Dog');
879 }
880 GM_setValue("weapon_gDog", gDog);
881 armoryBuy = armoryBuy + gDog*250000;
882 armorySell = armorySell + gDog*28000;
883 }
884 if(InStr(stuff,"scrapsell[66]") == true) //Tripwire
885 {
886 var tWire = String(FindText(FindText(stuff,'<td>Tripwire</td>','<td align="center">140</td>'),">","<")).replace(/,/g, "");
887 if(GM_getValue("weapon_tWire") > tWire) {
888 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_tWire")-tWire) + ' Tripwires';
889 logLostWeapon(Math.max(GM_getValue("weapon_tWire")-tWire) + ' Tripwire');
890 }
891 GM_setValue("weapon_tWire", tWire);
892 armoryBuy = armoryBuy + tWire*140000;
893 armorySell = armorySell + tWire*98000;
894 }
895 if(InStr(stuff,"scrapsell[64]") == true) //Horn
896 {
897 var horn = String(FindText(FindText(stuff,'<td>Horn</td>','<td align="center">75</td>'),">","<")).replace(/,/g, "");
898 if(GM_getValue("weapon_horn") > horn) {
899 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_horn")-horn) + ' Horns';
900 logLostWeapon(Math.max(GM_getValue("weapon_horn")-horn) + ' Horn');
901 }
902 GM_setValue("weapon_horn", horn);
903 armoryBuy = armoryBuy + horn*75000;
904 armorySell = armorySell + horn*52500;
905 }
906 if(InStr(stuff,"scrapsell[62]") == true) //Big Candle
907 {
908 var bCandle = String(FindText(FindText(stuff,'<td>Big Candle</td>','<td align="center">40</td>'),">","<")).replace(/,/g, "");
909 if(GM_getValue("weapon_bCandle") > bCandle) {
910 str = str + "\nYou're missing " + Math.max(GM_getValue("weapon_bCandle")-bCandle) + ' Big Candles';
911 logLostWeapon(Math.max(GM_getValue("weapon_bCandle")-bCandle) + ' Big Candle');
912 }
913 GM_setValue("weapon_bCandle", bCandle);
914 armoryBuy = armoryBuy + bCandle*40000;
915 armorySell = armorySell + bCandle*28000;
916 }
917
918
919 if(!isNaN(LT)) {
920 LTPercentSell = Math.floor((LT*700000)/armorySell*100) + '% (' + addCommas(Math.floor(LT*700000)) + ')';
921 LTPercentBuy = Math.floor((LT*1000000)/armoryBuy*100) + '% (' + addCommas(Math.floor(LT*1000000)) + ')';
922 }
923 if(!isNaN(NUN)) {
924 NUNPercentSell = Math.floor((NUN*700000)/armorySell*100) + '% (' + addCommas(Math.floor(NUN*700000)) + ')';
925 NUNPercentBuy = Math.floor((NUN*1000000)/armoryBuy*100) + '% (' + addCommas(Math.floor(NUN*1000000)) + ')';
926 }
927 if(!isNaN(IS)) {
928 ISPercentSell = Math.floor((IS*700000)/armorySell*100) + '% (' + addCommas(Math.floor(IS*700000)) + ')';
929 ISPercentBuy = Math.floor((IS*1000000)/armoryBuy*100) + '% (' + addCommas(Math.floor(IS*1000000)) + ')';
930 }
931 if(!isNaN(BPM)) {
932 BPMPercentSell = Math.floor((BPM*700000)/armorySell*100) + '% (' + addCommas(Math.floor(BPM*700000)) + ')';
933 BPMPercentBuy = Math.floor((BPM*1000000)/armoryBuy*100) + '% (' + addCommas(Math.floor(BPM*1000000)) + ')';
934 }
935 if(!isNaN(CH)) {
936 CHPercentSell = Math.floor((CH*315000)/armorySell*100) + '% (' + addCommas(Math.floor(CH*315000)) + ')';
937 CHPercentBuy = Math.floor((CH*450000)/armoryBuy*100) + '% (' + addCommas(Math.floor(CH*450000)) + ')';
938 }
939 if(!isNaN(DS)) {
940 SkinPercentSell = Math.floor((DS*140000)/armorySell*100) + '% (' + addCommas(Math.floor(DS*140000)) + ')';
941 SkinPercentBuy = Math.floor((DS*200000)/armoryBuy*100) + '% (' + addCommas(Math.floor(DS*200000)) + ')';
942 }
943 if(!isNaN(skelKey)) {
944 skelKeyPercentSell = Math.floor((skelKey*420000)/armorySell*100) + '% (' + addCommas(Math.floor(skelKey*420000)) + ')';
945 skelKeyPercentBuy = Math.floor((skelKey*600000)/armoryBuy*100) + '% (' + addCommas(Math.floor(skelKey*600000)) + ')';
946 }
947 if(str.length > 2){
948 var newlink = document.createElement('div');
949 newlink.innerHTML = '<b>' + str + '<br>';
950 document.body.insertBefore(newlink, document.body.firstChild);
951 }
952
953 var b_aat = Math.floor(armoryBuy / 1000000 / 400);//sa
954 var i_aat = Math.floor(armoryBuy / 1000000 / 400);//da
955 var n_aat = Math.floor(armoryBuy / 1000000 / 400);//spy
956 var l_aat = Math.floor(armoryBuy / 1000000 / 400);//sentry
957
958 var ds_aat = Math.floor(armoryBuy / 200000 / 400);//da
959 var ch_aat = Math.floor(armoryBuy / 450000 / 400);//sa
960 var k_aat = Math.floor(armoryBuy / 600000 / 400);//spy
961 var gd_aat = Math.floor(armoryBuy / 250000 / 400);//sentry
962
963 var gh_aat = Math.floor(armoryBuy / 250000 / 400);//spy
964 var t_aat = Math.floor(armoryBuy / 140000 / 400);//sentry
965 var fa_aat = Math.floor(armoryBuy / 200000 / 400);//sa
966 var ec_aat = Math.floor(armoryBuy / 50000 / 400);//da
967
968 var q = document.getElementsByTagName('table');
969 //var tr = q.document.getElementsByTagName('content');
970 var stuff = document.body.innerHTML;
971 var totalAttackWeapons = 0;
972 var totalDefenseWeapons = 0;
973 var totalSpyTools = 0;
974 var totalSentryTools = 0;
975 var total_attack = 0 ;
976 var attack_soldiers = 0 ;
977 var attack_mercs = 0 ;
978 var weapons = [];
979 var weaponstable;
980 var toolstable;
981 var attack_unheld = "";
982 var defense_unheld = "";
983 var spy_unheld = "";
984 var sentry_unheld = "";
985 //jNode (".table_lines", parsePersonnelTable);
986 //var armyinfo = findtext("Personnel");
987 //var armyRow = data.getRow('Total Fighting Force', armyinfo);
988 //var army = parseInt(Number(armyRow.cells[1].innerHTML.split(',').join('')));
989
990 //var total_defense = parseInt(defense_soldiers + defense_mercs);
991 //var attack_unheld = parseInt(armory.attack_weapons - total_attack);
992 //var defense_unheld = parseInt(armory.defense_weapons - total_defense);
993 //var spy_unheld = parseInt(armory.spy_tools - spys);
994 //var sentry_unheld = parseInt(armory.sentry_tools - sentrys);
995 var i;
996
997 //var obj = $('#table tbody tr').map(function() {
998
999
1000 //unhelds
1001
1002 var Username=GM_getValue("Koc_User");
1003
1004
1005
1006 for(i = 0; i < q.length; i++) {
1007 if(q[i].innerHTML.match("Current Weapon Inventory")) {
1008 weaponstable = q[i];
1009 //$("table.table_lines:eq(0)>tbody>tr:eq(0)>th").append(" (Total Sell Off Value: "+ addCommas(sellVal)+" Gold)");
1010 //var AttackW = FindText(stuff, '<th class="subh" align="left">','</th>');
1011
1012
1013 }
1014 if(q[i].innerHTML.match("Current Tool Inventory")) {
1015 toolstable = q[i];
1016
1017 }
1018 }
1019
1020 /*Attack weapons = excal hsteed bsword Lance longSword staff Knife stick BPM CH sBow Crossbow Longbow stbow steed arrow
1021
1022 Defense Weapons = IS DS mithril pArmor chainmail Shield Helmet eCloak
1023
1024 Spy tools = NUN skelKey grapHook cloak Dirk Rope
1025
1026 Sentry Weapons = LT gDog tWire horn bCandle
1027 *///compliments from Obviously.
1028
1029 var attack_soldiers = String(FindText(FindText(stuff, '<b>Trained Attack Soldiers</b>','</tr>'),'<td align="right">','</td>')).replace(/,/g, "");
1030 var attack_mercs = String(FindText(FindText(stuff, '<b>Trained Attack Mercenaries</b>','</tr>'),'<td align="right">','</td>')).replace(/,/g, "");
1031 var defense_soldiers = String(FindText(FindText(stuff, '<b>Trained Defense Soldiers</b>','</tr>'),'<td align="right">','</td>')).replace(/,/g, "");
1032 var defense_mercs = String(FindText(FindText(stuff, '<b>Trained Defense Mercenaries</b>','</tr>'),'<td align="right">','</td>')).replace(/,/g, "");
1033 var untrained_soldiers = String(FindText(FindText(stuff, '<b>Untrained Soldiers</b>','</tr>'),'<td align="right">','</td>')).replace(/,/g, "");
1034 var untrained_mercs = String(FindText(FindText(stuff, '<b>Untrained Mercenaries</b>','</tr>'),'<td align="right">','</td>')).replace(/,/g, "");
1035 var spies = String(FindText(FindText(stuff, '<b>Spies</b>','</tr>'),'<td class="subh" align="right">','</td>')).replace(/,/g, "");
1036 var sentrys = String(FindText(FindText(stuff, '<b>Sentries</b>','</tr>'),'<td class="subh" align="right">','</td>')).replace(/,/g, "");
1037
1038 var attack_soldiers_INT = parseInt(attack_soldiers);
1039 var attack_mercs_INT = parseInt(attack_mercs);
1040 var defense_soldiers_INT = parseInt(defense_soldiers);
1041 var defense_mercs_INT = parseInt(defense_mercs);
1042 var untrained_soldiers_INT = parseInt(untrained_soldiers);
1043 var untrained_mercs_INT = parseInt(untrained_mercs);
1044 var spies_INT = parseInt(spies);
1045 var sentrys_INT = parseInt(sentrys);
1046
1047 //Strike weapons for parseInt
1048 if(InStr(stuff,"Blackpowder Missile") == true){
1049 BPM_INT = parseInt(BPM);
1050 } else {
1051 BPM_INT = "";
1052 }
1053
1054 if(InStr(stuff,"Chariot") == true){
1055 CH_INT = parseInt(CH);
1056 } else {
1057 CH_INT = '';
1058 }
1059
1060 if(InStr(stuff,"Broken Stick") == true){
1061 stick_INT = parseInt(stick);
1062 } else {
1063 stick_INT = '';
1064 }
1065
1066 if(InStr(stuff,"Excalibur") == true){
1067 excal_INT = parseInt(excal);
1068 } else {
1069 excal_INT = '';
1070 }
1071
1072
1073
1074 //var attack_wpns = parseInt(CH_INT+BPM_INT+stick_INT+excal_INT+hsteed_INT+bsword_INT+Lance_INT+longSword_INT+staff_INT+Knife_INT+sBow_INT+Crossbow_INT+Longbow_INT+stbow_INT+steed_INT+arrow_INT);
1075 var attack_wpns = parseInt(CH_INT+stick_INT+BPM_INT);
1076 //alert(attack_wpns);
1077 var total_attack = parseInt(attack_soldiers_INT+attack_mercs_INT+untrained_soldiers_INT+untrained_mercs_INT);
1078 var attack_unheld = parseInt(total_attack - attack_wpns);
1079 /* if(attack_wpns < total_attack){
1080 var attack_unheld = 0;
1081 } */
1082 attack_unheld = (attack_unheld < 1) ? 0 : attack_unheld;
1083
1084 //Defense weapons for parseInt
1085 if(InStr(stuff,"Invisibility Shield") == true){
1086 IS_INT = parseInt(IS);
1087 } else {
1088 IS_INT = '';
1089 }
1090
1091 if(InStr(stuff,"Dragonskin") == true){
1092 DS_INT = parseInt(DS);
1093 } else {
1094 DS_INT = '';
1095 }
1096
1097 //var defense_wpns = parseInt(IS_INT + DS_INT + mithril_INT + pArmor_INT + chainmail_INT + Shield_INT + Helmet_INT + eCloak_INT);//weapons
1098 var defense_wpns = parseInt(IS_INT + DS_INT)
1099 //alert(defense_wpns);
1100 var total_defense = parseInt(defense_soldiers_INT+defense_mercs_INT+untrained_soldiers_INT+untrained_mercs_INT);//soldiers
1101 //alert(total_defense);
1102 var defense_unheld = parseInt(total_defense - defense_wpns);
1103 //alert(defense_unheld);
1104 /* if(defense_wpns < total_defense){
1105 var defense_unheld = 0;
1106 } */
1107 defense_unheld = (defense_unheld < 1) ? 0 : defense_unheld;
1108
1109
1110 if(InStr(stuff,"Nunchaku") == true){
1111 NUN_INT = parseInt(NUN);
1112 } else {
1113 NUN_INT = '';
1114 }
1115
1116 if(InStr(stuff,"Skeleton Key") == true){
1117 skelKey_INT = parseInt(skelKey);
1118 } else {
1119 skelKey_INT = '';
1120 }
1121 var spy_tls = parseInt(NUN_INT+skelKey_INT);
1122 var total_spy = parseInt(spies_INT);
1123 var spy_unheld = parseInt(total_spy - spy_tls);
1124 //alert(spy_unheld);
1125 /* if(spy_tls < total_spy){
1126 var defense_unheld = 0;
1127 } */
1128 spy_unheld = (spy_unheld < 1) ? 0 : spy_unheld;
1129
1130 if(InStr(stuff,"Lookout Tower") == true){
1131 LT_INT = parseInt(LT);
1132 } else {
1133 LT_INT = '';
1134 }
1135
1136 if(InStr(stuff,"Guard Dog") == true){
1137 gDog_INT = parseInt(gDog);
1138 } else {
1139 gDog_INT = '';
1140 }
1141 var sentry_tls = parseInt(LT_INT+gDog_INT);
1142 var total_sentry = parseInt(sentrys_INT);
1143 var sentry_unheld = parseInt(total_sentry - sentry_tls);
1144 /* if(sentry_tls < total_sentry){
1145 var defense_unheld = 0;
1146 } */
1147 sentry_unheld = (sentry_unheld < 1) ? 0 : sentry_unheld;
1148
1149
1150
1151 /* defense_unheld = (defense_unheld < 1) ? 0 : defense_unheld;
1152 spy_unheld = (spy_unheld < 1) ? 0 : spy_unheld;
1153 sentry_unheld = (sentry_unheld < 1) ? 0 : sentry_unheld; */
1154
1155 for (i = 0; i < weaponstable.rows.length; i++)
1156 {
1157 //if (weaponstable.rows[i].cells[0].split('<td align="right">');
1158 if (weaponstable.rows[i].cells[0].innerHTML == "Attack Weapons") weaponstable.rows[i].cells[0].innerHTML += ' [' + addCommas(attack_unheld) + ' Weaponless Soldiers]';
1159 if (weaponstable.rows[i].cells[0].innerHTML == "Blackpowder Missile") weaponstable.rows[i].cells[0].innerHTML += ' [' + addCommas(b_aat) + ' AAT]';
1160 if (weaponstable.rows[i].cells[0].innerHTML == "Chariot") weaponstable.rows[i].cells[0].innerHTML += ' [' + addCommas(ch_aat) + ' AAT]';
1161 if (weaponstable.rows[i].cells[0].innerHTML == "Defense Weapons") weaponstable.rows[i].cells[0].innerHTML += ' [' + addCommas(defense_unheld) + ' Weaponless Soldiers]';
1162
1163 if (weaponstable.rows[i].cells[0].innerHTML == "Flaming Arrow") weaponstable.rows[i].cells[0].innerHTML += ' [' + addCommas(fa_aat) + ' AAT]';
1164 if (weaponstable.rows[i].cells[0].innerHTML == "Invisibility Shield") weaponstable.rows[i].cells[0].innerHTML += ' [' + addCommas(i_aat) + ' AAT]';
1165 if (weaponstable.rows[i].cells[0].innerHTML == "Dragonskin") weaponstable.rows[i].cells[0].innerHTML += ' [' + addCommas(ds_aat) + ' AAT]';
1166 if (weaponstable.rows[i].cells[0].innerHTML == "Elven Cloak") weaponstable.rows[i].cells[0].innerHTML += ' [' + addCommas(ec_aat) + ' AAT]';
1167 //alert(weaponstable.rows[i].cells[2].innerHTML);
1168 }
1169 for (i = 0; i < toolstable.rows.length; i++) {
1170 if (toolstable.rows[i].cells[0].innerHTML == "Spy Tools") toolstable.rows[i].cells[0].innerHTML += ' [' + addCommas(spy_unheld) + ' Weaponless Soldiers]';
1171
1172 if (toolstable.rows[i].cells[0].innerHTML == "Nunchaku") toolstable.rows[i].cells[0].innerHTML += ' [' + addCommas(n_aat) + ' AAT]';
1173 if (toolstable.rows[i].cells[0].innerHTML == "Skeleton Key") toolstable.rows[i].cells[0].innerHTML += ' [' + addCommas(k_aat) + ' AAT]';
1174 if (toolstable.rows[i].cells[0].innerHTML == "Grappling Hook") toolstable.rows[i].cells[0].innerHTML += ' [' + addCommas(gh_aat) + ' AAT]';
1175 if (toolstable.rows[i].cells[0].innerHTML == "Sentry Tools") toolstable.rows[i].cells[0].innerHTML += ' [' + addCommas(sentry_unheld) + ' Weaponless Soldiers]';
1176
1177 if (toolstable.rows[i].cells[0].innerHTML == "Lookout Tower") toolstable.rows[i].cells[0].innerHTML += ' [' + addCommas(l_aat) + ' AAT]';
1178 if (toolstable.rows[i].cells[0].innerHTML == "Guard Dog") toolstable.rows[i].cells[0].innerHTML += ' [' + addCommas(gd_aat) + ' AAT]';
1179 if (toolstable.rows[i].cells[0].innerHTML == "Tripwire") toolstable.rows[i].cells[0].innerHTML += ' [' + addCommas(t_aat) + ' AAT]';
1180
1181 }
1182 //toolstable.insertRow(-1).cells[0].innerHTML = "<td colspan=5></td>";
1183 //toolstable.insertRow(-1).cells[0].innerHTML = "<td colspan=5 align=center style='background-color:#003333; border-bottom:0'><strong>Your sell value: " + AddCommas(armorySell.toString()) + " Gold</strong></td>";
1184 //var tt;
1185 //tt = "<td colspan=5></td>";
1186 //tt += "<td colspan=5 align=center style='background-color:#003333; border-bottom:0'><strong>Your sell value: " + AddCommas(armorySell.toString()) + " Gold</strong></td>";
1187 //document.getElementsByName('toolstable')[cID].innerHTML = document.getElementsByName('toolstable')[cID].innerHTML + tt;
1188
1189 var cID = getClassIndex('table_lines','Armory Autofill Preferences');
1190 if(!String(cID).match('undefined')){
1191 var myFort = FindText(FindText(stuff,'Current Fortification','<td align="center">'),'<td>','</td>').split(" (")[0]
1192 var mySiege = FindText(FindText(stuff,'Current Siege Technolog','<td align="center">'),'<td>','</td>').split(" (")[0]
1193 //alert(myFort);
1194 var upgradeMsgDA = '';
1195 var upgradeMsgSA = '';
1196 FortArray = FortList(myFort).split('|');
1197 SiegeArray = SiegeList(mySiege).split('|');
1198 if((!isNaN(BPM)) && (!isNaN(CH))) {
1199 if(SiegeArray[1] != 'Max') // We have some upgrades left.
1200 {
1201 var currentSA = (((BPM*SiegeArray[0])*1000)*5)*saBonus + (((CH*SiegeArray[0])*600)*5)*saBonus; // Forumla is correct.
1202 var sellBPM = Math.ceil(removeComma(SiegeArray[2]) / 700000);
1203 var sellCH = Math.ceil(removeComma(SiegeArray[2]) / 315000);
1204 var newBPM = BPM-sellBPM; //New amount of BPM after selling for upgrade.
1205 var newCH = CH-sellCH;
1206 var newSA = (((newBPM*SiegeArray[3])*1000)*5)*saBonus + (((CH*SiegeArray[3])*600)*5)*saBonus;
1207 var newSACH = (((newCH*SiegeArray[3])*600)*5)*saBonus + (((BPM*SiegeArray[3])*1000)*5)*saBonus
1208 if(currentSA < newSA)
1209 {
1210 if(sellBPM < BPM) {
1211 upgradeMsgSA += "Sell " + sellBPM + " BPMs and buy " + SiegeArray[1];
1212 upgradeMsgSA += "\nYou'll gain " + addCommas(Math.round(newSA-currentSA)) + " SA...";
1213 } else {
1214 upgradeMsgSA += 'Its not profitable to buy ' + SiegeArray[1] + ' yet';
1215 }
1216 if(currentSA < newSACH)
1217 {
1218 if(sellCH < CH){
1219 upgradeMsgSA += "<br>OR: Sell " + sellCH + " Chariots and buy " + SiegeArray[1];
1220 upgradeMsgSA += "\nYou'll gain " + addCommas(Math.round(newSACH-currentSA)) + " SA...";
1221 } else {
1222 upgradeMsgSA += 'Its not profitable to buy ' + SiegeArray[1] + ' yet';
1223 }
1224 }
1225 } else {
1226 if(currentSA < newSACH) {
1227 if(sellCH < CH){
1228 upgradeMsgSA += "<br>OR: Sell " + sellCH + " Chariots and buy " + SiegeArray[1];
1229 upgradeMsgSA += "\nYou'll gain " + addCommas(Math.round(newSACH-currentSA)) + " SA...";
1230 }
1231 } else {
1232 upgradeMsgSA = 'Its not profitable to buy ' + SiegeArray[1];
1233 }
1234 }
1235 } else {
1236 upgradeMsgSA = 'Already got all sa upgrades.';
1237 }
1238 } else {
1239 upgradeMsgSA = "Couldn't detect your BPM [or] Chariot count";
1240 }
1241 if((!isNaN(IS)) && (!isNaN(DS))) {
1242 if(FortArray[1] != 'Max') // We have some upgrades left.
1243 {
1244 var currentDA = ((((IS*FortArray[0])*1000)*5)*daBonus + (((DS*FortArray[0])*256)*5)*daBonus); // Forumla is correct.
1245 var sellIS = Math.ceil(removeComma(FortArray[2]) / 700000);
1246 var sellDS = Math.ceil(removeComma(FortArray[2]) / 140000);
1247 var newIS = IS-sellIS; //New amount ofIS after selling for upgrade.
1248 var newDS = DS-sellDS; //New amount of DS after selling for upgrade.
1249 var newDA = ((((newIS*FortArray[3])*1000)*5)*daBonus + (((DS*FortArray[3])*256)*5)*daBonus); // Forumla is correct.
1250 var newDADS = ((((newDS*FortArray[3])*256)*5)*daBonus + (((IS*FortArray[3])*1000)*5)*daBonus); // Forumla is correct.
1251 if(currentDA < newDA)
1252 {
1253 if(sellIS < IS) {
1254 upgradeMsgDA += "Sell " + sellIS + " ISs and buy " + FortArray[1];
1255 upgradeMsgDA += "\nYou'll gain " + addCommas(Math.round(newDA-currentDA)) + " DA...";
1256 } else {
1257 upgradeMsgDA += 'Its not profitable to buy ' + FortArray[1] + ' yet';
1258 }
1259 if(currentDA < newDADS)
1260 {
1261 if(sellDS < DS){
1262 upgradeMsgDA += "<br>OR: Sell " + sellDS + " DSs and buy " + FortArray[1];
1263 upgradeMsgDA += "\nYou'll gain " + addCommas(Math.round(newDADS-currentDA)) + " DA...";
1264 } else {
1265 upgradeMsgDA += 'Its not profitable to buy ' + FortArray[1] + ' yet';
1266 }
1267 }
1268 } else {
1269 if(currentDA < newDADS)
1270 {
1271 if(sellDS < DS){
1272 upgradeMsgDA += "<br>OR: Sell " + sellDS + " DSs and buy " + FortArray[1];
1273 upgradeMsgDA += "\nYou'll gain " + addCommas(Math.round(newDADS-currentDA)) + " DA...";
1274 }
1275 } else {
1276 upgradeMsgDA = 'Its not profitable to buy ' + FortArray[1];
1277 }
1278 }
1279 } else {
1280 upgradeMsgDA = 'Already got all da upgrades.';
1281 }
1282 } else {
1283 upgradeMsgDA = "Couldn't detect your IS [or] DS count";
1284 }
1285
1286 var b;
1287 b = '<tbody>';
1288 b += ' <tr>';
1289 b += ' <th colspan="3" width="100%">Upgrade Suggestions</th>';
1290 b += ' </tr>';
1291 b += ' <tr>';
1292 b += ' <td width="10%"><b>Siege </b></td>';
1293 b += ' <td width="1%"> </td>';
1294 b += ' <td width="89%">' + upgradeMsgSA + '</td>';
1295 b += ' </tr>';
1296 b += ' <tr>';
1297 b += ' <td width="10%"><b>Fortification</b></td>';
1298 b += ' <td width="1%"> </td>';
1299 b += ' <td width="89%">' + upgradeMsgDA + '</td>';
1300 b += ' </tr>';
1301 b += ' <tr>';
1302 b += ' <td width="10%" </td>';
1303 b += ' <td width="1%"> </td>';
1304 b += ' <td width="89%"> </td>';
1305 b += ' </tr>';
1306 b += '</tbody>';
1307 b += '<tbody>';
1308 b += ' <tr>';
1309 b += ' <th colspan="3" width="100%">Lost weapon log</th>';
1310 b += ' </tr>';
1311 var i = 1;
1312
1313 while(GM_getValue("logSab_" + i,"") != "") {
1314 b += ' <tr>';
1315 b += ' <td width="10%"><b>' + GM_getValue("logSab_" + i,"").split("|")[0] + ' </b></td>';
1316 b += ' <td width="1%"> </td>';
1317 b += ' <td width="89%">' + ConvertTime(GM_getValue("logSab_" + i,"").split("|")[1]) + '</td>';
1318 b += ' </tr>';
1319 i++;
1320 }
1321 b += '</tbody>';
1322
1323 document.getElementsByClassName('table_lines')[cID].innerHTML = document.getElementsByClassName('table_lines')[cID].innerHTML + b;
1324 }
1325 var cID = getClassIndex('table_lines','Military Effectiveness');
1326 if(!String(cID).match('undefined')){
1327 //hackman stats change +/-
1328 var Strike = rmCommas(FindText(FindText(stuff,"<td><b>Strike Action</b></td","/td>"),'<td align="right">','<'));
1329 var Defence = rmCommas(FindText(FindText(stuff,"<td><b>Defensive Action</b></td","/td>"),'<td align="right">','<'));
1330 var TheSpy = rmCommas(FindText(FindText(stuff,"<td><b>Spy Rating</b></td","/td>"),'<td align="right">','<'));
1331 var TheSentry = rmCommas(FindText(FindText(stuff,"<td><b>Sentry Rating</b></td","/td>"),'<td align="right">','<'));
1332 var difStrike=0;
1333 var difDefence=0;
1334 var difTheSpy=0;
1335 var difTheSentry=0;
1336 var difcolor;
1337 if (GM_getValue('userSA','') != '') {
1338 difStrike = Number(Strike) - Number(GM_getValue('userSA'));
1339 difDefence = Number(Defence) - Number(GM_getValue('userDA'));
1340 difTheSpy = Number(TheSpy) - Number(GM_getValue('userSPY'));
1341 difTheSentry = Number(TheSentry) - Number(GM_getValue('userSENTRY'));
1342 }
1343 GM_setValue('userSA',Strike);
1344 GM_setValue('userDA',Defence);
1345 GM_setValue('userSPY',TheSpy);
1346 GM_setValue('userSENTRY',TheSentry);
1347 var cidrows = document.getElementsByClassName('table_lines')[cID].getElementsByTagName('tr');
1348 cidrows[0].cells[0].setAttribute('colspan','4');
1349 difStrike<0 ? difcolor = 'red">' : difcolor = 'green">+';
1350 cidrows[1].insertCell(2).innerHTML = '<font color="'+difcolor+addCommas(difStrike)+'</font>';
1351 difDefence<0 ? difcolor = 'red">' : difcolor = 'green">+';
1352 cidrows[2].insertCell(2).innerHTML = '<font color="'+difcolor+addCommas(difDefence)+'</font>';
1353 difTheSpy<0 ? difcolor = 'red">' : difcolor = 'green">+';
1354 cidrows[3].insertCell(2).innerHTML = '<font color="'+difcolor+addCommas(difTheSpy)+'</font>';
1355 difTheSentry<0 ? difcolor = 'red">' : difcolor = 'green">+';
1356 cidrows[4].insertCell(2).innerHTML = '<font color="'+difcolor+addCommas(difTheSentry)+'</font>';
1357 //hackman stats changes +/-
1358 document.getElementsByClassName('table_lines')[cID].innerHTML = document.getElementsByClassName('table_lines')[cID].innerHTML.replace("Military Effectiveness","Military Effectiveness <div id=showstats>[Stats History]</div>");
1359 //document.addEventListener('click', function(event) {}
1360 }
1361 var cID = getClassIndex('table_lines','Lost weapon log');
1362 if(!String(cID).match('undefined')){
1363 document.getElementsByClassName('table_lines')[cID].innerHTML = document.getElementsByClassName('table_lines')[cID].innerHTML.replace("Lost weapon log","Lost weapon log <div id=ClearLostLog >[Clear]</div>");
1364 //document.getElementById('ClearLostLog').addEventListener('click', ClearLostLog, false);
1365 }
1366 //toolstable.Row(1).cells[0].innerHTML = "<td colspan=5></td>";
1367 //toolstable.Row(1).cells[0].innerHTML = "<td colspan=5 align=center style='background-color:#003333; border-bottom:0'><strong>Your sell value: " + AddCommas(armorySell.toString()) + " Gold</strong></td>";
1368 $("table.table_lines:eq(0)>tbody>tr:eq(0)>th").append(" (Total Sell Off Value: "+ addCommas(armorySell)+" Gold)");
1369
1370 DisplayMessage2("Your invested value: " + addCommas(armoryBuy) + "<br> Your sell value: " + addCommas(armorySell) + '<br>(Click for more info)');
1371 document.addEventListener('click', function(event) {
1372 if(event.target.id == 'GM_Message2')
1373 {
1374 var nMsg = "Your invested value: " + addCommas(armoryBuy) + "<br> Your sell value: " + addCommas(armorySell) + "<br>"+
1375 "<br>"+
1376 "Invested<br>"+
1377 "BPM: " + BPMPercentBuy + '<br>'+
1378 "Chariots: " + CHPercentBuy + '<br>'+
1379 "IS: " + ISPercentBuy + '<br>'+
1380 "Skins: " + SkinPercentBuy + '<br>'+
1381 "NUN: " + NUNPercentBuy + '<br>'+
1382 "KEYS: " + skelKeyPercentBuy + '<br>'+
1383 "LT: " + LTPercentBuy + '<br>'+
1384 "<br>Sell:<br>"+
1385 "BPM: " + BPMPercentSell + '<br>'+
1386 "Chariots: " + CHPercentSell + '<br>'+
1387 "IS: " + ISPercentSell + '<br>'+
1388 "Skins: " + SkinPercentSell + '<br>'+
1389 "NUN: " + NUNPercentSell + '<br>'+
1390 "KEYS: " + skelKeyPercentSell + '<br>'+
1391 "LT: " + LTPercentSell + '<br>'+
1392 "<br>Press Esc to close<br>";
1393 DisplayMessage2(nMsg);
1394 document.addEventListener("keyup", function(e){
1395 if(e.keyCode == 27) DisplayMessage2("Your invested value: " + addCommas(armoryBuy) + "<br> Your sell value: " + addCommas(armorySell) + '<br>(Click for more info)');
1396 });
1397 } else if(event.target.id == 'showstats') {
1398 //console.log("updating stats");
1399 var Username=GM_getValue("Koc_User");
1400
1401 ReturnRequest('DisplayOldStats.php?name=' + Username,0,function(responseText){
1402 DisplayMessage3(responseText);
1403
1404
1405 //DisplayMessage3('Close');
1406 });
1407 } else if(event.target.id == 'ClearLostLog') {
1408
1409 for(var i = 0; i < 10; i++) {
1410 GM_setValue("logSab_" + i,"");
1411
1412 console.log("clrd");
1413 window.location = "armory.php";
1414 }
1415 }
1416 }, true);
1417
1418 gold = gold.replace(/\n/g, '');
1419 gold = gold.replace(/\t/g, '');
1420 gold = gold.replace(/,/g, '');
1421 gold = gold.replace('M', '000000');
1422 gold = parseInt(gold);
1423 list = document.body.innerHTML.match(/<td align="right">[\d,]+ Gold<\/td>/g);
1424 for (i = 0; i < list.length; i++)
1425 {
1426 list[i] = list[i].replace('<td align="right">', '');
1427 list[i] = list[i].replace(' Gold</td>', '');
1428 list[i] = list[i].replace(/,/g, ''); list[i] = parseInt(list[i]);
1429 } var elems = document.getElementsByTagName('input');
1430 for (i = 0; i < elems.length; i++)
1431 {
1432 if (elems[i].name.match(/buy_weapon.*/g)) {
1433 fields.push(elems[i]);
1434 var name = elems[i].name.match(/buy_weapon.*/g)[0];
1435 name = name.replace('buy_weapon[', '');
1436 name = name.replace(']', '');
1437 var input = document.createElement('input');
1438 input.id = '_' + name;
1439 input.type = 'submit';
1440 buttons.push(input);
1441 var cell = document.createElement('td');
1442 cell.appendChild(input);
1443 elems[i].parentNode.parentNode.appendChild(cell);
1444 }
1445 }
1446 updateButtons();
1447
1448 document.addEventListener('click', function(event)
1449 {
1450 if (event.target.name == "buybut") {
1451 var Username=GM_getValue("Koc_User");
1452 var Strike = FindText(FindText(stuff,"<td><b>Strike Action</b></td","/td>"),'<td align="right">','<');
1453 var Defence = FindText(FindText(stuff,"<td><b>Defensive Action</b></td","/td>"),'<td align="right">','<');
1454 var TheSpy = FindText(FindText(stuff,"<td><b>Spy Rating</b></td","/td>"),'<td align="right">','<');
1455 var TheSentry = FindText(FindText(stuff,"<td><b>Sentry Rating</b></td","/td>"),'<td align="right">','<');
1456 request.post(script.server+"GM_SelfUpdate.php?user=" + Username + '&sa=' + Strike + '&da=' + Defence + '&spy=' + TheSpy + '&sentry=' + TheSentry + '&u=' + Username + '&rid=0',function(response){
1457 });
1458
1459 }
1460
1461 if (event.target.id.match(/_[\d]+/))
1462 {
1463 event.stopPropagation();
1464 event.preventDefault();
1465 var name = event.target.id.match(/_[\d]+/)[0];
1466 name = name.replace('_', '');
1467 var tmp = document.getElementsByName('buy_weapon[' + name + ']')[0];
1468 tmp.value = event.target.value;
1469 updateButtons();
1470 }
1471 }, true);
1472 document.addEventListener('change', function(event)
1473 {
1474 if(event.target.name.match(/buy_weapon\[[\d]+\]/))
1475 {
1476 event.stopPropagation();
1477 event.preventDefault();
1478 updateButtons();
1479 }
1480 }, true);
1481
1482 expcolTable('Current Weapon Inventory');
1483 expcolTable('Current Tool Inventory');
1484 expcolTable('Personnel');
1485 expcolTable('Armory Autofill Preferences');
1486 expcolTable('Fortification');
1487 expcolTable('Siege Technology');
1488 Save_Autofill();
1489}
1490
1491function Save_Autofill() {
1492 var userprefs=document.getElementsByTagName('input');
1493 var i = 0;
1494 while(userprefs[i]) {
1495 if (userprefs[i].name == 'prefs[attack]') GM_setValue("Auto_SA",userprefs[i].value);
1496 if (userprefs[i].name == 'prefs[defend]') GM_setValue("Auto_DA",userprefs[i].value);
1497 if (userprefs[i].name == 'prefs[spy]') GM_setValue("Auto_Spy",userprefs[i].value);
1498 if (userprefs[i].name == 'prefs[sentry]') GM_setValue("Auto_Sentry",userprefs[i].value);
1499 i++;
1500 }
1501}
1502
1503function updateButtons()
1504{
1505 var new_gold = 0;
1506 for (i = 0; i < fields.length; i++)
1507 {
1508 new_gold += parseInt(fields[i].value) * list[i];
1509 }
1510 new_gold = gold - new_gold;
1511 var new_untrained = 0;
1512 for (i = 0; i < fields.length; i++)
1513 {
1514 if((isNaN(fields[i].value)) || (fields[i].value=='')) { fields[i].value = 0; }
1515 new_untrained += parseInt(fields[i].value);
1516 }
1517 new_untrained = num_untrained - new_untrained;
1518 for (i = 0; i < buttons.length; i++)
1519 {
1520 if (document.URL.match('armory.php'))
1521 {
1522 buttons[i].value = Math.floor(new_gold / list[i]);
1523 } else if (document.URL.match('train.php')) {
1524 if (list[i] > 0)
1525 {
1526 buttons[i].value = new_untrained >= Math.floor(new_gold / list[i]) ? Math.floor(new_gold / list[i]) : new_untrained;
1527 } else {
1528 buttons[i].value = 0;
1529 }
1530 }
1531 }
1532}
1533
1534function processLogDetails() {
1535 //GM_deleteValue("Attackee");
1536 //function raidbutton(){//attack/sab page only
1537 if (document.URL.match('attack.php')){
1538 document.addEventListener('click', function(event){
1539 if (event.target.name == "raidbut") {
1540
1541 // if raid button is clicked do this
1542 parseInt(GM_setValue("raidid", 1));
1543 //return;
1544 }
1545 if (event.target.name == "attackbut") {
1546 // if attack button is clicked do this
1547 parseInt(GM_setValue("raidid", 0));
1548
1549 }
1550 });
1551 }
1552
1553 //var x = event.target.tagName;
1554 var attack1 = GetElement('input', "Attack Now!");
1555 var raid2 = GetElement('input', "Raid Now!");
1556 if (document.URL.match('stats.php')){
1557 document.addEventListener('click', function(event){
1558 var raidid = 0;
1559 parseInt(GM_setValue("raidid", raidid));
1560 if (event.target.value== "Raid Now!"){
1561
1562 var raidid = 1;
1563 parseInt(GM_setValue("raidid", raidid));
1564
1565 //alert('raid');
1566 }
1567 // if attack button is clicked do this
1568 //document.getElementByName('').onclick =
1569 if (event.target.value== "Attack Now!"){
1570
1571
1572 var raidid = 0;
1573 parseInt(GM_setValue("raidid", raidid));
1574 //alert('Attack');
1575 }
1576
1577 //}
1578 });
1579 }
1580}
1581
1582function attacklog(){
1583 // Undo the in-line script's hide()
1584 var scriptable = document.body.appendChild(document.createElement('script'));
1585 scriptable.type = 'text/javascript';
1586 scriptable.textContent =
1587 '$(function () {' +
1588 ' $("table.battle tr:last td > *").show();' +
1589 '});';
1590
1591 // Rename table "battle" to "battle2" so the in-line script can't find it
1592 // Note: this is dependent on the order that the classes are specified in the
1593 // class attribute...
1594 var tab = document.getElementsByClassName('battle')[0];
1595 tab.className = tab.className + '2';
1596
1597 // Inject a dummy table element so document.body.scrollTop doesn't get clamped
1598 // to 0 while the script is still running.
1599 var dummyTable = document.body.appendChild(document.createElement('table'));
1600 dummyTable.className = 'battle';
1601 dummyTable.style.display = 'none';
1602 dummyTable.style.height = document.body.scrollCenter;
1603 window.addEventListener(
1604 'scroll',
1605 function () {
1606 dummyTable.style.height = document.body.scrollCenter;
1607 },
1608 false);
1609
1610 var stuff = document.body.innerHTML;
1611 var ReportID = String(document.URL).substr(String(document.URL).indexOf('=')+1, 8);
1612 var sGold = 0;
1613 var result = stuff.indexOf("You <font ") > 0 ? "Successful" : "Defended";
1614 var player_casualties = FindText(FindText(stuff, 'Your army sustains ', 'casualties!'), ">", "<");
1615 var target_casualties = FindText(FindText(stuff, 'The enemy sustains ', 'casualties!'), ">", "<");
1616
1617 var tas = FindText(FindText(stuff,'<','of your soldiers are trained attack specialists'),"<b>","</b>").replace(/,/g, "");
1618 var us = FindText(FindText(stuff,'of your soldiers are trained attack specialists','of your army consists of untrained soldiers'),"<b>","</b>").replace(/,/g, "");
1619 var tas_INT = parseInt(tas);
1620 var us_INT = parseInt(us);
1621 var statsid = GM_getValue("statsid", "");
1622
1623 //alert('log');
1624
1625 if(InStr(stuff,'You stole ') == true)
1626 {
1627 var whoami = GM_getValue("Koc_User");
1628 var Attackee = FindText(FindText(stuff,' gold from ','!'),">","<");
1629
1630 var sa_soldiers = (tas_INT+us_INT);
1631 //alert(Attackee);
1632
1633 sGold = FindText(FindText(stuff,'You stole ','gold from'),">","<");
1634 //alert(sGold);
1635 request.post(script.server+'GM_Log.php?type=attack&raidid='+ GM_getValue("raidid") + '&attacker=' + whoami + '&attackee=' + Attackee + '&gold=' + sGold + '&rid=' + ReportID + '&result=' + result + '&player_casualties=' + player_casualties + '&target_casualties=' + target_casualties + '&sa_soldiers=' + sa_soldiers + '&statsid=' + statsid,0,function(response){
1636 //GM_deleteValue("Attackee");
1637 });
1638 }
1639 if(InStr(document.URL,'suspense=1') == true){
1640 if(InStr(stuff,'You stole ') == true) {
1641 var sGold = FindText(FindText(stuff,'You stole ','gold from'),">","<");
1642 var newx = stuff.replace('Battle Report',sGold + ' Gold stolen...');
1643 newx = newx.replace('style="display: none">','');
1644
1645 document.body.innerHTML = newx;
1646 //GM_setValue("Attackee", '');commented for MAY BE THE CAUSE
1647 }else{
1648 var stuff = document.body.innerHTML;
1649 var whoami = GM_getValue("Koc_User");
1650 var result = stuff.indexOf("You <font ") > 0 ? "Successful" : "Defended";
1651 var player_casualties = FindText(FindText(stuff, 'Your army sustains ', 'casualties!'), ">", "<");
1652 var target_casualties = FindText(FindText(stuff, 'The enemy sustains ', 'casualties!'), ">", "<");
1653 //var Attackee = FindText(FindText(stuff,'Your generals report on your weapon damage:','</font> your army!'), '<br><b>', "</b> forces");
1654 var Attackee = FindText(FindText(stuff,'Your generals report on your weapon damage:','</font> your army!'), '<b style="display: inline;">', "</b> forces");
1655 Attackee = Attackee.replace("'s","");
1656
1657 //alert(GM_getValue("Attackee"));
1658 request.post(script.server+'GM_Log.php?type=defend&raidid=' + GM_getValue("raidid") + '&attacker=' + whoami + '&attackee=' + Attackee + '&rid=' + ReportID + '&result=' + result + '&player_casualties=' + player_casualties + '&target_casualties=' + target_casualties,0,function(response){
1659 //GM_deleteValue("Attackee");
1660 });
1661 //GM_deleteValue("Attackee");
1662
1663 /*var newx = stuff.replace('Battle Report','Attack defended');
1664 newx = newx.replace('style="display: none">','');
1665 newx.style.height = newx.body.scrollTop;
1666 window.addEventListener('scroll',function () {
1667 newx.style.height = document.body.scrollTop;
1668 },false);
1669 document.body.innerHTML = newx;*/
1670 }
1671 }
1672}
1673//NEED TYPE ATTACKLOG ADDED TO GM_LOG.PHP
1674function realattacklog()
1675{
1676 //Log hits on you.
1677 expcolTable('Attacks on You');
1678 expcolTable('Attacks by You');
1679 var x = document.getElementsByClassName('table_lines attacklog')[1].innerHTML
1680 var postStr='?l=';
1681 LogTable = x.split('<tr>');
1682 for(i=3;i<LogTable.length;i++){
1683 if(String(LogTable[i]).match(" Gold"))
1684 {
1685 var attackby = postStr + FindText(FindText(LogTable[i],"stats.php","</td"),">","<");
1686 postStr = postStr + '[l]a=' + FindText(FindText(LogTable[i],"stats.php","</td"),">","<") + '-rid=' + FindText(LogTable[i],"_id=",'"') + '-g=' + FindText(LogTable[i],FindText(LogTable[i],"_id=",'"') + '">',' Gold') + '[/l]';
1687
1688 var attackerid = postStr + '-rid=' + FindText(LogTable[i],"_id=",'"');
1689 var attgold = postStr + FindText(LogTable[i],FindText(LogTable[i],"_id=",'"') + '">',' Gold');
1690 // alert(attackby);
1691 }
1692
1693 }
1694
1695 postStr=postStr + "&type=attacklog&rid=0&u=" + GM_getValue("Koc_User");;
1696 ReturnRequest("GM_Log.php" + postStr);
1697 //alert(postStr);
1698 //hackman : i didnt want to change the above code, but i could have implemented it into the new
1699 var TBG45Min = Number(GM_getValue('userTbg',0))*45;
1700 var allatttables = document.getElementsByClassName('table_lines');
1701 for (var i=0; i<allatttables.length; i++) {
1702 var rows = allatttables[i].rows;
1703 if (rows.length > 0) {
1704 var allattth = rows[0].getElementsByTagName('th');
1705 if ((allattth.length > 0) && (allattth[0].innerHTML == 'Attacks on You')) {
1706 for (var j=2; j<rows.length; j++) {
1707 var attlinks = rows[j].getElementsByTagName('a');
1708 for (var k=0; k<attlinks.length; k++) {
1709 var workedonLink = attlinks[k].href.split('.php')[0].split('/');
1710 var workedonLink = workedonLink[workedonLink.length-1];
1711 if (workedonLink == 'detail') {
1712 var resatt = rmCommas(attlinks[k].innerHTML).split(' ');
1713 if (resatt[1] == 'defended') {
1714 attlinks[k].setAttribute('style','color:orange;');
1715 }
1716 else if(Number(resatt[0]) < TBG45Min) {
1717 attlinks[k].setAttribute('style','color:yellow;');
1718 attlinks[k].setAttribute('title',Math.floor(Number(resatt[0])/(TBG45Min/45))+' minutes tbg.');
1719 }
1720 }
1721 }
1722 }
1723 }
1724 }
1725 }
1726 //hackman
1727}
1728
1729function train()
1730{
1731 gold = gold.replace(/\n/g, '');
1732 gold = gold.replace(/\t/g, '');
1733 gold = gold.replace(/,/g, '');
1734 gold = gold.replace('M', '000000');
1735 gold = parseInt(gold);
1736 num_untrained = FindText(document.body.innerHTML, 'Untrained Soldiers</b></td>\n <td align="right">', '<');
1737 num_untrained = num_untrained.replace(/,/g, '');
1738 num_untrained = parseInt(num_untrained);
1739 var tff = FindText(FindText(document.body.innerHTML,"<td><b>Total Fighting Force</b></td","/td>"),'<td align="right">','<');
1740 GM_setValue('userTFF',rmCommas(tff));
1741 list = document.body.innerHTML.match(/<td align="right">[\d,]+ Gold<\/td>/g);
1742 for (i = 0; i < list.length; i++)
1743 {
1744 list[i] = list[i].replace('<td align="right">', '');
1745 list[i] = list[i].replace(' Gold</td>', '');
1746 list[i] = list[i].replace(/,/g, '');
1747 list[i] = parseInt(list[i]);
1748 }
1749 var elems = document.getElementsByTagName('input');
1750 for (i = 0; i < elems.length; i++)
1751 {
1752 if (elems[i].name.match(/train.*/g))
1753 {
1754 fields.push(elems[i]);
1755 var name = elems[i].name.match(/train.*/g)[0];
1756 name = name.replace('train[', '');
1757 name = name.replace(']', ''); var input = document.createElement('input');
1758 input.id = '_' + name;
1759 input.type = 'submit'; buttons.push(input);
1760 var cell = document.createElement('td');
1761 cell.appendChild(input);
1762 elems[i].parentNode.parentNode.appendChild(cell);
1763 }
1764 }
1765 updateButtons();
1766 document.addEventListener('click', function(event)
1767 {
1768 if (event.target.id.match(/_[\w]+/))
1769 {
1770 event.stopPropagation();
1771 event.preventDefault();
1772 var name = event.target.id.match(/_[\w]+/)[0];
1773 name = name.replace('_', '');
1774 var tmp = document.getElementsByName('train[' + name + ']')[0];
1775 tmp.value = event.target.value;
1776 updateButtons();
1777 }
1778 }, true);
1779 document.addEventListener('change', function(event)
1780 {
1781 if(event.target.name.match(/train\[[\w]+\]/))
1782 {
1783 event.stopPropagation();
1784 event.preventDefault();
1785 updateButtons();
1786 }
1787 }, true);
1788 expcolTable('Personnel');
1789 var buyyBut = GetElement('input', "Train!");
1790
1791}
1792
1793function mercs()
1794{//hackman [ not for credits, its just easier to ask the original coder if any trouble appears :D ]
1795 function getTotalMercs() {
1796 return Number(rmCommas(obj('trainedSaMercs').innerHTML))+Number(rmCommas(obj('trainedDaMercs').innerHTML))+Number(rmCommas(obj('trainedUntMercs').innerHTML));
1797 }
1798 function getInputedMercs(what) {
1799 if (typeof what == 'undefined') {
1800 return Number(rmCommas(obj('inpAtt').value))+Number(rmCommas(obj('inpDef').value))+Number(rmCommas(obj('inpUnt').value));
1801 }
1802 else if (what == 'SA') {
1803 return Number(rmCommas(obj('inpAtt').value));
1804 }
1805 else if (what == 'DA') {
1806 return Number(rmCommas(obj('inpDef').value));
1807 }
1808 else if (what == 'UNT') {
1809 return Number(rmCommas(obj('inpUnt').value));
1810 }
1811 else {
1812 return Number(rmCommas(obj('inpAtt').value))+Number(rmCommas(obj('inpDef').value))+Number(rmCommas(obj('inpUnt').value));
1813 }
1814 }
1815 function fill(num) {
1816 switch(num) {
1817 case 1:
1818 obj('inpAtt').value = Number(rmCommas(obj('attbut').value));
1819 break;
1820 case 2:
1821 obj('inpDef').value = Number(rmCommas(obj('defbut').value));
1822 break;
1823 case 3:
1824 obj('inpUnt').value = Number(rmCommas(obj('untbut').value));
1825 break;
1826 }
1827 updateBut();
1828 }
1829
1830 function updateBut() {
1831 var tehGold=gold.replace(/(\s|\r|\n\t)+/g, '').replace('M', '000000');
1832 var possMercs = Math.floor(rmCommas(obj('totalTFF').innerHTML)/4);
1833 var avMercs = Math.floor(possMercs-getTotalMercs()-getInputedMercs());
1834 var saMercs = 0;
1835 var daMercs = 0;
1836 var untMercs = 0;
1837 var attleft = rmCommas(obj('leftAtt').innerHTML);
1838 var defleft = rmCommas(obj('leftDef').innerHTML);
1839 var untleft = rmCommas(obj('leftUnt').innerHTML);
1840 var attgold = rmCommas(obj('priceAtt').innerHTML.replace(/\sGold/i,''));
1841 var defgold = rmCommas(obj('priceDef').innerHTML.replace(/\sGold/i,''));
1842 var untgold = rmCommas(obj('priceUnt').innerHTML.replace(/\sGold/i,''));
1843 tehGold -= (getInputedMercs('SA')*attgold)+(getInputedMercs('DA')*defgold)+(getInputedMercs('UNT')*untgold);
1844 if (avMercs > 0) {
1845 if (attleft > 0) {
1846 if (Math.floor(attleft*attgold) <= tehGold) {
1847 if (attleft > avMercs) {
1848 saMercs = avMercs;
1849 }
1850 else {
1851 saMercs = attleft;
1852 }
1853 }
1854 else {
1855 var maxmercs = Math.floor(tehGold/attgold);
1856 if (maxmercs > avMercs) {
1857 saMercs = avMercs;
1858 }
1859 else {
1860 saMercs = maxmercs;
1861 }
1862 }
1863 }
1864 if (defleft > 0) {
1865 if (Math.floor(defleft*defgold) <= tehGold) {
1866 if (defleft > avMercs) {
1867 daMercs = avMercs;
1868 }
1869 else {
1870 daMercs = defleft;
1871 }
1872 }
1873 else {
1874 var maxmercs = Math.floor(tehGold/defgold);
1875 if (maxmercs > avMercs) {
1876 daMercs = avMercs;
1877 }
1878 else {
1879 daMercs = maxmercs;
1880 }
1881 }
1882 }
1883 if (untleft > 0) {
1884 if (Math.floor(untleft*untgold) <= tehGold) {
1885 if (untleft > avMercs) {
1886 untMercs = avMercs;
1887 }
1888 else {
1889 untMercs = untleft;
1890 }
1891 }
1892 else {
1893 var maxmercs = Math.floor(tehGold/untgold);
1894 if (maxmercs > avMercs) {
1895 untMercs = avMercs;
1896 }
1897 else {
1898 untMercs = maxmercs;
1899 }
1900 }
1901 }
1902 }
1903 obj('attbut').value = addCommas(saMercs);
1904 obj('defbut').value = addCommas(daMercs);
1905 obj('untbut').value = addCommas(untMercs);
1906 }
1907
1908 //Change the HTML and add all the IDs
1909 var perTa = objClass(document,'table_lines personnel','table',0);
1910 var rows = perTa.rows;
1911 for (var i=0; i<rows.length; i++) {
1912 var cells=rows[i].cells;
1913 switch(cells[0].innerHTML) {
1914 case '<b>Trained Attack Soldiers</b>':
1915 cells[1].setAttribute('id','trainedSaSold');
1916 break;
1917 case '<b>Trained Defense Soldiers</b>':
1918 cells[1].setAttribute('id','trainedDaSold');
1919 break;
1920 case '<b>Untrained Soldiers</b>':
1921 cells[1].setAttribute('id','trainedUntSold');
1922 break;
1923 case '<b>Trained Attack Mercenaries</b>':
1924 cells[1].setAttribute('id','trainedSaMercs');
1925 break;
1926 case '<b>Trained Defense Mercenaries</b>':
1927 cells[1].setAttribute('id','trainedDaMercs');
1928 break;
1929 case '<b>Untrained Mercenaries</b>':
1930 cells[1].setAttribute('id','trainedUntMercs');
1931 break;
1932 case '<b>Total Fighting Force</b>':
1933 cells[1].setAttribute('id','totalTFF');
1934 break;
1935 }
1936 }
1937 var mercstable = objName(objName(document,'form',0),'table',0);
1938 var rows = mercstable.rows;
1939 if (/Buy Mercenaries/g.test(rows[0].innerHTML)) {
1940 for (var i=0; i<rows.length; i++) {
1941 var cells = rows[i].cells;
1942 switch(cells[0].innerHTML) {
1943 case 'Buy Mercenaries':
1944 cells[cells.length-1].setAttribute('colspan','5');
1945 break;
1946 case 'Mercenary Type':
1947 cells[cells.length-1].setAttribute('colspan','2');
1948 break;
1949 case 'Attack Specialist':
1950 cells[1].setAttribute('id','priceAtt');
1951 cells[2].setAttribute('id','leftAtt');
1952 objName(cells[3],'input',0).setAttribute('id','inpAtt');
1953 var td = document.createElement('td');var inp = document.createElement('input');inp.type='button';inp.id = 'attbut';td.appendChild(inp);rows[i].appendChild(td);
1954 break;
1955 case 'Defense Specialist':
1956 cells[1].setAttribute('id','priceDef');
1957 cells[2].setAttribute('id','leftDef');
1958 objName(cells[3],'input',0).setAttribute('id','inpDef');
1959 var td = document.createElement('td');var inp = document.createElement('input');inp.type='button';inp.id = 'defbut';td.appendChild(inp);rows[i].appendChild(td);
1960 break;
1961 case 'Untrained':
1962 cells[1].setAttribute('id','priceUnt');
1963 cells[2].setAttribute('id','leftUnt');
1964 objName(cells[3],'input',0).setAttribute('id','inpUnt');
1965 var td = document.createElement('td');var inp = document.createElement('input');inp.type='button';inp.id = 'untbut';td.appendChild(inp);rows[i].appendChild(td);
1966 break;
1967 default:
1968 cells[cells.length-1].setAttribute('colspan','5');
1969 }
1970 }
1971 //events
1972 updateBut();
1973 var mess = 'Your army counts <strong>'+Math.floor((getTotalMercs()*100)/rmCommas(obj('totalTFF').innerHTML))+'%</strong> of Mercenaries. (<strong>25%</strong> max.)<br />';
1974 mess+='-<br />';
1975 var percentM = Math.floor((rmCommas(obj('trainedSaMercs').innerHTML)*100)/(Number(rmCommas(obj('trainedSaSold').innerHTML))+Number(rmCommas(obj('trainedSaMercs').innerHTML))));
1976 if (isNaN(percentM)) { percentM = '0'; }
1977 mess += '<strong>'+percentM+'%</strong> of your Attack Soldiers are Mercenaries<br />';
1978 percentM = Math.floor((rmCommas(obj('trainedDaMercs').innerHTML)*100)/(Number(rmCommas(obj('trainedDaSold').innerHTML))+Number(rmCommas(obj('trainedDaMercs').innerHTML))));
1979 if (isNaN(percentM)) { percentM = '0'; }
1980 mess += '<strong>'+percentM+'%</strong> of your Defense Soldiers are Mercenaries<br />';
1981 percentM = Math.floor((rmCommas(obj('trainedUntMercs').innerHTML)*100)/(Number(rmCommas(obj('trainedUntSold').innerHTML))+Number(rmCommas(obj('trainedUntMercs').innerHTML))));
1982 if (isNaN(percentM)) { percentM = '0'; }
1983 mess += '<strong>'+percentM+'%</strong> of your Untrained Soldiers are Mercenaries';
1984 DisplayMessage2(mess);
1985 obj('attbut').addEventListener('click', function() { fill(1);}, false);
1986 obj('defbut').addEventListener('click', function() { fill(2);}, false);
1987 obj('untbut').addEventListener('click', function() { fill(3);}, false);
1988 obj('inpAtt').addEventListener('keyup', updateBut, false);
1989 obj('inpDef').addEventListener('keyup', updateBut, false);
1990 obj('inpUnt').addEventListener('keyup', updateBut, false);
1991 }
1992}
1993
1994
1995function base(){
1996
1997 var bg;
1998 if(InStr(document.title,"Kings of Chaos :: ") == true){
1999 var usr = FindText(document.title,"Kings of Chaos :: ","'s ");
2000 var userid = FindText(document.body.innerHTML, '<td><a href="stats.php?id=' , '">');
2001 var tbg = String(FindText(FindText(document.body.innerHTML,"<b>Projected Income</b>","</tr>"),"<td>"," Gold (in 1 min)</td>")).replace(/,/g, "");
2002 bg = parseInt(tbg);
2003 GM_setValue("Koc_User",usr);
2004 GM_setValue("userid",userid);
2005 GM_setValue("userTbg",bg);
2006 var data = "id=" + GM_getValue("userid") + "&name=" + GM_getValue("Koc_User");
2007 request.post(script.access+"logBase.php",data,function(response){
2008 var table = getTableByHeader("<th colspan=\"2\"align=\"center\">MilitaryOverview</th>");
2009 var row = document.createElement("tr");
2010 row.innerHTML = "<td><b>Hourly TBG</b></td><td>"+addCommas(bg * 60)+"</td>";
2011 table.rows[8].parentNode.insertBefore(row,table.rows[8]);
2012 //alert(script.access);
2013 });
2014 var check = "name="+GM_getValue("Koc_User")+"&id="+GM_getValue("userid",userid);
2015 request.post(script.access+"checkAuth.php",check,function(response){
2016 response = response.substr(0,response.length-1).replace(/\s|\r|\n/g,'');
2017 if ((response == "regularuser") || (response == "admin") || (response == "moderator") || (response == "owner")){
2018 //GM_setValue('gr',true);
2019 //alert(response);
2020 }
2021 else if (response == "usernotfound"){
2022 var tableaccess = getTableByHeader("<th colspan=\"2\"align=\"center\">User Info</th>");
2023 var tableRows = document.createElement("tr");
2024 tableRows.innerHTML = "<td>`When access is gave to you this will not be here`</td><td><button name='acchelp'>Access Help</button></td>";
2025 tableaccess.rows[1].parentNode.insertBefore(tableRows,tableaccess.rows[1]);
2026 document.addEventListener('click', function(event) {
2027 if(event.target.name == 'acchelp'){
2028 //alert("Worked!!");
2029 displayMessageTest();
2030 }
2031 });
2032 //alert(response);
2033 }
2034 });
2035
2036
2037 var newlink = document.createElement('div');
2038 //newlink.innerHTML = '<div style="position:fixed;right:0;background-color:#000;font-family:arial;padding:5px;"><a href="#gm=h4x">Extra Functions</a></div>';
2039 document.body.insertBefore(newlink, document.body.firstChild);
2040 //document.addEventListener('click', BaseSetUp, true); //hackman : commented it out cause this shit is about recaptcha, and was fucking with the clicks on links on base
2041 //check URL
2042 //End checks.
2043 }
2044
2045 addCSS('#_attacks{display:none;visibility:hidden;} #_notice{display:none;visibility:hidden;}');
2046 addJS('function ShowNotice(){var q = document.getElementById(\'_notice\');q.style.display = \'block\';q.style.visibility = \'visible\';q.nextSibling.href = \'javascript:HideNotice();\';q.nextSibling.innerHTML = \' - Hide Notice from Commander\'}',
2047 'function HideNotice(){var q = document.getElementById(\'_notice\');q.style.display = \'none\';q.style.visibility = \'hidden\';q.nextSibling.href = \'javascript:ShowNotice();\';q.nextSibling.innerHTML = \' + View Notice from Commander\'}');
2048 addJS('function ShowAttacks(){var q = document.getElementById(\'_attacks\');q.style.display = \'block\';q.style.visibility = \'visible\';q.nextSibling.href = \'javascript:HideLAttacks();\';q.nextSibling.innerHTML = \' - Hide View last attacks\'}',
2049 'function HideLAttacks(){var q = document.getElementById(\'_attacks\');q.style.display = \'none\';q.style.visibility = \'hidden\';q.nextSibling.href = \'javascript:ShowLAttacks();\';q.nextSibling.innerHTML = \' + View last attacks\'}');
2050
2051 /* var stuff = document.body.innerHTML;
2052 var blah = '';
2053 var blah2 = '';
2054 var blah3 = '';
2055 var blah4 = '';
2056 blah = '<!-- Start Quantcast tag -->';
2057 blah2 = '<!-- End Quantcast tag -->';
2058 blah3 = FindText(stuff,blah,blah2);
2059 newx = stuff.replace(blah3,'');
2060 blah = '<!-- BEGIN TAG - 120x600 - www.kingsofchaos.com - DO NOT MODIFY -->';
2061 blah2 = '<!-- END TAG -->';
2062 blah3 = FindText(stuff,blah,blah2);
2063 newx = newx.replace(blah3,'');
2064 blah = '<tr><th colspan="4">Recent Attacks on You</th></tr>';
2065 blah2 = '</table>';
2066 blah3 = '<tr><th colspan="4">Recent Attacks on You</th></tr>' + FindText(stuff,blah,blah2) + '';
2067 newx = newx.replace(blah3,'');
2068 var blah = '<tr><th>Notice from Commander';
2069 var blah2 = '</table>';
2070 var blah3 = '<tr><th>Notice from Commander' + FindText(stuff,blah,blah2) + '</table>';
2071 var blah4 = FindText(blah3,'left">','</t');
2072 var cnotice = '<a href="#gm=estats">Extended Stats</a><br><br><a href="#gm=updateac">Update AC Server</a><b><b></td><td>';
2073 cnotice = cnotice + '<div id="_notice" align="center" style.visibility = \'hidden\'>' + blah4 + '</div><a href="javascript:ShowNotice();"> + View Notice from Commander</a></td>';
2074 newx = newx.replace(blah3,cnotice);
2075 blah = '<tr><th>Notice from Commander';
2076 blah2 = '</table>';
2077 blah3 = '<tr><th>Notice from Commander' + FindText(stuff,blah,blah2) + '</table>';
2078 newx = newx.replace(blah3,'');
2079 var myid = FindText(stuff,'http://www.kingsofchaos.com/recruit.php?uniqid=','">http://');
2080 blah = 'Grow Your Army!';
2081 blah2 = '</table>';
2082 blah3 = 'Grow Your Army!' + FindText(stuff,blah,blah2) + '';
2083 var rv;
2084 var _ver = 1.0;
2085 rv = '<a href="http://www.kingsofchaos.com/recruit.php?uniqid=' + myid + '">Kings Of Fail - Age 14 (' + _ver + ')</a>';
2086 if((GM_getValue("Koc_User") == 'Curiosity') || (GM_getValue("Koc_User") == 'source')){
2087 rv = '<a href="http://www.kingsofchaos.com/recruit.php?uniqid=' + myid + '"><font color="ffffff">♥ Curiosity ♥</font></a>';
2088 }
2089 newx = newx.replace(blah3,rv);
2090 blah = '<!-- BEGIN TAG - 468x60 - www.kingsofchaos.com - DO NOT MODIFY -->';
2091 blah2 = '<!-- END TAG -->';
2092 blah3 = FindText(stuff,blah,blah2);
2093 newx = newx.replace(blah3,'');
2094 blah = '<!-- BEGIN TAG - 468x60 - www.kingsofchaos.com - DO NOT MODIFY -->';
2095 blah2 = '<!-- END TAG -->';
2096 blah3 = FindText(stuff,blah,blah2);
2097 newx = newx.replace(blah3,'');
2098 blah = '<th colspan="2" align="center">Military Overview</th>';
2099 blah2 = '</table>';
2100 blah3 = '<th colspan="2" align="center">Military Overview</th>' + FindText(stuff,blah,blah2) + '';
2101 blah = '<th colspan="3">Military Effectiveness</th>';
2102 blah2 = '</table>';
2103 blah4 = '<th colspan="3">Military Effectiveness</th>' + FindText(stuff,blah,blah2) + '';
2104 newx = newx.replace(blah4,blah3);
2105 newx = newx.replace(blah3,blah4);
2106 newx = replaceAll(newx,'<td align="right">[ <a href="train.php">train more</a> ]</td>','');
2107 newx = replaceAll(newx,'<td align="right">[ <a href="mercs.php">hire more</a> ]</td>','');
2108 newx = replaceAll(newx,'<td align="right">[ <a href="base.php">recruit more</a> ]</td>','');
2109 newx = replaceAll(newx,'<td align="right">[ <a href="recruit.php">recruit more</a> ]</td>',''); */
2110 if(GM_getValue("BasePageEdits") != '0'){
2111 document.body.innerHTML = newx;
2112 }else{
2113 expcolTable('Strategic Alliance Lashing Tool');
2114 expcolTable('Military Effectiveness');
2115 expcolTable('Recent Attacks on You');
2116 expcolTable('Notice from Commander');
2117 expcolTable('Military Overview');
2118 expcolTable('Personnel');
2119 expcolTable('Officers');
2120 expcolTable('Previous Logins');
2121 expcolTable('Preferences');
2122 //expcolTable('Grow Your Army!');
2123 }
2124
2125 //get(GM_getValue("serverURL") + '/ac/script/GM_Base2.php?u=' + GM_getValue("Koc_User") + '&userid=' + GM_getValue("userid") + '&v=' + cver,function(r){
2126 request.get(script.server+"GM_Base2.php?u="+GM_getValue("Koc_User")+'&userid='+GM_getValue("userid")+'&v='+cver,function(r){
2127 var msg = FindText(r,"<msg>","</msg>");
2128 var bmsg = document.getElementsByTagName("table");
2129 addCSS('ul {-moz-column-count:3;-moz-column-gap:10px;-webkit-column-count:3;-webkit-column-gap:10px;column-count:3;column-gap:10px;}');
2130 for (var i=0; i<bmsg.length;i++) {
2131 if((bmsg[i].getElementsByTagName('th').length==1) && (bmsg[i].getElementsByTagName('th')[0].innerHTML == 'Grow Your Army!')) {
2132 bmsg[i].innerHTML = msg;
2133 i=bmsg.length;
2134 }
2135 }
2136 });
2137 //hackman : red low hits
2138 var TBG45Min = bg*45;
2139 var allatttables = document.getElementsByClassName('table_lines');
2140 for (var i=0; i<allatttables.length; i++) {
2141 var rows = allatttables[i].rows;
2142 if (rows.length > 0) {
2143 var allattth = rows[0].getElementsByTagName('th');
2144 if ((allattth.length > 0) && (allattth[0].innerHTML == 'Recent Attacks on You')) {
2145 for (var j=2; j<rows.length; j++) {
2146 var cells = rows[j].cells;
2147 if (/(attack defended)/i.test(cells[2].innerHTML)) {
2148 cells[2].setAttribute('style','color:red;');
2149 }
2150 else if ((/([0-9,]+ gold stolen)/i.test(cells[2].innerHTML)) && (Number(rmCommas(cells[2].innerHTML.split(' ')[0]))<TBG45Min)) {
2151 cells[2].setAttribute('style','color:yellow;');
2152 cells[2].setAttribute('title',Math.floor(Number(rmCommas(cells[2].innerHTML.split(' ')[0]))/(TBG45Min/45))+' minutes tbg.');
2153 }
2154 }
2155 }
2156 }
2157 }
2158 //hackman
2159 //TBG_Info();
2160}
2161function displayMessageTest() {
2162 //--- Use jQuery to add the form in a "popup" dialog.
2163$("body").append ( ' \
2164 <div id="gmPopupContainer"> <p>If you want script access "Click I want Access then close me now"</p> \
2165 <form> <!-- For true form use method="POST" action="YOUR_DESIRED_URL" --> \
2166 \
2167 \
2168 \
2169 <p id="myNumberSum"> </p> \
2170 <button id="gmAddNumsBtn" type="button">I want Access</button> \
2171 <button id="gmCloseDlgBtn" type="button">NO Close Me Now</button> \
2172 </form> \
2173 </div> \
2174' );
2175
2176$("#gmAddNumsBtn").click ( function () {
2177 //username = FindText(document.title,"Kings of Chaos :: ","'s ");
2178 //userid = FindText(document.body.innerHTML, '<td><a href="stats.php?id=' , '">');
2179 //var A = $("#name").val ();
2180 //var A = $(GM_getValue("username",username))();
2181 //var B = $("#myNumber2").val ();
2182
2183 //var C = parseInt(A, 10) + parseInt(B, 10);
2184 var C = "name="+GM_getValue("username",username)+"&id="+GM_getValue("userid",userid);
2185 request.post(script.access+"requestAccess.php",C,function(response){
2186 $("#myNumberSum").text ("Activated: " + C);
2187 });
2188} );
2189
2190$("#gmCloseDlgBtn").click ( function () {
2191 $("#gmPopupContainer").hide ();
2192} );
2193
2194GM_addStyle ( " \
2195 #gmPopupContainer { \
2196 position: fixed; \
2197 top: 30%; \
2198 left: 20%; \
2199 padding: 2em; \
2200 background: black; \
2201 border: 3px double white; \
2202 border-radius: 1ex; \
2203 z-index: 777; \
2204 } \
2205 #gmPopupContainer button{ \
2206 cursor: pointer; \
2207 margin: 1em 1em 0; \
2208 border: 1px outset buttonface; \
2209 } \
2210" );
2211
2212}
2213
2214function chatBox() {
2215 //hackman stolen chatbox lazy (but modified a lot =])
2216 if (GM_getValue('gr','')) {
2217 var soundmute = "data:image/png;base64,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";
2218 var soundnormal = "data:image/png;base64,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";
2219 function beep() {snd = new Audio("data:audio/wav;base64,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3s6smbU1HmRnmjE6H3pG0kshFkPK72MVMnRs1HPZMxbGXqK1Rk9aTmREuIH/9cguqK2jrAv5PC1y/Xaot/mrO/K05aoFpCFpVUKAXYGkwWoDiMsZ//tUxAgACtCJGYQUYAlVGKKgsIwB1EqpUfc2iqvQoowZhF7Hik5scdbBAyhcq8oaR2EoBaH/UmziVirHx9bo6Apr3dBqVfLY91t+Ww+jnrU/KO/eL+f2r/1737BRClAAnSuimaAltKKMq0wACBNWT4ZSKDbpMi9YFticjrTJGJYz5MzX4Z+3C86ULPxiftOkdqf4d8GRVj9S2Yv62zAW/42ri3izTarZsni53+JUoV7qMdZVgFAGcgC9lcAMnlRK//tUxAeAC5TpFSWYYUlbIqQ0kYwVf2BRQMNnHUqGoNsV4gmAwhqDKFLHuVCfLk6oex3/qbNg4x0VDnkOMpCkrEUjFLmloy+pLaeLW/m3OSmW/aS4jVFrOG2RRx/nR5//vXAaik2kbUbSBACeIhoDsYcgxmwZcggvaNUpDf0mDEyBzxBt9QnAmKjZkd85LRicXTJSRAqEh03WueSQ0M9Eq5U7DeWBt3IHJusGFxwR7hx5bAbA4J/zvaKVEPsKkUED//tUxAMACxErFSSEZAklDuCYYYx4ToL40B2wSYEJAjyU5DuCRzBW+EQ7DMyKVWWfnlalOSHlHh0N0jMr2ydjSsXtfbXzJoxHP2PmZTrLLMr9wjst+0ZarYlSh9iUzMvME3/99VzTZbAG08AAo06qsa+1WfxqJZqszUmOlC/bUgxMa/3pMYUBEixUBQmEniURCISgkJVAURVlU8sVIlSpYqqRKllngkPyoiR/11P1Dxg9TEFNRTMuOTguNFVVVVVV//sUxAeDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUxC0DwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUxFKDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUxHgDwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sUxJ2DwAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV");snd.currentTime = 0;snd.volume=GM_getValue('ChatVolume',1);snd.play();}
2220 function soundSwitch() { if (GM_getValue('soundStatus','normal') == 'normal') { GM_setValue('soundStatus','mute');document.getElementById('soundimg').src=soundmute; } else { GM_setValue('soundStatus','normal');document.getElementById('soundimg').src=soundnormal; } }
2221 var soundimg;
2222 if (GM_getValue('soundStatus','normal') == 'normal') {
2223 soundimg = soundnormal;
2224 }
2225 else {
2226 soundimg = soundmute;
2227 }
2228 var new_message = 0;
2229 var color = "#A9A9A9";
2230 GM_registerMenuCommand('Chat Volume Adjustment',function(){
2231 var chatVolume = prompt("Please enter the desired Volume for Chat Beep (From 50 to 100)", Number(GM_getValue('ChatVolume',1))*100);
2232 if ((chatVolume != null) && (parseInt(chatVolume) >= 0) && (parseInt(chatVolume) <= 100)) {
2233 GM_setValue('ChatVolume',Number(chatVolume)/100);
2234 beep();
2235 }
2236 });
2237 stuff = '<div class="shout_box"><a href="javascript:test();"></a>' +
2238 '<div class="new_message"></div>' +
2239 '<div class="header">Chatbox <div id="new_message" style="float:right;">0</div></div>' +
2240 '<div class="toggle_chat" style="display:none;">' +
2241 // '<div class="toggle_chat" ' + (GM_getValue("chatBoxStatus", "closed") == "closed" ? 'style="display:none;"' : '') + '>' +
2242 '<div class="message_box" id="message_box">' +
2243 '</div>' +
2244 '<div class="user_info">' +
2245 '<input name="shout_message" id="shout_message" type="text" placeholder="Type your message here, then hit enter." maxlength="300" /><span id="mutebutt"><img src="'+soundimg+'" alt="mute" width="5%" id="soundimg" /></span> ' +
2246 '</div>' +
2247 '</div>' +
2248 '</div>';
2249
2250 GM_addStyle(".shout_box a {color: black;} .shout_box { background:" + color + "; overflow:hidden;position:fixed; bottom:0; right:1%; z-index:9;} .shout_box .header .close_btn { background: url(images/close_btn.png) no-repeat 0px 0px; float:right; width:15px;height: 15px;}.shout_box .header .close_btn:hover {background: url(images/close_btn.png) no-repeat 0px -16px; } .shout_box .header .open_btn { background: url(images/close_btn.png) no-repeat 0px -32px; float:right; width:15px; height:15px;} .shout_box .header .open_btn:hover { background: url(images/close_btn.png) no-repeat 0px -48px; } .shout_box .header{ padding: 5px 3px 5px 5px; font: 11px 'lucida grande', tahoma, verdana, arial, sans-serif; font-weight: bold; color:#000000; border: 1px solid white; border-bottom:none; cursor:pointer; } .shout_box .header:hover{ background-color: " + color + "; } .shout_box .message_box { color:black; background: white; height: 300px; overflow:auto; border: 1px solid white; } .shout_msg{ height:30px; margin-bottom: 10px; display: block; border-bottom: 1px solid #F3F3F3; padding: 0px 5px 5px 5px; font: 11px 'lucida grande', tahoma, verdana, arial, sans-serif; color:#7C7C7C; } .message_box: color:black; font-color:black; .message_box:last-child { border-bottom:none; } time{ font: 11px 'lucida grande', tahoma, verdana, arial, sans-serif; font-weight: normal; float:right; color: #D5D5D5; } .shout_msg .username{ color:black; margin-bottom: 0px;margin-top: 10px; } .user_info { background-color:black; } .user_info input { color:black; background-color:white; width: 93%; height: 25px; border: 1px solid #CCC; border-top: none; padding: 3px 0px 0px 3px; font: 11px 'lucida grande', tahoma, verdana, arial, sans-serif; } .shout_msg .username{ color:blue; font-weight: bold; display: block;} .message{ word-wrap: break-word;text-overflow: ellipsis;color:black; padding-top:5px; width:100%; height:35px;}");
2251 var theDiv = document.getElementsByTagName("table")[0];
2252 var elChild = document.createElement('div');
2253 elChild.innerHTML = stuff;
2254 theDiv.appendChild(elChild);
2255 document.getElementById('mutebutt').addEventListener('click', soundSwitch);
2256 var objDiv = document.getElementById("message_box");
2257 // objDiv.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);;
2258 objDiv.scrollTop=objDiv.scrollHeight;
2259 var whoami = GM_getValue('Koc_User');
2260 var lastMessID = GM_getValue('lastMessID','-1');
2261 fetchMess();
2262 window.setInterval(function(){ update(); }, 10000);
2263
2264 document.addEventListener('click', function(e) {
2265 if(e.target.className == "header") {
2266 var yourUl = document.getElementsByClassName("toggle_chat")[0];
2267 yourUl.style.display = yourUl.style.display === 'none' ? '' : 'none';
2268 chatBoxStatus = yourUl.style.display === 'none' ? "closed" : "open";
2269 // GM_setValue("chatBoxStatus", chatBoxStatus);
2270 document.getElementById("new_message").innerHTML = 0;
2271 if (chatBoxStatus == 'closed') {
2272 document.getElementsByClassName("shout_box")[0].style.width='';
2273 }
2274 else {
2275 GM_setValue('lastMessReadID',GM_getValue('lastMessID','-1'));
2276 document.getElementsByClassName("shout_box")[0].style.width='30%';
2277 var objDiv = document.getElementById("message_box");
2278 // objDiv.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);;
2279 objDiv.scrollTop=objDiv.scrollHeight;
2280 document.getElementById('shout_message').focus();
2281 }
2282 }
2283 });
2284
2285 document.addEventListener('keydown', function(e) {
2286 var txtbox = document.getElementById("shout_message");
2287 if (e.which == 13 && txtbox === document.activeElement) {
2288 if (txtbox.value.length < 300) {
2289 ReturnRequest('GM_ChatBox.php?u=' + whoami + '&msg=' + encodeURIComponent(txtbox.value),0, function(r){
2290 // alert(r);
2291 if (r == 'SPAM')
2292 {
2293 alert("Please don't spam that much.");
2294 }
2295 else {
2296 var regx = new RegExp('LastID:[0-9]+');
2297 if (regx.test(r)) {
2298 txtbox.value = "";
2299 update();
2300 }
2301 else {
2302 alert('An error occured.');
2303 }
2304 }
2305 });
2306 }
2307 else {
2308 alert("Message too long! 300 chars max!");
2309 }
2310 }
2311 });
2312
2313 function fetchMess() {
2314 var lastMessReadID = GM_getValue('lastMessReadID','-1');
2315 var lastMessID = GM_getValue('lastMessID','-1');
2316 ReturnRequest('GM_ChatBox.php?fetch=1&u='+whoami,0, function(r){
2317 // alert(r);
2318 var new_message = 0;
2319 var datasChat = r.split('</end>');
2320 if ((r != '') && (datasChat.length>0)) {
2321 var mbTable = document.createElement('table');
2322 mbTable.style.backgroundColor ='black';
2323 mbTable.style.width ='100%';
2324 mbTable.style.margin ='auto';
2325 var mbTableinner='';
2326 var lastMessRec = -1;
2327 for (var i=0; i<datasChat.length-1; i++) {
2328 var dataChat = datasChat[i].split('<theid>');
2329 if (dataChat.length == 2) {
2330 if (Number(dataChat[0])>lastMessReadID) {
2331 new_message++;
2332 }
2333 lastMessRec=dataChat[0];
2334 mbTableinner+=dataChat[1];
2335 }
2336 }
2337 mbTable.innerHTML = mbTableinner;
2338 document.getElementById("new_message").innerHTML = new_message;
2339 document.getElementById("message_box").appendChild(mbTable);
2340 GM_setValue('lastMessID',lastMessRec);
2341 if ((new_message>0) && (GM_getValue('soundStatus','normal') == 'normal')) {beep();}
2342 }
2343 else {
2344 document.getElementById("message_box").innerHTML = '(No message yet.)';
2345 }
2346 var objDiv = document.getElementById("message_box");
2347 // objDiv.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);;
2348 objDiv.scrollTop=objDiv.scrollHeight;
2349 });
2350 }
2351 function update() {
2352 var lastMessID = GM_getValue('lastMessID','-1');
2353 ReturnRequest('GM_ChatBox.php?update=1&id='+lastMessID+'&u='+whoami,0, function(r){
2354 var datasChat = r.split('<theid>');
2355 if ((r != '') && (datasChat.length==3) && (datasChat[0] != '0')) {
2356 document.getElementById("message_box").getElementsByTagName('table')[0].innerHTML += datasChat[1];
2357 GM_setValue('lastMessID',datasChat[2]);
2358 var chatBoxStatus = document.getElementsByClassName("toggle_chat")[0].style.display;
2359 if (chatBoxStatus == 'none') {
2360 document.getElementById("new_message").innerHTML = Number(document.getElementById("new_message").innerHTML)+Number(datasChat[0]);
2361 }
2362 else {
2363 GM_setValue('lastMessReadID',datasChat[2])
2364 }
2365 var objDiv = document.getElementById("message_box");
2366 // objDiv.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);;
2367 objDiv.scrollTop=objDiv.scrollHeight;
2368 if (GM_getValue('soundStatus','normal') == 'normal') { beep();}
2369 }
2370 });
2371 }
2372 }
2373 //hackman stolen chatbox lazy (but modified a lot =])
2374}
2375function TBG_Info() {
2376 if (GM_getValue("TBG_An","Yes") == "Yes") {
2377 var insertion = document.getElementsByTagName('tbody');
2378 var stuff = document.body.innerHTML;
2379 var TBG = stuff.split("Projected Income</b></td>");
2380 TBG = TBG[1].split(">");
2381 TBG = TBG[1].split(" ");
2382 TBG = Math.floor(removeComma(TBG[0]));
2383 var c = 0;
2384 var x = 0;
2385 while (insertion[c]) {
2386 if (insertion[c].innerHTML.split("Recent Attacks on You")[1]) x = c;
2387 c++;
2388 }
2389 insertpoint=insertion[x];
2390 var TBGTable = insertpoint.insertRow(insertpoint.rows.length);
2391 var SA_p = 100;
2392 var DA_p = 100;
2393 var Spy_p = 100;
2394 var Sentry_p = 100;
2395 if (GM_getValue("TBG_1") == 2) {
2396 SA_p = GM_getValue("Auto_SA",100);
2397 DA_p = GM_getValue("Auto_DA",100);
2398 Spy_p = GM_getValue("Auto_Spy",100);
2399 Sentry_p = GM_getValue("Auto_Sentry",100);
2400 }
2401 var time1 = 1;
2402 var time2 = 24;
2403 if (GM_getValue("TBG_2") == 2) {
2404 time1 = 168;
2405 time2 = 720;
2406 }
2407 //alert(GM_getValue("Tot_SA_Factor",100000));
2408 var rechterdeel = "";
2409 var e_text = "TBG Analyzer";
2410 rechterdeel += '<td width="50%" valign="top" colspan="5" style="padding-right: 0px; padding-left: 0px;">';
2411 rechterdeel += '<table class="table_lines" width="100%" cellspacing="0" cellpadding="6" border="0">';
2412 rechterdeel += '<tr>';
2413 rechterdeel += '<th colspan="4">' + e_text + '</th>';
2414 rechterdeel += '</tr>';
2415 rechterdeel += '<tr>';
2416 rechterdeel += '<th class="subh" align="left"> </th>';
2417 if (time1 == 1) {
2418 rechterdeel += '<th class="subh" align="left">45 Min </th>';
2419 rechterdeel += '<th class="subh" align="left">1 Hour </th>';
2420 rechterdeel += '<th class="subh" align="left">1 Day </th>';
2421 }
2422 else {
2423 rechterdeel += '<th class="subh" align="left">1 Week </th>';
2424 rechterdeel += '<th class="subh" align="left">1 Month </th>';
2425 }
2426 rechterdeel += '</tr>';
2427 rechterdeel += '<tr>';
2428 rechterdeel += '<td class="subh">Income </td>';
2429 rechterdeel += '<td class="subh">' + addCommas(TBG * 45 * time1) + ' </td>';
2430 rechterdeel += '<td class="subh">' + addCommas(TBG * 60 * time1) + ' </td>';
2431 rechterdeel += '<td class="subh">' + addCommas(TBG * 60 * time2) + ' </td>';
2432 rechterdeel += '</tr>';
2433 rechterdeel += '<tr>';
2434
2435 rechterdeel += '<td class="subh">SA Increase (' + SA_p + '%)</td>';
2436 rechterdeel += '<td class="subh"></td>';
2437 rechterdeel += '<td class="subh">' + addCommas(Math.round(SA_p / 100 * TBG * 60 * time1 / 450000 * 600 * GM_getValue("Tot_SA_Factor", 1000000) / 100000)) + ' </td>';
2438 rechterdeel += '<td class="subh">' + addCommas(Math.round(SA_p / 100 * TBG * 60 * time2 / 450000 * 600 * GM_getValue("Tot_SA_Factor",1000000) / 100000)) + ' </td>';
2439
2440 rechterdeel += '</tr>';
2441 rechterdeel += '<tr>';
2442 rechterdeel += '<td class="subh">DA Increase (' + DA_p + '%)</td>';
2443 rechterdeel += '<td class="subh"></td>';
2444 rechterdeel += '<td class="subh">' + addCommas(Math.round(DA_p / 100 * TBG * 60 * time1 / 200000 * 256 * GM_getValue("Tot_DA_Factor",1000000) / 100000)) + ' </td>';
2445 rechterdeel += '<td class="subh">' + addCommas(Math.round(DA_p / 100 * TBG * 60 * time2 / 200000 * 256 * GM_getValue("Tot_DA_Factor",1000000) / 100000)) + ' </td>';
2446
2447 rechterdeel += '</tr>';
2448 rechterdeel += '<tr>';
2449 rechterdeel += '<td class="subh">Spy Increase (' + Spy_p + '%)</td>';
2450 rechterdeel += '<td class="subh"></td>';
2451 rechterdeel += '<td class="subh">' + addCommas(Math.round(Spy_p / 100 * TBG * 60 * time1 / 1000 * GM_getValue("Tot_Spy_Factor",1000000) / 100000)) + ' </td>';
2452 rechterdeel += '<td class="subh">' + addCommas(Math.round(Spy_p / 100 * TBG * 60 * time2 / 1000 * GM_getValue("Tot_Spy_Factor",1000000) / 100000)) + ' </td>';
2453
2454 rechterdeel += '</tr>';
2455 rechterdeel += '<tr>';
2456 rechterdeel += '<td class="subh">Sentry Increase (' + Sentry_p + '%)</td>';
2457 rechterdeel += '<td class="subh"></td>';
2458 rechterdeel += '<td class="subh">' + addCommas(Math.round(Sentry_p / 100 * TBG * 60 * time1 / 1000 * GM_getValue("Tot_Sentry_Factor",1000000) / 100000)) + ' </td>';
2459 rechterdeel += '<td class="subh">' + addCommas(Math.round(Sentry_p / 100 * TBG * 60 * time2 / 1000 * GM_getValue("Tot_Sentry_Factor",1000000) / 100000)) + ' </td>';
2460
2461 rechterdeel += '</tr>';
2462 rechterdeel += '</table>';
2463 TBGTable.vAlign="top";
2464 TBGTable.innerHTML=rechterdeel;
2465 document.getElementById("expand_tbg").addEventListener('click', TBGSettings_Big, true);
2466
2467 }
2468}
2469
2470function CheckIntel(){
2471 var stuff = document.body.innerHTML;
2472 if(stuff.match("Your Chief of Intelligence dispatches"))
2473 {
2474 sab();
2475 }else{
2476 recon();
2477 }
2478}
2479
2480
2481function sab(){
2482 var stuff = document.body.innerHTML;
2483 if(stuff.match("but are spotted by sentries before they enter")) //Fail sab...
2484 {
2485 var Username = FindText(stuff,"Your spies attempt to break into ","'s armory");
2486 if( Username != GM_getValue("failsab_user") )
2487 {
2488 GM_setValue("failsab",0);
2489 GM_setValue("failsab_user",Username);
2490 GM_setValue("failsab_nuns",0);
2491 }
2492 var failsab = GM_getValue("failsab");
2493 failsab += 1;
2494 GM_setValue("failsab",failsab);
2495 if(InStr(stuff,' of Nunchaku')==true)
2496 {
2497 var nuns = parseInt(FindText(stuff,"<li> "," of Nunchaku"));
2498 nuns += GM_getValue("failsab_nuns");
2499 GM_setValue("failsab_nuns",nuns);
2500 }
2501 } else { //Good sab
2502 var ReportID = String(document.URL).substr(String(document.URL).indexOf('=')+1, 8);
2503 if(InStr(stuff,'Your spies successfully enter ') == true){
2504 var sabbee = FindText(stuff,"Your spies successfully enter ","'s");
2505 var amount = FindText(stuff,"and destroy "," of the ");
2506 var weapon = FindText(stuff,"of the enemy's "," stockpile.");
2507 //no weapon found but we need the details to update the DB
2508 if (weapon == ""){
2509 weapon = FindText(stuff,"cannot find a "," anywhere");
2510 GM_log(weapon);
2511 }
2512 if (amount == ""){
2513 amount = '0';
2514 }
2515 var whoami = GM_getValue("Koc_User");
2516 // alert('GM_Log.php?type=sab&sabber=' + whoami + '&sabbee=' + sabbee + '&weapon=' + weapon + '&amount=' + amount + '&rid=' + ReportID);
2517 ReturnRequest('GM_Log.php?type=sab&sabber=' + whoami + '&sabbee=' + sabbee + '&weapon=' + weapon + '&amount=' + amount + '&rid=' + ReportID,0,function(responseText){
2518 // GM_log(responseText);
2519 var c = FindText(responseText,'<chuck>','</chuck>');
2520 c = '<b><font color="yellow">' + c + '</b></font><br>';
2521 var x = document.body.innerHTML;
2522 var xx = x.replace("Copyright",c)
2523 document.body.innerHTML = xx;
2524 });
2525 }
2526 }
2527}
2528
2529
2530function Loading(something)
2531{
2532 var x = document.createElement('div');
2533 x.style.width = document.body.offsetWidth + 'px';
2534 x.style.height = document.body.offsetHeight + 'px';
2535 x.style.position = 'absolute';
2536 x.style.top = '0px';
2537 x.style.left = '0px';
2538 x.style.backgroundColor = '#000000';
2539 x.style.opacity = '0.5';
2540 x.id = 'sabwait';
2541 var y = document.createElement('div');
2542 y.id = 'picnik-overlay-gears';
2543 y.name = "gearx";
2544 y.style.top="50%";
2545 y.style.left="50%";
2546 if(something.length > 2){
2547 y.innerHTML = something;
2548 }else{
2549 var z = document.createElement('img');
2550 z.src = gears;
2551 }
2552 y.style.display="block";
2553 y.style.position="fixed";
2554 y.style.zIndex = "9998";
2555 if(something.length > 2){
2556 }else{
2557 y.appendChild(z);
2558 }
2559 x.appendChild(y);
2560 document.body.appendChild(x);
2561}
2562
2563function StopLoading()
2564{
2565 document.body.removeChild(document.getElementById('sabwait'));
2566}
2567
2568function InputMessage(event) {
2569 var stuff = document.body.innerHTML;
2570 user = stuff.split("<b>To:</b> ");
2571 user = user[1].split("</th>");
2572 Username = user[0];
2573 var pm = GM_getValue("MessageAutoFill").replace("%name%",Username);
2574 document.getElementsByTagName('textarea')[0].value=pm;
2575}
2576
2577function SetMessage(event)
2578{
2579 GM_addStyle("#_xxmd_prefs {position:fixed; left:20%; right:20; bottom:100; top:auto; width:70%; color:#ffffff; font: 11px Verdana; border-top:1px #888888 solid; background:#000000;}",
2580 "#_xxmd_prefs .main { text-align: left;padding:5px 0 0.4em 0; width:800px; margin: auto;}",
2581 "#_xxmd_prefs input[type=submit] {font: normal 11px sans-serif; border: 1px solid #0080cc; color: #333; cursor: pointer; background: #FFF;}",
2582 "#_md_prefs input[x ]{background: #CCC;}",
2583 "#_xxmd_prefs input[type=text] { width: 50px; }",
2584 ".label { widtH: 125px; float: left; }",
2585 ".input { width: 51px; float:right; }");
2586 var prefs = document.createElement("div");
2587 prefs.id = "_xxmd_prefs";
2588 prefs.innerHTML = '<center>%name% to replace username.<textarea name="message" rows="10" cols="130">' + GM_getValue("MessageAutoFill") + '</textarea><div align="center" id="SaveMessage">Save Message</div></centre>';
2589 document.body.appendChild(prefs);
2590 document.addEventListener('click', function(event) {
2591 if(event.target.id == "SaveMessage"){
2592 var messagex = document.getElementsByTagName('textarea')[1].value;
2593 GM_setValue('MessageAutoFill', messagex);
2594 var prefs = document.getElementById("_xxmd_prefs");
2595 if(prefs) prefs.style.display="none";
2596 }
2597 }, true);
2598}
2599
2600function writemail(){
2601 var prefs = document.getElementById("_md_prefs");
2602 addCSS(
2603 "#_xmd_prefs {position:fixed; left:auto; right:0; bottom:100; top:auto; width:120px; color:#ffffff; font: 11px Verdana; border-top:1px #000000 solid; background:#000000;}",
2604 "#_xmd_prefs div { text-align: left;padding:5px 0 0.4em 0; width:100%; margin: auto;}",
2605 "#_xmd_prefs input[type=submit] {font: normal 11px sans-serif; border: 1px solid #0080cc; color: #333; cursor: pointer; background: #FFF;}",
2606 "#_xmd_prefs input[x ]{background: #CCC;}",
2607 "#_xmd_prefs input[type=text] { width: 100px; }"
2608 );
2609 var prefs = document.createElement("div");
2610 prefs.id = "_xmd_prefs";
2611 var t = "<div>";
2612 t+= "<input type='submit' id='seta' value='Set Auto Fill' /><div style='float:left; width: 20%;'></div><br>";
2613 t+= "<input type='submit' id='enters' value='Auto Fill' /><div style='float:left; width: 20%;'></div>";
2614 t += "</div>";
2615 //alert(prefs);
2616 prefs.innerHTML = t;
2617 document.body.appendChild(prefs);
2618 document.getElementById("seta").addEventListener('click', SetMessage, true);
2619 document.getElementById("enters").addEventListener('click', InputMessage, true);
2620 var stuff = document.body.innerHTML;
2621 var username = FindText(stuff,'<th align="left"><b>To:</b> ','</th>');
2622 var dt = new Date();
2623 var unixtime = Math.max((Date.parse(dt))/1000);
2624 var lastmsg = GM_getValue("KoC_Message_Time_" + username);
2625 document.addEventListener('click', function(event) {
2626 if(event.target.name == "send"){
2627 var message = document.getElementsByTagName('textarea')[0].value;
2628 GM_setValue('KoC_Message_Msg_' + username, message);
2629 GM_setValue('KoC_Message_Time_' + username, unixtime);
2630 }
2631 if(event.target.id == "HideMessage"){
2632 var prefs = document.getElementById("_md_prefs");
2633 if(prefs) prefs.style.display="none";
2634 }
2635 if(event.target.id == "GM_Message"){
2636 GM_addStyle("#_md_prefs {position:fixed; left:0; right:0; bottom:0; top:auto; width:100%; color:#ffffff; font: 11px Verdana; border-top:1px #888888 solid; background:#000000;}",
2637 "#_md_prefs .main { text-align: left;padding:5px 0 0.4em 0; width:800px; margin: auto;}",
2638 "#_md_prefs input[type=submit] {font: normal 11px sans-serif; border: 1px solid #0080cc; color: #333; cursor: pointer; background: #FFF;}",
2639 "#_md_prefs input[x ]{background: #CCC;}",
2640 "#_md_prefs input[type=text] { width: 50px; }",
2641 ".label { widtH: 125px; float: left; }",
2642 ".input { width: 51px; float:right; }");
2643 var prefs = document.createElement("div");
2644 prefs.id = "_md_prefs";
2645 prefs.innerHTML = '<center>' + ConvertTime(lastmsg) + '<br><textarea name="message" rows="10" cols="130">' + GM_getValue("KoC_Message_Msg_" + username) + '</textarea><div align="center" id="HideMessage">Hide Message</div></centre>';
2646 document.body.appendChild(prefs);
2647 }
2648 }, true);
2649 if (lastmsg > 1){
2650 DisplayMessage("Last message was sent: " + ConvertTime(lastmsg) + ' [Click me to read]');
2651 }else{
2652 DisplayMessage("Last message was sent: unknown");
2653 }
2654}
2655
2656
2657function ConvertTime (oldtime) {
2658 var dt = new Date();
2659 var unixtime = Math.max((Date.parse(dt))/1000);
2660 var diff = Math.max(unixtime - oldtime);
2661 var strTime = "";
2662 if (diff > 86400) {
2663 var d = Math.max(Math.floor(diff / 86400));
2664 diff = Math.max(diff - Math.max(d * 86400));
2665 strTime = strTime + d + " days, ";
2666 }
2667 if (diff > 3600) {
2668 var h = Math.max(Math.floor(diff / 3600));
2669 diff = Math.max(diff - Math.max(h * 3600));
2670 strTime = strTime + h + " hours, ";
2671 }
2672 if (diff > 60) {
2673 var m = Math.max(Math.floor(diff / 60));
2674 diff = Math.max(diff - Math.max(m * 60));
2675 strTime = strTime + m + " minutes, ";
2676 }
2677 strTime = strTime + diff + " seconds ago";
2678 return strTime;
2679}
2680
2681//hackman changes This function got exported to avoid having it copied fully 4x in the CustomPage() block.
2682function ajaxFarmlist (woot) {
2683 var whoami = GM_getValue("Koc_User");
2684 if ((woot != 'tbg') && (woot != 'defense') && (woot != 'size')) {
2685 woot = 'defense';// && (woot != 'gold')
2686 }
2687 var requestedDA = rmCommas(document.getElementById('inputda').value).replace(/\s/g,'').replace(/\./g,'');
2688 var requestedTFF = rmCommas(document.getElementById('inputtff').value).replace(/\s/g,'').replace(/\./g,'');
2689 if (!isNumber(requestedDA)) { requestedDA = Math.floor(Number(GM_getValue('userSA',rmCommas(document.getElementById('mystats').getElementsByTagName('b')[0].innerHTML.split(':')[1].replace(/\s/g,''))))*.85); }
2690 if (!isNumber(requestedTFF)) { requestedTFF = GM_getValue('userTFF',rmCommas(document.getElementById('mystats').getElementsByTagName('b')[1].innerHTML.split(':')[1].split(' ')[1].replace(/\s/g,''))); }
2691 ReturnRequest('GM_CustomPage.php?page=farmlist' + '&u=' + whoami+'&inputda='+requestedDA+'&inputtff='+requestedTFF+'&sort='+woot,2,function(noobs){
2692 //Clean old rows keeping the Table Headers (keep events on it)
2693 var thetable = document.getElementById('farmTable');
2694 var rows = thetable.rows;
2695 for (var i=rows.length-1; i>0; i--) {
2696 rows[i].parentNode.removeChild(rows[i]);
2697 }
2698 var ghostdiv = document.createElement('div'); ghostdiv.innerHTML = '<html><head></head><body>'+noobs+'</body></html>'.split(/<body[^>]*>((?:.|\n)*)<\/body>/i)[1]; //the hack i love sooo much to never use any DomParser()
2699 var serverrows = ghostdiv.getElementsByTagName('table')[0].getElementsByTagName('tr');
2700 var docFrag = document.createDocumentFragment();
2701 while(serverrows.length>1) {
2702 docFrag.appendChild(serverrows[1]);
2703 }
2704 thetable.appendChild(docFrag);
2705 });
2706}
2707//hackman changes
2708
2709function CustomPage() {
2710 var stuff = document.body.innerHTML;
2711 var page = String(document.URL).substr(String(document.URL).indexOf('=')+1, 65);
2712 var newhtml='Error...';
2713 var whoami = GM_getValue("Koc_User");
2714 ReturnRequest('GM_CustomPage.php?page=' + page + '&u=' + whoami,2,function(r){
2715 var newhtml = stuff.replace("Loading...",'');
2716 var newhtml = newhtml.replace("Please wait...",r);
2717 // alert(r);
2718 document.body.innerHTML = newhtml;
2719 //hackman changes
2720 if (page == 'farmlist' || page == 'useme') {
2721 //Remove old sort links and add ID for easy event addition
2722 addCSS('th {border-bottom-left-radius: 10px;border-bottom-right-radius: 10px;border-top-right-radius: 10px;border-top-left-radius: 10px;border: 1px solid white;}');//Erebus
2723 document.getElementById('tbg').innerHTML = '<a style="cursor:pointer;">TBG</a>';
2724 //document.getElementById('').innerHTML = '<a style="cursor:pointer;">Treasury[%]</a>'; IF THIS IS UNCOMMENTED IT WONT WORK CAUSE THE ID HAS BEEN REMOVED AND WILL BREAK THE OTHERS
2725 document.getElementById('defense').innerHTML = '<a style="cursor:pointer;">Defense</a>';
2726 document.getElementById('size').innerHTML = '<a style="cursor:pointer;">Size</a>';
2727
2728 //Create the HTML clean way
2729 var thep = document.createElement('p');
2730 var titlespan = document.createElement('span');
2731 var inputtff = document.createElement('input');
2732 var inputda = document.createElement('input');
2733 var buttonsend = document.createElement('input');
2734 var labeltff = document.createElement('label');
2735 var labelda = document.createElement('label');
2736 var thebr = document.createElement('br');
2737 titlespan.innerHTML = 'Custom Search >';
2738 titlespan.style = 'font-weight:bold;text-decoration:underline;';
2739 inputtff.id = 'inputtff';
2740 inputtff.type='text';
2741 inputda.id = 'inputda';
2742 inputda.type='text';
2743 labeltff.setAttribute('for','inputtff');
2744 labeltff.innerHTML='Tff : ';
2745 labelda.setAttribute('for','inputda');
2746 labelda.innerHTML=' DA : ';
2747 buttonsend.id = 'farmsend';
2748 buttonsend.type = 'button';
2749 buttonsend.value = 'Request';
2750 var insertedp = document.getElementById('mystats').parentNode.insertBefore(thep,document.getElementById('mystats'));
2751 insertedp.appendChild(titlespan);
2752 insertedp.appendChild(labelda);
2753 insertedp.appendChild(inputda);
2754 insertedp.innerHTML+= ' | ';
2755 insertedp.appendChild(labeltff);
2756 insertedp.appendChild(inputtff);
2757 insertedp.innerHTML+= ' ';
2758 insertedp.appendChild(buttonsend);
2759 //Create Events
2760 //Button event
2761 document.getElementById('farmsend').addEventListener('click', function() {ajaxFarmlist('supbru');});
2762 //Sort events
2763 document.getElementById('tbg').addEventListener('click', function() {ajaxFarmlist('tbg');});
2764 //document.getElementById('sortgold').addEventListener('click', function() {ajaxFarmlist('gold');});
2765 document.getElementById('defense').addEventListener('click', function() {ajaxFarmlist('defense');});
2766 document.getElementById('size').addEventListener('click', function() {ajaxFarmlist('size');});
2767 }
2768 //hackman changes
2769 addCSS('th {border-bottom-left-radius: 10px;border-bottom-right-radius: 10px;border-top-right-radius: 10px;border-top-left-radius: 10px;border: 1px solid white;}');//Erebus
2770 if (page == 'search') {
2771
2772 var searchbar = "<tr><td><form action='stats.php?id=search' method='POST'><input size='5' name='query' value='' type='text'><input type='submit' value='FUKN DO SOMETHING' name='submit'></form></td></tr>";
2773 if(!String(cID).match('undefined')){
2774 document.getElementsByClassName('table_lines')[cID].innerHTML = searchbar + document.getElementsByClassName('table_lines')[cID].innerHTML; //"Lol";
2775 }
2776 }
2777 /* #warlist,
2778 #due th,
2779 #tre th {
2780 border-top-right-radius: 10px;
2781 border-top-left-radius: 10px;
2782 border: 1px solid black;
2783 }
2784 #tre td {
2785 border: 1px solid black;
2786 } */
2787 chatBox();
2788 });
2789
2790}
2791
2792function UserPage() {
2793
2794 var stuff = document.body.innerHTML;
2795 var page = String(document.URL).substr(String(document.URL).indexOf('=')+1, 65);
2796 var newhtml='Error...';
2797 var whoami = GM_getValue("Koc_User");
2798 ReturnRequest('logging.php?page=' + page + '&u=' + whoami,1,function(r){
2799 var newhtml = stuff.replace("Loading...",'');
2800 var newhtml = newhtml.replace("Please wait...",r);
2801 document.body.innerHTML = newhtml;
2802 });
2803}
2804
2805function stats() {
2806 var userid = String(document.URL).substr(String(document.URL).indexOf('=')+1);
2807 //alert(userid);
2808 var stuff = document.body.innerHTML;
2809 var newhtml = '';
2810 if (!IsNumeric(userid)) {
2811 /* newhtml = stuff.replace("Error",'Loading...');
2812 newhtml = newhtml.replace("Invalid User ID",'Please wait...');
2813 document.body.innerHTML = newhtml;
2814 CustomPage(); */
2815 if(userid == "accounts"){
2816 StatsFunction();
2817 }
2818 else{
2819 newhtml = stuff.replace("Error",'Loading...');
2820 newhtml = newhtml.replace("Invalid User ID",'Please wait...');
2821 document.body.innerHTML = newhtml;
2822 CustomPage();
2823 }
2824 } else {
2825 if (InStr(stuff,"Invalid User ID") == true) {
2826 ReturnRequest('GM_Active.php?id=' + userid + '&a=0',1,function(r){
2827 newhtml = stuff.replace("Invalid User ID",'Invalid UserID (Vacation mode or deleted)<br>' + r);
2828 document.body.innerHTML = newhtml;
2829 });
2830 ReturnRequest('DeleteStat.php?id=' + userid + '&a=0',1,function(r){
2831 //alert("deleted");
2832 });
2833 } else {
2834 var user = FindText(FindText(stuff,"<td><b>Name:</b></td>","</tr>"),"<td>","</td>");
2835 //var appUser =
2836 if(InStr(user,'<font color="#ffff00">') == true){ //Online
2837 user = FindText(user,">","<");
2838 //alert('if 1');
2839 } else { //Offline
2840 user = replaceAll(user,"\t","");
2841 user = replaceAll(user,"\n","");
2842 //user = stuff.replace(user,+aprvd);
2843 //alert('else 2');
2844 }
2845 var userStats = '';
2846 var aprvd = 'Approved Target';
2847 var userHeader = document.body.innerHTML.match("User Stats");
2848 var newRow = (stuff,user+"<font color='red'> Approved Target</font></td>");
2849 //alert(newRow);
2850
2851 /*if(InStr(stuff,"User Stats") == true){
2852 var userStats = stuff.replace(user,newRow);
2853 document.body.innerHTML = userStats;
2854 //alert('if 1');
2855 }*/
2856 //alert(user);
2857 UsersSize = FindText(FindText(stuff,"<td><b>Army Size:</b></td>","</tr>"),"<td>","</td>");
2858 UsersRank = FindText(FindText(stuff,"<td><b>Rank:</b></td>","</tr>"),"<td>","</td>");
2859
2860 var Morale = FindText(FindText(stuff, 'Army Morale:','</tr>'),'<td>','</td>');
2861
2862 //DO NOT DELETE THIS LINE MAY NEED SOMEDAYvar UserChain = FindText(FindText(stuff,"<td><b>Chain Name:</b></td>","</tr>"),"<td>","</td>");
2863
2864 var UserChain = GetText(">Alliances:", "<b>", "alliances.php?id=", ">", "<");
2865
2866 if(!UserChain){
2867
2868 var UserChain = "NONE";
2869 //alert(UserChain);
2870 }
2871
2872 var UsersRace = FindText(FindText(stuff,"<td><b>Race:</b></td>","</tr>"),"<td>","</td>");
2873 var UsersCommander = FindText(FindText(stuff,"<td><b>Commander:</b></td>","</tr>"),"<td>","</td>");
2874 UsersGold = "1337";
2875 if(InStr(stuff,"stats") == true){
2876 UsersCommander = FindText(UsersCommander,">","<");
2877 }
2878 if(InStr(stuff,"Treasury:") == true){
2879 UsersGold = FindText(FindText(stuff,"<td><b>Treasury:</b></td>","</tr>"),"<td>","</td>");
2880 }
2881 var cID = getClassIndex('table_lines','User Stats');
2882 if(!String(cID).match('undefined')){
2883 document.addEventListener('click', function(event) {
2884 if(event.target.name == 'recon_request'){
2885 var whoami = GM_getValue("Koc_User");
2886 ReturnRequest('ReconRequest.php?user=' + user + '&id=' + userid + '&me=' + whoami,0,function(responseText){
2887 ReturnRequest('ShowRequest.php',0,function(responseText){
2888 Ruser = FindText(responseText,'[/END]<br/>');
2889 var Ruser = responseText.split('[/END]<br/>');
2890 var cID = getClassIndex('table_lines','Officers');
2891 if(!String(cID).match('undefined')){
2892 var RRgetDivs = document.getElementsByTagName('div');
2893 for (var i=0; i<RRgetDivs.length; i++) {
2894 if (RRgetDivs[i].id =='RRdiv') {RRgetDivs[i].innerHTML=Ruser;i=RRgetDivs.length;break;}
2895 }
2896 }
2897 });
2898 });
2899 }
2900
2901 },true);
2902 }
2903
2904 ReturnRequest('ShowRequest.php',0,function(responseText){
2905 Ruser = FindText(responseText,'[/END]<br/>');
2906 var Ruser = responseText.split('[/END]<br/>');
2907 var cID = getClassIndex('table_lines','Officers');
2908 if(!String(cID).match('undefined')){
2909 var RRDiv=document.createElement('div');
2910 RRDiv.id = 'RRdiv';
2911 RRDiv.style.backgroundColor='black';
2912 RRDiv.style.color='white';
2913 RRDiv.style.position='absolute';
2914 RRDiv.style.top='10px';
2915 RRDiv.style.right='10px';
2916 RRDiv.innerHTML=Ruser;
2917 document.body.appendChild(RRDiv);
2918 }
2919 });
2920
2921 ReturnRequest('GM_DisplayStats.php?user=\n' + user + '&sid=' + userid + '&size=\n' + UsersSize + '&gold=\n' + UsersGold + '&rank=\n' + UsersRank + '&com=' + UsersCommander + '&race=' + UsersRace + "&c=" + UserChain + '&morale=' + Morale,0,function(responseText){
2922
2923 TheSA = addCommas(FindText(responseText,"[SA]","[/SA]"));
2924 TheDA = addCommas(FindText(responseText,"[DA]","[/DA]"));
2925 TheSpy = addCommas(FindText(responseText,"[Spy]","[/Spy]"));
2926 TheSentry = addCommas(FindText(responseText,"[Sentry]","[/Sentry]"));
2927
2928 TheSATime = FindText(responseText,"[SATime]","[/SATime]");
2929 TheDATime = FindText(responseText,"[DATime]","[/DATime]");
2930 TheSpyTime = FindText(responseText,"[SpyTime]","[/SpyTime]");
2931 TheSentryTime = FindText(responseText,"[SentryTime]","[/SentryTime]");
2932
2933 TheAge = FindText(responseText,"[Age]","[/Age]");
2934 TheChain = FindText(responseText,"[Chain]","[/Chain]");
2935 sGold = FindText(responseText,"[gold]","[/gold]");
2936 uTag = FindText(responseText,"[tag]","[/tag]");
2937 sTBG = FindText(responseText,"[tbg]","[/tbg]");
2938
2939
2940 var table = '<table class="table_lines" align="center" width="120%" cellspacing="0" cellpadding="6" border="0">'+
2941 '<tr><th colspan="5">Recent Stats | Estimated SOV = ' + FindText(responseText,"<sov=","></sov>") + ' <div id=showhistory>(History)</div></th></tr>'+
2942 '<tr><td><b>Strike Action</b></td><td colspan="2" align="center">' + TheSA + ' </td><td>' + TheSATime + '</td></tr>'+
2943 '<tr><td><b>Defensive Action</b></td><td colspan="2" align="center">' + TheDA + ' </td><td>' + TheDATime + '</td></tr>'+
2944 '<tr><td><b>Spy Rating</b></td><td colspan="2" align="center">' + TheSpy + ' </td><td>' + TheSpyTime + '</td></tr>'+
2945 '<tr><td style="border:0;"><b>Sentry Rating</b></td><td colspan="2" align="center" style="border:0;">' + TheSentry + ' </td><td>' + TheSentryTime + '</td></tr>';
2946
2947 var cID = getClassIndex('table_lines','Officers');
2948 var user = FindText(FindText(stuff,"<td><b>Name:</b></td>","</tr>"),"<td>","</td>");
2949 ReturnRequest('DisplayOldStats.php?name=\n' + user,0,function(responseText){
2950 document.addEventListener('click', function(event){
2951 if(event.target.id == 'showhistory'){
2952 addCSS('table.histtable {table-layout:fixed;width:100%;height:75%;border-collapse:collapse;border:3px white;border-collapse:separate;border-spacing:5px;}');
2953 DisplayHistory(responseText);
2954 }
2955 });
2956 });
2957 if(!String(cID).match('undefined')){
2958 document.getElementsByClassName('table_lines')[cID].innerHTML = table + document.getElementsByClassName('table_lines')[cID].innerHTML; //"Lol";
2959 }
2960 // -- Display info
2961 });
2962
2963
2964
2965 AppendStatsTable(UsersGold);
2966 SetChain();
2967 expcolTable('Officers');
2968 expcolTable('Recent Intelligence');
2969 expcolTable('Recent Battles');
2970
2971 var cBut1 = GetElement('input', "Attack Now!");
2972 cBut1.value = cBut1.value.replace("Attack Now!", "Attack Now!");
2973
2974 var cBut2 = GetElement('input', "Raid Now!");
2975 cBut2.value = cBut2.value.replace("Raid Now!", "Raid Now!");
2976
2977 var cBut3 = GetElement('input', "Sabotage!");
2978 cBut3.value = cBut3.value.replace("Sabotage!", "Sabotage!");
2979
2980 var cBut4 = GetElement('input', "Recon Now!");
2981 cBut4.value = cBut4.value.replace("Recon Now!", "Recon Now!");
2982
2983 var cBut5 = GetElement('input', "Send Message");
2984 cBut5.value = cBut5.value.replace("Send Message", "Send Message");
2985 }
2986 }
2987 var whoami = GM_getValue("Koc_User");
2988 var noteDiv = document.createElement('div');
2989 var noteArea = document.createElement('textarea');
2990 var noteButton = document.createElement('input');
2991 noteDiv.style.position = 'absolute';
2992 noteDiv.style.top = '0px';
2993 noteDiv.style.left = '0px';
2994 noteDiv.style.color = 'white';
2995 noteDiv.style.borderRadius='15px';
2996 noteArea.style.width = '100%';
2997 noteArea.style.backgroundColor = 'black';
2998 noteArea.style.borderRadius='15px';
2999 noteArea.id = 'notetoself';
3000 // noteArea.innerHTML = 'Timezone wtf i dont care'+"\r\n"+'and yes this is it and'+"\r\n"+'popopopopo';
3001 noteButton.type = 'button';
3002 noteButton.value='Update!';
3003 noteButton.id='notetoselfsave';
3004 noteButton.style.borderRadius='15px';
3005 var notething1 = document.body.appendChild(noteDiv);
3006 notething1.appendChild(noteArea);
3007 var notebutt = notething1.appendChild(noteButton);
3008 notebutt.addEventListener('click',function () {ReturnRequest('GM_statsNotes.php?u='+whoami+'&uid='+userid+'¬e='+encodeURI(document.getElementById('notetoself').value),0,function(responseText){
3009 if (responseText == 'SPAM'){alert("Please don't spam that much."); }
3010 else { alert('Saved!'); }
3011 });});
3012 ReturnRequest('GM_statsNotes.php?u='+whoami+'&uid='+userid+'&fetch=1',0,function(responseText){
3013 document.getElementById('notetoself').innerHTML = responseText;
3014 });
3015}
3016
3017function SetChain()
3018{
3019 if (TheChain == 'NULL'){
3020 setTimeout(SetChain, 1500);
3021 } else {
3022 if(document.getElementById('_sgold') != null){
3023 document.getElementById('_sgold').innerHTML = sGold;
3024 }
3025 document.getElementById('_chain').innerHTML = TheChain;
3026 document.getElementById('_stbg').innerHTML = sTBG;
3027 }
3028}
3029
3030function AppendStatsTable() // function mostly wrote by Lukas Brueckner
3031{
3032
3033
3034 var nameRE = /\<th colspan="2"\>User Stats\<\/th\>/ig;
3035 var q = document.getElementsByTagName('table');
3036 var statstable;
3037 var i;
3038 for(i = 0; i < q.length; i++){
3039 if(q[i].innerHTML.match(nameRE) && !q[i].innerHTML.match(/\<table/))
3040 {
3041 statstable = q[i];
3042 break;
3043 }
3044 }
3045 var allianceindex;
3046 for (i = 0; i < statstable.rows.length; i++) {
3047 if (statstable.rows[i].cells[0].innerHTML.indexOf('Alliances') > 0) {
3048 allianceindex = i;
3049 break;
3050 }
3051 }
3052 //statstable.rows[allianceindex].cells[1].innerHTML = '<div id="_alliances">' + statstable.rows[allianceindex].cells[1].innerHTML + '</div><a href="javascript:ShowAlliances();"> + Show</a>';
3053
3054 statstable.insertRow(7).innerHTML = '<td><b>Chain: <b></td><td><div id="_chain">Fetching Data...</div></td>';
3055 if(UsersGold == 1337){ //User can see gold, No need to show old gold.....
3056 statstable.insertRow(11).innerHTML = '<td><b><span style="color:red">Last Gold: </span><b></td><td><div id="_sgold" style="color:red;">???</a></td>';
3057 }
3058 // Erebus recon request
3059 statstable.insertRow(12).innerHTML = '<td><b><font color=22AA22>Approx TBG(60min): </font><b></td><td><div id="_stbg" style="color:green;">???</a></td>';
3060 //Recon request action button
3061 statstable.insertRow(13).innerHTML = '<td><b>Recon Request: <b></td><td><div id="recon_request"><button name="recon_request"><font color=22AA22>Request...</font></button></div></td>';
3062 addCSS('#_alliances{display:none;visibility:hidden;}');
3063 addJS('function ShowAlliances(){var q = document.getElementById(\'_alliances\');q.style.display = \'block\';q.style.visibility = \'visible\';q.nextSibling.href = \'javascript:HideAlliances();\';q.nextSibling.innerHTML = \' - Hide\'}',
3064 'function HideAlliances(){var q = document.getElementById(\'_alliances\');q.style.display = \'none\';q.style.visibility = \'hidden\';q.nextSibling.href = \'javascript:ShowAlliances();\';q.nextSibling.innerHTML = \' + Show\'}');
3065}
3066 //hackman
3067 function RebuildArmoryArray(NewArmString,NumsWeap,OldArmString) {
3068 var FinalWeapArray=new Array();
3069 if (OldArmString != '') {
3070 var OldSplitArray1=OldArmString.split('|');
3071 for (var i=0; i<=OldSplitArray1.length-1; i++) {
3072 var OldSplitArray2=OldSplitArray1[i].split(':');
3073 FinalWeapArray[OldSplitArray2[0]]=OldSplitArray2[1];
3074 }
3075 }
3076 var NewSplitArray1=NewArmString.split('|');
3077 for (var i=0; i<=NewSplitArray1.length-1; i++) {
3078 var NewSplitArray2=NewSplitArray1[i].split(':');
3079 if ((NewSplitArray2[0] !== undefined) && (NewSplitArray2[0] != '')) {
3080 if ((FinalWeapArray[NewSplitArray2[0]] !== undefined) && (NewSplitArray2[1] != '???')) {
3081 FinalWeapArray[NewSplitArray2[0]]=NewSplitArray2[1];
3082 }
3083 else if (FinalWeapArray[NewSplitArray2[0]] === undefined) {
3084 FinalWeapArray[NewSplitArray2[0]]=NewSplitArray2[1];
3085 }
3086 }
3087 }
3088 var i=0;
3089 var FinalWeapString='';
3090 for (i in FinalWeapArray) {
3091 if (FinalWeapString != '') {
3092 FinalWeapString+='|'+i+':'+FinalWeapArray[i];
3093 }
3094 else {
3095 FinalWeapString=i+':'+FinalWeapArray[i];
3096 }
3097 }
3098 GM_setValue('AdvancedWeapsArr',FinalWeapString);
3099 if (NumsWeap == 0) {
3100 return true;
3101 }
3102 else {
3103 var TheWeapArrayStr=GM_getValue('AdvancedWeapsArr','');
3104 var TheWeapArray=TheWeapArrayStr.split('|');
3105 if (NumsWeap > TheWeapArray.length) {
3106 return false;
3107 }
3108 else {
3109 if (TheWeapArrayStr.match(/\?\?\?/)) {
3110 return false;
3111 }
3112 else {
3113 return true;
3114 }
3115 }
3116 }
3117 }
3118 //hackman
3119
3120function recon(){
3121 var stuff = document.body.innerHTML;
3122 if (InStr(stuff,"Your Chief of Intelligence provides you with the information gathered") == true)
3123 {
3124 var ReportID = String(document.URL).substr(String(document.URL).indexOf('=')+1, 8);
3125 var Username = FindText(stuff,"Under the cover of night, your spy sneaks into ","'s camp.");
3126 var Strike = FindText(FindText(stuff,"<td>Strike Action:</td>","</tr>"),">","</");
3127 var Defence = FindText(FindText(stuff,"<td>Defensive Action</td>","</tr>"),">","</");
3128 var TheSpy = FindText(FindText(stuff,"<td>Spy Rating</td>","</tr>"),">","</");
3129 var TheSentry = FindText(FindText(stuff,"<td>Sentry Rating</td>","</tr>"),">","</");
3130 var NumberOfCoverts = FindText(FindText(stuff,"<td>Covert Operatives:</td>","</tr>"),">","</");
3131 var UsersGold = FindText(FindText(stuff,"Treasury","</td>"),'">'," Gold");
3132 var StatsID = FindText(stuff,'"id" value="','"');
3133 var UserTurns = FindText(FindText(stuff,"<td>Attack Turns:</td>","</tr>"),">","</");
3134
3135 if( Username != GM_getValue("failspy_user") )
3136 {
3137 GM_setValue("failspy_user",Username);
3138 GM_setValue("last_SA",'???');
3139 GM_setValue("last_DA",'???');
3140 GM_setValue("last_Spy",'???');
3141 GM_setValue("last_Sentry",'???');
3142
3143 GM_setValue("last_Gold",'???');
3144
3145 //weap
3146 GM_setValue("last_BPM",'BPM: ???');
3147 GM_setValue("last_IS",'IS: ???');
3148 GM_setValue("last_NUN",'NUN: ???');
3149 GM_setValue("last_LT",'LT: ???');
3150 GM_setValue("last_CH",'CH: ???');
3151 GM_setValue("last_DS",'DS: ???');
3152 }
3153 GM_setValue("last_Gold", '<b>GOLD ' + UsersGold + '</b>');
3154
3155 if(CheckStat(Strike) == true) { GM_setValue("last_SA", Strike); }
3156 if(CheckStat(Defence) == true) { GM_setValue("last_DA", Defence); }
3157 if(CheckStat(TheSpy) == true) { GM_setValue("last_Spy", TheSpy); }
3158 if(CheckStat(TheSentry) == true) { GM_setValue("last_Sentry", TheSentry); }
3159
3160 cands=document.getElementsByTagName("tr");
3161 const trRE=/\<tr\>/ig;
3162 //alert(trRE);
3163 usetgold = "[user]" + Username + "[/user]start";
3164 var usetgold2 = '';
3165 var rowz = 48;
3166 if (InStr(stuff,"will end in") == true)
3167 {
3168 rowz = 49;
3169 }
3170 if (GM_getValue('war', false)) {
3171 rowz = 50;
3172 } else {
3173 rowz = 49;
3174 }
3175 //alert(rowz);
3176 //GM_log(cands.length-53); //returns number or weapons lines!
3177 for(i=rowz;i<cands.length;i++){
3178 if (InStr(cands[i].innerHTML,'<td align="right">') == true)
3179 {
3180 cWeap = cands[i].innerHTML.split('<td align="right">');
3181
3182
3183 type = FindText(cWeap[1],'','</td>');
3184 qu = FindText(cWeap[2],'','</td>');
3185 //alert(type);
3186
3187
3188 st = FindText(cWeap[3],'','</td>');
3189 var tempz = st.split('/');
3190 var num = tempz[0];
3191 var den = tempz[1];
3192
3193 var weap = FindText(cands[i].innerHTML,"<td>","</td>");
3194 //GM_getValue('war', false)
3195 //alert(den);
3196 //var weaponlist = weap;
3197 //GM_setValue("weaponlist", weap);
3198 //GM_setValue("weap", weap);
3199 //GM_getValue("weaponlist")
3200
3201 //alert(weaponlist);
3202 //console.log('List: ' + weap);
3203 if (qu != "???") {
3204 if((weap != "???") || (weap != "???" && type != "???") || (weap != "???" && den != "???") || (type != "???" && den != "???") || (weap != "???" && den != "???" && type != "???")) {
3205 if (weap == "???") {
3206 switch(type) {
3207 case "Attack":
3208 if (den == "600") {
3209 weap = "chariot";
3210 } else if (den == "1,000") {
3211 weap = "Blackpowder Missile";
3212 }
3213 break;
3214 case "Defense":
3215 if (den == "256") {
3216 weap = "Dragonskin";
3217 } else if (den == "1,000") {
3218 weap = "Invisibility Shield";
3219 }
3220 break;
3221 case "Spy":
3222 if (den == "1,000") {
3223 weap = "Nunchaku";
3224 }
3225 break;
3226 case "Sentry":
3227 if (den == "1,000") {
3228 weap = "Lookout Tower";
3229 }
3230 break;
3231 }
3232 }
3233 usetgold = usetgold + "[weap]--w=" + weap + "--q=" + qu + " + --s=" + st + "--x[/weap]";
3234 //hackman
3235 if (usetgold2 != '') {
3236 usetgold2 += '|'+ weap + ':' + qu;
3237 }
3238 else {
3239 usetgold2 = weap + ':' + qu+'|';
3240 }
3241 //hackman
3242
3243 if((WeaponFromStrength(st) == 'IS') || (WeaponFromName(weap) == 'IS')){
3244 //if(InStr(st,'??') == false) { strengthIS = st; }
3245 sIS = "IS: " + qu + ' (' + strengthIS + ' )';
3246 GM_setValue("last_IS",sIS);
3247 }else if((WeaponFromStrength(st) == 'NUN') || (WeaponFromName(weap) == 'NUN')){
3248 sNUN = "NUN: " + qu;
3249 GM_setValue("last_NUN",sNUN);
3250 }else if((WeaponFromStrength(st) == 'BPM') || (WeaponFromName(weap) == 'BPM')){
3251 //if(InStr(st,'??') == false) { strengthBPM = st; }
3252 sBPM = "BPM: " + qu + ' (' + strengthBPM + ' )';
3253 GM_setValue("last_BPM",sBPM);
3254 }else if((WeaponFromStrength(st) == 'LT') || (WeaponFromName(weap) == 'LT')){
3255 sLT = "LT: " + qu;
3256 GM_setValue("last_LT",sLT);
3257 }else if((WeaponFromStrength(st) == 'LT') || (WeaponFromName(weap) == 'Skins')){
3258 sDS = "Skins: " + qu;
3259 GM_setValue("last_DS",sDS);
3260 }else if((WeaponFromStrength(st) == 'LT') || (WeaponFromName(weap) == 'Chariots')){
3261 sCH = "Chariots: " + qu;
3262 GM_setValue("last_CH",sCH);
3263 }
3264
3265 //}
3266 }
3267 }
3268 }
3269 }
3270 //alert(UsersGold);
3271 //alert(Strike);
3272 //alert(Defence);
3273
3274 var whoami = GM_getValue("Koc_User");
3275 usetgold = usetgold + "end";
3276 //alert(whoami);
3277 //alert(usetgold);
3278 // alert('GM_Recon.php?user=\n' + Username + '&sa=\n' + Strike + '&da=\n' + Defence + '&spy=\n' + TheSpy + '&sentry=\n' + TheSentry + '&statsid=\n' + StatsID + '&gold=\n' + UsersGold + '&turns=\n' + UserTurns + '&coverts=\n' + NumberOfCoverts + '&u=\n' + whoami + '&rid=' + ReportID);
3279 ReturnRequest('GM_Recon.php?user=\n' + Username + '&sa=\n' + Strike + '&da=\n' + Defence + '&spy=\n' + TheSpy + '&sentry=\n' + TheSentry + '&statsid=\n' + StatsID + '&gold=\n' + UsersGold + '&turns=\n' + UserTurns + '&coverts=\n' + NumberOfCoverts + '&u=\n' + whoami + '&rid=' + ReportID,1, function(responseText){
3280 // GM_log(responseText);
3281 //alert('GM_Recon.php?user=\n' + Username + '&sa=\n' + Strike + '&da=\n' + Defence + '&spy=\n' + TheSpy + '&sentry=\n' + TheSentry + '&statsid=\n' + StatsID + '&gold=\n' + UsersGold + '&turns=\n' + UserTurns + '&coverts=\n' + NumberOfCoverts + '&u=\n' + whoami + '&rid=' + ReportID, function(responseText){
3282
3283 /* var result;
3284 var color;
3285 if(responseText.stuff("Updated Player")) {
3286 result = "Recon Logged Successfully";
3287 color = "yellow";
3288 } else if(responseText.stuff("This report exists")) {
3289 result = "This recon already exists.";
3290 color = "red";
3291 } else {
3292 result = "Error Occoured.";
3293 color = "red";
3294 }
3295 UsersGold.insertRow(2).insertCell(0).innerHTML = "<span style=\"color: "+ color + "\">" + result + "</span>";
3296 UsersGold.rows[2].cells[0].style.textAlign = "center"; */
3297 });
3298 ReturnRequest('GM_AATRecon.php?list=\n' + usetgold,1, function(responseText){
3299 GM_log(responseText);
3300 GM_log(responseText);
3301
3302 //hackman
3303 var lstreconnedusr = GM_getValue('lastReconed','');
3304 if (lstreconnedusr != Username) {
3305 GM_setValue('lastReconed',Username);
3306 GM_setValue('AdvancedWeapsArr','');
3307 }
3308 var advReconarmory=GM_getValue('AdvancedWeapsArr','');
3309 if ((usetgold2 != '') || (cands.length-53 == 0)) {
3310 if (RebuildArmoryArray(usetgold2,cands.length-53,advReconarmory)) {
3311 var finalFullArmory = GM_getValue('AdvancedWeapsArr','');
3312 if (cands.length-53 == 0) {
3313 var fullArmPost = 'list=[user]'+Username+'[/user]startend&full=yes';
3314 }
3315 else {
3316 var fullArmPost = 'list=[user]'+Username+'[/user]start[weap]--w='+finalFullArmory.replace(/\|/g,'--x[/weap][weap]--w=').replace(/:/g,'--q=')+'--x[/weap]end&full=yes';
3317 }
3318 GM_log(fullArmPost);DisplayMessage2('<strong style="color:green">Armory\'s weapons FULLY reconned!</strong>')
3319 // ReturnRequest('GM_AATRecon.php?'+fullArmPost,1,function(responseText){DisplayMessage2('<strong style="color:green">Armory\'s weapons FULLY reconned!</strong>');GM_log(responseText);});
3320 //reset the state of "fully reconned" to avoid next recon on same target to send the full armory again & again
3321 GM_setValue('lastReconed','');
3322 }
3323 else {
3324 DisplayMessage2('<strong>Armory\'s weapons NOT Fully reconned yet.</strong>')
3325 }
3326 }
3327 else {
3328 DisplayMessage2('<strong>Armory\'s weapons NOT Fully reconned yet.</strong>')
3329 }
3330 //hackman
3331
3332 //alert('GM_AATRecon.php?list=\n' + usetgold, function(responseText){
3333 // GM_log(responseText);
3334 /* DisplayMessage2(responseText);
3335 var result;
3336 var color;
3337 if(responseText("Updated Player")) {
3338 result = "Recon Logged Successfully";
3339 color = "yellow";
3340 } else if(responseText("This report exists")) {
3341 result = "This recon already exists.";
3342 color = "red";
3343 } else {
3344 result = "Error Occoured.";
3345 color = "red";
3346 }
3347 UsersGold.insertRow(2).insertCell(0).innerHTML = "<span style=\"color: "+ color + "\">" + result + "</span>";
3348 UsersGold.rows[2].cells[0].style.textAlign = "center"; */
3349
3350 });
3351
3352 if(GM_getValue("spy") == 1)
3353 {
3354
3355 }
3356 }else{
3357
3358 }
3359}
3360
3361function battlefield() {
3362 /*OLD
3363 setTimeout(battlefield, 1000);
3364 var stuff = document.body.innerHTML;
3365 tmp = FindText(FindText(stuff,'player" href="/stats.php?id=','/a>'),">","<");
3366 //var tmp = FindText(FindText(stuff,'player" href="/stats.php?id=','/a>'),">","<");
3367 //var firstuser = '';
3368 if (firstuser == 'undefined') { //First page load
3369 firstuser = tmp;
3370 battlefield2();
3371 } else {
3372 if(firstuser == tmp) {
3373 //Same page, don't do anything.
3374 } else {
3375 //hackman navbar on Top
3376 var navtop=document.createElement('tr');navtop.className='nav';navtop.innerHTML=document.getElementsByClassName('nav')[0].innerHTML;var navparent=document.getElementsByClassName('nav')[0].parentNode; navparent.insertBefore(navtop,navparent.getElementsByTagName('tr')[1]);
3377 window.eval('battlefield_nav();'); //re-trigger the native function to make the navbar ajax.
3378 //hackman navbar on Top
3379 firstuser = tmp;
3380 battlefield2();
3381 }
3382 }
3383 */
3384 //remove teh KOC built-in AJAX for navbar
3385 var allSCRIPT = document.getElementsByTagName('script');
3386 for (var i=0; i< allSCRIPT.length; i++) {
3387 if (allSCRIPT[i].innerHTML.match(/battlefield_nav/im)) {
3388 allSCRIPT[i].parentNode.removeChild(allSCRIPT[i]);
3389 }
3390 }
3391 //Now time to make our own ^^
3392 getNav();
3393 battlefield2();
3394}
3395function getNav() {
3396 var navtop=document.createElement('tr');navtop.className='nav';navtop.innerHTML=document.getElementsByClassName('nav')[0].innerHTML;var navparent=document.getElementsByClassName('nav')[0].parentNode; navparent.insertBefore(navtop,navparent.getElementsByTagName('tr')[1]);
3397 var navbar = document.getElementsByClassName('nav')[1];
3398 var allnavtds = navbar.getElementsByTagName('td');
3399 var navPrev = allnavtds[0].getElementsByTagName('a')[0];
3400 if (typeof navPrev !== 'undefined') {
3401 navPrev.setAttribute('mommy',navPrev.href);
3402 navPrev.setAttribute('style','cursor:pointer;');
3403 navPrev.removeAttribute('href');
3404 navPrev.addEventListener('click', function(e){ get(e.target.getAttribute('mommy'),function(response) {
3405 var tmpdiv = document.createElement('div'); tmpdiv.innerHTML = response;
3406 objClass(document,'table_lines battlefield', 'table',0).innerHTML=objClass(tmpdiv,'table_lines battlefield', 'table',0).innerHTML;
3407 getNav();
3408 window.eval('battlefield_players();'); //re-trigger the native function to make the navbar ajax.
3409 battlefield2();
3410 });}, true);
3411 }
3412
3413 var navNext = allnavtds[2].getElementsByTagName('a')[0];
3414 if (typeof navNext !== 'undefined') {
3415 navNext.setAttribute('mommy',navNext.href);
3416 navNext.setAttribute('style','cursor:pointer;');
3417 navNext.removeAttribute('href');
3418 navNext.addEventListener('click', function(e){ get(e.target.getAttribute('mommy'),function(response) {
3419 var tmpdiv = document.createElement('div'); tmpdiv.innerHTML = response;
3420 objClass(document,'table_lines battlefield', 'table',0).innerHTML=objClass(tmpdiv,'table_lines battlefield', 'table',0).innerHTML;
3421 getNav();
3422 window.eval('battlefield_players();'); //re-trigger the native function to make the navbar ajax.
3423 battlefield2();
3424 });}, true);
3425 }
3426 navbar = document.getElementsByClassName('nav')[0];
3427 allnavtds = navbar.getElementsByTagName('td');
3428 navPrev = allnavtds[0].getElementsByTagName('a')[0];
3429 if (typeof navPrev !== 'undefined') {
3430 navPrev.setAttribute('mommy',navPrev.href);
3431 navPrev.setAttribute('style','cursor:pointer;');
3432 navPrev.removeAttribute('href');
3433 navPrev.addEventListener('click', function(e){ get(e.target.getAttribute('mommy'),function(response) {
3434 var tmpdiv = document.createElement('div'); tmpdiv.innerHTML = response;
3435 objClass(document,'table_lines battlefield', 'table',0).innerHTML=objClass(tmpdiv,'table_lines battlefield', 'table',0).innerHTML;
3436 getNav();
3437 window.eval('battlefield_players();'); //re-trigger the native function to make the navbar ajax.
3438 battlefield2();
3439 });}, true);
3440 }
3441
3442 var navNext = allnavtds[2].getElementsByTagName('a')[0];
3443 if (typeof navNext !== 'undefined') {
3444 navNext.setAttribute('mommy',navNext.href);
3445 navNext.setAttribute('style','cursor:pointer;');
3446 navNext.removeAttribute('href');
3447 navNext.addEventListener('click', function(e){ get(e.target.getAttribute('mommy'),function(response) {
3448 var tmpdiv = document.createElement('div'); tmpdiv.innerHTML = response;
3449 objClass(document,'table_lines battlefield', 'table',0).innerHTML=objClass(tmpdiv,'table_lines battlefield', 'table',0).innerHTML;
3450 getNav();
3451 window.eval('battlefield_players();'); //re-trigger the native function to make the navbar ajax.
3452 battlefield2();
3453 });}, true);
3454 }
3455 }
3456
3457function battlefieldUser(){
3458 document.addEventListener('mouseover', function(event) {
3459 //document.setAttribute('style', 'opacity:0.4;border-radius: 150px;-webkit-border-radius: 150px;-moz-border-radius: 150px;');
3460
3461 if(InStr(event.target,"stats.php?") == true)
3462 {
3463 //setAttribute('style', 'opacity:0.4;border-radius: 150px;-webkit-border-radius: 150px;-moz-border-radius: 150px;');
3464 var userid = String(event.target).substr(String(event.target).indexOf('=')+1, 7);
3465 bfStats(userid);
3466 }
3467 }, true);
3468}
3469
3470
3471function bfStats(id)
3472{
3473 ReturnRequest('GM_DisplayStatsBF.php?user=' + id,0,function(responseText){
3474 //responseText.setAttribute('style', 'opacity:0.4;border-radius: 150px;-webkit-border-radius: 150px;-moz-border-radius: 150px;');
3475
3476 DisplayMessage2(responseText);
3477 });
3478}
3479
3480function battlefield2()
3481{
3482 var usetgold = '';
3483 var alltables = document.getElementsByTagName('table');
3484 for (i=0;i<alltables.length;i++)
3485 {
3486 if(alltables[i].rows[0].cells.length>1){
3487 if(alltables[i].rows[0].cells[1].innerHTML.match("Alliance"))
3488 {
3489 var ms_table = alltables[i];
3490 //alert(ms_table);
3491 }
3492 }
3493 }
3494 rows = ms_table.rows;
3495 ii=0;
3496 iii=0;
3497 var goldz=Array();
3498 var names=Array();
3499 var ids=Array();
3500 var tff=Array();
3501 var tag=Array();
3502 var reqnames=Array();
3503 var rank=Array();
3504 var online=Array();
3505 var BattiefieldArray = new Array();
3506 //alert(goldz);
3507 for (i=2;i<rows.length-1;i++)
3508 {
3509 if(InStr(rows[i].cells[2].childNodes[0].style.cssText,"rgb") == true)
3510 {
3511 online[ii] = '1';
3512 }else{
3513 online[ii] = '0';
3514 }
3515 tff[ii]=rows[i].cells[3].innerHTML.replace(/,/g,"");
3516 goldz[ii]=rows[i].cells[5].innerHTML.replace(" Gold","").replace(/,/g,"");
3517 names[ii]=rows[i].cells[2].childNodes[0].innerHTML;
3518 ids[ii]=rows[i].cells[2].childNodes[0].href.replace("https://www.kingsofchaos.com/stats.php?id=","");
3519 rank[ii]=rows[i].cells[6].innerHTML.replace(/,/g,"");
3520
3521 usetgold = usetgold + "[d]u=" + names[ii] + "*g=" + goldz[ii] + "*o=" + online[ii] + "*t=" + tff[ii] + "--s=" + ids[ii] + "*[/d]"; //"--s=" + ids[ii] + "--[/dude]";
3522
3523 if(rows[i].cells[5].innerHTML.indexOf("???")==-1){
3524 BattiefieldArray[i-1] = new Array(goldz[ii],'<a href="stats.php?id=' + ids[ii] + '">' + names[ii] + '</a>',tff[ii]);
3525
3526 }
3527 ii++;
3528 }
3529 SortIt(BattiefieldArray,0,1,2,3);
3530 BattiefieldArray.reverse();
3531 var newhtml = '<table border="1" bordercolor="#111111" width="100%" id="AutoNumber1"><tr><td width="33%">Name </td>'+
3532 '<td width="33%">TFF </td>'+
3533 '<td width="34%">Gold </td>';
3534 for(i=0;i<BattiefieldArray.length;i++){
3535 if(String(BattiefieldArray[i]) == 'undefined'){
3536 }else{
3537 newhtml += ' <tr>'+
3538 '<td width="33%">' + BattiefieldArray[i][1] + ' </td>'+
3539 '<td width="33%">' + addCommas(BattiefieldArray[i][2]) + ' </td>'+
3540 '<td width="33%">' + addCommas(BattiefieldArray[i][0]) + ' Gold </td>\n'+
3541 '</tr>';
3542 }
3543 }
3544 newhtml += '</table>';
3545 params = "list=" + usetgold;
3546 // GM_log(params);
3547 logBattlefield(params,function(html){
3548 //ReturnRequest("GM_BattlefieldGold.php&list=" + usetgold,function(html){
3549 dothis(html);
3550 DisplayMessage("Data Collected");
3551 });
3552}
3553
3554function dothis(html)
3555{
3556
3557 var alltables = document.getElementsByTagName('table');
3558 for (i=0;i<alltables.length;i++)
3559 {
3560 if(alltables[i].rows[0].cells.length>1){
3561 if(alltables[i].rows[0].cells[1].innerHTML.match("Alliance"))
3562 {
3563 var ms_table = alltables[i];
3564 }
3565 }
3566 }
3567 rows = ms_table.rows;
3568 ii=0;
3569 iii=0;
3570
3571 var tmpGold;
3572
3573 var BattiefieldArray = new Array();
3574 for (i=1;i<rows.length-1;i++)
3575 {
3576
3577 if(html.match(rows[i].cells[2].childNodes[0].innerHTML)){
3578 tmpGold = FindText(html,rows[i].cells[2].childNodes[0].innerHTML,"*"); //
3579 tmpGold = tmpGold.replace(";",' </font><font color=yellow>');// + '</font>';
3580 rows[i].cells[5].innerHTML = '<font color=Dodgerblue>' + tmpGold;// + '</font>';
3581 tmpGold='';
3582 }
3583 }
3584}
3585
3586function logBattlefield(data,cb){
3587 GM_xmlhttpRequest({
3588 method: "POST",
3589 url: GM_getValue("serverURL") + "/ac/script/GM_BattlefieldGold.php",
3590 headers:{'Content-type':'application/x-www-form-urlencoded'},
3591 data:encodeURI(data),
3592 onload: function(xhr) { cb(xhr.responseText);
3593 }
3594 });
3595}
3596
3597function attack()
3598{
3599 var th = GetTag('th', "Sabotage Mission");//G
3600 var stuff = document.body.innerHTML;
3601 var userid = String(document.URL).substr(String(document.URL).indexOf('=')+1, 7);
3602 var target = GetText("Target:", "\">", "<");
3603
3604 if (InStr(stuff,"Invalid User ID") == true) {
3605 ReturnRequest('GM_Active.php?id=' + userid + '&a=0',1,function(r){
3606 newhtml = stuff.replace("Invalid User ID",'Invalid UserID (Vacation mode or deleted)<br>' + r);
3607 document.body.innerHTML = newhtml;
3608 });
3609 ReturnRequest('DeleteStat.php?id=' + userid + '&a=0',1,function(r){
3610 //alert("deleted");
3611 });
3612 }
3613 isTurn();
3614 //Start G code
3615
3616 var name = FindText(FindText(stuff,'"stats.php?id=',"a>"),">","<");
3617 ReturnRequest('SabFocus.php?name=' + name,0,function(responseText){
3618 var exist = FindText(responseText,"<focus=","></focus>");
3619 if (GM_getValue('war', false) || exist == 'Whatever' || exist == 'SA' || exist == 'DA' || exist == 'SPY' || exist == 'SENTRY') {
3620 focussab = '<tr><td>Focus Sab: </td><td> ' + FindText(responseText,"<focus=","></focus>") + '</td></tr>';
3621 th.parentNode.parentNode.insertRow(1).innerHTML = focussab;
3622 }
3623 });
3624
3625
3626
3627 // Add +1 and +5 buttons
3628 document.getElementsByName('numsab')[0].parentNode.innerHTML = "<input size=\"3\" name=\"numsab\" value=\"" + GM_getValue(target + '_kocsabnum',"1") + "\" type=\"text\"><button style=\"margin-left: 10px;\" name=\"plus_one\">+1</button><button style=\"margin-left: 10px;\" name=\"plus_five\">+5</button>";
3629
3630 document.getElementsByName('numspies')[0].parentNode.innerHTML = "<input size=\"3\" name=\"numspies\" value=\"" + GM_getValue(target + '_kocsabspynum',"1") + "\" type=\"text\"><button style=\"margin-left: 10px;\" name=\"plus_one_spies\">+1</button>";
3631
3632 var user = FindText(FindText(stuff,'"stats.php?id=',"a>"),">","<");
3633 //document.getElementsByName('spyrbut')[0].value = "Recon (" + GM_getValue("recon_cnt" + user, 15) + ")";
3634 gUser = FindText(FindText(stuff,'"stats.php?id=',"a>"),">","<");;
3635 var whoami = GM_getValue("Koc_User");
3636 ReturnRequest('GM_AAT.php?user=' + user + '&me=' + whoami,0,function(responseText){
3637 // alert(responseText);
3638// ReturnRequest('GM_AAT.php?target=' + user + '&me=' + whoami,0,function(responseText){
3639 // GM_log(responseText);
3640 DisplayMessage(responseText);
3641 var tfftbg = FindText(responseText,"<tfbg=","></tfbg>");
3642 // alert(responseText);
3643 table = '<table class="table_lines" align="center" width="100%" cellspacing="0" cellpadding="6" border="0">'+
3644 '<tr><th colspan="4">'+ user + '`s Recent Stats</th></tr>'+
3645 '<tr><td><b>Strike Action</b></td><td colspan="2" align="center">' + FindText(responseText,"<sa=","></sa>").split("|")[0] + ' </td><td>' + FindText(responseText,"<sa_time=","></sa_time>") + '</td></tr>'+
3646 '<tr><td><b>Defensive Action</b></td><td colspan="2" align="center">' + FindText(responseText,"<da=","></da>").split("|")[0] + ' </td><td>' + FindText(responseText,"<da_time=","></da_time>") + '</td></tr>'+
3647 '<tr><td><b>Spy Rating</b></td><td colspan="2" align="center">' + FindText(responseText,"<spy=","></spy>").split("|")[0] + ' </td><td>' + FindText(responseText,"<spy_time=","></spy_time>") + '</td></tr>'+
3648 '<tr><td><b>Sentry Rating</b></td><td colspan="2" align="center">' + FindText(responseText,"<sentry=","></sentry>").split("|")[0] + ' </td><td>' + FindText(responseText,"<sentry_time=","></sentry_time>") + '</td></tr>'+
3649 '<tr style="background-color:#0F0F50;"><td><b>Gold</b></td><td colspan="2" align="center">' + FindText(responseText,"<gg=","></gg>").split("|")[0] + ' </td><td>(' + FindText(responseText,"<gg=","></gg>").split("|")[1] + ')</td></tr>'+
3650 '<tr style="background-color:#111100;"><td><b>Tff</b></td><td align="center" colspan="3">' + tfftbg.split('|')[0] + ' soldiers <b>-</b> (' + tfftbg.split("|")[1] + ' TBG)</td></tr>'+
3651
3652 '<tr><th colspan="5">Armory Information Estimated SOV = ' + FindText(responseText,"<sov=","></sov>") + ' <button name="reset_aat">Reset AAT</button></th></tr>'+
3653 '<tr><td> </td><td><b>AAT</b></td><td><b>In Stock</b></td><td><b>Time</b></td><td> </td></tr>'+
3654
3655 '<tr><td id="fakesab">Broken Stick</td><td align="center" id="">' + FindText(responseText,"<staat=","></staat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<st=","></st>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<st_time=","></st_time>").split("|")[0] + '<td align="center"><button name="fakesab" style="margin-right:10px;">click!</button></td></tr>'+
3656
3657 '<tr><td id="b_missle">Blackpowder Missiles</td><td align="center" id="btn_missle">' + FindText(responseText,"<bpmaat=","></bpmaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<bpm=","></bpm>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<bpm_time=","></bpm_time>").split("|")[0] + '<td align="center"><button name="b_missle" style="margin-right:10px;">click!</button></td></tr>'+
3658 '<tr><td id="b_ishield">Invisibility Shields</td><td align="center" id="btn_ishield">' + FindText(responseText,"<isaat=","></isaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<is=","></is>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<is_time=","></is_time>").split("|")[0] + '</td><td align="center"><button name="b_ishield" style="margin-right:10px;">click!</button></td></tr>'+
3659 '<tr><td id="b_nun">Nunchakus</td><td align="center" id="btn_nun">' + FindText(responseText,"<nunaat=","></nunaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<nun=","></nun>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<nun_time=","></nun_time>").split("|")[0] + '</td><td align="center"><button name="b_nun" style="margin-right:10px;">click!</button></td></tr>'+
3660 '<tr><td id="b_tower">Lookout Towers</td><td align="center" id="btn_tower">' + FindText(responseText,"<ltaat=","></ltaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<lt=","></lt>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<lt_time=","></lt_time>").split("|")[0] + '</td><td align="center"><button name="b_tower" style="margin-right:10px;">click!</button></td></tr>'+
3661 '<tr><td id="b_ch">Chariots</td><td align="center" id="btn_ch">' + FindText(responseText,"<chaat=","></chaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<ch=","></ch>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<ch_time=","></ch_time>").split("|")[0] + '</td><td align="center"><button name="b_ch" style="margin-right:10px;">click!</button></td></tr>'+
3662 '<tr><td id="b_skin">Dragonskin</td><td align="center" id="btn_skin">' + FindText(responseText,"<dsaat=","></dsaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<ds=","></ds>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<ds_time=","></ds_time>").split("|")[0] + '</td><td align="center"><button name="b_skin" style="margin-right:10px;">click!</button></td></tr>'+
3663 '<tr><td id="b_key">Keys</td><td align="center" id="btn_key">' + FindText(responseText,"<keyaat=","></keyaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<key=","></key>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<key_time=","></key_time>").split("|")[0] + '</td><td align="center"><button name="b_key" style="margin-right:10px;">click!</button></td></tr>'+
3664 '<tr><td id="b_dog">Guard Dogs</td><td align="center" id="btn_dog">' + FindText(responseText,"<dogaat=","></dogaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<dog=","></dog>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<dog_time=","></dog_time>").split("|")[0] + '</td><td align="center"><button name="b_dog" style="margin-right:10px;">click!</button></td></tr>'+
3665 '<tr><td id="b_hook">Grappling Hooks</td><td align="center" id="btn_hook">' + FindText(responseText,"<hookaat=","></hookaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<hook=","></hook>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<hook_time=","></hook_time>").split("|")[0] + '</td><td align="center"><button name="b_hook" style="margin-right:10px;">click!</button></td></tr>'+
3666 '<tr><td id="b_candle">Big Candles</td><td align="center" id="btn_candle">' + FindText(responseText,"<candleaat=","></candleaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<candle=","></candle>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<candle_time=","></candle_time>").split("|")[0] + '</td><td align="center"><button name="b_candle" style="margin-right:10px;">click!</button></td></tr>'+
3667 '<tr><td id="b_rope">Ropes</td><td align="center" id="btn_rope">' + FindText(responseText,"<ropeaat=","></ropeaat>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<rope=","></rope>").split("|")[0] + '</td><td align="center">' + FindText(responseText,"<rope_time=","></rope_time>").split("|")[0] + '</td><td align="center"><button name="b_rope" style="margin-right:10px;">click!</button></td></tr>'+
3668
3669 '</table>';
3670
3671 //alert(btn_nun);
3672
3673 var cID = getClassIndex('table_lines','Personnel');
3674
3675 if(!String(cID).match('undefined'))
3676 {
3677 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
3678 }
3679 else {
3680 }
3681 });
3682
3683 var cBut1 = GetElement('input', "Attack!");
3684 cBut1.value = cBut1.value.replace("Attack!", "Fuck em UP!");
3685 var cBut2 = GetElement('input', "Raid!");
3686 cBut2.value = cBut2.value.replace("Raid!", "Raid!");
3687
3688 // FS settings button
3689 if (document.getElementsByName('spybut')[0])
3690 {
3691 document.getElementsByName('spybut')[0].parentNode.innerHTML = '<td><button id="fakesab" style="margin-right:10px;">Fake Sab Settings</button></td><td align="center"><input name="spybut" onclick="document.spy.spybut.value=\'Sabotaging..\'; document.spy.spybut.disabled=true; document.spy.submit();" value="Sab!" type="submit"></td>';
3692
3693 }
3694 //document.getElementsByName('spybut')[0].parentNode.innerHTML = '<td align="center"><button name="fakesab" style="margin-right:10px;">Fake Sab Settings</button></td><td align="center"><input name="spybut" onclick="document.spy.spybut.value=\'Sabotaging..\'; document.spy.spybut.disabled=true; document.spy.submit();" value="Sab!" type="submit"></td>';
3695
3696 // Last sab button
3697 /*var sab_table = "";
3698 var tagList = document.getElementsByTagName('th');
3699
3700 for(z = 0; z < tagList.length; z++)
3701 {
3702 if(tagList[z].innerHTML.indexOf("Sabotage Mission") == 0)
3703 {
3704 sab_table = tagList[z].parentNode.parentNode;;
3705 }
3706 }
3707
3708 var last_sab = sab_table.insertRow(sab_table.rows.length - 1);
3709 last_sab.insertCell(0).innerHTML = "Last Sab";
3710 last_sab.insertCell(1).innerHTML = "<button name=\"lastsab\" disabled>Loading...</button>";
3711 last_sab.cells[0].width = "50%";
3712
3713 var numsabz = 0;
3714 var sabturnz = 5;
3715 var numspiesz = 1;
3716 var enemy_weaponz = 0;*/
3717
3718 //Lastsab button here but dont work, needs more coding
3719 /*request.post(script.server+'GM_LastSab.php?target=' + user,function(responseText){
3720 if (FindText(responseText,"<status=","></status>") != "None")
3721 {
3722 last_sab.innerHTML = "<td width=\"50%\">Last sab</td>";
3723 last_sab.innerHTML += "<td><button name=\"lastsab\">" + FindText(responseText,"<text=","></text>") + "</button> " + FindText(responseText,"<else=","></else>") + "</td>";
3724 numsabz = FindText(responseText,"<numsab=","></numsab>");
3725 sabturnz = FindText(responseText,"<sabturns=","></sabturns>");
3726 numspiesz = FindText(responseText,"<numspies=","></numspies>");
3727 enemy_weaponz = FindText(responseText,"<enemy_weapon=","></enemy_weapon>");
3728 } else {
3729 last_sab.innerHTML = "<td width=\"50%\">Last sab</td>";
3730 last_sab.innerHTML += "<td><button name=\"lastsab\" disabled>None!</button></td>";
3731 }
3732 });*/
3733 //
3734
3735 document.addEventListener('click', function(event)
3736 {
3737 if (event.target.name == 'lastsab')
3738 {
3739 document.spy.numsab.value=parseInt(numsab);
3740 document.spy.sabturns.value=parseInt(sabturn);
3741 document.spy.numspies.value=parseInt(numspie);
3742 document.getElementsByTagName("select")[0].value = parseInt(enemy_weapon);
3743
3744 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3745 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3746 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3747 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3748
3749 event.stopPropagation();
3750 event.preventDefault();
3751 } else if (event.target.name == 'fakesab' || event.target.id == 'fakesab') {
3752 document.spy.numsab.value=parseInt(1);
3753 document.spy.sabturns.value=parseInt(5);
3754 document.spy.numspies.value=parseInt(1);
3755 document.spy.enemy_weapon.value=parseInt(69);
3756 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3757 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3758 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3759 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3760 event.stopPropagation();
3761 event.preventDefault();
3762 } else if (event.target.name == 'b_missle' || event.target.id == 'b_missle') {
3763 document.spy.numsab.value=parseInt(document.getElementById('btn_missle').innerHTML);
3764 // document.spy.numsab.value= parseInt(GM_getValue("btn_missle")) ;
3765 document.spy.sabturns.value=parseInt(5);
3766 document.spy.numspies.value=parseInt(1);
3767 document.spy.enemy_weapon.value=parseInt(70);
3768 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3769 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3770 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3771 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3772 event.stopPropagation();
3773 event.preventDefault();
3774 } else if (event.target.name == 'b_ch' || event.target.id == 'b_ch') {
3775 document.spy.numsab.value=parseInt(document.getElementById('btn_ch').innerHTML);
3776 // document.spy.numsab.value=parseInt(GM_getValue("btn_ch"));
3777 document.spy.sabturns.value=parseInt(5);
3778 document.spy.numspies.value=parseInt(1);
3779 document.spy.enemy_weapon.value=parseInt(72);
3780 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3781 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3782 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3783 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3784 event.stopPropagation();
3785 event.preventDefault();
3786 } else if (event.target.name == 'b_ishield' || event.target.id == 'b_ishield') {
3787 document.spy.numsab.value=parseInt(document.getElementById('btn_ishield').innerHTML);
3788 // document.spy.numsab.value=parseInt(GM_getValue("btn_ishield"));
3789 document.spy.sabturns.value=parseInt(5);
3790 document.spy.numspies.value=parseInt(1);
3791 document.spy.enemy_weapon.value=parseInt(71);
3792 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3793 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3794 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3795 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3796 event.stopPropagation();
3797 event.preventDefault();
3798 } else if (event.target.name == 'b_skin' || event.target.id == 'b_skin') {
3799 document.spy.numsab.value=parseInt(document.getElementById('btn_skin').innerHTML);
3800 // document.spy.numsab.value=parseInt(GM_getValue("btn_skin"));
3801 document.spy.sabturns.value=parseInt(5);
3802 document.spy.numspies.value=parseInt(1);
3803 document.spy.enemy_weapon.value=parseInt(51);
3804 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3805 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3806 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3807 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3808 event.stopPropagation();
3809 event.preventDefault();
3810 } else if (event.target.name == 'b_nun' || event.target.id == 'b_nun') {
3811 document.spy.numsab.value=parseInt(document.getElementById('btn_nun').innerHTML);
3812 // document.spy.numsab.value= parseInt(GM_getValue("btn_nun")) ;
3813 document.spy.sabturns.value=parseInt(5);
3814 document.spy.numspies.value=parseInt(1);
3815 document.spy.enemy_weapon.value=parseInt(75);
3816 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3817 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3818 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3819 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3820 event.stopPropagation();
3821 event.preventDefault();
3822 } else if (event.target.name == 'b_key' || event.target.id == 'b_key') {
3823 document.spy.numsab.value=parseInt(document.getElementById('btn_key').innerHTML);
3824 // document.spy.numsab.value= parseInt(GM_getValue("btn_key")) ;
3825 document.spy.sabturns.value=parseInt(5);
3826 document.spy.numspies.value=parseInt(1);
3827 document.spy.enemy_weapon.value=parseInt(73);
3828 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3829 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3830 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3831 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3832 event.stopPropagation();
3833 event.preventDefault();
3834 } else if (event.target.name == 'b_hook' || event.target.id == 'b_hook') {
3835 document.spy.numsab.value=parseInt(document.getElementById('btn_hook').innerHTML);
3836 // document.spy.numsab.value=parseInt(GM_getValue("btn_hook"));
3837 document.spy.sabturns.value=parseInt(5);
3838 document.spy.numspies.value=parseInt(1);
3839 document.spy.enemy_weapon.value=parseInt(67);
3840 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3841 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3842 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3843 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3844 event.stopPropagation();
3845 event.preventDefault();
3846 } else if (event.target.name == 'b_tower' || event.target.id == 'b_tower') {
3847 document.spy.numsab.value=parseInt(document.getElementById('btn_tower').innerHTML);
3848 // document.spy.numsab.value=parseInt(GM_getValue("btn_tower"));
3849 document.spy.sabturns.value=parseInt(5);
3850 document.spy.numspies.value=parseInt(1);
3851 document.spy.enemy_weapon.value=parseInt(74);
3852 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3853 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3854 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3855 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3856 event.stopPropagation();
3857 event.preventDefault();
3858 } else if (event.target.name == 'b_dog' || event.target.id == 'b_dog') {
3859 document.spy.numsab.value=parseInt(document.getElementById('btn_dog').innerHTML);
3860 // document.spy.numsab.value=parseInt(GM_getValue("btn_dog"));
3861 document.spy.sabturns.value=parseInt(5);
3862 document.spy.numspies.value=parseInt(1);
3863 document.spy.enemy_weapon.value=parseInt(68);
3864 GM_setValue(target + '_kocsabselect',parseInt(document.spy.enemy_weapon.selectedIndex));
3865 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3866 GM_setValue(target + '_kocsabturns',parseInt(document.spy.sabturns.value));
3867 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3868 event.stopPropagation();
3869 event.preventDefault();
3870 } else if (event.target.name == 'plus_one') {
3871 document.spy.numsab.value = parseInt(document.spy.numsab.value, 10) + 1;
3872 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3873 event.stopPropagation();
3874 event.preventDefault();
3875 } else if (event.target.name == 'plus_five') {
3876 document.spy.numsab.value = parseInt(document.spy.numsab.value, 10) + 5;
3877 GM_setValue(target + '_kocsabnum',parseInt(document.spy.numsab.value));
3878 event.stopPropagation();
3879 event.preventDefault();
3880 } else if (event.target.name == 'plus_one_spies') {
3881 document.spy.numspies.value = parseInt(document.spy.numspies.value, 10) + 1;
3882 GM_setValue(target + '_kocsabspynum',parseInt(document.spy.numspies.value));
3883 event.stopPropagation();
3884 event.preventDefault();
3885 } else if (event.target.name == 'reset_aat') {
3886 var name = GM_getValue("Koc_User");
3887 var userid = String(document.URL).substr(String(document.URL).indexOf('=')+1, 7);
3888 var resetconfirm = confirm("Only BFMods and Admins can use this feature. So if your one of these, do you want to reset?");
3889 if (resetconfirm == true){
3890 ReturnRequest('DeleteAAT.php?id=' + userid + '&name=' + name,0,function(r){
3891 window.location.replace("https://www.kingsofchaos.com/stats.php?id="+userid);
3892 //alert('worked');
3893 });
3894 } else {
3895 //window.location.replace("http://www.kingsofchaos.com/attack.php?id="+userid);
3896 alert('Nothing happened!!');
3897 }
3898 }
3899 //document.getElementsByName('reset_aat')
3900 });
3901
3902 document.addEventListener('change', function(event) {
3903 if(event.target.name == 'enemy_weapon'){
3904 GM_setValue(target + '_kocsabselect',parseInt(event.target.selectedIndex));
3905 event.stopPropagation();
3906 event.preventDefault();
3907
3908 }else if(event.target.name == 'numsab'){
3909 GM_setValue(target + '_kocsabnum',parseInt(event.target.value));
3910 event.stopPropagation();
3911 event.preventDefault();
3912
3913 }else if(event.target.name == 'sabturns'){
3914 GM_setValue(target + '_kocsabturns',parseInt(event.target.value));
3915 event.stopPropagation();
3916 event.preventDefault();
3917
3918 }else if(event.target.name == 'numspies'){
3919 GM_setValue(target + '_kocsabspynum',parseInt(event.target.value));
3920 event.stopPropagation();
3921 event.preventDefault();
3922 }
3923 }, true);
3924
3925 // Reduce sab amount after AAT is too high message
3926 if ((document.body.innerHTML.indexOf("you will never be able to get away") > 0) && (document.getElementsByName('numsab')[0].value > 0)) {
3927 //alert('lower aat');
3928 document.getElementsByName('numsab')[0].value--;
3929 GM_setValue(target + '_kocsabnum', document.getElementsByName('numsab')[0].value);
3930 }
3931 else {
3932 document.getElementsByName('numsab')[0].value = GM_getValue(target + '_kocsabnum', '1');
3933 }
3934 // setTimeout(function(){
3935 document.getElementsByTagName("select")[0].selectedIndex = GM_getValue(target + '_kocsabselect',"70");
3936
3937 //var spysab = document.getElementsByTagName("select")[0]
3938 //spysab.value = GM_getValue(target + '_kocsabselect',"70");
3939 //spysab.value = GM_setValue(target + '_kocsabselect',parseInt(event.target.selectedIndex));
3940
3941 var spysab = document.getElementsByName('numspies')[0];
3942 spysab.value = GM_getValue(target + '_kocsabspynum','1');
3943 spysab.id = "__sabb";
3944
3945 var spysab = document.getElementsByName('sabturns')[0];
3946 spysab.value = GM_getValue(target + '_kocsabturns','5');
3947 spysab.id = "__xsabb";
3948 // },60);
3949 //InStr(stuff,
3950 var stuff = document.body.innerHTML;
3951 if (InStr(stuff,'Your opponent has already suffered heavy losses today')){
3952 var name = FindText(FindText(stuff,'"stats.php?id=',"a>"),">","<");
3953 ReturnRequest("GM_Maxed.php?name="+name,0,function(responseText){
3954 //alert(name);
3955 });
3956 }
3957}
3958
3959/*<------NEW ATTACK/SAB PAGE CODE------------------->//Copied from Gizmo's NV Script...Whole code from there script for the attack page only..
3960var th = GetTag('th', "Sabotage Mission");
3961 //if(th) th.parentNode.parentNode.insertRow(1).innerHTML = "<td colspan=2 align=center><input name=spybut0 onclick=\"document.spy.spybut0.value='Sabotaging..'; document.spy.spybut0.disabled=true; document.spy.submit();\" type=submit value=\"Sab!\"></td>";
3962 if(th) th.parentNode.parentNode.insertRow(6).innerHTML = "<td>Change Weapon Focus: <select id='setsabfocus' name='SetSabFocus'><option value=' '></option><option value='Whatever'>Whatever</option><option value='SA'>SA</option><option value='DA'>DA</option><option value='SPY'>SPY</option><option value='Sentry'>Sentry</option></select></td>";
3963
3964 //InteldetailPHP_CalcReconsLeft(username);
3965 //document.getElementsByName('spyrbut')[0].value = "Recon (" + GM_getValue("NSL_recon_cnt_" + username, 15) + ")";
3966 document.getElementsByName('spybut')[0].value = "Sab!";
3967
3968 if(doc.indexOf("has already suffered heavy losses") >= 0)
3969 {
3970 GM_xmlhttpRequest(
3971 {
3972 method: "GET",
3973 url: NSL_server + "xxxx&whoami=" + NSL_username + "&whoamid=" + NSL_statid + "&password=" + NSL_password + "&target=" + username
3974 });
3975 }
3976
3977 // Put an additional +1 / +5 button next to the weapon amount in sab form
3978 document.getElementsByName('numsab')[0].parentNode.innerHTML += "<button style=\"margin-left: 20px;\" onClick=\"document.spy.numsab.value = parseInt(document.spy.numsab.value, 10) + 1; return false;\">+1</button>";
3979
3980 // Put an additional +1 button next to the number of spies
3981 document.getElementsByName('numspies')[0].parentNode.innerHTML += "<button style=\"margin-left: 20px;\" onClick=\"document.spy.numspies.value = parseInt(document.spy.numspies.value, 10) + 1; return false;\">+1</button>";
3982
3983 // Add place holders for user's stats and move your stats above the personnel table
3984 var th = GetTag('th', "<span ");
3985 var statsPlace = th.parentNode.parentNode.parentNode.parentNode;
3986
3987 var statsTableHtml = "<table width=100% class=table_lines cellspacing=0 cellpadding=6>"
3988 + "<tr><th colspan=3>" + username + "'s Stats</th></tr>"
3989 + "<tr><td width=30%><b>Strike Action</b></td><td align=right id=DB_sa width=40%>Loading...</td><td align=right id=DB_saTime> </td></tr>"
3990 + "<tr><td><b>Defensive Action</b></td><td align=right id=DB_da>Loading...</td><td align=right id=DB_daTime> </td></tr>"
3991 + "<tr><td><b>Spy Rating</b></td><td align=right id=DB_spy>Loading...</td><td align=right id=DB_spyTime> </td></tr>"
3992 + "<tr><td><b>Sentry Rating</b></td><td align=right id=DB_sentry>Loading...</td><td align=right id=DB_sentryTime> </td></tr>" + "<tr style='background-color:#111100;'><td><b>Recent Gold</b></td><td align=right id=DB_gold>Loading...</td><td align=right id=DB_goldTime> </td></tr>"
3993 + "</table><br />";
3994
3995 var inventoryTableHtml = "<table width=100% class=table_lines border=0 cellspacing=0 cellpadding=6>"
3996 + "<tr><th colspan=5>" + username + "'s Inventory</th></tr>"
3997 + "<tr><th class=subh width=30%>Weapon</th><th class=subh colspan=2>Quantity</th><th class=subh width=20%>AAT</th><th class=subh width=1%> </th></tr>"
3998 + "<tr><td>Broken Stick</td><td align=right id=DB_bs>Loading...</td>><td left=right>FakeSab </td><td align=center id=DB_bsFAKE>Loading...</td>"
3999 + "<tr><td>Blackpowder Missile</td><td align=right id=DB_bpm>Loading...</td><td left=right id=DB_bpmTime> </td><td align=center id=DB_bpmAat>Loading...</td><td><button weapon=bpm name=removeWeapon>X</button></td>"
4000 + "<tr><td>Chariot</td><td align=right id=DB_ch>Loading...</td><td align=left id=DB_chTime> </td><td align=center id=DB_chAat>Loading...</td><td><button weapon=chr name=removeWeapon>X</button></td>"
4001 + "<tr><td>Invisibility Shield</td><td align=right id=DB_is>Loading...</td><td align=left id=DB_isTime> </td><td align=center id=DB_isAat>Loading...</td><td><button weapon=ivs name=removeWeapon>X</button></td>"
4002 + "<tr><td>Dragonskin</td><td align=right id=DB_ds>Loading...</td><td align=left id=DB_dsTime> </td><td align=center id=DB_dsAat>Loading...</td><td><button weapon=ds name=removeWeapon>X</button></td>"
4003 + "<tr><td>Nunchaku</td><td align=right id=DB_nun>Loading...</td><td align=left id=DB_nunTime> </td><td align=center id=DB_nunAat>Loading...</td><td><button weapon=nun name=removeWeapon>X</button></td>"
4004 + "<tr><td>Lookout Tower</td><td align=right id=DB_lt>Loading...</td><td align=left id=DB_ltTime> </td><td align=center id=DB_ltAat>Loading...</td><td><button weapon=lt name=removeWeapon>X</button></td>"
4005 + "<tr><td>Skeleton Key</td><td align=right id=DB_sk>Loading...</td><td align=left id=DB_skTime> </td><td align=center id=DB_skAat>Loading...</td><td><button weapon=sk name=removeWeapon>X</button></td>"
4006 + "</table>";
4007
4008
4009 // Remove the Personnel table, which is useless
4010 var personnelTableHtml = GetTag('th', "<span").parentNode.parentNode.innerHTML;
4011 statsPlace.innerHTML = statsPlace.innerHTML.replace(personnelTableHtml, "<br />");
4012
4013 statsPlace.innerHTML = statsTableHtml + inventoryTableHtml + statsPlace.innerHTML;
4014
4015
4016 // Add place holders for the target's inventory and the last sab
4017 var sabotageTable = GetTag('th', "Sabotage Mission").parentNode.parentNode;
4018 -------|
4019 var lastSabRow = sabotageTable.insertRow(sabotageTable.rows.length - 1);
4020 lastSabRow.insertCell(0).innerHTML = "Last Sab";
4021 lastSabRow.insertCell(1).innerHTML = "Loading...";
4022 lastSabRow.cells[0].width = "50%";
4023 -------|
4024
4025 // Does the script remembers your sab options? If not, last sab will be taken as the option
4026 var sabRemember = GM_getValue("NSL_sab_wep_" + username, -1) == -1 ? false : GM_getValue("NSL_sab_wep_" + username, -1);
4027 ---------|
4028 // Show additional information about the target
4029 GM_xmlhttpRequest(
4030 {
4031 method: "GET",
4032 url: NSL_server + "backbone.php?code=aat2&whoami=" + NSL_username + "&password=" + NSL_password + "&whoamid=" + NSL_statid + "&username=" + username,
4033 onload: function(r)
4034 {
4035 if(r.status == 200)
4036 {
4037
4038 document.getElementById('DB_sa').innerHTML = GetTextIn(r.responseText, "[SA]", "[/SA]");
4039 document.getElementById('DB_da').innerHTML = GetTextIn(r.responseText, "[DA]", "[/DA]");
4040 document.getElementById('DB_spy').innerHTML = GetTextIn(r.responseText, "[SPY]", "[/SPY]");
4041 document.getElementById('DB_sentry').innerHTML = GetTextIn(r.responseText, "[SENTRY]", "[/SENTRY]");
4042
4043 document.getElementById('DB_saTime').innerHTML = GetTextIn(r.responseText, "[tSA]", "[/tSA]");
4044 document.getElementById('DB_daTime').innerHTML = GetTextIn(r.responseText, "[tDA]", "[/tDA]");
4045 document.getElementById('DB_spyTime').innerHTML = GetTextIn(r.responseText, "[tSPY]", "[/tSPY]");
4046 document.getElementById('DB_sentryTime').innerHTML = GetTextIn(r.responseText, "[tSENTRY]", "[/tSENTRY]");
4047
4048 document.getElementById('DB_gold').innerHTML = GetTextIn(r.responseText, "[GOLD]", "[/GOLD]");
4049 document.getElementById('DB_goldTime').innerHTML = GetTextIn(r.responseText, "[tGOLD]", "[/tGOLD]");
4050
4051 var lastSabber = GetTextIn(r.responseText, "[uSAB]", "[/uSAB]");
4052 var lastWep = GetTextIn(r.responseText, "[bSAB]", "[/bSAB]");
4053
4054 lastSabRow.cells[0].innerHTML += " " + GetTextIn(r.responseText, "[tSAB]", "[/tSAB]");
4055 lastSabRow.cells[1].innerHTML = (lastWep == "" ? "Never" : lastWep + " by " + lastSabber);
4056
4057 document.getElementById('DB_bs').innerHTML = GetTextIn(r.responseText, "[BS]", "[/BS]");
4058 document.getElementById('DB_bpm').innerHTML = GetTextIn(r.responseText, "[BPM]", "[/BPM]");
4059 document.getElementById('DB_ch').innerHTML = GetTextIn(r.responseText, "[CH]", "[/CH]");
4060 document.getElementById('DB_is').innerHTML = GetTextIn(r.responseText, "[IS]", "[/IS]");
4061 document.getElementById('DB_ds').innerHTML = GetTextIn(r.responseText, "[DS]", "[/DS]");
4062 document.getElementById('DB_nun').innerHTML = GetTextIn(r.responseText, "[NUN]", "[/NUN]");
4063 document.getElementById('DB_lt').innerHTML = GetTextIn(r.responseText, "[LT]", "[/LT]");
4064 document.getElementById('DB_sk').innerHTML = GetTextIn(r.responseText, "[SK]", "[/SK]");
4065
4066
4067 document.getElementById('DB_bpmTime').innerHTML = GetTextIn(r.responseText, "[tBPM]", "[/tBPM]");
4068 document.getElementById('DB_chTime').innerHTML = GetTextIn(r.responseText, "[tCH]", "[/tCH]");
4069 document.getElementById('DB_isTime').innerHTML = GetTextIn(r.responseText, "[tIS]", "[/tIS]");
4070 document.getElementById('DB_dsTime').innerHTML = GetTextIn(r.responseText, "[tDS]", "[/tDS]");
4071 document.getElementById('DB_nunTime').innerHTML = GetTextIn(r.responseText, "[tNUN]", "[/tNUN]");
4072 document.getElementById('DB_ltTime').innerHTML = GetTextIn(r.responseText, "[tLT]", "[/tLT]");
4073 document.getElementById('DB_skTime').innerHTML = GetTextIn(r.responseText, "[tSK]", "[/tSK]");
4074
4075
4076 document.getElementById('DB_bsFAKE').innerHTML = GetTextIn(r.responseText, "[bBS]", "[/bBS]");
4077 document.getElementById('DB_bpmAat').innerHTML = GetTextIn(r.responseText, "[bBPM]", "[/bBPM]");
4078 document.getElementById('DB_chAat').innerHTML = GetTextIn(r.responseText, "[bCH]", "[/bCH]");
4079 document.getElementById('DB_isAat').innerHTML = GetTextIn(r.responseText, "[bIS]", "[/bIS]");
4080 document.getElementById('DB_dsAat').innerHTML = GetTextIn(r.responseText, "[bDS]", "[/bDS]");
4081 document.getElementById('DB_nunAat').innerHTML = GetTextIn(r.responseText, "[bNUN]", "[/bNUN]");
4082 document.getElementById('DB_ltAat').innerHTML = GetTextIn(r.responseText, "[bLT]", "[/bLT]");
4083 document.getElementById('DB_skAat').innerHTML = GetTextIn(r.responseText, "[bSK]", "[/bSK]");
4084
4085
4086 // Update button meanings in the inventory table
4087 var aatButtons = document.getElementsByName("aatButton");
4088
4089 for(i = 0; i < aatButtons.length; i++)
4090 {
4091 aatButtons[i].addEventListener('click', function()
4092 {
4093 document.getElementsByTagName('select')[0].value = GetText("label=\"" + this.getAttribute("weapon").trim() + "\"", "value=\"", "\"");
4094 document.getElementsByName('numsab')[0].value = parseInt(this.innerHTML.replace(/,/g, ""));
4095
4096 }, false);
4097
4098 if(i == 0) // skip the last sabber button
4099 continue;
4100
4101 aatButtons[i].style.width = "80%";
4102 }
4103
4104
4105 // If the script cannot remember the sab options agains this opponent, take the last sab
4106 if(!sabRemember)
4107 {
4108 if(aatButtons.length == 7) // if there is a last sab
4109 {
4110 aatButtons[0].click();
4111 }
4112 else // if there is no last sab, take LT/BROKENSTICK aat
4113 {
4114 document.getElementsByTagName('select')[0].value = parseInt(69);
4115 document.getElementsByName('numsab')[0].value = 1;
4116 aatButtons[5].click();
4117 }
4118 }
4119
4120
4121 // Remove Weapons buttons
4122 var removeButtons = document.getElementsByName("removeWeapon");
4123
4124 for(i = 0; i < removeButtons.length; i++)
4125 {
4126 removeButtons[i].addEventListener('click', function()
4127 {
4128 GM_xmlhttpRequest(
4129 {
4130 method: "POST",
4131 url: NSL_server + "xxx",
4132 headers: { 'Content-type' : 'application/x-www-form-urlencoded' },
4133 data: encodeURI("xxx&whoami=" + NSL_username + "&password=" + NSL_password + "&whoamid=" + NSL_statid + "&target=" + username + "&weapon=" + this.getAttribute("weapon")),
4134 onload: function(r)
4135 {
4136
4137 if(r.status != 200) return;
4138 location.reload(true);
4139 }
4140 });
4141 }, false);
4142 }
4143 }
4144 }
4145 });
4146
4147 // Remember sabotage settings for this target
4148 document.getElementsByTagName('select')[0].value = GM_getValue("NSL_sab_wep_" + username, 69);
4149 document.getElementsByName('numsab')[0].value = GM_getValue("NSL_sab_cnt_" + username, 1);
4150 document.getElementsByName('numspies')[0].value = GM_getValue("NSL_sab_spies_" + username, 1);
4151 document.getElementsByTagName('select')[1].value = GM_getValue("NSL_sab_turns_" + username, 5);
4152 // Lower aat if cannot get through
4153 if(document.body.innerHTML.indexOf("you will never be able to get away") > 0)
4154 {
4155 if(document.getElementsByName('numsab')[0].value > 0)
4156 {
4157 document.getElementsByName('numsab')[0].value -= 1;
4158 }
4159 }
4160
4161 // Listen the sab form
4162 //document.getElementsByTagName('form')[2].addEventListener('submit', function() { AttackPHP_OnSubmitSab(username); }, false);
4163 document.getElementsByName("spybut")[0].addEventListener('click', function() { AttackPHP_OnSubmitSab(username); }, false);
4164 //document.getElementsByName("spybut0")[0].addEventListener('click', function() { AttackPHP_OnSubmitSab(username); }, false);
4165
4166 // spybut spybut0
4167
4168////inside the attack page function only for the Sab table and added tables on the right/////
4169
4170function AttackPHP_OnSubmitSab(targetname)
4171{
4172 // Remember sabotage settings for this target
4173 GM_setValue("NSL_sab_wep_" + targetname, document.getElementsByTagName('select')[0].value);
4174 GM_setValue("NSL_sab_cnt_" + targetname, document.getElementsByName('numsab')[0].value);
4175 GM_setValue("NSL_sab_spies_" + targetname, document.getElementsByName('numspies')[0].value);
4176 GM_setValue("NSL_sab_turns_" + targetname, document.getElementsByTagName('select')[1].value);
4177}
4178<---------------NEW ATTACK/SAB PAGE CODE END---------->*/
4179
4180function attackEvent(event)
4181{
4182 if(event.target.name == 'fasterspy')
4183 {
4184 if(GM_getValue("spy") == 1)
4185 {
4186 GM_setValue("spy", 0)
4187 }else{
4188 GM_setValue("spy", 1)
4189 }
4190 }
4191}
4192
4193function ReBuildMassPage(e)
4194{
4195 var fURL = '';
4196 var ReportID = 0;
4197 e.originalTarget.removeAttribute('x ');
4198 e.originalTarget.value = 'Mass';
4199 e.originalTarget.removeEventListener('click', ReBuildMassPage, true);
4200 e.preventDefault();
4201
4202 var html = document.body.innerHTML;
4203 var textarea = '<table border="1" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="104">' +
4204 ' <tr>' +
4205 '<td width="50%" height="17">' +
4206 ' <p align="center">Return values</td>' +
4207 '</tr>' +
4208 '<tr>' +
4209 '<td width="50%" height="59"><div id=tattacks><div id=finalurl></div><div id=sometext></div></td>' +
4210 ' </tr>' +
4211 '<tr>' +
4212 '<td width="50%" height="12">' +
4213 ' <p align="center">Status</td>' +
4214 ' </tr>' +
4215 '<tr>' +
4216 '<td width="50%" height="11"><div id=rstatus></div></td>' +
4217 ' </tr>';
4218 var blah4 = '<td><b>Trained Attack Soldiers</b></td>';
4219 var blah5 = '</table>';
4220 var blah6 = '<td><b>Trained Attack Soldiers</b></td>' + FindText(html,blah4,blah5);
4221 //var newhtml = html.replace(blah6,textarea);
4222 //document.body.innerHTML = newhtml;
4223 table = '<table class="table_lines" align="center" width="100%" cellspacing="0" cellpadding="6" border="0">'+
4224 '<tr><th>Attack result</th></tr>'+
4225 '<tr><td><div id=tattacks><div id=finalurl></div><div id=sometext></div></td></tr>'+
4226 '<tr><td><div id=rstatus></div></td></tr>'+
4227 '</table>';
4228 var cID = getClassIndex('table_lines','Armory Information');
4229 if(!String(cID).match('undefined')){
4230 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4231 }else{
4232 cID = getClassIndex('table_lines','Personnel');
4233 if(!String(cID).match('undefined')){
4234 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4235 }else{
4236 cID = getClassIndex('table_lines','Recon result');
4237 if(!String(cID).match('undefined')){
4238 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4239 }else{
4240 cID = getClassIndex('table_lines','Sab Result');
4241 if(!String(cID).match('undefined')){
4242 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4243 }else{
4244 alert("Error? o.O (Refresh the page)");
4245 }
4246 }
4247 }
4248}
4249
4250document.addEventListener('click', function(event) {
4251 if(event.target.name == 'attackbut2') {
4252 alert("test");
4253 params = 'attackbut=Attack&attacks=1&defender_id=' +
4254 + defenderId
4255 + '&turing=' + turing
4256 + '&hash=';
4257 document.getElementById('rstatus').innerHTML = 'Loading';
4258 //get("http://www.kingsofchaos.com/inteldetail.php?report_id=11233416", function(responseText){
4259 doSab(params, function(rText) {
4260 document.getElementById('rstatus').innerHTML = "Processing\n";
4261 rText = rText.split('*****');
4262 fURL = rText[1];
4263 responseText = rText[0];
4264 totalAttacks = Math.max(totalAttacks + 1);
4265 document.getElementById('finalurl').innerHTML = 'Total Attacks: ' + totalAttacks + ' <a href="' + fURL + '"> View full report</a>';;
4266 ReportID = String(fURL).substr(String(fURL).indexOf('=')+1, 8);
4267 // document.body.innerHTML = document.body.innerHTML + responseText;
4268 if(InStr(responseText,'ou stole') == true){
4269 // Good Attack
4270
4271 var whoami = GM_getValue("Koc_User");
4272 var Attackee = FindText(FindText(responseText,' gold from ','!'),">","<");
4273 var sGold = FindText(FindText(responseText,'ou stole ','gold from'),">","<");
4274 ReturnRequest('GM_Log.php?type=attack&attacker=' + whoami + '&attackee=' + Attackee + '&gold=' + sGold + '&rid=' + ReportID,0,function(responseText){ })
4275 document.getElementById('sometext').innerHTML = "Good attack \n Gold Stolen: " + sGold;
4276
4277 }else if(InStr(responseText,'only 10 times in 24 hours') == true)
4278 {
4279 document.getElementById('rstatus').innerHTML = "You've attacked this person 10 times.\n";
4280 }else if(InStr(responseText,'retreated') == true)
4281 {
4282 document.getElementById('rstatus').innerHTML = "Attack retreated...\n";
4283 }else{
4284 document.getElementById('rstatus').innerHTML = "Attack Defended\n";
4285 }
4286
4287 getTuring(defenderId, function(s) {
4288 document.getElementById('rstatus').innerHTML = document.getElementById('rstatus').innerHTML + "Attack Finished.";
4289 });
4290 });
4291 event.preventDefault();
4292 }
4293 }, true);
4294}
4295
4296function ReBuildSpyPage(e)
4297{
4298 var fURL = '';
4299 var ReportID = 0;
4300 e.originalTarget.removeAttribute('x ');
4301 e.originalTarget.value = 'Spy [r]';
4302 e.originalTarget.removeEventListener('click', ReBuildSpyPage, true);
4303 e.preventDefault();
4304
4305 var html = document.body.innerHTML;
4306 var textarea = '<table border="1" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="104">' +
4307 ' <tr>' +
4308 '<td width="50%" height="17">' +
4309 ' <p align="center">Return values</td>' +
4310 '</tr>' +
4311 '<tr>' +
4312 '<td width="50%" height="59"><div id=finalurl></div><div id=sometext></div></td>' +
4313 ' </tr>' +
4314 '<tr>' +
4315 '<td width="50%" height="12">' +
4316 ' <p align="center">Status</td>' +
4317 ' </tr>' +
4318 '<tr>' +
4319 '<td width="50%" height="11"><div id=rstatus></div></td>' +
4320 ' </tr>';
4321 var blah4 = '<td><b>Trained Attack Soldiers</b></td>';
4322 var blah5 = '</table>';
4323 var blah6 = '<td><b>Trained Attack Soldiers</b></td>' + FindText(html,blah4,blah5);
4324 //var newhtml = html.replace(blah6,textarea);
4325 //document.body.innerHTML = newhtml;
4326 table = '<table class="table_lines" align="center" width="100%" cellspacing="0" cellpadding="6" border="0">'+
4327 '<tr><th>Recon result</th></tr>'+
4328 '<tr><td><div id=finalurl></div><div id=sometext></div></td></tr>'+
4329 '<tr><td><div id=rstatus></div></td></tr>'+
4330 '</table>';
4331 var cID = getClassIndex('table_lines','Armory Information');
4332 if(!String(cID).match('undefined')){
4333 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4334 }else{
4335 cID = getClassIndex('table_lines','Personnel');
4336 if(!String(cID).match('undefined')){
4337 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4338 }else{
4339 cID = getClassIndex('table_lines','Sab Result');
4340 if(!String(cID).match('undefined')){
4341 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4342 }else{
4343 cID = getClassIndex('table_lines','Attack result');
4344 if(!String(cID).match('undefined')){
4345 document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4346 }else{
4347 alert("Error? o.O (Refresh the page)");
4348 }
4349 }
4350 }
4351}
4352document.addEventListener('click', function(event) {
4353 if(event.target.name == 'spyrbut2') {
4354
4355 params = 'mission_type=recon&defender_id=' +
4356 + defenderId
4357 + '&turing=' + turing
4358 + '&hash=';
4359
4360 document.getElementById('rstatus').innerHTML = 'Loading';
4361
4362 //get("http://www.kingsofchaos.com/inteldetail.php?report_id=11233416", function(responseText){
4363
4364 doSab(params, function(rText) {
4365
4366 document.getElementById('rstatus').innerHTML = "Processing";
4367
4368 rText = rText.split('*****');
4369 fURL = rText[1];
4370 responseText = rText[0];
4371
4372 document.getElementById('finalurl').innerHTML = '<a href="' + fURL + '">View full report</a>';;
4373
4374 ReportID = String(fURL).substr(String(fURL).indexOf('=')+1, 8);
4375
4376 // document.body.innerHTML = document.body.innerHTML + responseText;
4377
4378 if(InStr(responseText,'spy moves stealthily through') == true){
4379 // Good Recon
4380 Username = FindText(responseText,"Under the cover of night, your spy sneaks into ","'s camp.");
4381
4382 Strike = FindText(FindText(responseText,"<td>Strike Action:</td>","</tr>"),">","</");
4383 Defence = FindText(FindText(responseText,"<td>Defensive Action</td>","</tr>"),">","</");
4384 TheSpy = FindText(FindText(responseText,"<td>Spy Rating</td>","</tr>"),">","</");
4385 TheSentry = FindText(FindText(responseText,"<td>Sentry Rating</td>","</tr>"),">","</");
4386 NumberOfCoverts = FindText(FindText(responseText,"<td>Covert Operatives:</td>","</tr>"),">","</");
4387 UsersGold = FindText(FindText(responseText,"Treasury","</td>"),'">'," Gold");
4388 StatsID = FindText(responseText,'"id" value="','"');
4389 //alert(UsersGold);
4390 var whoami = GM_getValue("Koc_User");
4391 MakeRequestNoMsg('GM_Recon.php?user=\n' + Username + '&sa=\n' + Strike + '&da=\n' + Defence + '&spy=\n' + TheSpy + '&sentry=\n' + TheSentry + '&statsid=\n' + StatsID + '&gold=\n' + UsersGold + '&coverts=\n' + NumberOfCoverts + '&u=\n' + whoami + '&rid=' + ReportID);
4392
4393
4394 if(CheckStat(Strike) == true) { sSA = "Strike: " + Strike; }
4395 if(CheckStat(Defence) == true) { sDA = "Defence: " + Defence; }
4396 if(CheckStat(TheSpy) == true) { sSpy = "Spy: " + TheSpy; }
4397 if(CheckStat(TheSentry) == true) { sSentry = "Sentry: " + TheSentry; }
4398 if(CheckStat(NumberOfCoverts) == true) { sCoverts = "Coverts: " + NumberOfCoverts; }
4399
4400 statString = sSA + '\n' + sDA + '\n' + sSpy + '\n' + sSentry + '\nGold: ' + UsersGold;
4401 statString = statString + '\n' + sCoverts
4402
4403 WeaponTable = FindText(responseText,'<tr><th colspan="4">Weapons</th></tr>','<form method="get" action="attack.php">');
4404
4405 usetgold = "[user]" + Username + "[/user]";
4406
4407 wRow = WeaponTable.split('<tr>');
4408 for(i=1;i<WeaponTable.length;i++){
4409 if(InStr(wRow[i],'td align="right">') == true){
4410
4411 cWeap = wRow[i].split('align="right">');
4412 type = FindText(cWeap[1],'','</td>');
4413 qu = FindText(cWeap[2],'','</td>');
4414 st = FindText(cWeap[3],'','</td>');
4415 weap = FindText(wRow[i],"<td>","</td>");
4416
4417
4418
4419 if (qu != "???")
4420 {
4421 usetgold = usetgold + "[weap]--w=" + weap + "--q=" + qu + " + --s=" + st + "--x[/weap]"
4422
4423 if((WeaponFromStrength(st) == 'IS') || (WeaponFromName(weap) == 'IS')) {
4424 sIS = "IS: " + qu + ' (' + strengthIS + ' )';
4425 }else if((WeaponFromStrength(st) == 'NUN') || (WeaponFromName(weap) == 'NUN')){
4426 sNUN = "NUN: " + qu;
4427 }else if((WeaponFromStrength(st) == 'BPM') || (WeaponFromName(weap) == 'BPM')){
4428 sBPM = "BPM: " + qu + ' (' + strengthBPM + ' )';
4429 }else if((WeaponFromStrength(st) == 'LT') || (WeaponFromName(weap) == 'LT')){
4430 sLT = "LT: " + qu;
4431 }else if((WeaponFromStrength(st) == 'LT') || (WeaponFromName(weap) == 'Skins')){
4432 sDS = "Skins: " + qu;
4433 }else if((WeaponFromStrength(st) == 'LT') || (WeaponFromName(weap) == 'Chariots')){
4434 sCH = "Chariots: " + qu;
4435 }
4436 document.getElementById('rstatus').innerHTML = '';
4437 }
4438 }
4439 }
4440 usetgold = usetgold + "end";
4441 //alert(usetgold);
4442 MakeRequestNoMsg('GM_AATRecon.php?list=\n' + usetgold);
4443 // document.getElementById('rstatus').innerHTML = 'Loaded';
4444
4445 statString = statString + '\n' + sBPM + '\n' + sCH + '\n' + sIS + '\n' + sDS +'\n' + sNUN + '\n' + sLT;
4446
4447 document.getElementById('sometext').innerHTML = replaceAll(statString,"\n","<br>");
4448
4449 }else if(InStr(responseText,'only 15 times in 24 hours') == true)
4450 {
4451 document.getElementById('rstatus').innerHTML = "You've recon'd this person 15 times.\n";
4452 }else if(InStr(responseText,'one of the sentries spots him') == true)
4453 {
4454 document.getElementById('rstatus').innerHTML = "Recon Failed.\n";
4455 }
4456
4457 getTuring(defenderId, function(s) {
4458 document.getElementById('rstatus').innerHTML = document.getElementById('rstatus').innerHTML + "Recon Finished.";
4459 })
4460
4461 })
4462
4463 event.preventDefault();
4464 }
4465 }, true);
4466}
4467
4468function CheckStat(stat){
4469 if(stat == '???') {
4470 return false
4471 }else{
4472 return true
4473 }
4474}
4475
4476// function ReBuildPage(e)
4477// {
4478 // alert("started");
4479// e.originalTarget.removeAttribute('x ');
4480// e.originalTarget.value = 'Sabotage'; //BACKER removed [s] from label
4481// e.originalTarget.removeEventListener('click', ReBuildPage, true);
4482// e.preventDefault();
4483
4484// var html = document.body.innerHTML;
4485
4486
4487// var whoami = GM_getValue("Koc_User");
4488// var userid = String(document.URL).substr(String(document.URL).indexOf('=')+1, 7);
4489// table = '<table class="table_lines" align="center" width="100%" cellspacing="0" cellpadding="6" border="0">'+
4490// '<tr><th>Sab Result</th></tr>'+
4491// '<tr><td><div id=chuck></div><br><div id=sometext></div><div id=sabmsg></div></td></tr>'+
4492// '<tr><td><textarea name="sabresults" id="sabresults" COLS=50 ROWS=15 width="10px"></TEXTAREA></td></tr>'+
4493// '</table>';
4494// var cID = getClassIndex('table_lines','Armory Information');
4495// if(!String(cID).match('undefined')){
4496 // document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4497// }else{
4498 // cID = getClassIndex('table_lines','Personnel');
4499 // if(!String(cID).match('undefined')){
4500 // document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4501 // }else{
4502 // cID = getClassIndex('table_lines','Recon result');
4503 // if(!String(cID).match('undefined')){
4504 // document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4505 // }else{
4506 // cID = getClassIndex('table_lines','Attack result');
4507 // if(!String(cID).match('undefined')){
4508 // document.getElementsByClassName('table_lines')[cID].innerHTML = table; //"Lol";
4509 // }else{
4510 // alert("Error? o.O (Refresh the page)");
4511 // }
4512 // }
4513 // }
4514// }
4515
4516
4517// alert("started");
4518// //Start Niels Code
4519 // try {
4520 // var form = {
4521 // weapon: document.evaluate("//select[@name='enemy_weapon']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0),
4522 // qty: document.evaluate("//input[@name='numsab']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0),
4523 // spies: document.evaluate("//input[@name='numspies']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0),
4524 // turns: document.evaluate("//select[@name='sabturns']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0)
4525 // //defenderId: document.evaluate("//input[@name='defender_id']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0).value,
4526 // };
4527 // } catch (e) {
4528 // alert("o_O");
4529 // return;
4530 // }
4531
4532
4533 // form.turns.value = 5;
4534 // form.weapon.selectedIndex = GM_getValue('kocsabbselect',"0");
4535 // form.qty.value = GM_getValue('kocsabbnum',"0");
4536
4537
4538 // document.addEventListener('click', function(event) {
4539
4540 // if(event.target.name == 'spybut2') //A sab.
4541 // {
4542 // //GetElement("input", "Sabotage [s]").disabled = true;
4543 // GetElement("input", "Sabotage").style = "font-style:italic;";
4544 // //for(i=1;i<10;i++){
4545
4546 // params = 'mission_type=sabotage&enemy_weapon=' + form.weapon.value
4547 // + '&numsab=' + form.qty.value
4548 // + '&numspies=' + form.spies.value
4549 // + '&sabturns=' + form.turns.value
4550 // + '&defender_id=' + defenderId
4551 // + '&turing=' + turing
4552
4553 // document.getElementById('sometext').innerHTML = "Please Wait..."
4554
4555 // doSab(params, function(responseText) {
4556 // responseText = responseText + "<title>Lol</title>"
4557 // try {
4558
4559 // var pos;
4560
4561
4562 // //responseText
4563 // if(InStr(responseText,' of Nunchaku')==true)
4564 // {
4565 // iNunLost += parseInt(FindText(responseText,"<li> "," of Nunchaku"));
4566 // nunLost(whoami,parseInt(FindText(responseText,"<li> "," of Nunchaku")))
4567 // }
4568
4569 // document.getElementById('sabmsg').innerHTML = "Nunchakus Lost: " + iNunLost + ' Failed Sabs: ' + iFailedSab;
4570
4571 // if ((pos = responseText.indexOf('<h3>Covert Mission Report</h3>')) > 0) {
4572 // var extra = '';
4573 // pos = responseText.substr(pos + 30);
4574 // pos = pos.substr(0, pos.indexOf('<form'));
4575 // if (pos.match(/weapons of type \./)) {
4576 // form.qty.value = 0;
4577 // extra = '<div style="color:#f63">Choose another weapon / tool!</div>';
4578 // //alert("GM_WeaponOut.php?user=" + gUser + "&w=" + FindText(form.weapon.innerHTML,form.weapon.value+'">','<'));
4579 // returnRequest("GM_WeaponOut.php?user=" + gUser + "&w=" + FindText(form.weapon.innerHTML,form.weapon.value+'">','<'));
4580 // document.getElementById('sometext').innerHTML += '<div style="color:#f63">Choose another weapon / tool!</div>';
4581 // } else if (pos.match(/undetected,\s+and destroy/)) {
4582 // document.getElementById('sabresults').innerHTML += pos.replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/^\s*/, '').replace(/\s*$/, '').replace(/^[\s\S]*(Your spies successfully)/, "$1") + "\n";
4583 // } else {
4584 // iFailedSab += 1;
4585 // document.getElementById('sabmsg').innerHTML = "Nunchakus Lost: " + iNunLost + ' Failed Sabs: ' + iFailedSab;
4586 // }
4587 // document.getElementById('sometext').innerHTML = pos + extra;
4588 // } else if ((pos = responseText.indexOf('<font color="red">')) > 0) {
4589 // pos = responseText.substr(pos + 18);
4590 // document.getElementById('sometext').innerHTML += '<br>' + pos.substr(0, pos.indexOf('</font>'));
4591 // if (responseText.match(/Your opponent has already suffered heavy losses today/)) {
4592 // returnRequest("GM_Maxed.php?id="+userid);
4593 // }
4594 // if (responseText.match(/Your officers inform you that you will never be able to get away with sabotaging that much of an opponent's armory\./)) { //'
4595 // var origQty = parseInt(String(form.qty.value).replace(/,/g, ''));
4596 // var newQty = Math.max(0, origQty - 1);
4597 // if (newQty != origQty) {
4598 // form.qty.value = newQty;
4599 // document.getElementById('sometext').innerHTML += '<div style="color:#ff3">The quantity has been lowered for you from ' + origQty + ' to ' + form.qty.value + '.</div>';
4600 // } else {
4601 // //alert("GM_SelfUpdate.php?user=" + gUser + "&w=" + FindText(form.weapon.innerHTML,form.weapon.value+'">','<'));
4602 // //MakeRequestNoMsg("GM_SelfUpdate.php?user=" + gUser + "&w=" + FindText(form.weapon.innerHTML,form.weapon.value+'">','<'));
4603 // document.getElementById('sometext').innerHTML += '<div style="color:#f63">Choose another weapon / tool!</div>';
4604 // }
4605 // }
4606 // } else {
4607 // document.getElementById('sometext').innerHTML = 'O_o';
4608 // }
4609 // }
4610 // catch (e) {
4611 // document.getElementById('sometext').innerHTML = e;
4612 // }
4613 // alert("started");
4614 // getTuring(defenderId, function(s) {
4615 // document.getElementById('sometext').innerHTML += "<br>Sab Finished.";
4616 // GetElement("input", "Sabotage").disabled = false; //BACKER removed [s] from label
4617 // GetElement("input", "Sabotage").style = "font-style:normal;"; //BACKER removed [s] from label
4618 // if (!document.getElementById('sabmsg')) { document.getElementById('sometext').innerHTML = "<br><b>uh oh, this broke and you need to reload..."; window.location.reload(); }
4619 // });
4620 // })
4621 // event.preventDefault();
4622 // event.originalTarget.value = 'Sabotage'; //BACKER removed [s] from label
4623 // }
4624 // }, true);
4625// }
4626
4627
4628
4629function nunLost(u,a)
4630{
4631 ReturnRequest('GM_Log.php?type=nun&rid=0&sabber=' + u + '&a=' + a,0,function(responseText){
4632 //alert(responseText);
4633 })
4634}
4635
4636
4637/* function securityFunc()
4638{
4639StopLoading();
4640 get("http://www.kingsofchaos.com/security.php", function(responseText){
4641 var securityhash = FindText(responseText,"http://api.recaptcha.net/noscript?k=",'" height="300"');
4642 get("http://api.recaptcha.net/challenge?k=" + securityhash, function(html){
4643 var challenge = FindText(html,"challenge : '","',")
4644 var newhtml = '<img src="http://api.recaptcha.net/image?c=' + challenge + '">'
4645 newhtml += '<br><input type=text name=recaptcha_response_field value="">'
4646 newhtml +='<br><input type=hidden name=recaptcha_challenge_field value="' + challenge + '">'
4647 newhtml +='<br><centre><input type=submit name="RaWr" value="Go go go"></centre>'
4648 Loading(newhtml);
4649 })
4650 })
4651} */
4652
4653 function doSab(data,cb){
4654 GM_xmlhttpRequest({
4655 method: "POST",
4656 url: 'https://www.kingsofchaos.com/attack.php',
4657 headers:{'Content-type':'application/x-www-form-urlencoded'},
4658 data:encodeURI(data),
4659 onload: function(xhr) {
4660//YF9gz8Ho73
4661 if(InStr(data,"=recon") == true)
4662 {
4663 cb(xhr.responseText + '*****' + xhr.finalUrl);
4664 }else if(InStr(data,"attacks=") == true)
4665 {
4666 cb(xhr.responseText + '*****DEMMIE' + xhr.finalUrl);
4667 }else{
4668 cb(xhr.responseText);
4669 LogSab(xhr.responseText,xhr.finalUrl);
4670 }
4671
4672
4673 }
4674 });
4675}
4676
4677
4678 function doRecon(data,cb){
4679 GM_xmlhttpRequest({
4680 method: "POST",
4681 url: 'https://www.kingsofchaos.com/attack.php',
4682 headers:{'Content-type':'application/x-www-form-urlencoded'},
4683 data:encodeURI(data),
4684 onload: function(xhr) { cb(xhr.responseText);
4685
4686
4687 }
4688
4689 });
4690 }
4691
4692
4693function LogSab(data,url)
4694{
4695 var ReportID = String(url).substr(String(url).indexOf('=')+1, 8);
4696
4697 if(InStr(data,'Your spies successfully enter ') == true){
4698
4699 var sabbee = FindText(data,"Your spies successfully enter ","'s");
4700 var amount = FindText(data,"and destroy ","of the ");
4701 var weapon = FindText(data,"of the enemy's ","stockpile.");
4702 var whoami = GM_getValue("Koc_User");
4703//alert('GM_Log.php?type=sab&sabber=' + whoami + '&sabbee=' + sabbee + '&weapon=' + weapon + '&amount=' + amount + '&rid=' + ReportID);
4704 ReturnRequest('GM_Log.php?type=sab&sabber=' + whoami + '&sabbee=' + sabbee + '&weapon=' + weapon + '&amount=' + amount + '&rid=' + ReportID,0,function(responseText){
4705 //alert();
4706 document.getElementById('chuck').innerHTML = '<b><font color="yellow">' + FindText(responseText,'<chuck>','</chuck>') + '</b></font><br>';
4707 })
4708 }
4709
4710}
4711
4712/* function LogMorale(to,sending)
4713{
4714var whoami = GM_getValue("Koc_User");
4715 ReturnRequest('GM_Log.php?type=morale&sender=' + whoami + '&to=' + to + '&amount=' + sending + '&rid=0',0,function(responseText){
4716 // alert(responseText);
4717 })
4718 GM_setValue("Morale_to",'');
4719 GM_setValue("Morale_Amount",'');
4720}
4721 */
4722
4723 function doSecurity(data,cb){
4724 GM_xmlhttpRequest({
4725 method: "POST",
4726 url: 'https://www.kingsofchaos.com/security.php',
4727 headers:{'Content-type':'application/x-www-form-urlencoded'},
4728 data:encodeURI(data),
4729 onload: function(xhr) { cb(xhr.responseText); }
4730 });
4731 }
4732
4733function getTuring(id, cb) {
4734 GM_xmlhttpRequest({
4735 method: "GET",
4736 url: "https://www.kingsofchaos.com/attack.php?id=" + id,
4737 onload: function(xhr) {
4738 turing = FindText(xhr.responseText,'name="turing" value="','"');
4739 cb(turing);
4740 }
4741 });
4742}
4743
4744function replaceAll( str, from, to ) {
4745 var idx = str.indexOf( from );
4746 while ( idx > -1 ) {
4747 str = str.replace( from, to );
4748 idx = str.indexOf( from );
4749 }
4750 return str;
4751}
4752
4753
4754//// None KoC Functions.
4755
4756function DisplayMessage(message)
4757{
4758 var gm_button=document.createElement('div');
4759 gm_button.setAttribute('name','gm-button');
4760 gm_button.setAttribute('id','gm-button');
4761 gm_button.setAttribute('style','position:fixed;bottom:10px;right:10px;background-color:#A9A9A9;border:1px solid #FFFFFF;padding:5px;text-align:center;');
4762 var gm_paragraph=document.createElement('p');
4763 gm_paragraph.setAttribute('id','GM_Message');
4764 gm_paragraph.setAttribute('style','font:normal normal normal 12px Arial,Helvetica,sans-serif;color:#000000;text-decoration:none;margin:0;padding:0;');
4765 gm_paragraph.innerHTML = message;
4766
4767 var gm_span_1=document.createElement('span');
4768 gm_span_1.setAttribute('id','gm-span-1');
4769 gm_span_1.setAttribute('style','cursor:pointer;');
4770
4771 document.getElementsByTagName('body')[0].appendChild(gm_button);
4772 gm_button.appendChild(gm_paragraph);
4773 gm_paragraph.appendChild(gm_span_1);
4774}
4775
4776function DisplayMessage2(message)
4777{
4778
4779var gm_button = document.getElementById("GM_Message2");
4780 if(gm_button){
4781 gm_button.innerHTML = message;
4782 }else{
4783 //responseText.setAttribute('style', 'opacity:0.4;border-radius: 150px;-webkit-border-radius: 150px;-moz-border-radius: 150px;');
4784
4785 var gm_button=document.createElement('div');
4786 gm_button.setAttribute('name','gm-button');
4787 gm_button.setAttribute('id','gm-button');
4788 gm_button.setAttribute('style','opacity:0.5;border-radius: 150px;-webkit-border-radius: 200px;-moz-border-radius: 200px;position:fixed;top:100px;right:25px;background-color:#000000;border:1px solid #FFFFFF;padding:10px;text-align:center;');
4789 var gm_paragraph=document.createElement('p');
4790 gm_paragraph.setAttribute('id','GM_Message2');
4791 gm_paragraph.setAttribute('style','font:normal normal normal 15px Arial,Helvetica,sans-serif;color:#FFFF00;text-decoration:none;margin:0;padding:0;');
4792 gm_paragraph.innerHTML = message;
4793
4794 var gm_span_1=document.createElement('span');
4795 gm_span_1.setAttribute('id','gm-span-1');
4796 gm_span_1.setAttribute('style','cursor:pointer;');
4797
4798 document.getElementsByTagName('body')[0].appendChild(gm_button);
4799 gm_button.appendChild(gm_paragraph);
4800 gm_paragraph.appendChild(gm_span_1);
4801 }
4802}
4803
4804function DisplayMessage3(message)
4805{
4806
4807var gm_button = document.getElementById("GM_Message3");
4808 if(gm_button){
4809 gm_button.innerHTML = message;
4810 }else{
4811
4812 var gm_button=document.createElement('div');
4813 gm_button.setAttribute('name','gm-button');
4814 gm_button.setAttribute('id','gm-button');
4815 gm_button.setAttribute('style','position:fixed;overflow:scroll;height:75%;top:50px;right:10px;background-color:#000000;border:1px solid #FF0000;padding:5px;text-align:center;');
4816 var gm_paragraph=document.createElement('p');
4817 gm_paragraph.setAttribute('id','GM_Message3');
4818 gm_paragraph.setAttribute('style','font:normal normal normal 12px Arial,Helvetica,sans-serif;color:#FFFFFF;text-decoration:none;margin:0;padding:0;');
4819 gm_paragraph.innerHTML = message;
4820
4821 var gm_span_1=document.createElement('span');
4822 gm_span_1.setAttribute('id','gm-span-1');
4823 gm_span_1.setAttribute('style','cursor:pointer;');
4824
4825 var insertedgm3=document.getElementsByTagName('body')[0].appendChild(gm_button);
4826 gm_button.appendChild(gm_paragraph);
4827 gm_paragraph.appendChild(gm_span_1);
4828 document.addEventListener("click", function(event){
4829 document.body.removeChild(insertedgm3);
4830 });
4831
4832 }
4833}
4834
4835//May remove and do in css, above in the stats function
4836function DisplayHistory(message)
4837{
4838
4839var gm_button = document.getElementById("GM_DispMessage");
4840 if(gm_button){
4841 gm_button.innerHTML = message;
4842 }else{
4843
4844 var gm_button=document.createElement('div');
4845 gm_button.setAttribute('name','gm-button');
4846 gm_button.setAttribute('id','gm-button');
4847 gm_button.setAttribute('style','position:fixed;overflow:scroll;top:50%;left:35%;right:0%;bottom:10%;background-color:#000000;border:1px solid #FF0000;padding:5px;text-align:center;');
4848 var gm_paragraph=document.createElement('p');
4849 gm_paragraph.setAttribute('id','GM_DispMessage');
4850 gm_paragraph.setAttribute('style','font:normal normal normal 12px Arial,Helvetica,sans-serif;color:#FFFFFF;text-decoration:none;margin:0;padding:0;');
4851 gm_paragraph.innerHTML = message;
4852
4853 var gm_span_2=document.createElement('span');
4854 gm_span_2.setAttribute('id','gm-span-2');
4855 gm_span_2.setAttribute('style','cursor:pointer;');
4856
4857 var insertedgm3=document.getElementsByTagName('body')[0].appendChild(gm_button);
4858 gm_button.appendChild(gm_paragraph);
4859 gm_paragraph.appendChild(gm_span_2);
4860 document.addEventListener("click", function(event){
4861 document.body.removeChild(insertedgm3);
4862 });
4863
4864 }
4865}
4866
4867function MakeRequest(url)
4868{
4869 GM_xmlhttpRequest({
4870 method: 'GET',
4871 url: GM_getValue("serverURL") + '/ac/script/\n' + url,
4872 onload: function(responseDetails) {
4873 //console.log(url);
4874 DisplayMessage("Data Collected");
4875 },
4876 onerror: function(responseDetails) {
4877 console.log("Request for contact resulted in error code: " + responseDetails.status);
4878 }
4879 });
4880}
4881
4882
4883function MakeRequestNoMsg(url)
4884{
4885 GM_xmlhttpRequest({
4886 method: 'GET',
4887 url: GM_getValue("serverURL") + '/ac/script/\n' + url,
4888 onload: function(responseDetails) {
4889 //alert(responseDetails.responseText);
4890 },
4891 onerror: function(responseDetails) {
4892 // alert("Request for contact resulted in error code: " + responseDetails.status);
4893 }
4894 });
4895}
4896
4897function ReturnRequest(url,msg,cb)
4898{
4899GM_xmlhttpRequest({
4900 method: 'GET',
4901 url: GM_getValue("serverURL") + '/ac/script/\n' + url,
4902 headers: {'User-agent': 'Mozilla/1.0 (compatible)', },
4903 onload: function(responseDetails) {
4904 if (typeof cb !== 'undefined') {
4905 cb(responseDetails.responseText);
4906 }
4907 if(msg == 1) { DisplayMessage("Data Collected"); }
4908 },
4909 onerror: function(responseDetails) {
4910 // alert("Request for contact resulted in error code: " + responseDetails.status);
4911 }
4912});
4913}
4914
4915
4916function addCommas( sValue )
4917{
4918 sValue = String(sValue);
4919 var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
4920
4921 while(sRegExp.test(sValue)) {
4922 sValue = sValue.replace(sRegExp, '$1,$2');
4923 }
4924 return sValue;
4925}
4926
4927function removeCommas(number) {
4928 str = String(number);
4929
4930 return parseInt((str.replace(/,/g,'')));
4931}
4932
4933
4934function removeComma(num) {
4935 return num.replace(/,/g, "");
4936}
4937
4938function FindText(str, str1, str2)
4939{
4940 var pos1 = str.indexOf(str1);
4941 if (pos1 == -1) return '';
4942
4943 pos1 += str1.length;
4944
4945 var pos2 = str.indexOf(str2, pos1);
4946 if (pos2 == -1) return '';
4947
4948 return str.substring(pos1, pos2);
4949}
4950
4951function InStr(strSearch, strFind)
4952{
4953 strSearch = String(strSearch);
4954 strFind = String(strFind);
4955 return (strSearch.indexOf(strFind) >= 0);
4956}
4957
4958
4959function addCSS(css){
4960 GM_addStyle(css);
4961}
4962
4963
4964function addJS() // function wrote by Lukas Brueckner
4965{
4966 var head = document.getElementsByTagName("head")[0];
4967 if (!head) {
4968 return;
4969 }
4970 var style = document.createElement("script");
4971 style.type = "text/javascript";
4972 var s = '';
4973 foreach(arguments, function(style){s+=style+"\n";});
4974 style.innerHTML = s;
4975 head.appendChild(style);
4976}
4977
4978 function foreach(stuff, f){ for(var i=0; i < stuff.length; i++) {
4979 var stop_iter = f(stuff[i]);if (stop_iter) return;} }
4980
4981
4982function SortIt(TheArr,u,v,w,x,y,z){
4983
4984 TheArr.sort(Sorter);
4985
4986 function Sorter(a,b){
4987 var swap=0;
4988 if (isNaN(a[u]-b[u])){
4989 if((isNaN(a[u]))&&(isNaN(b[u]))){swap=(b[u]<a[u])-(a[u]<b[u]);}
4990 else {swap=(isNaN(a[u])?1:-1);}
4991 }
4992 else {swap=(a[u]-b[u]);}
4993 if((v==undefined)||(swap!=0)){return swap;}
4994 else{
4995 if (isNaN(a[v]-b[v])){
4996 if((isNaN(a[v]))&&(isNaN(b[v]))){swap=(b[v]<a[v])-(a[v]<b[v]);}
4997 else {swap=(isNaN(a[v])?1:-1);}
4998 }
4999 else {swap=(a[v]-b[v]);}
5000 }
5001 if((w==undefined)||(swap!=0)){return swap;}
5002 else{
5003 if (isNaN(a[w]-b[w])){
5004 if((isNaN(a[w]))&&(isNaN(b[w]))){swap=(b[w]<a[w])-(a[w]<b[w]);}
5005 else {swap=(isNaN(a[w])?1:-1);}
5006 }
5007 else {swap=(a[w]-b[w]);}
5008 }
5009 if((x==undefined)||(swap!=0)){return swap;}
5010 else{
5011 if (isNaN(a[x]-b[x])){
5012 if((isNaN(a[x]))&&(isNaN(b[x]))){swap=(b[x]<a[x])-(a[x]<b[x]);}
5013 else {swap=(isNaN(a[x])?1:-1);}
5014 }
5015 else {swap=(a[x]-b[x]);}
5016 }
5017 if((y==undefined)||(swap!=0)){return swap;}
5018 else{
5019 if (isNaN(a[y]-b[y])){
5020 if((isNaN(a[y]))&&(isNaN(b[y]))){swap=(b[y]<a[y])-(a[y]<b[y]);}
5021 else {swap=(isNaN(a[y])?1:-1);}
5022 }
5023 else {swap=(a[y]-b[y]);}
5024 }
5025 if((z==undefined)||(swap!=0)){return swap;}
5026 else{
5027 if (isNaN(a[z]-b[z])){
5028 if((isNaN(a[z]))&&(isNaN(b[z]))){swap=(b[z]<a[z])-(a[z]<b[z]);}
5029 else {swap=(isNaN(a[z])?1:-1);}
5030 }
5031 else {swap=(a[z]-b[z]);}
5032 }
5033 return swap;
5034 }
5035}
5036
5037
5038
5039
5040
5041
5042
5043
5044function BaseSetUp(event)
5045{
5046
5047if((InStr(event.target,'kingsofchaos.com') == true) || (InStr(event.target.parentNode,'kingsofchaos.com') == true)){ //We'r clicking a link
5048 if(h4xed == 1){
5049 GM_openInTab(event.target);
5050 }else{
5051 if(InStr(event.target.parentNode,'kingsofchaos.com') == true)
5052 {
5053 window.location = event.target.parentNode;
5054 }else{
5055 window.location = event.target;
5056 }
5057 }
5058}else{
5059
5060}
5061 if(event.target.name == 'RaWr') //Security.php
5062 {
5063 var recaptcha_response_field = document.getElementsByName("recaptcha_response_field")[0].value;
5064 var recaptcha_challenge_field = document.getElementsByName("recaptcha_challenge_field")[0].value;
5065 params = 'recaptcha_challenge_field=' + recaptcha_challenge_field + '&recaptcha_response_field=' + recaptcha_response_field;
5066 // document.getElementById('sometext').innerHTML = "Processing, I think?";
5067 doSecurity(params,function(html){
5068 if ((pos = html.indexOf('Security')) > 0) {
5069 securityFunc();
5070 }else{
5071 StopLoading();
5072 GoldFinder(document.getElementsByName('s')[0].value,document.getElementsByName('mg')[0].value,document.getElementsByName('mt')[0].value,document.getElementsByName('striptff')[0].value,document.getElementsByName('ircpaste')[0].value);
5073
5074 }
5075 });
5076 }
5077
5078 if(h4xed == 1){
5079 event.stopPropagation();
5080 event.preventDefault();
5081 }
5082
5083}
5084
5085
5086function IsNumeric(sText)
5087{
5088 var ValidChars = "0123456789.";
5089 var IsNumber=true;
5090 var Char;
5091
5092 for (i = 0; i < sText.length && IsNumber == true; i++)
5093 {
5094 Char = sText.charAt(i);
5095 if (ValidChars.indexOf(Char) == -1)
5096 {
5097 IsNumber = false;
5098 }
5099 }
5100 return IsNumber;
5101}
5102
5103function WeaponFromStrength(s)
5104{
5105var Wfsf;
5106Wfsf='x';
5107//if (InStr(s,'120') == true) { Wfsf = 'NUN';
5108//}else if (InStr(s,'10,000') == true) { Wfsf = 'IS';
5109//}else if (InStr(s,'12,000') == true) { Wfsf = 'BPM'; }
5110return Wfsf;
5111}
5112
5113function WeaponFromName(s)
5114{
5115var Wfn;
5116Wfn ='x';
5117if (InStr(s,'Nunchaku') == true) { Wfn = 'NUN';
5118}else if (InStr(s,'Invisibility') == true) { Wfn = 'IS';
5119}else if (InStr(s,'Blackpowder') == true) { Wfn = 'BPM';
5120}else if (InStr(s,'Lookout') == true) { Wfn = 'LT';
5121}else if (InStr(s,'Dragonskin') == true) { Wfn = 'Skins';
5122}else if (InStr(s,'Chariot') == true) { Wfn = 'Chariots'; }
5123
5124return Wfn;
5125}
5126
5127function GetElement(elem, val)
5128{
5129 var elemList = document.getElementsByTagName(elem);
5130
5131 for(var i = 0; i < elemList.length; i++)
5132 {
5133 if(elemList[i].value.toString().indexOf(val) == 0)
5134 {
5135 return elemList[i];
5136 }
5137 }
5138
5139 return 0;
5140}
5141
5142function getElementsByClass(searchClass,node,tag) {
5143 var classElements = new Array();
5144 if ( node == null )
5145 node = document;
5146 if ( tag == null )
5147 tag = '*';
5148 var els = node.getElementsByTagName(tag);
5149 var elsLen = els.length;
5150 var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
5151 for (i = 0, j = 0; i < elsLen; i++) {
5152 if ( pattern.test(els[i].className) ) {
5153 classElements[j] = els[i];
5154 j++;
5155 }
5156 }
5157 return classElements;
5158}
5159
5160
5161
5162function getClassIndex(classid,text)
5163{
5164 var x = document.getElementsByClassName(classid);
5165 for(i=0;i<x.length;i++)
5166 {
5167 if(document.getElementsByClassName(classid)[i].innerHTML.match(text))
5168 {
5169 return i;
5170 }
5171 }
5172}
5173function pageFunction(lPage){
5174 switch(lPage){
5175 //case "base.php": base(); break;
5176 //case "battlefield.php" : battlefield(); break;
5177 //case "inteldetail.php" : IntelFunction(); break;
5178 case "stats.php": StatsFunction(); break;
5179 //case "stats.php": stats(); break;
5180 //case "armory.php" : armory(); break;
5181 }
5182}
5183
5184function StatsFunction(){
5185 if(document.location.toString().indexOf("?id=accounts") != -1){
5186 //var target_ID = document.location.toString().split("stats.php?id=")[1];
5187 var target_ID = ('accounts');
5188 //alert(target_ID);
5189 if(isNaN(target_ID)){
5190 var data = "targetpage="+target_ID+"&id="+GM_getValue("userid")+"&name="+GM_getValue("Koc_User");;
5191 //alert(data);
5192 request.post(script.access+"customLinks.php",data,function(response){
5193 var content = GetContentTD();
5194 //alert(GM_getValue("userid"));
5195 content.innerHTML = response;
5196 var input_array = content.getElementsByTagName("input");
5197 for(var i = 0 ; i < input_array.length ; i++){
5198 input_array[i].addEventListener("click",function(event){
5199 var user_ID;
5200 var operation;
5201 var id = event.target.id;
5202 if(id.indexOf("_") != -1){
5203 user_ID = id.split("_")[1];
5204 operation = id.split("_")[0];
5205 request.post(script.access+"changeAuth.php","id="+user_ID+"&operation="+operation+"&invoker="+GM_getValue("userid")+"_"+GM_getValue("Koc_User"),function(r){
5206 if(r.indexOf("done") != -1){
5207 document.location.reload();
5208 }
5209 else{
5210 alert("An error occured. Please contact the script developer");
5211 }
5212 });
5213 }
5214 },false);
5215 }
5216 });
5217 }
5218 else{
5219 }
5220}
5221}
5222
5223function checkAuthorization(everywhere){
5224 var username = "";
5225 var userid = "";
5226 if (everywhere) {
5227 if ((GM_getValue("userid","") != "") && (GM_getValue("username","") != "")) {
5228 username = GM_getValue("username","");
5229 userid = GM_getValue("userid","");
5230 }
5231 }
5232 else {
5233 username = FindText(document.title,"Kings of Chaos :: ","'s ");
5234 userid = FindText(document.body.innerHTML, '<td><a href="stats.php?id=' , '">');
5235 //var username = GMMem.get("username","");
5236 //var userid = GMMem.get("id","");
5237 GM_setValue("username",username);
5238 GM_setValue("userid",userid);
5239 //alert(username);
5240 }
5241 if(username == ""){
5242 window.location.replace("https://kingsofchaos.com/base.php");
5243 //alert(username);
5244 }
5245 else{
5246 var data = "name="+GM_getValue("username",username)+"&id="+GM_getValue("userid",userid);
5247 request.post(script.access+"checkAuth.php",data,function(response){
5248 response = response.substr(0,response.length-1).replace(/\s|\r|\n/g,'');
5249 if ((response == "regularuser") || (response == "admin") || (response == "moderator") || (response == "owner")){
5250 GM_setValue('gr',true);
5251 //GM_getValue('gr',true);
5252 //alert(response);
5253 }
5254 else if(response == "user not found"){
5255 ////GM_setValue('gr',false);
5256 //alert(response);
5257 var askQ = confirm("Do you want Script access?");
5258 if (askQ == true){
5259 //var data = "name="+GM_getValue("username",username)+"&id="+GM_getValue("userid",userid);
5260 request.post(script.access+"requestAccess.php",data,function(response){
5261 //alert('username:'+username);
5262 });
5263 }
5264 else{
5265 window.location.replace("https://kingsofchaos.com/stats.php?id="+GM_getValue("userid",userid));
5266 }
5267 }
5268 else{
5269 /* var askQ = confirm("Do you want Script access?");
5270 if (askQ == true){
5271 //var data = "name="+GM_getValue("username",username)+"&id="+GM_getValue("userid",userid);
5272 request.post(script.access+"requestAccess.php",data,function(response){
5273 //alert('username:'+username);
5274 });
5275 } */
5276 GM_setValue('gr',false);
5277 //alert("You are not authorized to use this script. Please contact an admin to get authorization");
5278 }
5279 });
5280 }
5281}
5282
5283function SiegeList(m) // Returns: Multiply | Next Upgrade | Next Price | Next Multiply
5284{
5285 switch(m)
5286 {
5287 case 'None': { return '1|Flaming Arrows|40,000|1.333'; break }
5288 case 'Flaming Arrows': { return '1.333|Ballistas|80,000|1.777'; break }
5289 case 'Ballistas': { return '1.777|Battering Ram|160,000|2.369'; break }
5290 case 'Battering Ram': { return '2.369|Ladders|320,000|3.157'; break }
5291 case 'Ladders': { return '3.157|Trojan Horse|640,000|4.209'; break }
5292 case 'Trojan Horse': { return '4.209|Catapults|1,280,000|5.610'; break }
5293 case 'Catapults': { return '5.610|War Elephants|2,560,000|7.478'; break }
5294 case 'War Elephants': { return '7.478|Siege Towers|5,120,000|9.969'; break }
5295 case 'Siege Towers': { return '9.969|Trebuchets|10,240,000|13.288'; break }
5296 case 'Trebuchets': { return '13.288|Black Powder|20,480,000|17.713'; break }
5297 case 'Black Powder': { return '17.713|Sappers|40,960,000|23.612'; break }
5298 case 'Sappers': { return '23.612|Dynamite|81,920,000|31.475'; break }
5299 case 'Dynamite': { return '31.475|Greek Fire|163,840,000|41.956'; break }
5300 case 'Greek Fire': { return '41.956|Cannons|327,680,000|55.927'; break }
5301 case 'Cannons': { return '55.927|Max|Max|Max'; break }
5302 default: { return 'Max|Max|Max|Max'; break }
5303 }
5304}
5305
5306function FortList(m) // Returns: Multiply | Next Upgrade | Next Price | Next Multiply
5307{
5308 switch(m)
5309 {
5310 case 'Camp': { return '1|Stockade|40,000|1.25'; break }
5311 case 'Stockade': { return '1.25|Rabid Pitbulls|80,000|1.563'; break }
5312 case 'Rabid Pitbulls': { return '1.563|Walled Town|160,000|1.953'; break }
5313 case 'Walled Town': { return '1.953|Towers|320,000|2.441'; break }
5314 case 'Towers': { return '2.441|Battlements|640,000|3.052'; break }
5315 case 'Battlements': { return '3.052|Portcullis|1,280,000|3.815'; break }
5316 case 'Portcullis': { return '3.815|Boiling Oil|2,560,000|4.768'; break }
5317 case 'Boiling Oil': { return '4.768|Trenches|5,120,000|5.960'; break }
5318 case 'Trenches': { return '5.960|Moat|10,240,000|7.451'; break }
5319 case 'Moat': { return '7.451|Drawbridge|20,480,000|9.313'; break }
5320 case 'Drawbridge': { return '9.313|Fortress|40,960,000|11.642'; break }
5321 case 'Fortress': { return '11.642|Stronghold|81,920,000|14.552'; break }
5322 case 'Stronghold': { return '14.552|Palace|163,840,000|18.190'; break }
5323 case 'Palace': { return '18.190|Keep|327,680,000|22.737'; break }
5324 case 'Keep': { return '22.737|Citadel|655,360,000|28.422'; break }
5325 case 'Citadel': { return '28.422|Hand of God|1,310,720,000|35.527'; break }
5326 case 'Hand of God': { return '35.527|Max|Max|Max'; break }
5327 default: { return 'Max|Max|Max|Max'; break }
5328 }
5329}
5330
5331function logLostWeapon(m) {
5332
5333 var dt = new Date();
5334 var unixtime = Math.max((Date.parse(dt))/1000);
5335 GM_setValue("logSab_10",GM_getValue("logSab_9",""));
5336 GM_setValue("logSab_9",GM_getValue("logSab_8",""));
5337 GM_setValue("logSab_8",GM_getValue("logSab_7",""));
5338 GM_setValue("logSab_7",GM_getValue("logSab_6",""));
5339 GM_setValue("logSab_6",GM_getValue("logSab_5",""));
5340 GM_setValue("logSab_5",GM_getValue("logSab_4",""));
5341 GM_setValue("logSab_4",GM_getValue("logSab_3",""));
5342 GM_setValue("logSab_3",GM_getValue("logSab_2",""));
5343 GM_setValue("logSab_2",GM_getValue("logSab_1",""));
5344 GM_setValue("logSab_1",m + '|' + unixtime);
5345}
5346
5347function isTurn()
5348{
5349
5350if((document.body.innerHTML.match("<title>Ignore this</title>")) || (document.body.innerHTML.match("Covert Mission Report")) || (document.body.innerHTML.match("Attack Mission")))
5351{
5352
5353
5354
5355}else{
5356
5357 var t = false;
5358 var d=new Date();
5359 var hour = d.getHours();
5360 var minute = d.getMinutes();
5361 var sec = d.getSeconds();
5362
5363 if(sec < 10) { sec = '0' + sec; };
5364 if(minute < 10) { minute = '0' + minute; }
5365 if(hour < 10) { hour = '0' + hour; }
5366
5367
5368 document.title = hour + ':' + minute + ':' + sec;
5369 if(GM_getValue('acClock') != 0){
5370 DisplayMessage2('<font size=6>' + hour + ':' + minute + ':' + sec + '</font>');
5371 }
5372 if(((minute == '35') || (minute == '5')) && (sec == '59')){
5373 // Notice user to hit?!?!
5374 alert('hit');
5375 }
5376
5377 setTimeout(isTurn,600);
5378 return t;
5379}
5380
5381}
5382
5383
5384
5385function expcolTable(text)
5386{
5387var table;
5388
5389 var elems = document.getElementsByTagName('table');
5390
5391 for (i = 0; i < elems.length; i++)
5392 {
5393 if (elems[i].rows[0].cells[0].innerHTML.match(text))
5394 {
5395 table = elems[i];
5396 }
5397 }
5398
5399 if(table){
5400
5401 table.rows[0].style.cursor = 'pointer';
5402
5403 for (i = 1; i < table.rows.length; i++)
5404 {
5405 if(GM_getValue("hideTable_"+text) == 1)
5406 {
5407 table.rows[i].style.display = table.rows[i].style.display != 'none' ? 'none' : '';
5408 }
5409
5410 }
5411
5412 table.rows[0].addEventListener('click', function(event)
5413 {
5414 event.stopPropagation();
5415 event.preventDefault();
5416
5417
5418 if(GM_getValue("hideTable_"+text) == 1)
5419 {
5420 for (i = 1; i < table.rows.length; i++){
5421 table.rows[i].style.display = table.rows[i].style.display = '';
5422 GM_setValue("hideTable_"+text, 0)
5423 }
5424 }else{
5425 for (i = 1; i < table.rows.length; i++){
5426 table.rows[i].style.display = table.rows[i].style.display != 'none' ? 'none' : '';
5427 }
5428 GM_setValue("hideTable_"+text, 1)
5429 }
5430
5431 }, true);
5432
5433
5434 }
5435}
5436
5437function GetTag(tag, inner)
5438{
5439 var tagList = document.getElementsByTagName(tag);
5440
5441 for(z = 0; z < tagList.length; z++)
5442 {
5443 if(tagList[z].innerHTML.indexOf(inner) == 0)
5444 {
5445 return tagList[z];
5446 }
5447 }
5448
5449 return 0;
5450}
5451
5452
5453function GetText()
5454{
5455 var doc = document.body.innerHTML;
5456
5457 var pos = 0;
5458
5459 for(z = 0; z < (arguments.length - 1); z++)
5460 {
5461 pos = doc.indexOf(arguments[z], pos);
5462 if(pos < 0) return "";
5463
5464 pos += arguments[z].length;
5465 }
5466
5467 var pos2 = doc.indexOf(arguments[arguments.length - 1], pos);
5468 if(pos2 < 0) return "";
5469
5470 return doc.substring(pos, pos2);
5471}
5472
5473function GetContentTD(){
5474 var tables = document.getElementsByClassName("content");
5475
5476 if(tables.length == 0){
5477 return 0;
5478 }
5479
5480 return tables[0];
5481}
5482
5483
5484function getText2(where,start,end){
5485 var thisStart = where.indexOf(start) + start.length;
5486 var thisEnd = where.indexOf(end, thisStart);
5487
5488 return where.substring(thisStart,thisEnd);
5489}
5490
5491function getTableByHeader(header){
5492 var tables = document.getElementsByTagName("table");
5493 for(var t = 0 ; t < tables.length ; t++){
5494 //alert(header.replace(/\s/g, '') +"||\n\n||"+tables[t].rows[0].innerHTML.replace(/\s/g, ''));
5495 if(tables[t].rows[0].innerHTML.replace(/\s/g, '') == header.replace(/\s/g, '')){
5496 //alert("table found");
5497 return tables[t];
5498 }
5499 }
5500 return "table not found";
5501}