SHOW:
|
|
- or go back to the newest paste.
| 1 | //--------------------------------------------------------------------------- | |
| 2 | // v1.0.3 | |
| 3 | // 参考Bronie FPeD http://userscripts.org/scripts/review/70450 | |
| 4 | //--------------------------------------------------------------------------- | |
| 5 | var $j = jQuery.noConflict(); | |
| 6 | var currURL = location.href; | |
| 7 | var rank = {
| |
| 8 | Recruit: 1, | |
| 9 | Private: 2, | |
| 10 | 'Private *': 3, | |
| 11 | 'Private **': 4, | |
| 12 | 'Private ***': 5, | |
| 13 | Corporal: 6, | |
| 14 | 'Corporal *': 7, | |
| 15 | 'Corporal **': 8, | |
| 16 | 'Corporal ***': 9, | |
| 17 | Sergeant: 10, | |
| 18 | 'Sergeant *': 11, | |
| 19 | 'Sergeant **': 12, | |
| 20 | 'Sergeant ***': 13, | |
| 21 | Lieutenant: 14, | |
| 22 | 'Lieutenant *': 15, | |
| 23 | 'Lieutenant **': 16, | |
| 24 | 'Lieutenant ***': 17, | |
| 25 | Captain: 18, | |
| 26 | 'Captain *': 19, | |
| 27 | 'Captain **': 20, | |
| 28 | 'Captain ***': 21, | |
| 29 | Major: 22, | |
| 30 | 'Major *': 23, | |
| 31 | 'Major **': 24, | |
| 32 | 'Major ***': 25, | |
| 33 | Commander: 26, | |
| 34 | 'Commander *': 27, | |
| 35 | 'Commander **': 28, | |
| 36 | 'Commander ***': 29, | |
| 37 | 'Lt Colonel': 30, | |
| 38 | 'Lt Colonel *': 31, | |
| 39 | 'Lt Colonel **': 32, | |
| 40 | 'Lt Colonel ***': 33, | |
| 41 | Colonel: 34, | |
| 42 | 'Colonel *': 35, | |
| 43 | 'Colonel **': 36, | |
| 44 | 'Colonel ***': 37, | |
| 45 | General: 38, | |
| 46 | 'General *': 39, | |
| 47 | 'General **': 40, | |
| 48 | 'General ***': 41, | |
| 49 | 'Field Marshal': 42, | |
| 50 | 'Field Marshal *': 43, | |
| 51 | 'Field Marshal **': 44, | |
| 52 | 'Field Marshal ***': 45, | |
| 53 | 'Supreme Marshal': 46, | |
| 54 | 'Supreme Marshal *': 47, | |
| 55 | 'Supreme Marshal **': 48, | |
| 56 | 'Supreme Marshal ***': 49, | |
| 57 | 'National Force': 50, | |
| 58 | 'National Force *': 51, | |
| 59 | 'National Force **': 52, | |
| 60 | 'National Force ***': 53, | |
| 61 | 'World Class Force': 54, | |
| 62 | 'World Class Force *': 55, | |
| 63 | 'World Class Force **': 56, | |
| 64 | 'World Class Force ***': 57, | |
| 65 | 'Legendary Force': 58, | |
| 66 | 'Legendary Force *': 59, | |
| 67 | 'Legendary Force **': 60, | |
| 68 | 'Legendary Force ***': 61, | |
| 69 | 'God of War': 62, | |
| 70 | 'God of War *': 63, | |
| 71 | 'God of War **': 64, | |
| 72 | 'God of War ***': 65 | |
| 73 | }; | |
| 74 | var ccode = {
| |
| 75 | Argentina: 'ARG', | |
| 76 | Venezuela: 'VEN', | |
| 77 | 'United Kingdom': 'UK', | |
| 78 | Switzerland: 'CH', | |
| 79 | Netherlands: 'NL', | |
| 80 | 'Czech Republic': 'Czech', | |
| 81 | 'South Korea': 'SK', | |
| 82 | Indonesia: 'IND', | |
| 83 | Australia: 'AUS', | |
| 84 | 'South Africa': 'ZA', | |
| 85 | 'Republic of Moldova': 'Moldova', | |
| 86 | Philippines: 'PH', | |
| 87 | Singapore: 'SGP', | |
| 88 | 'Bosnia and Herzegovina': 'BIH', | |
| 89 | Lithuania: 'LT', | |
| 90 | 'North Korea': 'NK', | |
| 91 | 'Republic of Macedonia (FYROM)': 'MKD', | |
| 92 | Montenegro: 'MNE', | |
| 93 | 'Republic of China (Taiwan)': 'ROC', | |
| 94 | 'New Zealand': 'NZ', | |
| 95 | 'Saudi Arabia': 'SA', | |
| 96 | 'United Arab Emirates': 'UAE' | |
| 97 | }; | |
| 98 | ||
| 99 | function dmgCalc(militaryRank, strength, weaponPower, fights, bonus) {
| |
| 100 | var damage = Math.floor((militaryRank + 5) * (strength + 400) * 0.005 * (1 + weaponPower * 0.01)); | |
| 101 | return Math.floor(damage * bonus) * fights; | |
| 102 | } | |
| 103 | ||
| 104 | function str_replace(haystack, needle, replacement) {
| |
| 105 | var temp = haystack.split(needle); | |
| 106 | return temp.join(replacement); | |
| 107 | } | |
| 108 | ||
| 109 | function add_inf() {
| |
| 110 | var content = $j('#content'),
| |
| 111 | str, | |
| 112 | mRank = content.find('div.citizen_military:eq(1)').find('a').text().trim();
| |
| 113 | str = content.find('div.citizen_military:eq(0)').find('h4').text().trim();
| |
| 114 | str = parseFloat(str_replace(str, ',', '')); | |
| 115 | ||
| 116 | content.find('div.citizen_military:last').after('<h3>Influence</h3><table border="0" width="100%" class="details"><thead><tr><th>Weapons</th><th>None</th><th>Q1</th><th>Q2</th><th>Q3</th><th>Q4</th><th>Q5</th><th>Q6</th></tr></thead><tbody><tr class="current"><td class="skill"><span class="skiller">Influence</span></td><td class="stat">' +
| |
| 117 | dmgCalc(rank[mRank], str, 0, 1, 1) + '</td><td class="stat">' + | |
| 118 | dmgCalc(rank[mRank], str, 20, 1, 1) + '</td><td class="stat">' + | |
| 119 | dmgCalc(rank[mRank], str, 40, 1, 1) + '</td><td class="stat">' + | |
| 120 | dmgCalc(rank[mRank], str, 60, 1, 1) + '</td><td class="stat">' + | |
| 121 | dmgCalc(rank[mRank], str, 80, 1, 1) + '</td><td class="stat">' + | |
| 122 | dmgCalc(rank[mRank], str, 100, 1, 1) + '</td><td class="stat">' + | |
| 123 | dmgCalc(rank[mRank], str, 120, 1, 1) + '</td></tr></tbody></table><div class="clear"></div><h3>Influence Calculator<span style="float:right">Weapons: <select id="dmgWeapon" size="1"><option value="0">None</option><option value="20">Q1</option><option value="40">Q2</option><option value="60">Q3</option><option value="80">Q4</option><option value="100">Q5</option><option value="120" selected="selected">Q6</option></select> Fights: <input id="dmgFights" name="dmgFights" value="65" size="4" maxlength="4" /></span></h3><div class="citizen_military" style="margin-bottom:2px"><div id="dmgResults"><strong>Total influence: </strong><h4 style="margin-left:10px">' + | |
| 124 | dmgCalc(rank[mRank], str, 120, 65, 1) + '</h4><div class="stat"><small>With NE bonus: <strong><span style="font-size:12px">' + | |
| 125 | dmgCalc(rank[mRank], str, 120, 65, 1.1) + '</span></strong></small></div></div></div>' | |
| 126 | ); | |
| 127 | ||
| 128 | $j('#dmgFights').keyup(function () {
| |
| 129 | var fights = $j('#dmgFights').val(),
| |
| 130 | weaponPower = $j('#dmgWeapon').val();
| |
| 131 | $j('#dmgResults').html('<strong>Total influence: </strong><h4 style="margin-left:10px">' +
| |
| 132 | dmgCalc(rank[mRank], str, weaponPower, fights, 1) + '</h4><div class="stat"><small>With NE bonus: <strong><span style="font-size:12px">' + | |
| 133 | dmgCalc(rank[mRank], str, weaponPower, fights, 1.1) + '</span></strong></small></div>' | |
| 134 | ); | |
| 135 | }); | |
| 136 | ||
| 137 | $j('#dmgWeapon').change(function () {
| |
| 138 | $j('#dmgFights').keyup();
| |
| 139 | }); | |
| 140 | } | |
| 141 | ||
| 142 | function add_news() {
| |
| 143 | $j('#articles').find('a:first').before('<a href="/en/news/latest/all/China/1" class="mbutton"><img src="http://www.erepublik.com/images/flags/S/China.gif" alt="" /><span>Latest news of eChina</span></a>' +
| |
| 144 | '<a href="/en/newspaper/ministry-of-sinodefence-196717/1" class="mbutton"><img src="http://www.erepublik.com/images/flags/S/China.gif" alt="" /><span>Daily Order of SinoDefence</span></a>' | |
| 145 | ); | |
| 146 | } | |
| 147 | ||
| 148 | function dmgMilitary(bonus) {
| |
| 149 | var str, | |
| 150 | mRank = $j('#rank_icon').attr('title');
| |
| 151 | str = $j('#fighter_skill').text().trim();
| |
| 152 | str = parseFloat(str_replace(str, ',', '')); | |
| 153 | if (typeof mRank == 'undefined' || mRank.length == 0) {
| |
| 154 | mRank = $j('#rank_icon').attr('original-title').substr(15).trim();
| |
| 155 | } else {
| |
| 156 | mRank = mRank.substr(15).trim(); | |
| 157 | } | |
| 158 | return dmgCalc(rank[mRank], str, 120, 1, bonus); | |
| 159 | } | |
| 160 | ||
| 161 | function sortStats(a, b) {
| |
| 162 | var ta = a.split('_'),
| |
| 163 | tb = b.split('_');
| |
| 164 | if (parseInt(ta[1], 10) == parseInt(tb[1], 10)) {
| |
| 165 | return parseInt(ta[2], 10) - parseInt(tb[2], 10); | |
| 166 | } else {
| |
| 167 | return parseInt(ta[1], 10) - parseInt(tb[1], 10); | |
| 168 | } | |
| 169 | } | |
| 170 | ||
| 171 | function getKey() {
| |
| 172 | var i, len, tmp, | |
| 173 | key = []; | |
| 174 | for (i = 0, len = localStorage.length; i < len; i++) {
| |
| 175 | tmp = localStorage.key(i); | |
| 176 | if (tmp.charAt(0) != '@') {
| |
| 177 | continue; | |
| 178 | } | |
| 179 | key.push(tmp); | |
| 180 | } | |
| 181 | key.sort(sortStats); | |
| 182 | return key; | |
| 183 | } | |
| 184 | ||
| 185 | function showStats() {
| |
| 186 | var tmp, value, i, len, | |
| 187 | stats = [], | |
| 188 | stats_table = $j('#stats_table'),
| |
| 189 | tstats = '', | |
| 190 | cmcInf = 0, | |
| 191 | cmcFight = 0, | |
| 192 | eliteInf = 0, | |
| 193 | eliteFight = 0, | |
| 194 | key = getKey(); | |
| 195 | stats.push('<tr><th>戰場</th><th>總影響力</th><th></th></tr>');
| |
| 196 | for (i = 0, len = key.length; i < len; i++) {
| |
| 197 | value = localStorage.getItem(key[i]).split('_');
| |
| 198 | tmp = key[i].split('_');
| |
| 199 | if (tmp[0].length == 1) {
| |
| 200 | cmcFight += parseInt(value[0], 10); | |
| 201 | cmcInf += parseInt(value[1], 10); | |
| 202 | stats.push('<tr><td>' + tmp[1] + '_' + tmp[2] + '_' + value[0] + '</td><td>' + value[1] + '</td><td><a href="javascript:;" class="delete_stat" id="' + key[i] + '">X</a></td></tr>');
| |
| 203 | } else {
| |
| 204 | eliteFight += parseInt(value[0], 10); | |
| 205 | eliteInf += parseInt(value[1], 10); | |
| 206 | stats.push('<tr style="background-color:LightGreen;"><td>' + tmp[1] + '_' + tmp[2] + '_' + value[0] + '</td><td>' + value[1] + '</td><td><a href="javascript:;" class="delete_stat" id="' + key[i] + '">X</a></td></tr>');
| |
| 207 | } | |
| 208 | } | |
| 209 | if (stats.length == 1) {
| |
| 210 | stats = ''; | |
| 211 | } else {
| |
| 212 | stats = stats.join('');
| |
| 213 | } | |
| 214 | stats_table.html(stats); | |
| 215 | stats_table.find('th').css({'border': '1px solid gray', 'padding': '2px'});
| |
| 216 | stats_table.find('td').css({'border': '1px solid gray', 'padding': '1px'});
| |
| 217 | if (cmcInf > 0) {
| |
| 218 | tstats += '<tr><td>ROCAS 總影響力</td><td>' + cmcInf + '</td></tr><tr><td>ROCAS Q6攻擊次數</td><td>' + cmcFight + '</td></tr>'; | |
| 219 | } | |
| 220 | if (eliteInf > 0) {
| |
| 221 | tstats += '<tr><td>Elite 總影響力</td><td>' + eliteInf + '</td></tr><tr><td>Elite Q6攻擊次數</td><td>' + eliteFight + '</td></tr>'; | |
| 222 | } | |
| 223 | if (cmcInf == 0 && eliteInf == 0) {
| |
| 224 | tstats = '<tr><td style="text-align:center;font-weight:bold;"><a href="http://eroc.no-ip.org/php/upload/forum.php?mod=viewthread&tid=8#lastpost" target="_blank">ROCAS 申報插件 v1.0.0</a></td></tr>'; | |
| 225 | } | |
| 226 | $j('#tstats_table').html(tstats);
| |
| 227 | stats_table.find('tr:gt(0)').click(function () {
| |
| 228 | var key = $j(this).find('a.delete_stat').attr('id'),
| |
| 229 | value = localStorage.getItem(key), | |
| 230 | tmp = key.split('_');
| |
| 231 | localStorage.removeItem(key); | |
| 232 | if (tmp[0].length == 1) {
| |
| 233 | localStorage.setItem('@' + key, value);
| |
| 234 | } else {
| |
| 235 | key = key.substr(1); | |
| 236 | localStorage.setItem(key, value); | |
| 237 | } | |
| 238 | $j('#clear_btn').css('display', 'none');
| |
| 239 | $j('#gen_txt').css('display', 'none');
| |
| 240 | $j('#stats_report').html('');
| |
| 241 | showStats(); | |
| 242 | }); | |
| 243 | stats_table.find('a.delete_stat').click(function () {
| |
| 244 | localStorage.removeItem($j(this).attr('id'));
| |
| 245 | $j('#clear_btn').css('display', 'none');
| |
| 246 | $j('#gen_txt').css('display', 'none');
| |
| 247 | $j('#stats_report').html('');
| |
| 248 | showStats(); | |
| 249 | }); | |
| 250 | } | |
| 251 | ||
| 252 | function add_fight() {
| |
| 253 | var battleId = currURL.substr(49), | |
| 254 | leftCrowns = $j('#popup_left_crowns').attr('crowns'),
| |
| 255 | rightCrowns = $j('#popup_right_crowns').attr('crowns'),
| |
| 256 | zoneId = parseInt(leftCrowns, 10) + parseInt(rightCrowns, 10) + 1, | |
| 257 | leftSide = $j('#pvp_header').find('h3:first').html(),
| |
| 258 | totalDmg = parseInt($j('#total_damage').find('strong').text().replace(/\s/g, ''), 10),
| |
| 259 | dmg = dmgMilitary(1), | |
| 260 | neDmg = dmgMilitary(1.1), | |
| 261 | initFight, | |
| 262 | scriptNode = document.createElement('script'),
| |
| 263 | text = []; | |
| 264 | if (leftSide.indexOf('Resistance') != -1) {
| |
| 265 | leftSide = leftSide.substr(20); | |
| 266 | } | |
| 267 | if (leftSide.length > 8) {
| |
| 268 | leftSide = ccode[leftSide]; | |
| 269 | } | |
| 270 | if (localStorage.getItem('ne') != null && localStorage.getItem('ne') == battleId) {
| |
| 271 | initFight = Math.round(totalDmg / neDmg); | |
| 272 | } else if (totalDmg % dmg != 0 && totalDmg % neDmg == 0) {
| |
| 273 | initFight = Math.round(totalDmg / neDmg); | |
| 274 | } else {
| |
| 275 | initFight = Math.round(totalDmg / dmg); | |
| 276 | } | |
| 277 | $j('#pvp_battle_area').find('table.damage_aligner').find('td').after(
| |
| 278 | '<td> </td><td><div id="total_f" style="width:auto;height:25px;display:block;cursor:default;"><small style="font-size:11px;color:#fff;float:left;text-shadow:#333 0px 1px 1px;display:block;height:25px;opacity:0.7;-moz-opacity:0.7;-ms-fiter:' + "'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)'" + ';filter:alpha(opacity=70);line-height:25px;font-weight:bold;padding:0 5px;background-image:url(' + "'/images/modules/pvp/influence_left.png?1321873582'" + ');background-position:left;">' + battleId + '_' + zoneId + '_' + leftSide + '</small><strong style="color:#fff;text-shadow:#014471 0px 1px 0px;float:left;display:block;height:25px;font-size:12px;line-height:25px;padding:0 5px;background-image:url(' + "'/images/modules/pvp/influence_right.png?1321873582'" + ');background-position:right;">' + initFight + '</strong></div></td>'
| |
| 279 | ); | |
| 280 | function localMain() {
| |
| 281 | //remove ScrollToFixed | |
| 282 | $j(document).ready(function () {
| |
| 283 | $j(window).load(function () {
| |
| 284 | var tmp = $j('#large_sidebar').next();
| |
| 285 | if (typeof tmp.attr('id') == 'undefined' || !tmp.attr('id').length) {
| |
| 286 | tmp.remove(); | |
| 287 | } | |
| 288 | $j('#large_sidebar').css({'width' : '', 'position' : '', 'left' : '', 'top' : ''});
| |
| 289 | $j(window).unbind('resize');
| |
| 290 | $j(window).unbind('scroll');
| |
| 291 | }); | |
| 292 | }); | |
| 293 | //update totalDmg | |
| 294 | $j('#total_f').ajaxSuccess(function (e, xhr, settings) {
| |
| 295 | if (settings.url.indexOf('fight') == -1) {
| |
| 296 | return; | |
| 297 | } | |
| 298 | var fight = parseInt($j(this).find('strong').html(), 10),
| |
| 299 | key, | |
| 300 | response = JSON.parse(xhr.responseText), | |
| 301 | user = response.user; | |
| 302 | if (response.error) {
| |
| 303 | return; | |
| 304 | } | |
| 305 | if (response.message === 'ENEMY_KILLED') {
| |
| 306 | totalDmg += user.givenDamage; | |
| 307 | if (response.oldEnemy.isNatural === true) {
| |
| 308 | localStorage.setItem('ne', location.href.substr(49));
| |
| 309 | totalDmg += Math.floor(user.givenDamage * 0.1); | |
| 310 | fight = Math.round(totalDmg / dmgMilitary(1.1)); | |
| 311 | } else {
| |
| 312 | fight = Math.round(totalDmg / dmgMilitary(1)); | |
| 313 | } | |
| 314 | $j(this).find('strong').html(fight);
| |
| 315 | key = $j(this).find('small').text().trim().split('_', 2);
| |
| 316 | key = '@_' + key[0] + '_' + key[1]; | |
| 317 | if (localStorage.getItem(key) == null) {
| |
| 318 | key = '@' + key; | |
| 319 | if (localStorage.getItem(key) == null) {
| |
| 320 | return; | |
| 321 | } | |
| 322 | } | |
| 323 | localStorage.setItem(key, fight + '_' + totalDmg); | |
| 324 | showStats(); | |
| 325 | } | |
| 326 | }); | |
| 327 | } | |
| 328 | text.push('(function () {');
| |
| 329 | text.push("var rank = {Recruit: 1, Private: 2, 'Private *': 3, 'Private **': 4, 'Private ***': 5, Corporal: 6, 'Corporal *': 7, 'Corporal **': 8, 'Corporal ***': 9, Sergeant: 10, 'Sergeant *': 11, 'Sergeant **': 12, 'Sergeant ***': 13, Lieutenant: 14, 'Lieutenant *': 15, 'Lieutenant **': 16, 'Lieutenant ***': 17, Captain: 18, 'Captain *': 19, 'Captain **': 20, 'Captain ***': 21, Major: 22, 'Major *': 23, 'Major **': 24, 'Major ***': 25, Commander: 26, 'Commander *': 27, 'Commander **': 28, 'Commander ***': 29, 'Lt Colonel': 30, 'Lt Colonel *': 31, 'Lt Colonel **': 32, 'Lt Colonel ***': 33, Colonel: 34, 'Colonel *': 35, 'Colonel **': 36, 'Colonel ***': 37, General: 38, 'General *': 39, 'General **': 40, 'General ***': 41, 'Field Marshal': 42, 'Field Marshal *': 43, 'Field Marshal **': 44, 'Field Marshal ***': 45, 'Supreme Marshal': 46, 'Supreme Marshal *': 47, 'Supreme Marshal **': 48, 'Supreme Marshal ***': 49, 'National Force': 50, 'National Force *': 51, 'National Force **': 52, 'National Force ***': 53, 'World Class Force': 54, 'World Class Force *': 55, 'World Class Force **': 56, 'World Class Force ***': 57, 'Legendary Force': 58, 'Legendary Force *': 59, 'Legendary Force **': 60, 'Legendary Force ***': 61, 'God of War': 62, 'God of War *': 63, 'God of War **': 64, 'God of War ***': 65};");
| |
| 330 | text.push('var totalDmg = ' + totalDmg + ';');
| |
| 331 | text.push(str_replace.toString()); | |
| 332 | text.push(dmgCalc.toString()); | |
| 333 | text.push(dmgMilitary.toString()); | |
| 334 | text.push(sortStats.toString()); | |
| 335 | text.push(getKey.toString()); | |
| 336 | text.push(showStats.toString()); | |
| 337 | text.push(localMain.toString()); | |
| 338 | text.push('localMain();');
| |
| 339 | text.push('})();');
| |
| 340 | scriptNode.textContent = text.join('\n');
| |
| 341 | document.head.appendChild(scriptNode); | |
| 342 | } | |
| 343 | ||
| 344 | function addBtnHandler() {
| |
| 345 | $j('#stats_btn').unbind('click');
| |
| 346 | $j('#addstats_btn').unbind('click');
| |
| 347 | $j('#gen_btn').unbind('click');
| |
| 348 | $j('#clear_btn').unbind('click');
| |
| 349 | $j('#submit_btn').unbind('click');
| |
| 350 | $j('#stats_btn').click(function () {
| |
| 351 | $j('#my_stats').toggle();
| |
| 352 | $j('#addstats_btn').toggle();
| |
| 353 | $j('#help_btn').toggle();
| |
| 354 | $j('#clear_btn').css('display', 'none');
| |
| 355 | $j('#gen_txt').css('display', 'none');
| |
| 356 | $j('#stats_report').html('');
| |
| 357 | showStats(); | |
| 358 | }); | |
| 359 | $j('#addstats_btn').click(function () {
| |
| 360 | var myInf = $j('#total_damage').find('strong').text().replace(/\s/g, ''),
| |
| 361 | fight = $j('#total_f').find('strong').text().trim(),
| |
| 362 | key; | |
| 363 | key = $j('#total_f').find('small').text().trim().split('_', 2);
| |
| 364 | key = '@_' + key[0] + '_' + key[1]; | |
| 365 | if (localStorage.getItem(key) != null) {
| |
| 366 | localStorage.setItem(key, fight + '_' + myInf); | |
| 367 | showStats(); | |
| 368 | return; | |
| 369 | } | |
| 370 | if (localStorage.getItem('@' + key) != null) {
| |
| 371 | localStorage.setItem('@' + key, fight + '_' + myInf);
| |
| 372 | } else { //add @_battleId_zondId
| |
| 373 | localStorage.setItem(key, fight + '_' + myInf); | |
| 374 | } | |
| 375 | showStats(); | |
| 376 | }); | |
| 377 | $j('#gen_btn').click(function () {
| |
| 378 | showStats(); | |
| 379 | if ($j('#stats_report').html() != '') {
| |
| 380 | $j('#clear_btn').css('display', 'none');
| |
| 381 | $j('#gen_txt').css('display', 'none').val('');
| |
| 382 | $j('#stats_report').html('');
| |
| 383 | return; | |
| 384 | } | |
| 385 | var tmp, value, i, len, stats, | |
| 386 | cmcs = [], | |
| 387 | elites = [], | |
| 388 | key = getKey(); | |
| 389 | for (i = 0, len = key.length; i < len; i++) {
| |
| 390 | value = localStorage.getItem(key[i]).split('_');
| |
| 391 | tmp = key[i].split('_');
| |
| 392 | if (tmp[0].length == 1) {
| |
| 393 | cmcs.push(tmp[1] + '_' + tmp[2] + '_' + value[0]); | |
| 394 | } else {
| |
| 395 | elites.push(tmp[1] + '_' + tmp[2] + '_' + value[0]); | |
| 396 | } | |
| 397 | } | |
| 398 | if (cmcs.length == 0 && elites.length == 0) {
| |
| 399 | $j('#stats_report').html('');
| |
| 400 | $j('#gen_txt').css('display', 'none');
| |
| 401 | return; | |
| 402 | } | |
| 403 | stats = ''; | |
| 404 | if (cmcs.length > 0) {
| |
| 405 | stats += 'ROCAS: [' + cmcs.join('] [') + ']<br/>';
| |
| 406 | } | |
| 407 | if (elites.length > 0) {
| |
| 408 | stats += 'ELITE: [' + elites.join('] [') + ']';
| |
| 409 | } | |
| 410 | $j('#stats_report').html(stats);
| |
| 411 | $j('#gen_txt').css('display', 'block');
| |
| 412 | }); | |
| 413 | $j('#clear_btn').click(function () {
| |
| 414 | var r, key, i, len; | |
| 415 | r = confirm('確定要清除插件上的資料嘛?');
| |
| 416 | if (r == true) {
| |
| 417 | key = getKey(); | |
| 418 | for (i = 0, len = key.length; i < len; i++) {
| |
| 419 | localStorage.removeItem(key[i]); | |
| 420 | } | |
| 421 | $j('#clear_btn').css('display', 'none');
| |
| 422 | $j('#stats_report').html('');
| |
| 423 | showStats(); | |
| 424 | } | |
| 425 | }); | |
| 426 | $j('#submit_btn').click(function () {
| |
| 427 | var r, cmcs, elites, cmcInf, cmcFight, eliteInf, tmp, value, key, i, len, comment, cmsg, emsg, citizenId, others; | |
| 428 | r = confirm('已自行確認數據資料正確,發送給ROCAS嗎?');
| |
| 429 | if (r == true) {
| |
| 430 | showStats(); | |
| 431 | cmcs = []; | |
| 432 | elites = []; | |
| 433 | cmcInf = 0; | |
| 434 | cmcFight = 0; | |
| 435 | eliteInf = 0; | |
| 436 | key = getKey(); | |
| 437 | for (i = 0, len = key.length; i < len; i++) {
| |
| 438 | value = localStorage.getItem(key[i]).split('_');
| |
| 439 | tmp = key[i].split('_');
| |
| 440 | if (tmp[0].length == 1) {
| |
| 441 | cmcFight += parseInt(value[0], 10); | |
| 442 | cmcInf += parseInt(value[1], 10); | |
| 443 | cmcs.push(tmp[1] + '_' + tmp[2] + '_' + value[0]); | |
| 444 | } else {
| |
| 445 | eliteInf += parseInt(value[1], 10); | |
| 446 | elites.push(tmp[1] + '_' + tmp[2] + '_' + value[0]); | |
| 447 | } | |
| 448 | } | |
| 449 | if (cmcs.length == 0 && elites.length == 0) {
| |
| 450 | $j('#clear_btn').css('display', 'none');
| |
| 451 | $j('#gen_txt').css('display', 'none');
| |
| 452 | $j('#stats_report').html('');
| |
| 453 | return; | |
| 454 | } | |
| 455 | $j('#stats_report').html('30% - Wait a mo...');
| |
| 456 | citizenId = $j('#financier').attr('href').substr(20);
| |
| 457 | others = ''; | |
| 458 | if ($j('#gen_txt').val() != '') {
| |
| 459 | others = ' ' + $j('#gen_txt').val();
| |
| 460 | } | |
| 461 | $j('#clear_btn').css('display', 'block');
| |
| 462 | $j('#gen_txt').css('display', 'none');
| |
| 463 | if (cmcs.length > 0 && elites.length > 0) {
| |
| 464 | comment = 'ROCAS: [' + cmcs.join('] [') + ']' + others;
| |
| 465 | cmsg = 'battleid=9999&uid=' + citizenId + '&fight=' + cmcFight + '&damage=' + cmcInf + '&others=' + comment; | |
| 466 | comment = 'ELITE: [' + elites.join('] [') + ']' + others;
| |
| 467 | emsg = 'battleid=9999&elite=1&uid=' + citizenId + '&fight=' + dmgMilitary(1) + '&damage=' + eliteInf + '&others=' + comment; | |
| 468 | $j.post('http://eroc.no-ip.org/rocas/addapi.php', cmsg, function (data) {
| |
| 469 | if (data.message == 'success') {
| |
| 470 | $j('#stats_report').html('70% - Wait a mo...');
| |
| 471 | $j.post('http://eroc.no-ip.org/rocas/addapi.php', emsg, function (data) {
| |
| 472 | if (data.message == 'success') {
| |
| 473 | $j('#stats_report').html('<span style="color:green;">Submitted. <br/>Check: </span><a href="http://eroc.no-ip.org/rocas/list.php" target="_blank">ROCAS list</a>');
| |
| 474 | } else if (data.message == 'error') {
| |
| 475 | $j('#stats_report').html('<span style="color:red;">' + data.errmsg + ' Try to submit again or access: <br/></span><a href="http://eroc.no-ip.org/rocas/formElite.php" target="_blank">ROCAS formElite</a>');
| |
| 476 | } | |
| 477 | }, 'json'); | |
| 478 | } else if (data.message == 'error') {
| |
| 479 | $j('#stats_report').html('<span style="color:red;">' + data.errmsg + ' Try to submit again or access: <br/></span><a href="http://eroc.no-ip.org/rocas/form.php" target="_blank">ROCAS form</a>');
| |
| 480 | } | |
| 481 | }, 'json'); | |
| 482 | return; | |
| 483 | } | |
| 484 | if (cmcs.length > 0) {
| |
| 485 | comment = 'ROCAS: [' + cmcs.join('] [') + ']' + others;
| |
| 486 | cmsg = 'battleid=9999&uid=' + citizenId + '&fight=' + cmcFight + '&damage=' + cmcInf + '&others=' + comment; | |
| 487 | $j.post('http://eroc.no-ip.org/rocas/addapi.php', cmsg, function (data) {
| |
| 488 | if (data.message == 'success') {
| |
| 489 | $j('#stats_report').html('<span style="color:green;">上傳成功. <br/>網頁確認: </span><a href="http://eroc.no-ip.org/rocas/list.php" target="_blank">ROCAS list</a>');
| |
| 490 | } else if (data.message == 'error') {
| |
| 491 | $j('#stats_report').html('<span style="color:red;">' + data.errmsg + ' Try to submit again or access: <br/></span><a href="http://eroc.no-ip.org/rocas/form.php" target="_blank">RCOAS form</a>');
| |
| 492 | } | |
| 493 | }, 'json'); | |
| 494 | } | |
| 495 | if (elites.length > 0) {
| |
| 496 | comment = 'ELITE: [' + elites.join('] [') + ']' + others;
| |
| 497 | emsg = 'battleid=9999&elite=1&uid=' + citizenId + '&fight=' + dmgMilitary(1) + '&damage=' + eliteInf + '&others=' + comment; | |
| 498 | $j.post('http://eroc.no-ip.org/rocas/addapi.php', emsg, function (data) {
| |
| 499 | if (data.message == 'success') {
| |
| 500 | $j('#stats_report').html('<span style="color:green;">上傳成功. <br/>網頁確認: </span><a href="http://eroc.no-ip.org/rocas/list.php" target="_blank">ROCAS list</a>');
| |
| 501 | } else if (data.message == 'error') {
| |
| 502 | $j('#stats_report').html('<span style="color:red;">' + data.errmsg + ' Try to submit again or access: <br/></span><a href="http://eroc.no-ip.org/rocas/formElite.php" target="_blank">ROCAS formElite</a>');
| |
| 503 | } | |
| 504 | }, 'json'); | |
| 505 | } | |
| 506 | } | |
| 507 | }); | |
| 508 | } | |
| 509 | ||
| 510 | function add_stats() {
| |
| 511 | - | $j('#experienceTooltip').before(
|
| 511 | + | $j('#financier').before(
|
| 512 | '<div style="float:left;width:153px;margin-bottom:7px;"><a href="javascript:;" id="stats_btn" style="margin-top:10px;float:left;"><strong>隱藏/顯示</strong></a><a href="javascript:;" id="addstats_btn" style="margin-top:10px;float:right;"><strong>加入</strong></a><a href="http://battlepupil.diandian.com" target="_blank" id="help_btn" style="margin-top:10px;float:right;display:none;"><strong>Help</strong></a><br/><div id="my_stats"><table id="stats_table" style="width:100%;"></table><hr/><table id="tstats_table" style="width:100%;"></table><hr/><a href="javascript:;" id="submit_btn" style="float:left;"><strong>送出</strong></a><a href="javascript:;" id="gen_btn" style="float:right;"><strong>備註</strong></a><br/><div id="stats_report" style="width:100%;"></div><textarea id="gen_txt" style="width:100%;display:none;"></textarea><a href="javascript:;" id="clear_btn" style="float:left;display:none;"><strong>清除資料</strong></a></div></div>' | |
| 513 | ); | |
| 514 | var key, myInf, fight; | |
| 515 | key = $j('#total_f').find('small').text().trim().split('_', 2);
| |
| 516 | key = '@_' + key[0] + '_' + key[1]; | |
| 517 | if (localStorage.getItem(key) != null) {
| |
| 518 | myInf = $j('#total_damage').find('strong').text().replace(/\s/g, '');
| |
| 519 | fight = $j('#total_f').find('strong').text().trim();
| |
| 520 | localStorage.setItem(key, fight + '_' + myInf); | |
| 521 | } | |
| 522 | key = '@' + key; | |
| 523 | if (localStorage.getItem(key) != null) {
| |
| 524 | myInf = $j('#total_damage').find('strong').text().replace(/\s/g, '');
| |
| 525 | fight = $j('#total_f').find('strong').text().trim();
| |
| 526 | localStorage.setItem(key, fight + '_' + myInf); | |
| 527 | } | |
| 528 | showStats(); | |
| 529 | addBtnHandler(); | |
| 530 | $j(document).ready(function () {
| |
| 531 | showStats(); | |
| 532 | addBtnHandler(); | |
| 533 | }); | |
| 534 | } | |
| 535 | ||
| 536 | function add_region() {
| |
| 537 | var rh = $j('#pvp_header').find('h2'),
| |
| 538 | region = rh.text(), | |
| 539 | regionurl; | |
| 540 | if (region == 'Federation of BiH') {
| |
| 541 | regionurl = 'Federation+of+BiH'; | |
| 542 | } else if (region == 'Lika and Gorski Kotar') {
| |
| 543 | regionurl = 'Lika-Gorski-Kotar'; | |
| 544 | } else if (region == 'Istria and Kvarner') {
| |
| 545 | regionurl = 'Istria-Kvarner'; | |
| 546 | } else if (region == 'Styria and Carinthia') {
| |
| 547 | regionurl = 'Styria-Carinthia'; | |
| 548 | } else if (region == 'Jammu and Kashmir') {
| |
| 549 | regionurl = 'Jammu-Kashmir'; | |
| 550 | } else if (region == 'Svalbard & Jan Mayen') {
| |
| 551 | regionurl = 'Svalbard-Jan-Mayen'; | |
| 552 | } else if (region == 'North-West Frontier Province') {
| |
| 553 | regionurl = 'North-West-Frontier'; | |
| 554 | } else if (region == 'Sistan and Baluchistan') {
| |
| 555 | regionurl = 'Sistan-Baluchistan'; | |
| 556 | } else if (region == 'Norrland and Sameland') {
| |
| 557 | regionurl = 'Norrland-Sameland'; | |
| 558 | } else if (region == 'Yorkshire & Humberside') {
| |
| 559 | regionurl = 'Yorkshire-Humberside'; | |
| 560 | } else if (region == 'Lika and Gorski Kotar') {
| |
| 561 | regionurl = 'Lika-Gorski-Kotar'; | |
| 562 | } else if (region == 'Castilla y Leon') {
| |
| 563 | regionurl = 'Castilla-Leon'; | |
| 564 | } else if (region == 'Newfoundland and Labrador') {
| |
| 565 | regionurl = 'Newfoundland'; | |
| 566 | } else if (region == 'Chungcheongnam-do') {
| |
| 567 | regionurl = 'Chungcheongnam'; | |
| 568 | } else if (region == 'Gyeongsangbuk-do') {
| |
| 569 | regionurl = 'Gyeongsangbuk'; | |
| 570 | } else if (region == 'Gyeongsangnam-do') {
| |
| 571 | regionurl = 'Gyeongsangnam'; | |
| 572 | } else if (region == 'Gyeonggi-do') {
| |
| 573 | regionurl = 'Gyeonggi'; | |
| 574 | } else if (region == 'Gangwon-do') {
| |
| 575 | regionurl = 'Gangwon'; | |
| 576 | } else if (region == 'Chungcheongbuk-do') {
| |
| 577 | regionurl = 'Chungcheongbuk'; | |
| 578 | } else if (region == 'Jeollabuk-do') {
| |
| 579 | regionurl = 'Jeollabuk'; | |
| 580 | } else if (region == 'Jeollanam-do') {
| |
| 581 | regionurl = 'Jeollanam'; | |
| 582 | } else if (region == 'Ha\'il') {
| |
| 583 | regionurl = 'Ha-il'; | |
| 584 | } else {
| |
| 585 | regionurl = region.replace(/ /g, '-'); | |
| 586 | } | |
| 587 | rh.html('<a target="_blank" href="http://www.erepublik.com/en/region/' + regionurl + '">' + region + '</a>');
| |
| 588 | } | |
| 589 | ||
| 590 | function add_moveb() {
| |
| 591 | var data = JSON.parse($j('#content').html().split('regionsInvolved = ')[1].split(';\n</script>')[0]),
| |
| 592 | countryId = $j('#country_list').val();
| |
| 593 | $j('#region_list').find('option:gt(0)').each(function () {
| |
| 594 | $j(this).text('[' + data[countryId][$j(this).val()].distance + '] ' + $j(this).text());
| |
| 595 | }); | |
| 596 | $j('#country_list').change(function () {
| |
| 597 | var countryId = $j('#country_list').val();
| |
| 598 | $j('#region_list').find('option:gt(0)').each(function () {
| |
| 599 | $j(this).text('[' + data[countryId][$j(this).val()].distance + '] ' + $j(this).text());
| |
| 600 | }); | |
| 601 | }); | |
| 602 | } | |
| 603 | ||
| 604 | function add_movec() {
| |
| 605 | var region, src, srcx, srcy; | |
| 606 | region = JSON.parse('{"111":13,"110":13,"113":13,"112":13,"114":13,"109":13,"108":13,"183":23,"146":32,"497":43,"500":43,"147":32,"148":32,"504":43,"686":31,"150":32,"653":32,"149":32,"505":43,"186":13,"198":13,"11":13,"39":13,"514":23,"36":13,"3":13,"515":23,"38":13,"37":13,"5":13,"9":13,"35":13,"246":13,"256":13,"258":13,"167":23,"168":23,"169":23,"184":23,"170":23,"171":23,"181":23,"173":23,"174":23,"175":23,"176":23,"179":23,"166":23,"177":23,"178":23,"180":23,"152":42,"678":32,"676":42,"685":31,"155":42,"688":31,"154":42,"151":42,"681":32,"675":42,"156":42,"679":32,"153":42,"41":11,"42":21,"43":21,"44":21,"45":21,"47":21,"50":21,"51":21,"52":21,"54":21,"61":21,"62":21,"65":21,"66":21,"67":21,"70":21,"72":21,"73":21,"76":21,"80":21,"82":21,"83":21,"86":21,"88":21,"89":21,"361":24,"395":24,"396":24,"522":25,"362":24,"520":25,"363":24,"364":24,"390":24,"384":24,"519":25,"525":25,"385":24,"368":24,"386":24,"370":24,"371":24,"670":25,"391":24,"372":24,"373":24,"387":24,"671":25,"375":24,"392":24,"459":24,"493":24,"494":24,"669":25,"389":24,"377":24,"378":24,"397":24,"379":24,"380":24,"495":24,"394":24,"393":24,"381":24,"382":24,"97":11,"103":11,"105":11,"98":12,"102":12,"106":11,"99":12,"107":12,"95":12,"96":12,"100":12,"101":11,"221":13,"104":11,"208":13,"222":13,"224":13,"216":13,"215":13,"212":13,"226":13,"227":13,"219":13,"217":13,"210":13,"220":13,"218":13,"223":13,"213":13,"225":13,"531":13,"529":13,"228":13,"229":13,"230":13,"341":13,"342":13,"344":13,"437":13,"346":13,"343":13,"347":13,"291":13,"295":13,"292":13,"562":13,"294":13,"185":13,"187":13,"243":13,"244":13,"188":13,"189":13,"191":13,"46":21,"530":13,"193":13,"426":13,"249":13,"53":21,"55":21,"195":13,"425":13,"190":13,"196":13,"197":13,"251":13,"58":21,"60":21,"424":13,"423":13,"250":13,"64":21,"68":21,"69":21,"71":21,"207":13,"252":13,"74":21,"75":21,"199":13,"200":13,"77":21,"201":13,"202":13,"306":13,"253":13,"78":21,"204":13,"254":13,"255":13,"257":13,"307":13,"205":13,"84":21,"85":21,"528":13,"323":13,"325":13,"549":13,"231":13,"322":13,"232":13,"321":13,"324":13,"235":13,"326":13,"320":13,"236":13,"293":13,"312":13,"340":13,"316":13,"319":13,"440":13,"442":13,"345":13,"315":13,"242":13,"241":13,"240":13,"237":13,"238":13,"140":13,"137":13,"349":23,"537":13,"353":23,"135":13,"358":23,"355":23,"132":13,"144":13,"356":23,"352":23,"512":23,"513":23,"516":23,"517":23,"518":23,"414":23,"533":13,"138":13,"143":13,"133":13,"136":13,"142":13,"134":13,"141":13,"534":14,"535":15,"543":13,"660":13,"538":13,"532":13,"536":13,"139":13,"540":13,"659":13,"544":13,"541":13,"542":14,"661":13,"487":25,"489":25,"484":25,"486":25,"488":25,"491":25,"490":25,"485":25,"526":25,"527":25,"461":35,"462":35,"463":35,"465":35,"646":25,"328":45,"334":35,"647":25,"466":35,"329":35,"641":35,"330":45,"464":35,"460":35,"332":45,"333":45,"450":24,"458":24,"455":24,"448":24,"561":24,"456":24,"451":24,"453":24,"447":24,"449":24,"443":24,"454":24,"446":24,"452":24,"445":24,"457":24,"498":43,"499":43,"501":43,"502":43,"503":43,"92":13,"91":13,"93":13,"94":13,"209":13,"233":13,"736":24,"739":24,"717":24,"725":24,"478":24,"479":24,"742":24,"723":24,"480":24,"472":24,"483":24,"719":24,"482":24,"740":24,"475":24,"477":24,"473":24,"474":24,"481":24,"726":23,"741":24,"476":24,"492":24,"471":23,"469":32,"467":23,"468":23,"470":23,"507":24,"509":24,"511":24,"508":24,"510":24,"260":23,"336":13,"265":23,"266":23,"339":13,"581":13,"268":23,"269":23,"611":13,"270":23,"272":23,"621":13,"337":13,"571":13,"601":13,"338":13,"275":23,"591":13,"278":23,"690":31,"116":21,"691":31,"120":21,"122":21,"117":21,"119":21,"118":21,"693":31,"121":21,"115":21,"160":23,"161":23,"162":23,"125":32,"126":32,"159":23,"127":32,"157":23,"129":32,"163":23,"158":23,"130":32,"123":32,"124":32,"131":32,"259":23,"40":21,"261":23,"262":23,"635":23,"263":23,"264":23,"623":23,"192":13,"90":21,"637":23,"48":21,"49":21,"626":23,"56":21,"743":23,"194":13,"267":23,"625":23,"57":21,"59":21,"63":21,"271":23,"627":23,"624":23,"203":13,"639":23,"273":23,"274":23,"622":23,"79":21,"628":23,"640":23,"636":23,"81":21,"276":23,"277":23,"634":23,"87":21,"638":23,"682":31,"684":31,"683":31,"630":42,"629":42,"687":31,"633":42,"631":42,"632":42,"644":25,"645":25,"643":34,"642":35,"648":34,"239":13,"656":13,"655":13,"657":13,"658":13,"654":13,"662":13,"651":23,"650":23,"652":23,"649":23,"707":13,"666":13,"708":13,"709":13,"663":13,"665":13,"711":13,"710":13,"664":13,"667":13,"712":13,"674":42,"668":25,"672":25,"673":25,"680":32,"677":32,"689":31,"694":31,"692":31,"699":23,"700":23,"698":23,"702":24,"521":25,"703":24,"523":25,"524":25,"701":24,"704":24,"420":23,"718":23,"721":23,"724":23,"418":23,"417":23,"422":23,"697":23,"416":23,"421":23,"731":23,"728":23,"727":24,"419":23,"695":23,"735":23,"415":23,"413":23,"696":23,"706":23,"705":23,"713":35,"715":35,"716":35,"331":45,"714":35,"733":23,"730":23,"734":23,"732":23,"737":24,"738":24,"745":23,"746":23,"744":23,"720":23,"722":24,"729":23}');
| |
| 607 | src = $j('#content').find('div.zone:first').find('big').text();
| |
| 608 | src = src.replace('A', '1');
| |
| 609 | src = src.replace('B', '2');
| |
| 610 | src = src.replace('C', '3');
| |
| 611 | src = src.replace('D', '4');
| |
| 612 | srcx = Math.floor(src / 10); | |
| 613 | srcy = src % 10; | |
| 614 | $j('#country_list').change(function () {
| |
| 615 | $j('#region_list').one('click', function () {
| |
| 616 | $j(this).find('option:gt(0)').each(function () {
| |
| 617 | var ta, tb, dx, dy, move, | |
| 618 | dest = region[$j(this).val()], | |
| 619 | destx = Math.floor(dest / 10), | |
| 620 | desty = dest % 10; | |
| 621 | ta = srcx < destx ? srcx : destx; | |
| 622 | tb = srcx > destx ? srcx : destx; | |
| 623 | dx = tb - ta < ta + 4 - tb ? tb - ta : ta + 4 - tb; | |
| 624 | ta = srcy < desty ? srcy : desty; | |
| 625 | tb = srcy > desty ? srcy : desty; | |
| 626 | dy = tb - ta < ta + 5 - tb ? tb - ta : ta + 5 - tb; | |
| 627 | move = 1 + dx + dy; | |
| 628 | $j(this).text('[' + move + '] ' + $j(this).text());
| |
| 629 | }); | |
| 630 | }); | |
| 631 | }); | |
| 632 | } | |
| 633 | ||
| 634 | if (currURL == 'http://www.erepublik.com/en') {
| |
| 635 | add_news(); | |
| 636 | } else if (currURL.charAt(36) == 'p') {
| |
| 637 | add_inf(); | |
| 638 | } else if (currURL.charAt(28) == 'm') {
| |
| 639 | add_moveb(); | |
| 640 | add_region(); | |
| 641 | add_fight(); | |
| 642 | add_stats(); | |
| 643 | } else {
| |
| 644 | add_movec(); | |
| 645 | } |