您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Syncs tiberium alliances (for now) chat with gtalk (for now) or email, and notifies when CP is close to the capacity. Change the CP_ALERT_HOURS value to tweak CP alert threshold (CP _ALERT_HOURS = how many hours before max capacity alert should be sent)
当前为
- // ==UserScript==
- // @name C&C Tiberium Alliances Chat Syncer and CP alerts
- // @namespace http://careers.stackoverflow.com/boris-churzin
- // @version 2.0
- // @description Syncs tiberium alliances (for now) chat with gtalk (for now) or email, and notifies when CP is close to the capacity. Change the CP_ALERT_HOURS value to tweak CP alert threshold (CP _ALERT_HOURS = how many hours before max capacity alert should be sent)
- // @include https://www.tiberiumalliances.com/*
- // @include https://*.alliances.commandandconquer.com/*
- // @grant unsafeWindow
- // @grant GM_xmlhttpRequest
- // @copyright 2013+, Boris Churzin
- // ==/UserScript==
- GROUP_TOKEN = 'beehive';
- CP_ALERT_HOURS = 1;
- messages_done = {};
- setInterval(check_messages, 1000);
- cp_done = false;
- setInterval(check_cp, 1000);
- function send_message(player, message) {
- GM_xmlhttpRequest({
- method: "GET",
- url: "http://chat-syncer.herokuapp.com/message/" + GROUP_TOKEN + "/" + escape(player) + "/" + escape(message)
- });
- }
- function check_cp() {
- try {
- var player = unsafeWindow.ClientLib.Data.MainData.GetInstance().get_Player();
- if(!cp_done && (player.GetCommandPointCount() > player.GetCommandPointMaxStorage() - player.GetCommandPointsGrowPerHour() * CP_ALERT_HOURS)) {
- console.log("Chat Syncer: CP alert triggered");
- cp_done = true;
- send_message(player.get_Name(), player.get_Name() + ": CP alert: " + Math.round(player.GetCommandPointCount()) + " out of " + player.GetCommandPointMaxStorage());
- } else {
- if(cp_done && !(player.GetCommandPointCount() > player.GetCommandPointMaxStorage() - player.GetCommandPointsGrowPerHour() * CP_ALERT_HOURS)) {
- cp_done = false;
- console.log("Chat Syncer: CP alert reset");
- }
- }
- } catch(e) {
- console.log("Chat Syncer (check_cp): " + e);
- }
- }
- function check_messages() {
- try {
- var messages = [];
- var spans = document.getElementsByTagName('span');
- for (var i = 0; i < spans.length; ++i) {
- if (spans[i].id.match("CHAT_SENDER")) {
- messages.push(spans[i].parentNode);
- }
- }
- for(var i = 0; i < messages.length; i++) {
- if(messages[i].innerHTML.match("\\[Alliance\\]") || messages[i].innerHTML.match("\\[Officers\\]")) {
- if(!messages_done[messages[i].innerHTML]) {
- messages_done[messages[i].innerHTML] = true;
- send_message(messages[i].children[0].innerHTML, messages[i].children[1].innerHTML);
- }
- }
- }
- } catch(e) {
- console.log("Chat Syncer (check_messages): " + e);
- }
- }