您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds "navigate" button which opens dialog in which you can enter map coordinates and scroll your screen to that location
- // ==UserScript==
- // @name CnC Tiberium Coord Box Shortcut
- // @namespace noobs
- // @description Adds "navigate" button which opens dialog in which you can enter map coordinates and scroll your screen to that location
- // @include https://prodgame*.alliances.commandandconquer.com/*/index.aspx*
- // @version 1.1
- // ==/UserScript==
- // Fixed to work for chrome
- // All functions remain untouched
- // Original script here http://userscripts.org/scripts/show/137229
- (function (){
- var MoveToCoords = function () {
- function getClib(){
- var clib;
- try{
- clib=ClientLib;
- }catch(e)
- {
- alert("can't get clientLib");
- return null;
- }
- if(!clib)
- {
- alert("clib is undefined");
- }
- return clib;
- }
- function getMyCities(){
- var cities =getData().get_Cities().get_AllCities();
- return cities.d;
- }
- function getWorld(){
- var world = getData().get_World();
- return world;
- }
- function getData(){
- return getClib().Data.MainData.GetInstance();
- }
- function getNearestTargets(city){
- var world = getWorld();
- var x = city.get_X();
- var y = city.get_Y();
- var offset = 7;
- var msg = ""+city.get_Name()+"("+x+","+y+")\n";
- var types=["0","1","N","E","@"];
- for(var cy = y - offset; cy < y+ offset;cy++){
- for(var cx = x-offset; cx < x+offset;cx++){
- var kind = types[world.GetTerritoryTypeByCoordinates(cx,cy)];
- var attack;
- try{
- attack = world.CheckAttackBase (cx , cy);
- }catch(e){
- //alert('err!');
- }
- if(attack && (attack == attack.OK)){
- msg+="["+(x-cx)+","+(y-cy)+"]\n";
- }
- // var water = world.IsWater(cx,cy) ? 'W':'_';
- // var blocked = world.IsBlocked(cx,cy) ? '#':'_';
- //msg+=""+kind;//+water+blocked;
- }
- msg+="\n";
- }
- alert(msg);
- }
- function test(e){
- var clib=getClib();
- var citiesData = getMyCities();
- var counter = 0;
- var msg = "";
- for (var cityFname in citiesData){
- var city = citiesData[cityFname];
- var level = city.get_BaseLevel();
- var name = city.get_Name();
- counter++;
- msg+="'"+name+"':"+level+"\n";
- try{
- city.setResourcesToMax();
- }catch(e)
- {
- alert('cannot exec that func');
- }
- }
- msg = "CITIES:"+counter+"\n"+msg;
- alert(msg);
- }
- function rangeTest(){
- var world = getWorld();
- world.SetRange(true,true,0,0,10,10);
- alert('finished');
- }
- function createButton(name, handler, par){
- var button = document.createElement("button");
- button.setAttribute("type","button");
- button.setAttribute("id", "myButton"+Math.random().toString().substr(2));
- try{
- // button.value=name;
- // button.setAttribute("value",name);
- // button.setAttribute("innerHTML",name);
- // button.setAttribute("label",name);
- // button.setAttribute("name",name);
- // button.setAttribute("text",name);
- button.innerHTML=name;
- }catch(e)
- {
- //do nothing, result is visible
- }
- button.addEventListener("click", handler);
- button.style.height="100%";
- button.style.margin = "2px";
- par.appendChild(button);
- }
- function tryBase(){
- var cities = getMyCities();
- for(var cityFname in cities){
- var city = cities[cityFname];
- getNearestTargets(city);
- }
- }
- function navigate(){
- var dialog = document.getElementById('ta_navigation_container');
- if(dialog)
- dialog.style.display = (dialog.style.display == 'block') ? 'none' : 'block';
- else
- createDialog(["x","y"], processNavigateDialog);
- }
- function processNavigateDialog(){
- }
- function createDialog(fields, handler){
- var dialog = document.createElement("div");
- dialog.id = 'ta_navigation_container';
- dialog.style.position="absolute";
- dialog.style.top="30px";
- dialog.style.left="127px";
- dialog.style.zIndex="100";
- dialog.style.display="block";
- dialog.style.borderColor="#DCDCDC"
- dialog.style.borderStyle="solid";
- dialog.style.borderWidth="5px";
- dialog.style.backgroundColor="#881515";
- document.body.appendChild(dialog);
- lastDialog=dialog;
- for(var i=0; i < fields.length;i++){
- var inputName = fields[i];
- //var element = document.createElement("div");
- var element = document.createElement("input");
- element.style.margin="2px";
- //var br = document.createElement("br");
- dialog.appendChild(element);
- //dialog.appendChild(br);
- }
- var commit = document.createElement("button");
- commit.innerHTML="Navigate!";
- commit.style.margin="2px";
- commit.addEventListener("click", doNavigate);
- dialog.appendChild(commit);
- }
- function getVis(){
- var clib = getClib();
- return clib.Vis.VisMain.GetInstance();
- }
- function doNavigate(){
- var dia = lastDialog;
- var x = Number(dia.childNodes[0].value);
- var y = Number(dia.childNodes[1].value);
- var vis = getVis();
- vis.CenterGridPosition(x,y);
- document.body.removeChild(lastDialog);
- lastDialog = null;
- }
- function createPanel(){
- var panel = document.createElement("div");
- panel.style.position="absolute";
- panel.style.top="0px";
- panel.style.left="127px";
- //panel.style.height="20px";
- panel.style.zIndex="100";
- panel.style.display="block";
- panel.style.borderColor="#DCDCDC";
- panel.style.borderStyle="solid";
- panel.style.borderWidth="5px";
- panel.style.backgroundColor="#881515";
- document.body.appendChild(panel);
- // createButton('Test', test,panel);
- // createButton('Targets',tryBase,panel);
- // createButton('Range',rangeTest, panel);
- createButton('Navigate', navigate,panel);
- }
- createPanel();
- }
- var TASuiteScript = document.createElement("script");
- var txt = MoveToCoords.toString();
- TASuiteScript.innerHTML = "(" + txt + ")();";
- TASuiteScript.type = "text/javascript";
- if (/commandandconquer\.com/i.test(document.domain)) {
- document.getElementsByTagName("head")[0].appendChild(TASuiteScript);
- }
- })();