// ==UserScript== // @name OGame: Perfect Plunder // @namespace https://greasyfork.org/users/4668-black-cat // @description OGame: Displays how many small transporters or large transporters needed to raid the planet or moon // @version 5.4 // @creator Black Cat // @include http://*.ogame.gameforge.com/game/index.php?page=messages* // @require https://greasyfork.org/scripts/4442-ogame-localization/code/OGame:%20Localization.js // @run-at document-end // @downloadURL none // ==/UserScript== var strFunc = (function(){ var str_title = "Perfect Plunder"; var str_small_cargo = "Small Transporter"; var str_large_cargo = "Large Transporter"; var locData = localStorage.getItem("localization.data"); if (locData) { locData = JSON.parse(locData); str_small_cargo = locData.techs["202"]; str_large_cargo = locData.techs["203"]; } var plunder = function(metal, crystal, deuterium, coeff, capacity) { /* 1/ On élimine du calcul la moitiée du métal, cristal et deutérium de la planète 2/ On remplit le tiers de la capacité de fret des vaisseaux avec tout le métal disponible 3/ Ensuite, on remplit la moitiée de la capacité restante avec le plus de cristal disponible 4/ Enfin, on bourre le deut dans ce qu'il reste 5/ On remplit la moitiée de la capacité disponible avec le métal 6/ On prend tout le cristal restant, dans la limite de la capacité bien sûr */ var temp; var pl_metal = 0; var pl_crystal = 0; var pl_deuterium = 0; var pl_resources; // 1 var rem_metal = Math.floor(metal * coeff); var rem_crystal = Math.floor(crystal * coeff); var rem_deuterium = Math.floor(deuterium * coeff); // 2 temp = Math.min(Math.ceil(capacity/3), rem_metal); pl_metal += temp; rem_metal -= temp; capacity -= temp; // 3 temp = Math.min(Math.ceil(capacity/2), rem_crystal); pl_crystal += temp; rem_crystal -= temp; capacity -= temp; // 4 temp = Math.min(capacity, rem_deuterium); pl_deuterium += temp; rem_deuterium -= temp; capacity -= temp; // 5 temp = Math.min(Math.ceil(capacity/2), rem_metal); pl_metal += temp; rem_metal -= temp; capacity -= temp; // 6 temp = Math.min(capacity, rem_crystal); pl_crystal += temp; rem_crystal -= temp; capacity -= temp; pl_resources = new Array(pl_metal, pl_crystal, pl_deuterium); return pl_resources; } Array.prototype.sum = function() { var sum = 0; for (var i=0; i .showmessage").each(function(){ var tables = this.getElementsByClassName("material spy"); if (tables.length > 0) { if ($(this).hasClass("plunder")) return; $(this).addClass("plunder"); showPlunder(tables); } }); } }); }).toString(); var script = document.createElement("script"); script.setAttribute("type","text/javascript"); script.text = "(" + strFunc + ")();"; document.body.appendChild(script);