ShadowGovermentLib

Shadow Goverment Lib

Per 11-09-2015. Zie de nieuwste versie.

Dit script moet niet direct worden geïnstalleerd - het is een bibliotheek voor andere scripts om op te nemen met de meta-richtlijn // @require https://update.greasyfork.org/scripts/12370/73792/ShadowGovermentLib.js

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

/*---Initialization parameters---*/
var localUrl = new String( window.location );
var URLBattle = "battle.html?id=";
var URLConfig = "editCitizen.html?Settings";
var URLMotivation = "newCitizenStatistics.html";
var script;
var style;
/*---Initialization parameters---*/

/*---Initialization menu---*/
var menuTop = $(".top-bar-section > .foundation-left");
$('<li id="ShadowGovernmentMenu" class="has-dropdown"><a id="ShadowGovernmentMenuHref" href="#"><i class="icon-star"></i>Shadow Government</a><ul id="ShadowGovernmentMenuDropdown" class="dropdown"></ul></li><li class="divider"></li>').appendTo(menuTop);
$('<li class="title back js-generated"><h5><a href="#">« Back</a></h5></li>').appendTo("#ShadowGovernmentMenuDropdown");
$('<li><a href="editCitizen.html?Settings"><i class="icon-tools"></i>Settings</a></li>').appendTo("#ShadowGovernmentMenuDropdown");
$('<li><a href="#"><i class="icon-tools"></i>Blank</a></li>').appendTo("#ShadowGovernmentMenuDropdown");
/*---Initialization menu---*/

function SGChecked(flag){
	if(flag){
		return "checked";
	} else {
		return  "";
	}
}

