您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Gives an overview of all online alliance members sorted by there member state.
// ==UserScript== // @name AllianceMemberOnline // @namespace AllianceMemberOnline // @description Gives an overview of all online alliance members sorted by there member state. // @version 0.1.3.1 // @author f@nTisi // @include http*://*.alliances.commandandconquer.com/* // @grant GM_log // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_xmlhttpRequest // @grant GM_updatingEnabled // @grant unsafeWindow // @grant metadata // ==/UserScript== (function() { var AllianceMemberOnline0 = function() { // create the main class function createClass() { console.log("Starting creation of classes"); // define the memberoverview class qx.Class.define("AllianceMemberOnline.Main", { type: "singleton", extend: qx.core.Object, // constructor of the class construct: function() { try { console.log("Initializing AllianceMemberOnlineButton Button"); var AllianceMemberOnlineButton = new qx.ui.form.Button("Alliance Overview"); AllianceMemberOnlineButton.set({ alignY: "middle", width: 120, toolTipText: "open AllianceMemberOnline window", appearance: "button-text-small" }); AllianceMemberOnlineButton.addListener("execute", this.__openAllianceMemberOnlineWindow, this); console.log("Adding AllianceMemberOnlineButton to view"); var app = qx.core.Init.getApplication(); app.getDesktop().add(AllianceMemberOnlineButton, { bottom: 80, right: 120 }); // var AllianceMemberOnlineWindow = AllianceMemberOnline.Window.getInstance(); // AllianceMemberOnlineWindow.open(); } catch (e) { console.log("Failed to initialize AllianceMemberOnline: ", e); } console.log("AllianceMemberOnline loaded"); }, // destructor of the class destruct: function() {}, members: { // Method to show the window __openAllianceMemberOnlineWindow: function() { var AllianceMemberOnlineWindow = AllianceMemberOnline.Window.getInstance(); if (AllianceMemberOnlineWindow.isVisible()) { console.log("closing AllianceMemberOnlineWindow"); AllianceMemberOnlineWindow.close(); } else { console.log("opening AllianceMemberOnlineWindow"); AllianceMemberOnlineWindow.open(); } } } }); qx.Class.define("AllianceMemberOnline.Window", { type: "singleton", extend: qx.ui.window.Window, // constructor of the class construct: function() { try { console.log("Creating AllianceMemberOnline.Window"); this.base(arguments); this.setLayout(new qx.ui.layout.Canvas()); this.set({ width: 150, caption: "Online Members", allowMaximize: false, showMaximize: false, allowMinimize: false, showMinimize: false, resizable: true }); this.model = new qx.ui.table.model.Simple(); this.model.setColumns(["Role", "Name", "OnlineState", "RoleText"]); this.model.sortByColumn(1, true); this.list = new qx.ui.table.Table(this.model); this.list.setColumnVisibilityButtonVisible(false); this.list.setColumnWidth(0, 0); this.list.setColumnWidth(1, 130); this.list.setColumnWidth(2, 0); this.list.setColumnWidth(3, 0); this.list.set({ width: 130, minHeight: 250 }); var tModel = this.list.getTableColumnModel(); tModel.setColumnVisible(0, false); tModel.setColumnVisible(2, false); tModel.setColumnVisible(3, false); this.list.setStatusBarVisible(false); this.add(this.list, { bottom: 0, left: 0 }); this.list.addListener("mousemove", function(e) { var cell = this.getCellUnderMouse(this.list, e); var row = cell.row; var col = cell.col; if ((row >= 0) && (col >= 0)) { if ((this._curTtRow != row) || (this._curTtCol != col)) { this.list.setToolTipText(""); var ttManager = qx.ui.tooltip.Manager.getInstance(); ttManager.resetCurrent(); var ttText = this._onGetToolTipText(this.list, row, col); if (ttText && (ttText !== "")) { this.list.setToolTipText(ttText); ttManager.showToolTip(this.list); } } } else { if ((this._curTtRow >= 0) && (this._curTtCol >= 0)) { this.list.setToolTipText(""); var ttManager = qx.ui.tooltip.Manager.getInstance(); ttManager.resetCurrent(); } } this._curTtRow = row; this._curTtCol = col; }, this); try { var timer = qx.util.TimerManager.getInstance(); } catch (e) { console.log("Failed to get timer"); throw e; } timer.start(function() { console.log("Timer function running"); // example getting player title icon // console.log(ClientLib.Data.MainData.GetInstance().get_Player().get_TitleIcon()); console.log("Getting Members and members count"); var alliance = ClientLib.Data.MainData.GetInstance().get_Alliance(); alliance.RefreshMemberData(); var members = alliance.get_MemberDataAsArray(); console.log("Creating model"); var rowArr = []; var iCounter = 0; for (i = 0; i < alliance.get_NumMembers(); i++) { var member = members[i]; var name = member.Name; if (member.OnlineState == ClientLib.Data.EMemberOnlineState.Away) name = ">>" + name; if (member.OnlineState == ClientLib.Data.EMemberOnlineState.Online || member.OnlineState == ClientLib.Data.EMemberOnlineState.Away) { // var name = member.Name; rowArr.push([member.Role, name, member.OnlineState, member.RoleName]); console.log(member.Role + " - " + member.Name); console.log("AllianceMemberOnlineView: " + member.Name + " - " + member.OnlineState); iCounter++; } } this.model.removeRows(0, this.model.getRowCount(), true); this.model.setData(rowArr); this.model.sortByColumn(0, true); }, 5000, this, null, 1000); } catch (e) { console.log("Failed to initialize AllianceMemberOnline.Window"); console.log(e); } console.log("AllianceMemberOnline loaded"); }, // destructor of the class destruct: function() {}, members: { model: null, list: null, getCellUnderMouse: function(table, mouseEvent) { var row = -1, col = -1; if (table && mouseEvent) { var pageX = mouseEvent.getDocumentLeft(); var pageY = mouseEvent.getDocumentTop(); var sc = table.getTablePaneScrollerAtPageX(pageX); if (sc) { row = sc._getRowForPagePos(pageX, pageY); col = sc._getColumnForPageX(pageX); if ((row === null) || (row === undefined)) { row = -1; } if ((col === null) || (col === undefined)) { col = -1; } } } return ({ "row": row, "col": col }); }, _onGetToolTipText: function(table, row, col) { // console.log(this.model.getValue(3, row)); return this.model.getValue(3, row); } } }); } // ************************************************************** // Main Initialization function AllianceMemberOnline_checkIfLoaded() { try { if (typeof qx != 'undefined' && qx.core.Init.getApplication() && qx.core.Init.getApplication().getUIItem(ClientLib.Data.Missions.PATH.BAR_NAVIGATION) && qx.core.Init.getApplication().getUIItem(ClientLib.Data.Missions.PATH.BAR_NAVIGATION).isVisible()) { createClass(); window.AllianceMemberOnline.Main.getInstance(); } else { window.setTimeout(AllianceMemberOnline_checkIfLoaded, 1000); } } catch (e) { console.log("AllianceMemberOnline_checkIfLoaded: ", e); } } if (/commandandconquer\.com/i.test(document.domain)) { window.setTimeout(AllianceMemberOnline_checkIfLoaded, 1000); } }; try { var script = document.createElement("script"); script.innerHTML = "(" + AllianceMemberOnline0.toString() + ")();"; script.type = "text/javascript"; if (/commandandconquer\.com/i.test(document.domain)) { document.getElementsByTagName("head")[0].appendChild(script); } } catch (e) { console.log("AllianceMemberOnline init error: ", e); } })();