Guest User

Untitled

a guest
Apr 21st, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. // Hier die FlottenID, max. Torpedoanzahl und Art der Torpedos eintragen.
  2. // (Achtung auf die Rechtschreibung achten! Möglich sind: PhotonenTorpedos, PlasmaTorpedos oder QuantenTorpedos)
  3. Var flotte As New CMyFleet(133187);
  4. Var maxTorp As Integer = 3;
  5. Var torpArt As String = 'QuantenTorpedos';
  6.  
  7. // Ab hier nichts mehr verändern!
  8. Var shipCount As Integer = flotte.Ships.Count;
  9. Var schiffIDArray[shipCount] As Integer;
  10. Var schiffTorpArray[shipCount] As Integer;
  11. Var i As Integer = 0;
  12. Var j As Integer = 0;
  13. Var sum As Integer = 0;
  14. Var d As Integer = 0;
  15. Var mySchiff As CMyShip;
  16.  
  17. flotte.Action.ActivateSRS(True);
  18.  
  19. For (Each mySchiff In flotte.Ships) {
  20. schiffIDArray[i] = mySchiff.ShipID;
  21. If (torpArt = 'PhotonenTorpedos') {
  22. schiffTorpArray[i] = mySchiff.StockRoom.Amount(EGoodsType.PhotonTorpedoes);
  23. } ElseIf (torpArt = 'PlasmaTorpedos') {
  24. schiffTorpArray[i] = mySchiff.StockRoom.Amount(EGoodsType.PlasmaTorpedoes);
  25. } ElseIf (torpArt = 'QuantenTorpedos') {
  26. schiffTorpArray[i] = mySchiff.StockRoom.Amount(EGoodsType.QuantumTorpedoes);
  27. } Else {
  28. WriteLine('Fehler in der Torpedo Art! Es wird von Photonentorpedos ausgeganngen.');
  29. schiffTorpArray[i] = mySchiff.StockRoom.Amount(EGoodsType.PhotonTorpedoes);
  30. }
  31. sum = sum + schiffTorpArray[i];
  32. i++;
  33. }
  34.  
  35. d = Math.Ceiling((sum / shipCount);
  36. If (torpArt = 'PhotonenTorpedos') {
  37. WriteLine('Durchschnitt: ' & d & ' Photonentorpedos');
  38. } ElseIf (torpArt = 'PlasmaTorpedos') {
  39. WriteLine('Durchschnitt: ' & d & ' Plasmatorpedos');
  40. } ElseIf (torpArt = 'QuantenTorpedos') {
  41. WriteLine('Durchschnitt: ' & d & ' Quantentorpedos');
  42. } Else {
  43. WriteLine('Durchschnitt: ' & d & ' Photonentorpedos');
  44. }
  45.  
  46.  
  47. i = 0;
  48. Var somethingDone As Boolean = True;
  49. Var differenz As Integer = 0;
  50. Var transferMenge As Integer = 0;
  51. Var geberSchiffIndex As Integer = 0;
  52. Var counter As Integer = 0;
  53. Var torpsGeberSchiff As Integer = 0;
  54.  
  55. Do {
  56. Array.Sort(schiffTorpArray, schiffIDArray);
  57. somethingDone = False;
  58. mySchiff = New CMyShip(schiffIDArray[0]);
  59. If (maxTorp > schiffTorpArray[0]) {
  60. differenz = d - schiffTorpArray[0];
  61. If (differenz > 0) {
  62. geberSchiffIndex = findPerfectMatch(differenz);
  63. If (geberSchiffIndex > 0) {
  64. mySchiff = New CMyShip(schiffIDArray[geberSchiffIndex]);
  65. torpsGeberSchiff = schiffTorpArray[geberSchiffIndex];
  66. If (torpArt = 'PhotonenTorpedos') {
  67. mySchiff.Action.TransferToShip(schiffIDArray[0], differenz, EBeamResource.PhotonTorpedoes);
  68. } ElseIf (torpArt = 'PlasmaTorpedos') {
  69. mySchiff.Action.TransferToShip(schiffIDArray[0], differenz, EBeamResource.PlasmaTorpedoes);
  70. } ElseIf (torpArt = 'QuantenTorpedos') {
  71. mySchiff.Action.TransferToShip(schiffIDArray[0], differenz, EBeamResource.QuantumTorpedoes);
  72. } Else {
  73. WriteLine('Fehler in der Torpedo Art! Es wird von Photonentorpedos ausgeganngen.');
  74. mySchiff.Action.TransferToShip(schiffIDArray[0], differenz, EBeamResource.PhotonTorpedoes);
  75. }
  76. If (torpArt = 'PhotonenTorpedos') {
  77. transferMenge = torpsGeberSchiff - mySchiff.StockRoom.Amount(EGoodsType.PhotonTorpedoes);
  78. } ElseIf (torpArt = 'PlasmaTorpedos') {
  79. transferMenge = torpsGeberSchiff - mySchiff.StockRoom.Amount(EGoodsType.PlasmaTorpedoes);
  80. } ElseIf (torpArt = 'QuantenTorpedos') {
  81. transferMenge = torpsGeberSchiff - mySchiff.StockRoom.Amount(EGoodsType.QuantumTorpedoes);
  82. } Else {
  83. WriteLine('Fehler in der Torpedo Art! Es wird von Photonentorpedos ausgeganngen.');
  84. transferMenge = torpsGeberSchiff - mySchiff.StockRoom.Amount(EGoodsType.PhotonTorpedoes);
  85. }
  86. schiffTorpArray[0] = schiffTorpArray[0] + transferMenge;
  87. schiffTorpArray[geberSchiffIndex] = schiffTorpArray[geberSchiffIndex] - transferMenge;
  88. somethingDone = True;
  89. counter++;
  90. }
  91. }
  92. }
  93. }
  94. While (somethingDone and counter < shipCount);
  95.  
  96. Function findPerfectMatch(differenzValue As Integer) As Integer {
  97. Var returnValue As Integer = 0;
  98. If (differenzValue > schiffTorpArray[shipCount - 1] - d) {
  99. differenz = schiffTorpArray[shipCount - 1] - d;
  100. returnValue = (shipCount - 1);
  101. } Else {
  102. For (i = shipCount - 1 To 1 Step - 1) {
  103. If (differenzValue <= schiffTorpArray[i] - d) {
  104. returnValue = i;
  105. }
  106. }
  107. }
  108. Return returnValue;
  109. }
Add Comment
Please, Sign In to add comment