/*---On Settings Page---*/
if (localUrl.indexOf( URLConfig, 0 ) >= 0){
	var wrapper = $("#userMenu + script + div");
	/* var SGSpectatorModeTrue = "";
	var SGSpectatorModeFalse = "";
	if($.jStorage.get('SGSpectatorMode', true)){
		SGSpectatorModeTrue = "checked";
	} else {
		SGSpectatorModeFalse = "checked";
	} */
	wrapper.attr("id","WrapperMainConfig");
	wrapper.empty();
	$('<center><h1>Shadow Government Settings</h1></center><p style="clear: both"></p><br>').appendTo(wrapper);
	$('<div id="SettingsSpectator" class="testDivblue" style="width:100%;"><h3 id="SettingsSpectatorTittle">Settings Spectator</h3></div>').appendTo(wrapper);
	$('<div id="SettingsMotivator" class="testDivblue" style="width:100%;"><h3 id="SettingsMotivatorTittle">Settings Motivator</h3></div>').appendTo(wrapper);
	$('<b>SGTimerSpectator: </b><input id="SGTimerSpectatorText" name="SGTimerSpectatorText" type="text" value="'+$.jStorage.get('SGTimerSpectator', 7000)+'" autocomplete="off"><input id="SGTimerSpectatorSubmit" type="submit"><br>').appendTo("#SettingsSpectator");
	$('<b>SGFakeUserID: </b><input id="SGFakeUserIDText" name="SGFakeUserIDText" type="text" value="'+$.jStorage.get('SGFakeUserID', 1)+'" autocomplete="off"><input id="SGFakeUserIDSubmit" type="submit"><br>').appendTo("#SettingsSpectator");
	$('<b>SGFakeCitizenshipID: </b><input id="SGFakeCitizenshipIDText" name="SGFakeCitizenshipIDText" type="text" value="'+$.jStorage.get('SGFakeCitizenshipID', 1)+'" autocomplete="off"><input id="SGFakeCitizenshipIDSubmit" type="submit"><br>').appendTo("#SettingsSpectator");
	$('<b>SGSpectatorMode: </b><input class="SGSpectatorModeRadio" type="radio" name="SGSpectatorMode" value="true" '+SGChecked($.jStorage.get('SGSpectatorMode', true))+'> True <input class="SGSpectatorModeRadio" type="radio" name="SGSpectatorMode" value="false" '+SGChecked(!$.jStorage.get('SGSpectatorMode', true))+'>False<br>').appendTo("#SettingsSpectator");
	$('<b>SGMotivationMode: </b><input class="SGMotivationModeRadio" type="radio" name="SGMotivationMode" value="true" '+SGChecked($.jStorage.get('SGMotivationMode', true))+'> True <input class="SGMotivationModeRadio" type="radio" name="SGMotivationMode" value="false" '+SGChecked(!$.jStorage.get('SGMotivationMode', true))+'>False<br>').appendTo("#SettingsMotivator");
	$('#SGTimerSpectatorSubmit').click(function(){
		$.jStorage.set('SGTimerSpectator', $('#SGTimerSpectatorText').val());
	});
	$('#SGFakeUserIDSubmit').click(function(){
		$.jStorage.set('SGFakeUserID', $('#SGFakeUserIDText').val());
	});
	$('#SGFakeCitizenshipIDSubmit').click(function(){
		$.jStorage.set('SGFakeCitizenshipID', $('#SGFakeCitizenshipIDText').val());
	});
	$('.SGSpectatorModeRadio').click(function(){
		if ($(this).val()==="true"){
			$.jStorage.set('SGSpectatorMode', true);
		} else {
			$.jStorage.set('SGSpectatorMode', false);
		}
	});
	$('.SGMotivationModeRadio').click(function(){
		if ($(this).val()==="true"){
			$.jStorage.set('SGMotivationMode', true);
		} else {
			$.jStorage.set('SGMotivationMode', false);
		}
	});
	$('<p style="clear: both"></p><br>').appendTo(wrapper);
}
if (localUrl.indexOf( URLBattle, 0 ) >= 0){
	/*---Отключаем стилями картинки в окне сообщения боя---*/
	var stringCSS = '.fightsprite.critical1,.fightsprite.critical0,.fightsprite.critical2,.fightsprite.critical3,.fightsprite.normal1,.fightsprite.normal0,.fightsprite.normal2,.fightsprite.normal3,.fightsprite.miss,.fightsprite.toofast {\n display:none;\n}\n\n';
	stringCSS += '.fightsprite.critical1 + br,.fightsprite.critical0 + br,.fightsprite.critical2 + br,.fightsprite.critical3 + br,.fightsprite.normal1 + br,.fightsprite.normal0 + br,.fightsprite.normal2 + br,.fightsprite.normal3 + br,.fightsprite.miss + br,.fightsprite.toofast + br {\n display:none;\n}\n\n';
	style = document.createElement( "style" );
	style.type = "text/css";
	style.textContent = stringCSS;
	document.body.appendChild( style );
	style = undefined;
	/*---Отключаем стилями картинки в окне сообщения боя---*/

	/*---Отключаем модальные окна на странице боя---*/
	window.picoModal=function() {
		return true;
	}
	/*---Отключаем модальные окна на странице боя---*/
		
	/*---Минимизируем заголовок боя---*/
	$("#battleHeaderImage + #mainFight").css({"margin-top": "0px", "background-color": "black",});
	$("#battleHeaderImage").remove();
	/*---Минимизируем заголовок боя---*/

	/*---Минимизируем списки топ3/топ10 по урону на странице боя---*/
	$("#battleStats").show();
	$("#battleStats").append('<div class="foundation-style small-10 columns SpectatorsBattleStatsElements"><div class="foundation-style small-5 columns"><b>Total defenders online:</b><i id="totaldefenders" style="display: inline;">0</i> <a style="font-size: 11px; display: none;" href="" id="defendersLink">Show details</a> <a style="font-size: 11px;" href="" id="defendersLinkHide">Hide details</a> <br><div align="center" id="defendersMenu" style="font-size: 11px; text-align: center; padding: 1em; margin: auto; display: block;">No one <br> </div></div><div class="foundation-style small-5 columns"><b>Total attackers online:</b><i id="totalattackers" style="display: inline;">0</i> <a style="font-size: 11px; display: none;" href="" id="attackersLink">Show details</a> <a style="font-size: 11px; display: inline;" href="" id="attackersLinkHide">Hide details</a> <br><div align="center" id="attackersMenu" style="font-size: 11px; text-align: center; padding: 1em; margin: auto; display: block;">No one <br> </div></div>');
	$("#battleStats").append('<div class="foundation-style small-10 columns SpectatorsBattleStatsElements"><b>Total spectators online:</b><i id="totalspectators" style="display: inline;">0</i> <a style="font-size: 11px; display: none;" href="" id="spectatorsLink">Show details</a> <a style="font-size: 11px;" href="" id="spectatorsLinkHide">Hide details</a> <br><div align="center" id="spectatorsMenu" style="font-size: 11px; text-align: center; padding: 1em; margin: auto; display: block;">No one <br> </div>  </div>');
	
	$('#spectatorsLink').click(function () { $('#spectatorsLink').fadeOut('fast', function () { $('#spectatorsLinkHide').fadeIn('fast'); $('#spectatorsMenu').fadeIn('fast'); }); return false; });
	$('#spectatorsLinkHide').click(function () { $('#spectatorsLinkHide').fadeOut('fast', function () { $('#spectatorsLink').fadeIn('fast'); $('#spectatorsMenu').fadeOut('fast'); }); return false; });

	$('#attackersLink').click(function () { $('#attackersLink').fadeOut('fast', function () { $('#attackersLinkHide').fadeIn('fast'); $('#attackersMenu').fadeIn('fast'); }); return false; });
	$('#attackersLinkHide').click(function () { $('#attackersLinkHide').fadeOut('fast', function () { $('#attackersLink').fadeIn('fast'); $('#attackersMenu').fadeOut('fast'); }); return false; });

	$('#defendersLink').click(function () { $('#defendersLink').fadeOut('fast', function () { $('#defendersLinkHide').fadeIn('fast'); $('#defendersMenu').fadeIn('fast'); }); return false; });
	$('#defendersLinkHide').click(function () { $('#defendersLinkHide').fadeOut('fast', function () { $('#defendersLink').fadeIn('fast'); $('#defendersMenu').fadeOut('fast'); }); return false; });
	
	$("#battleSelectable:first + #battleSelectable div.small-10:first").remove();
	$('<div id="wrapperBattleStatsButtons" class="foundation-style small-10 columns" style="margin-bottom:.4em;"></div>').insertBefore($("#battleSelectable:first + #battleSelectable div.small-4:first"));
	$('<div id="showTop3BattleStats" style="padding-bottom:.4em;padding-top:.4em;margin:.4em .4em 0 .4em;" class="foundation-style button"> Show Top 3 </div>').appendTo($("#wrapperBattleStatsButtons"));
	$('<div id="showTop10BattleStats" style="padding-bottom:.4em;padding-top:.4em;margin:.4em .4em 0 .4em;" class="foundation-style button"> Show Top 10 </div>').appendTo($("#wrapperBattleStatsButtons"));
	$('<div id="showRecentActionsBattleStats" style="padding-bottom:.4em;padding-top:.4em;margin:.4em .4em 0 .4em;" class="foundation-style button"> Recent Actions </div>').appendTo($("#wrapperBattleStatsButtons"));
	$('<div id="showSpectatorsBattleStats" style="padding-bottom:.4em;padding-top:.4em;margin:.4em .4em 0 .4em;" class="foundation-style button"> Spectators </div>').appendTo($("#wrapperBattleStatsButtons"));

	$("#wrapperBattleStatsButtons + div.small-4, #wrapperBattleStatsButtons + div.small-4 + div.small-2, #wrapperBattleStatsButtons + div.small-4 + div.small-2 + div.small-4").addClass("Top3BattleStatsElements");
	$("#battleStats > div.small-10:first").addClass("Top10BattleStatsElements");
	$(".Top10BattleStatsElements + div.small-10").addClass("RecentActionsBattleStatsElements");
	//$(".RecentActionsBattleStatsElements + div.small-10, .RecentActionsBattleStatsElements + div.small-10 + div.small-10").addClass("SpectatorsBattleStatsElements");

	$(".Top3BattleStatsElements").css('display', $.jStorage.get('SGTop3BattleStatsElements', "none"));
	$("#showTop3BattleStats").click(function () {
		$(".Top3BattleStatsElements").toggle("slow", function () {
			$.jStorage.set('SGTop3BattleStatsElements', $(".Top3BattleStatsElements").css('display'));
		});
	});
	$(".Top10BattleStatsElements").css('display', $.jStorage.get('SGTop10BattleStatsElements', "none"));
	$("#showTop10BattleStats").click(function () {
		$(".Top10BattleStatsElements").toggle("slow", function () {
			$.jStorage.set('SGTop10BattleStatsElements', $(".Top10BattleStatsElements").css('display'));
		});
	});
	$(".RecentActionsBattleStatsElements").css('display', $.jStorage.get('SGRecentActionsBattleStatsElements', "none"));
	$("#showRecentActionsBattleStats").click(function () {
		$(".RecentActionsBattleStatsElements").toggle("slow", function () {
			$.jStorage.set('SGRecentActionsBattleStatsElements', $(".RecentActionsBattleStatsElements").css('display'));
		});
	});
	$(".SpectatorsBattleStatsElements").css('display', $.jStorage.get('SGSpectatorsBattleStatsElements', "none"));
	$("#showSpectatorsBattleStats").click(function () {
		$(".SpectatorsBattleStatsElements").toggle("slow", function () {
			$.jStorage.set('SGSpectatorsBattleStatsElements', $(".SpectatorsBattleStatsElements").css('display'));
		});
	});
	/*---Минимизируем списки топ3/топ10 по урону на странице боя---*/

	/*---Формируем блок сообщений боя---*/
	$('#fightStatus').show().css({'width':'initial',}).removeClass("testDivblue").addClass("fightContainer");
	$('#fightResponse').hide().addClass("testDivblue");


	$('<div id="statusDiv" ><b>Status Action </b></div>').insertBefore($("#fightResponse"));
	$('#statusDiv > b').css({'font-size': '14px', 'color': '#f2f2f2', 'text-shadow': '0 0 1px black,0 1px 1px black,0 -1px 1px #333'});
	$('<a style="font-size: 11px; display: inline;" href="" id="statusLink">Show details</a>').appendTo($("#statusDiv"));
	$('<a style="font-size: 11px; display: none;" href="" id="statusLinkHide">Hide details</a>').appendTo($("#statusDiv"));

	$('#statusLink').click(function () {
		$('#statusLink').fadeOut('fast', function () {
			$('#statusLinkHide').fadeIn('fast');
			$('#fightResponse').fadeIn('fast');
		});
		return false;
	});
	$('#statusLinkHide').click(function () {
		$('#statusLinkHide').fadeOut('fast', function () {
			$('#statusLink').fadeIn('fast');
			$('#fightResponse').fadeOut('fast');
		});
		return false;
	});
	/*---Формируем блок сообщений боя---*/
	
	/*---Спектатор---*/
	//var SGSpectatorMode = $.jStorage.get('SGSpectatorMode', 1);
	if($.jStorage.get('SGSpectatorMode', true)){
		var timerSpectator = $.jStorage.get('SGTimerSpectator', 7000);		// Кд отправки запросов данных 1 секунда = 1000 миллисекунд.

		function sendUpdateRequestSpectator() {
			if (!hasFocus)
				return;
			
			var FakeUserID = $.jStorage.get('SGFakeUserID', 1);			// Айди фейкового пользователя.
			var FakeCitizenshipID = $.jStorage.get('SGFakeCitizenshipID', 1);	// Айди гражданства фейкового пользователя.
			
			var dataString = 'id=' + $("#battleRoundId").val() + "&at="+FakeUserID+"&ci="+FakeCitizenshipID+"&premium=1";
			
			$.ajax({  
				type: "GET",
				url: "battleScore.html",
				data: dataString,
				dataType: "json",
				success: function(msg) {
					updateStatus(msg.attackerScore, msg.defenderScore, msg.remainingTimeInSeconds, msg.percentAttackers);
					updateBattleHeros(msg.topAttackers, msg.topDefenders);
					updateTop10(msg.top10Attackers, msg.top10Defenders);
					updateBattleMonitor(msg);
					//updatePlace(msg.yourPlace);
					//updateTotalDamage(msg.totalPlayerDamage);
					for (var i = 0; i < msg.recentAttackers.length; i++) {
						if (msg.recentAttackers[i].id == latestAttackerId) {
							msg.recentAttackers = msg.recentAttackers.slice(0, i);
							break;
						}
					}
					for (var i = 0; i < msg.recentDefenders.length; i++) {
						if (msg.recentDefenders[i].id == latestDefenderId) {
							msg.recentDefenders = msg.recentDefenders.slice(0, i);
							break;
						}
					}
					if (msg.recentAttackers.length != 0) {
						latestAttackerId = msg.recentAttackers[0].id;
						attackerHits = msg.recentAttackers;
					}
					if (msg.recentDefenders.length != 0) {
						latestDefenderId = msg.recentDefenders[0].id;
						defenderHits = msg.recentDefenders;
					}
				}
			});
		}
		var intervalID = window.setInterval(sendUpdateRequestSpectator, timerSpectator);
		continueThread = false;
	}
	/*---Спектатор---*/
}

