您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Various improvements to Game of Thrones: Ascent
- // ==UserScript==
- // @name GOTA Improvements
- // @description Various improvements to Game of Thrones: Ascent
- // @namespace https://greasyfork.org/users/1665-nolana
- // @include http://gota.disruptorbeam.com/
- // @include http://gota-www.disruptorbeam.com/
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
- // @require http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js
- // @version 5
- // @grant GM_xmlhttpRequest
- // @grant unsafeWindow
- // ==/UserScript==
- this.$ = this.jQuery = jQuery.noConflict(true);
- // $('div.locked').remove();
- $(window).bind("load", function() {
- init();
- });
- function init() {
- $('#page-wrap').css('max-width',$(window).width()+'px');
- $('#holdings_container').width($(window).width()-10);
- // remove locked buildings
- // $(document).on('click','#navlink-buildings',function (e) {
- // $('#building_items div.locked').remove();
- //});
- fixChat();
- observeChat();
- addGlobalStyle(".attack_date { color: grey; margin-left: 4px; margin-top:2px; text-align: left}");
- $(document).on('click', '#incomingtab', function() {
- getIncoming();
- });
- }
- var incomingAttacks;
- function getIncoming() {
- console.log('getting incoming');
- window.setTimeout(function () {
- GM_xmlhttpRequest({
- method: "GET",
- url: "http://gota.disruptorbeam.com/play/incoming_attacks",
- onload: function(response) {
- incomingAttacks = JSON.parse(response.responseText);
- insertAttackTimestamps(incomingAttacks);
- console.log("Incoming:"+response.responseText);
- }
- });
- }, 2000);
- }
- function insertAttackTimestamps(a) {
- console.log('insert attack timestamps');
- // alert('bubu');
- $('div.perkscroll div.achiev-content').each(function() {
- $(this).remove('span.attack_date');
- var id = /[0-9]+/.exec($(this).find('div.increspond').attr('onclick'))
- var attack = a.attacks.filter(function(e){ return e.camp_attack_id === null ? e.pvp_id == id : e.camp_attack_id == id; })[0];
- console.log("last login:" + attack.attacker.updated_at);
- var text = 'Last seen:' + moment(attack.attacker.updated_at,"YYYY-MM-DD HH:mm:ss Z").local().format('MMMM Do YYYY, h:mm:ss a');
- $('<div class="attack_date">'+ text + '</div>').appendTo($(this));
- });
- unsafeWindow.$('div.perkscroll').data("jsp").reinitialise();
- //alert(unsafeWindow.$('div.perkscroll').data("jsp"));
- }
- function fixChat() {
- var chatWidth = $(window).width()/3;
- addGlobalStyle(".gamechat{bottom:auto;float:none;height:auto;left:auto;right:188px;margin-left:2px;margin-top:8px;padding:1px 10px 15px;position:absolute;top:3px;width:" + chatWidth +"px;"+
- "background:url(http://disruptorbeamcdn-01.insnw.net/images/pvp/actionbg.png?t=e2e9110ff577) repeat-x scroll 0 0 #000;border:1px solid #444;border-radius:12px;color:#FFF;font-size:16px;text-align:left;z-index:3}");
- addGlobalStyle("b {font-weight:bold}");
- addGlobalStyle("sub {font-size:11px;color:grey}");
- addGlobalStyle(".gamechat .chatscroll p { width: " + (chatWidth - 60) + "px;margin-bottom: 2px;font-size: 14px;");
- addGlobalStyle("#building_items div.locked { display:none; }");
- $('#combatlog').width(chatWidth - 10);
- $('#combatlog .jspPane p.pchat').each(function () {
- fixChatLine($(this));
- });
- }
- function observeChat() {
- var target = $('#combatlog .jspPane')[0];
- // Create an observer instance
- var observer = new MutationObserver(function( mutations ) {
- mutations.forEach(function( mutation ) {
- var newNodes = mutation.addedNodes; // DOM NodeList
- if (newNodes !== null) { // If there are new nodes added
- var $nodes = $(newNodes); // jQuery set
- $nodes.each(function() {
- var $node = $(this);
- if ($node.hasClass( "pactivity" )) {
- console.log('act:'+$node.text());
- // TODO, fix activity line
- } else if ($node.hasClass("pchat")) {
- console.log('chat:' + $node.text());
- fixChatLine($node, new Date().toLocaleString());
- }
- });
- }
- });
- });
- var config = {
- attributes: false,
- childList: true,
- characterData: false
- };
- observer.observe(target, config);
- }
- function fixChatLine(p, time) {
- var text = p.text();
- var result = /([^:]+):(.*)/.exec(text);
- if (result === null) return; // already highlighted
- var author = result[1];
- var line = result[2];
- p.find('strong').replaceWith('<strong><b>' + author + '</b>' + line + (time ? ' <sub>' + time + '</sub>' : ''));
- }
- function addGlobalStyle(css) {
- try {
- var elmHead, elmStyle;
- elmHead = document.getElementsByTagName('head')[0];
- elmStyle = document.createElement('style');
- elmStyle.type = 'text/css';
- elmHead.appendChild(elmStyle);
- elmStyle.innerHTML = css;
- } catch (e) {
- if (!document.styleSheets.length) {
- document.createStyleSheet();
- }
- document.styleSheets[0].cssText += css;
- }
- }