OGame: serverData

OGame: stores serverData on the client

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.greasyfork.org/scripts/4441/14624/OGame%3A%20serverData.js

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

Advertisement:

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

Advertisement:

// ==UserScript==
// @name OGame: serverData
// @namespace https://greasyfork.org/users/4668-black-cat
// @description OGame: stores serverData on the client
// @version 5.3
// @creator Black Cat
// @include http://*.ogame.gameforge.com/game/index.php?page=overview*
// ==/UserScript==

var strFunc = (function(){

	var ogTime = parseInt(document.querySelector("meta[name=ogame-timestamp]").getAttribute("content"));
	var xmlTime = parseInt(localStorage.getItem("serverData.time") || "0");
	if (ogTime > xmlTime + 86400) {
		$.get(
			"/api/serverData.xml",
			function (xml) {
				var data = {};
				var sd = xml.childNodes[0];
				xmlTime = sd.getAttribute("timestamp");
				localStorage.setItem("serverData.time", xmlTime);
				var elements = sd.childNodes;
				for (var i=0; i<elements.length; i++) {
					var tag = elements[i].tagName;
					data[tag] = elements[i].textContent;
				}
				localStorage.setItem("serverData", JSON.stringify(data));
			},
			"xml"
		);
	}
}).toString();

if (!document.getElementById("serverData_script")) {
	var script = document.createElement("script");
	script.id = "serverData_script";
	script.setAttribute("type","text/javascript");
	script.text = "(" + strFunc + ")();";
	document.body.appendChild(script);
}