if (localUrl.indexOf( URLMotivation, 0 ) >= 0){
	//var SGMotivationMode = $.jStorage.get('SGMotivationMode', 1);
	if($.jStorage.get('SGMotivationMode', true)){
		var CurrentDay = /\d+/gim.exec($("#userMenu div div.panel.callout b:eq(2)").html());
		var CurrentDay = parseInt(CurrentDay[0]);
		var tmpMotivateCountToday = {day: CurrentDay,count: 0};
		var MotivateCountToday = JSON.parse($.jStorage.get('SGMotivateCountToday', JSON.stringify(tmpMotivateCountToday)));
		//console.log(MotivateCountToday);
		if (MotivateCountToday.day != tmpMotivateCountToday.day){
			MotivateCountToday = tmpMotivateCountToday;
			$.jStorage.set('SGMotivateCountToday', JSON.stringify(MotivateCountToday));
		}

		$(".dataTable ul.button.foundation-center.foundation-style-group li a.foundation-style.button.small.help i.icon-cupcake").parent().parent().toggle();
		$("<span>Today motivate count: <b id=\"countMotivationToday\">0</b><span>").insertAfter("#newCitizenStatsForm");
		$("#countMotivationToday").html(MotivateCountToday.count);

		$( "table.dataTable tr" ).each(function( index, element ) {
			if ($(this).children("td").children("i.icon-uniF478").length>0){
				var MotivateUserID = $(this).children("td:first").children(".profileLink").attr("href").replace("profile.html?id=","");
				if ($(this).children("td:eq(4)").children("i.icon-uniF478").length==1){
					$(this).children("td:eq(4)").empty();
					$(this).children("td:eq(4)").append('<i id="motivate-weapons-'+MotivateUserID+'" style="cursor: pointer; color: #000; font-size: 1.25em; text-shadow: 0 0 0" class="motivate-element motivate-weapons icon-tank" value="'+MotivateUserID+'"></i>');
				}
				if ($(this).children("td:eq(5)").children("i.icon-uniF478").length==1){
					$(this).children("td:eq(5)").empty();
					$(this).children("td:eq(5)").append('<i id="motivate-breads-'+MotivateUserID+'" style="cursor: pointer; color: #000; font-size: 1.25em; text-shadow: 0 0 0" class="motivate-element motivate-breads icon-bread" value="'+MotivateUserID+'"></i>');
				}
				if ($(this).children("td:eq(6)").children("i.icon-uniF478").length==1){
					$(this).children("td:eq(6)").empty();
					$(this).children("td:eq(6)").append('<i id="motivate-gifts-'+MotivateUserID+'" style="cursor: pointer; color: #000; font-size: 1.25em; text-shadow: 0 0 0" class="motivate-element motivate-gifts icon-gift" value="'+MotivateUserID+'"></i>');
				}
			}
			return true;
		});

		function motivateResponse (jqXHR, timeout, message) {
			var dataString = /type=(\d)&id=(\d+)/gim.exec($(this)[0].data);
			var idType = parseInt(dataString[1]);
			var idUser = parseInt(dataString[2]);
			var arrType = ["none","weapons","breads","gifts"]
			var messageResponse = "";
			if (messageResponse = /&citizenMessage=(\S+)/gim.exec(jqXHR.getResponseHeader("TM-finalURLdhdg"))){
				if (messageResponse[1]=="SUCCESFULLY_MOTIVATED"){
					var parentTDw = $("#motivate-"+arrType[idType]+"-"+idUser).parent();
					parentTDw.empty();
					parentTDw.append('<i title="Мотивация прошла успешно" style="color: #0c0; font-size: 1.25em; text-shadow: 0 0 0" class="icon-uniF479"></i>');
					MotivateCountToday.count = MotivateCountToday.count+1;
					$.jStorage.set('SGMotivateCountToday', JSON.stringify(MotivateCountToday));
					$("#countMotivationToday").html(MotivateCountToday.count);
				} else {
					$("#motivate-"+arrType[idType]+"-"+idUser).attr("title","Ошибка: "+messageResponse[1]);
				}
			} else if(/Вы отправили слишком много мотиваций сегодня/gim.exec(jqXHR.responseText)){
				var parentTDw = $("#motivate-"+arrType[idType]+"-"+idUser).parent();
				parentTDw.empty();
				parentTDw.append('<i title="Вы отправили слишком много мотиваций сегодня" style="color: #c00; font-size: 1.25em; text-shadow: 0 0 0" class="icon-uniF478"></i>');
				MotivateCountToday.count = 5;
				$.jStorage.set('SGMotivateCountToday', JSON.stringify(MotivateCountToday));
				$("#countMotivationToday").html(MotivateCountToday.count);
			} else if(/Вы уже отправляли комплект этому гражданину сегодня/gim.exec(jqXHR.responseText)){
				var parentTDw = $("#motivate-"+arrType[idType]+"-"+idUser).parent();
				parentTDw.empty();
				parentTDw.append('<i title="Вы уже отправляли комплект этому гражданину сегодня" style="color: #c00; font-size: 1.25em; text-shadow: 0 0 0" class="icon-uniF478"></i>');
			} else if(/Этот гражданин получил слишком много мотиваций сегодня/gim.exec(jqXHR.responseText)){
				var parentTDw = $("#motivate-"+arrType[idType]+"-"+idUser).parent();
				parentTDw.empty();
				parentTDw.append('<i title="Этот гражданин получил слишком много мотиваций сегодня" style="color: #c00; font-size: 1.25em; text-shadow: 0 0 0" class="icon-uniF478"></i>');
			} else if(/Этот гражданин получил все виды мотивационных комплектов сегодня/gim.exec(jqXHR.responseText)){
				var parentTDw = $("#motivate-"+arrType[idType]+"-"+idUser).parent();
				parentTDw.empty();
				parentTDw.append('<i title="Этот гражданин получил все виды мотивационных комплектов сегодня" style="color: #c00; font-size: 1.25em; text-shadow: 0 0 0" class="icon-uniF478"></i>');
			}
		}

		$(".motivate-element").click(function(){
			var typeMotivate = 0;
			if ($(this).hasClass("motivate-weapons")){
				typeMotivate = 1;
			} else if ($(this).hasClass("motivate-breads")){
				typeMotivate = 2;
			} else if ($(this).hasClass("motivate-gifts")){
				typeMotivate = 3;
			}
			var parentTD = $(this).parent();
			var userID = $(this).attr("value");
			var dataString = "type="+typeMotivate+"&id="+userID;
			$.ajax({  
				type: "POST",
				url: "motivateCitizen.html?id="+userID,
				data: dataString,
				dataType: "json",
				error:  motivateResponse
			});
		});

		$(".motivate-element").hover(function() {
			$(this).css("color", "#999");
		}, function() {
			$(this).css("color", "#000");
		});
	}
}