Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Hier die FlottenID, max. Torpedoanzahl und Art der Torpedos eintragen.
- // (Achtung auf die Rechtschreibung achten! Möglich sind: PhotonenTorpedos, PlasmaTorpedos oder QuantenTorpedos)
- Var flotte As New CMyFleet(133187);
- Var maxTorp As Integer = 3;
- Var torpArt As String = 'QuantenTorpedos';
- // Ab hier nichts mehr verändern!
- Var shipCount As Integer = flotte.Ships.Count;
- Var schiffIDArray[shipCount] As Integer;
- Var schiffTorpArray[shipCount] As Integer;
- Var i As Integer = 0;
- Var j As Integer = 0;
- Var sum As Integer = 0;
- Var d As Integer = 0;
- Var mySchiff As CMyShip;
- flotte.Action.ActivateSRS(True);
- For (Each mySchiff In flotte.Ships) {
- schiffIDArray[i] = mySchiff.ShipID;
- If (torpArt = 'PhotonenTorpedos') {
- schiffTorpArray[i] = mySchiff.StockRoom.Amount(EGoodsType.PhotonTorpedoes);
- } ElseIf (torpArt = 'PlasmaTorpedos') {
- schiffTorpArray[i] = mySchiff.StockRoom.Amount(EGoodsType.PlasmaTorpedoes);
- } ElseIf (torpArt = 'QuantenTorpedos') {
- schiffTorpArray[i] = mySchiff.StockRoom.Amount(EGoodsType.QuantumTorpedoes);
- } Else {
- WriteLine('Fehler in der Torpedo Art! Es wird von Photonentorpedos ausgeganngen.');
- schiffTorpArray[i] = mySchiff.StockRoom.Amount(EGoodsType.PhotonTorpedoes);
- }
- sum = sum + schiffTorpArray[i];
- i++;
- }
- d = Math.Ceiling((sum / shipCount);
- If (torpArt = 'PhotonenTorpedos') {
- WriteLine('Durchschnitt: ' & d & ' Photonentorpedos');
- } ElseIf (torpArt = 'PlasmaTorpedos') {
- WriteLine('Durchschnitt: ' & d & ' Plasmatorpedos');
- } ElseIf (torpArt = 'QuantenTorpedos') {
- WriteLine('Durchschnitt: ' & d & ' Quantentorpedos');
- } Else {
- WriteLine('Durchschnitt: ' & d & ' Photonentorpedos');
- }
- i = 0;
- Var somethingDone As Boolean = True;
- Var differenz As Integer = 0;
- Var transferMenge As Integer = 0;
- Var geberSchiffIndex As Integer = 0;
- Var counter As Integer = 0;
- Var torpsGeberSchiff As Integer = 0;
- Do {
- Array.Sort(schiffTorpArray, schiffIDArray);
- somethingDone = False;
- mySchiff = New CMyShip(schiffIDArray[0]);
- If (maxTorp > schiffTorpArray[0]) {
- differenz = d - schiffTorpArray[0];
- If (differenz > 0) {
- geberSchiffIndex = findPerfectMatch(differenz);
- If (geberSchiffIndex > 0) {
- mySchiff = New CMyShip(schiffIDArray[geberSchiffIndex]);
- torpsGeberSchiff = schiffTorpArray[geberSchiffIndex];
- If (torpArt = 'PhotonenTorpedos') {
- mySchiff.Action.TransferToShip(schiffIDArray[0], differenz, EBeamResource.PhotonTorpedoes);
- } ElseIf (torpArt = 'PlasmaTorpedos') {
- mySchiff.Action.TransferToShip(schiffIDArray[0], differenz, EBeamResource.PlasmaTorpedoes);
- } ElseIf (torpArt = 'QuantenTorpedos') {
- mySchiff.Action.TransferToShip(schiffIDArray[0], differenz, EBeamResource.QuantumTorpedoes);
- } Else {
- WriteLine('Fehler in der Torpedo Art! Es wird von Photonentorpedos ausgeganngen.');
- mySchiff.Action.TransferToShip(schiffIDArray[0], differenz, EBeamResource.PhotonTorpedoes);
- }
- If (torpArt = 'PhotonenTorpedos') {
- transferMenge = torpsGeberSchiff - mySchiff.StockRoom.Amount(EGoodsType.PhotonTorpedoes);
- } ElseIf (torpArt = 'PlasmaTorpedos') {
- transferMenge = torpsGeberSchiff - mySchiff.StockRoom.Amount(EGoodsType.PlasmaTorpedoes);
- } ElseIf (torpArt = 'QuantenTorpedos') {
- transferMenge = torpsGeberSchiff - mySchiff.StockRoom.Amount(EGoodsType.QuantumTorpedoes);
- } Else {
- WriteLine('Fehler in der Torpedo Art! Es wird von Photonentorpedos ausgeganngen.');
- transferMenge = torpsGeberSchiff - mySchiff.StockRoom.Amount(EGoodsType.PhotonTorpedoes);
- }
- schiffTorpArray[0] = schiffTorpArray[0] + transferMenge;
- schiffTorpArray[geberSchiffIndex] = schiffTorpArray[geberSchiffIndex] - transferMenge;
- somethingDone = True;
- counter++;
- }
- }
- }
- }
- While (somethingDone and counter < shipCount);
- Function findPerfectMatch(differenzValue As Integer) As Integer {
- Var returnValue As Integer = 0;
- If (differenzValue > schiffTorpArray[shipCount - 1] - d) {
- differenz = schiffTorpArray[shipCount - 1] - d;
- returnValue = (shipCount - 1);
- } Else {
- For (i = shipCount - 1 To 1 Step - 1) {
- If (differenzValue <= schiffTorpArray[i] - d) {
- returnValue = i;
- }
- }
- }
- Return returnValue;
- }
Add Comment
Please, Sign In to add comment