您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Saldırı Planlayıcı
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/386655/711090/Sald%C4%B1r%C4%B1.js
/* Author : Fluffy88 Website : http://fluffy88.com Rewritten by : dalesmckay Turkish translate & organizing : Broken Castle & Trafik Blog (Broken Castle) : https://burakdemirerblog.wordpress.com */ if(premium==false){alert('Bu scripti çalıştırmak için premium hesabınız olması gerekir.');end();} function fnInjectOverviewBar(){ /* Default to your own currently active village */ var defaultCoords = fnExtractCoords(win.$("title").html()); /* Default to midnight of next day */ var defaultDate = new Date(); defaultDate.setTime(((Math.floor(defaultDate.getTime()/msPerDay)+1)*minsPerDay + defaultDate.getTimezoneOffset())*msPerMin); defaultDate = defaultDate.toString().replace(/\w+\s*/i,"").replace(/(\d*:\d*:\d*)(.*)/i,"$1"); /* Perform the injection */ fnInjectUnits(); win.$('<tr><td colspan="3"><b>Hedef Köy: </b><input id="snipe_coord" value="'+defaultCoords+'" class="text-input inactive" size="7" onFocus="this.select()" /></td><td colspan="1"> <font title="Aylar sirasiyla; Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"><b>Zaman:</b></font> <input id="arrival_time" size="25" class="text-input inactive" value="'+defaultDate+'" onFocus="this.select()" /></td><td> <input type="button" value="Hesapla" onClick="fnCalculateBackTime()" /></td></tr>').insertAfter(win.$('#menu_row2')); win.$('<div id="snipe_output"><span style=\"color:red;font-weight:bold\"><center>SALDIRI PLANLAYICISI</center></span><span style=\"color:green;font-weight:bold\"><center><sub>Broken Castle & Trafik tarafından düzenlenmiştir</sub></center></span><br/></div>').insertAfter(win.$('body')); } function fnExtractCoords(src){ var vv=src.match(/\d+\|\d+/ig); return (vv?vv[vv.length-1]:null); } function fnCalculateDistance(to,from){ var target = fnExtractCoords(to).match(/(\d+)\|(\d+)/); var source = fnExtractCoords(from).match(/(\d+)\|(\d+)/); var fields = Math.sqrt(Math.pow(source[1]-target[1],2)+Math.pow(source[2]-target[2],2)); return fields; } function fnDebugLog(msg){win.$("body").append("<span>"+msg+"</span><br/>");} function fnAjaxRequest(url,sendMethod,params,type){ var error=null,payload=null; win.$.ajax({ "async":false, "url":url, "data":params, "dataType":type, "type":String(sendMethod||"GET").toUpperCase(), "error":function(req,status,err){error="ajax: " + status;}, "success":function(data,status,req){payload=data;} }); if(error){ throw(error); } return payload; } function fnCreateConfig(name){return win.$(fnAjaxRequest("/interface.php","GET",{"func":name},"xml")).find("config");} function fnCreateUnitConfig(){return fnCreateConfig("get_unit_info");} function fnCreateWorldConfig(){return fnCreateConfig("get_config");} function fnCalculateLaunchTime(source,target,unit,landingTime){ var distance = fnCalculateDistance(target,source); var unitSpeed = unitConfig.find(unit+" speed").text(); /* Convert minutes to milli-seconds */ var unitTime = distance*unitSpeed*msPerMin; /* Truncate milli-second portion of the time */ var launchTime = new Date(); launchTime.setTime(Math.round((landingTime.getTime() - unitTime)/msPerSec)*msPerSec); return launchTime; } function fnWriteCookie(ele){ var snipeConfig=""; win.$("#combined_table tr:first th img[src*=unit_]").each(function(i,e){ snipeConfig+=win.$("#view_"+e.src.match(/unit\_(.+)\.png?/i)[1]).is(':checked')?"1":"0"; }); var cookie_date=new Date(2099,11,11); win.document.cookie='$snipe='+snipeConfig+';expires='+cookie_date.toGMTString(); } function fnInjectUnits(){ var twCookie=win.document.cookie.match(/\$snipe\=([0|1]*)/i); if(twCookie){ twCookie=twCookie[1]; for(var ii=0;ii<twCookie.length;ii++){ } } win.$("#combined_table tr:first th img[src*=unit_]").each(function(i,e){ if(this.parentNode.nodeName=="A") { win.$('<input type="checkbox" '+((!twCookie||(twCookie[i]=="1"))?'checked="true"':'')+' id="view_'+e.src.match(/unit\_(.+)\.png?/i)[1]+'" OnClick="fnWriteCookie(this);"/>').insertBefore(win.$(this.parentNode)); } else { win.$('<input type="checkbox" '+((!twCookie||(twCookie[i]=="1"))?'checked="true"':'')+' id="view_'+e.src.match(/unit\_(.+)\.png?/i)[1]+'" OnClick="fnWriteCookie(this);"/>').insertBefore(win.$(this)); } }); win.$("#combined_table tr:first th:has(img[src*=unit_])").attr("style","background-color:yellow"); } function fnExtractUnits(){ var units=[]; win.$("#combined_table tr:first th img[src*=unit_]").each(function(i,e){ units.push(e.src.match(/unit\_(.+)\.png?/i)[1]); }); return units; } function fnCalculateBackTime(){ var worldConfig = fnCreateWorldConfig(); var hasChurch = worldConfig && parseInt(worldConfig.find("game church").text()||"0", 10); /*var arrivalTime = new Date(win.$("#arrival_time").attr("value").split(":").slice(0,3).join(":")); var target = win.$("#snipe_coord").attr("value");*/ var arrivalTime = new Date(document.getElementById("arrival_time").value.split(":").slice(0,3).join(":")); var target = document.getElementById("snipe_coord").value; var servertime = win.$("#serverTime").html().match(/\d+/g); var serverDate = win.$("#serverDate").html().match(/\d+/g); serverTime = new Date(serverDate[1]+"/"+serverDate[0]+"/"+serverDate[2]+" "+servertime.join(":")); var output = []; var ii,troop_count,source,launchTime; var units=fnExtractUnits(); /* Loop through your own villages */ win.$("#combined_table tr:gt(0)").each(function(i,e){ source = fnExtractCoords($(this).find("td:eq(1)").html()); if(source != target){ var isVisible = false; /* Process Each Unit */ for(ii=0;ii<units.length;ii++){ if(win.$("#view_"+units[ii]).is(':checked')){ troop_count = parseInt($(this).find("td:eq("+(ii+(hasChurch?9:8))+")").text(),10); /* Do we have Units currently Available */ if(troop_count > 0){ launchTime=fnCalculateLaunchTime(source,target,units[ii],arrivalTime); /* Cache Units that can reach the target on time */ if(launchTime.getTime() > serverTime.getTime()){ isVisible = true; var kontrol1 = units.indexOf("archer"); var kontrol2 = units.indexOf("knight"); if ( kontrol1 == "-1" && kontrol2 == "-1" ) {var unitss=["Mızrak","Kılıç","Balta","Casus","Hafif","Ağır","Şah","Man","Misyoner"];} else if ( kontrol1 == "-1" ) {var unitss=["Mızrak","Kılıç","Balta","Casus","Hafif","Ağır","Şah","Man","Şövalye","Misyoner"];} else if ( kontrol2 == "-1" ) {var unitss=["Mızrak","Kılıç","Balta","Okçu","Casus","Hafif","A.Okçu","Ağır","Şah","Man","Misyoner"];} else {var unitss=["Mızrak","Kılıç","Balta","Okçu","Casus","Hafif","A.Okçu","Ağır","Şah","Man","Şövalye","Misyoner"];} var datee=launchTime.toString(); var dayy=datee.substring(0,3); var monthh=datee.substring(4,7); var day_num=datee.substring(8,10); var year=datee.substring(11,15); var days=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]; var gunler=["Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar"]; var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; var aylar=["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"]; for(j=0;j<days.length;j++){ if (dayy==days[j]){ var day=gunler[j]; } }; for(k=0;k<months.length;k++){ if (monthh==months[k]){ var month=aylar[k]; } }; var time=datee.substring(16,24); output.push([launchTime.getTime(),unitss[ii]+"("+troop_count+") "+source+" köyünden [u]"+day_num+" "+ month+" "+day+"[/u] [b]"+time+"[/b]",e]); } } } } } win.$(e).attr("style","display:"+(isVisible?"table-row":"none")); }); /* Sort by Launch Time in Ascending Order */ output = output.sort(function(a,b){return (a[0]-b[0]);}); for(var qq=0;qq<output.length;qq++){win.$("#combined_table").get(0).tBodies[0].appendChild(output[qq][2]);} /* Clear existing messages and display version */ var srcHTML = ""; srcHTML += "<span style=\"color:red;font-weight:bold\"><center>SALDIRI PLANLAYICISI</center></span>"; srcHTML += "<span style=\"color:green;font-weight:bold\"><center><sub>Broken Castle & Trafik tarafından düzenlenmiştir</sub></center></span>"; srcHTML += "<br/>"; if(output.length > 0){ srcHTML += "<div align=\"center\"><textarea wrap=\"off\" readonly=\"yes\" cols=\"80\" rows=\"" + (output.length+4) + "\" style=\"width:75%;background-color:transparent;border:2px solid #765942;border-radius:10px;\" onfocus=\"this.select();\">"; srcHTML += "[b]Hedef Köy:[/b] "+target+"\n[spoiler=Süreler]\n"; for(ii=0;ii<output.length;ii++){ srcHTML += output[ii][1] + "\n"; } srcHTML += "\n[/spoiler]</textarea></div><br/><br/><br/>"; } else{ srcHTML += "<div align=\"center\"><textarea wrap=\"off\" readonly=\"yes\" cols=\"80\" rows=\"5\" style=\"text-align: center;width:75%;background-color:transparent;border:2px solid #765942;border-radius:10px;\"> \nHiçbir birim istenilen sürede köye yetişemiyor!\n\n Korkusuz Mert Açık (KMA)</textarea></div>"; } win.$("#snipe_output").html(""); win.$("#snipe_output").append(win.$(srcHTML)); } try{ if(game_data.screen == 'overview_villages' && game_data.mode == 'combined') { var author="[email protected]"; var minVer="2.0"; //var win=(window.frames.length>0)?window.main:window; var win = window; var ver=win.game_data.version.match(/[\d|\.]+/g); if(!ver||(parseFloat(ver[1])<minVer)){ alert("Bu script en az v"+minVer+" veya daha üstü bir sürüm gerektirir. \nSenin versiyonun: v"+ver[1]); } else if(win.$("#snipe_output").length <= 0){ var msPerSec=1000; var secsPerMin=60; var minsPerHour=60; var hrsPerDay=24; var msPerMin=msPerSec*secsPerMin; var msPerHour=msPerMin*minsPerHour; var msPerDay=msPerHour*hrsPerDay; var minsPerDay=hrsPerDay*minsPerHour; var version='v4.0'; var unitConfig=fnCreateUnitConfig(); fnInjectOverviewBar(); } } else { UI.InfoMessage('Kombine Sayfasına Gidiliyor', 3000, 'success'); window.location = game_data.link_base_pure + 'overview_villages&mode=combined'; } } catch(objError){ var dbgMsg="Error: " + String(objError.message||objError); alert(dbgMsg); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址