您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
TM save COs (The author does not guarantee the correctness of the script)
- // ==UserScript==
- // @name TM save COs
- // @namespace ByMLFC
- // @version 1.0.1
- // @description TM save COs (The author does not guarantee the correctness of the script)
- // @include http://trophymanager.com/tactics
- // @include http://*.trophymanager.com/tactics
- // @include http://trophymanager.com/tactics/*
- // @include http://*.trophymanager.com/tactics/*
- // ==/UserScript==
- // page scope scripts
- var pageHead = document.getElementsByTagName("head")[0];
- var script = document.createElement('script');
- script.type = "text/javascript";
- function embed() {
- // get CO from the page
- function getCO() {
- document.getElementById("CO_JSON").value = JSON.stringify(cond_orders);
- }
- // if two orders are the same, return true, exclude id
- function compare_cond_order(cond_order1, cond_order2) {
- for (var j in cond_order1) {
- if (j != "ID") {
- if (cond_order1[j] != cond_order2[j]) {
- return false;
- }
- }
- }
- return true;
- }
- function setCO() {
- var CO_name = document.getElementById("CO_list");
- if (CO_name.selectedIndex != 0) {
- var temp_cond_orders = JSON.parse(document.getElementById("CO_JSON").value);
- $("#cond_orders_list").html("");
- for(var i in temp_cond_orders) {
- // skip save if COs are the same
- if (compare_cond_order(cond_orders[i], temp_cond_orders[i])) {
- var $co = co_create_cond_order(temp_cond_orders[i], true);
- } else {
- cond_orders[i] = temp_cond_orders[i];
- var $co = co_create_cond_order(temp_cond_orders[i], false);
- }
- $("#cond_orders_list").append($co);
- }
- } else {
- alert("Please select a CO-set");
- }
- }
- // receive COs from the page or write COs from Monkey
- var input = document.createElement("input");
- input.id = "CO_JSON";
- input.type = "hidden";
- document.getElementsByTagName("body")[0].appendChild(input);
- // prepare forms to call page scope scripts
- var form = document.createElement("form");
- form.id = "call_setCO";
- form.setAttribute("onreset", "setCO()");
- document.getElementsByTagName("body")[0].appendChild(form);
- var form = document.createElement("form");
- form.id = "call_getCO";
- form.setAttribute("onreset", "getCO()");
- document.getElementsByTagName("body")[0].appendChild(form);
- }
- var txtScr = embed.toString();
- txtScr = txtScr.substring(txtScr.indexOf("{")+1, txtScr.lastIndexOf("}"));
- script.appendChild(document.createTextNode(txtScr));
- pageHead.appendChild(script);
- // run in Monkey
- // check availability of the name and assign one if the name has been in use
- function name_check(original, temp_name, count) {
- if (temp_name.length == 0) {
- temp_name = name_check("Set", "Set_1", 2);
- } else {
- if (GM_getValue("co"+temp_name, false)) {
- temp_name = name_check(original, original+"_"+count, count+1);
- }
- }
- return temp_name;
- }
- // save CO to Monkey
- function save_COs() {
- var CO_JSON = document.getElementById("CO_JSON").value;
- var CO_name = document.getElementById("CO_list");
- if (CO_name.selectedIndex != 0) {
- CO_name = CO_name.options[CO_name.selectedIndex].value;
- // confirm the user is going to overwrite the save
- if ((document.getElementById("CO_name").value == CO_name) || (document.getElementById("CO_name").value.length == 0)) {
- GM_setValue("co" + CO_name, CO_JSON);
- } else {
- alert("Not sure about your intention:\n1) To rename, press the rename button;\n2) To overwrite, leave the name box blank or type the name as your chosen save;\n3) To add a new set, choose from the dropdown list");
- }
- } else {
- CO_name = name_check(document.getElementById("CO_name").value, document.getElementById("CO_name").value, 1);
- // add to dropdown list
- var option = document.createElement("option");
- option.value = CO_name;
- option.innerHTML = CO_name;
- document.getElementById("CO_list").appendChild(option);
- document.getElementById("CO_list").selectedIndex = document.getElementById("CO_list").length - 1;
- GM_setValue("co" + CO_name, CO_JSON);
- };
- }
- // load CO from Monkey
- function load_COs() {
- var CO_name = document.getElementById("CO_list");
- if (CO_name.selectedIndex != 0) {
- CO_name = CO_name.options[CO_name.selectedIndex].value;
- document.getElementById("CO_JSON").value = GM_getValue("co" + CO_name);
- }
- }
- // delete CO from Monkey
- function delete_COs() {
- var CO_list = document.getElementById("CO_list");
- if (CO_list.selectedIndex != 0) {
- GM_deleteValue("co" + CO_list.options[CO_list.selectedIndex].value);
- CO_list.remove(CO_list.options[CO_list.selectedIndex]);
- }
- }
- // rename CO from Monkey
- function rename_COs() {
- if (document.getElementById("CO_list").selectedIndex != 0) {
- load_COs();
- delete_COs();
- document.getElementById("CO_list").selectedIndex = 0;
- save_COs();
- }
- }
- // call page scope scripts
- function call_setCO() {
- document.getElementById("call_setCO").reset();
- }
- function call_getCO() {
- document.getElementById("call_getCO").reset();
- }
- function save_onclick() {
- call_getCO();
- save_COs();
- }
- function load_onclick() {
- load_COs();
- call_setCO();
- }
- // create CO-set list
- document.getElementById("tactics").style.height = "510px";
- var div = document.createElement("div");
- div.setAttribute("style", "position: absolute; top: 472px; left: 10px;");
- // CO list
- var span = document.createElement("span");
- span.setAttribute("style", "padding-right: 10px;");
- var select = document.createElement("select");
- select.setAttribute("style", "width: 250px;");
- select.id = "CO_list";
- select.className = "ui-selectmenu ui-state-default ui-selectmenu-popup";
- var option = document.createElement("option");
- option.innerHTML = "Add a New CO-set";
- select.appendChild(option);
- span.appendChild(select);
- div.appendChild(span);
- document.getElementById("tactics").appendChild(div);
- // name
- var span = document.createElement("span");
- span.setAttribute("style", "padding-right: 10px;");
- var input = document.createElement("input");
- input.setAttribute("style", "width: 200px;");
- input.id = "CO_name";
- input.className = "embossed";
- input.type = "text";
- input.setAttribute("placeholder", "Name or Rename");
- span.appendChild(input);
- div.appendChild(span);
- var GM_value_list = GM_listValues();
- for (var i in GM_value_list) {
- var key = GM_value_list[i];
- if (key.indexOf("co") == 0) {
- key = key.substring(2);
- var option = document.createElement("option");
- option.value = key;
- option.innerHTML = key;
- document.getElementById("CO_list").appendChild(option);
- }
- }
- // save button
- var span3 = document.createElement("span");
- span3.setAttribute("style", "padding-right: 10px;");
- var span = document.createElement("span");
- span.className = "button";
- span.addEventListener("click", save_onclick, false);
- var span2 = document.createElement("span");
- span2.className = "button_border";
- span2.innerHTML = "Save COs";
- span.appendChild(span2);
- span3.appendChild(span);
- div.appendChild(span3);
- // rename button
- var span3 = document.createElement("span");
- span3.setAttribute("style", "padding-right: 10px;");
- var span = document.createElement("span");
- span.className = "button";
- span.addEventListener("click", rename_COs, false);
- var span2 = document.createElement("span");
- span2.className = "button_border";
- span2.innerHTML = "Rename CO-set";
- span.appendChild(span2);
- span3.appendChild(span);
- div.appendChild(span3);
- // load button
- var span3 = document.createElement("span");
- span3.setAttribute("style", "padding-right: 10px;");
- var span = document.createElement("span");
- span.className = "button";
- span.addEventListener("click", load_onclick, false);
- var span2 = document.createElement("span");
- span2.className = "button_border";
- span2.innerHTML = "Load COs";
- span.appendChild(span2);
- span3.appendChild(span);
- div.appendChild(span3);
- // delete button
- var span3 = document.createElement("span");
- span3.setAttribute("style", "padding-right: 10px;");
- var span = document.createElement("span");
- span.className = "button";
- span.addEventListener("click", delete_COs, false);
- var span2 = document.createElement("span");
- span2.className = "button_border";
- span2.innerHTML = "Delete CO-set";
- span.appendChild(span2);
- span3.appendChild(span);
- div.appendChild(span3);