Advertisement
Guest User

ausgleichscript

a guest
Aug 17th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.24 KB | None | 0 0
  1. #UseInterface Web, ColoniePortal, ShipPortal;
  2.  
  3. Var form As New CHtmlForm(New CScriptUrl());
  4. form.Add(New CHtmlBreak());
  5. form.Add('Flotte auswählen:');
  6. form.Add(New CHtmlBreak());
  7. // flotte auswählen :)
  8. Var flottenmenu As New CHtmlListBox('flotte-ncc');
  9. form.Add(flottenmenu);
  10. Var flotten As New CFleetEnumerator();
  11. While(flotten.Next()) {
  12. Var flotte As New CMyFleet(flotten.CurrentFleet.FleetID);
  13. flottenmenu.Add(flotte.Name, flotte.FleetID); }
  14. //flotte auswählen ende.
  15. form.Add(New CHtmlBreak());
  16. form.Add('Rohstoff Auswählen:');
  17. form.Add(New CHtmlBreak());
  18. Var down As New CHtmlListBox('ress');
  19. //down.Add(New CHtmlListBoxItem('Ware', 'leer', True);
  20. down.Add(New CHtmlListBoxItem('Deuterium', 6, False);
  21. down.Add(New CHtmlListBoxItem('Plasma', 18, False);
  22. down.Add(New CHtmlListBoxItem('Nahrung', 2, False);
  23. down.Add(New CHtmlListBoxItem('Erz', 4, False);
  24. down.Add(New CHtmlListBoxItem('Antimaterie', 7, False);
  25. down.Add(New CHtmlListBoxItem('Dilithium', 11, False);
  26. down.Add(New CHtmlListBoxItem('Duranium', 5, False);
  27. down.Add(New CHtmlListBoxItem('Baumaterial', 3, False);
  28. down.Add(New CHtmlListBoxItem('IsoChips', 9, False);
  29. down.Add(New CHtmlListBoxItem('Credits', 31, False);
  30. down.Add(New CHtmlListBoxItem('PhotonenTorpedos', 8, False);
  31. down.Add(New CHtmlListBoxItem('PlasmaTorpedos', 19, False);
  32. down.Add(New CHtmlListBoxItem('QuantenTorpedos', 20, False);
  33. down.Add(New CHtmlListBoxItem('Schild-Torps', 33, False);
  34. down.Add(New CHtmlListBoxItem('Hüllen-Torps', 32, False);
  35. form.Add(down);
  36.  
  37. form.Add(New CHtmlBreak());
  38. form.Add(New CHtmlSubmitButton('Ausgleich !', 'go');
  39. form.Add(New CHtmlBreak());
  40. form.Add(New CHtmlSubmitButton('Energie-Ausgleich ! ;)', 'go-e');
  41. form.Add(New CHtmlBreak());
  42. form.Add(New CHtmlSubmitButton('WK-Ausgleich !', 'go-WK');
  43. form.Add(New CHtmlBreak());
  44. form.Add(New CHtmlSubmitButton('Crew-Ausgleich !', 'go-crew');
  45. form.Add(New CHtmlBreak());
  46.  
  47. If(Request.Form.ContainsKey('go'))
  48. { ausgleich(Request.Form.Item("flotte-ncc")); }
  49.  
  50. If(Request.Form.ContainsKey('go-e'))
  51. { ausgleiche(Request.Form.Item("flotte-ncc")); }
  52. Response.Add(form);
  53.  
  54. If(Request.Form.ContainsKey('go-WK'))
  55. { ausgleichWK(Request.Form.Item("flotte-ncc")); }
  56. Response.Add(form);
  57.  
  58. If(Request.Form.ContainsKey('go-crew'))
  59. { ausgleichCrew(Request.Form.Item("flotte-ncc")); }
  60. Response.Add(form);
  61.  
  62. Function ausgleich(flottenid As Integer) {
  63.  
  64. Var Flotte As New CMyFleet(flottenid);
  65. Var j As Integer;
  66. Var transfer As Integer;
  67. Var sum As Integer;
  68. Var durchschnitt As Integer;
  69. Var Schiff As CMyShip;
  70. Var ZielSchiff As CMyShip;
  71.  
  72. //Flotte.Aktion.SRS_Aktivieren( 1 );
  73. //Durchschnitt Berechnen:
  74. For (Each Schiff In Flotte.Ships)
  75. {
  76. sum = (sum + Schiff.StockRoom.Amount(Request.Form.Item('ress'));
  77. }
  78.  
  79. durchschnitt = (sum / Flotte.Ships.Count);
  80. form.Add("Durchschnitt: " & CStr(durchschnitt));
  81. form.Add(New CHtmlBreak());
  82. //Ausgleichen:
  83. For (Each Schiff In Flotte.Ships){
  84. If(Schiff.StockRoom.Amount(Request.Form.Item('ress')) > durchschnitt) {
  85. j = 0;
  86. While((Schiff.StockRoom.Amount(Request.Form.Item('ress')) > durchschnitt) AND (j < Flotte.Ships.Count))
  87. {
  88. ZielSchiff = Flotte.Ships.Item(j);
  89. If((ZielSchiff.StockRoom.Amount(Request.Form.Item('ress')) < durchschnitt) AND (Schiff.ShipID <> ZielSchiff.ShipID))
  90. {
  91. transfer = (durchschnitt - ZielSchiff.StockRoom.Amount(Request.Form.Item('ress'));
  92. If(transfer > (durchschnitt - ZielSchiff.StockRoom.Amount(Request.Form.Item('ress'))))
  93. {
  94. transfer = (durchschnitt - ZielSchiff.StockRoom.Amount(Request.Form.Item('ress'));
  95. }
  96. If(transfer > 0)
  97. {
  98. form.Add(Schiff.Name & " --( " & transfer & " )-->> " & ZielSchiff.Name);
  99. form.Add(New CHtmlBreak());
  100. Schiff.Action.TransferToShip(ZielSchiff.ShipID, transfer, Request.Form.Item('ress'));
  101. }
  102. }
  103. j = j + 1;
  104. }
  105. }
  106. }
  107. }
  108. // E-Ausgleich ----------------------------------------------------------------
  109. Function ausgleiche(flottenid As Integer) {
  110. Var Flotte As New CMyFleet(flottenid);
  111.  
  112. Var j As Integer;
  113. Var transfer As Integer;
  114. Var sum As Integer;
  115. Var durchschnitt As Integer;
  116. Var Schiff As CMyShip;
  117. Var ZielSchiff As CMyShip;
  118.  
  119. //Flotte.Aktion.SRS_Aktivieren( 1 );
  120.  
  121. For (Each Schiff In Flotte.Ships){
  122. sum = (sum + Schiff.Energy + Schiff.EmergencyBattery);
  123. }
  124.  
  125. durchschnitt = (sum / Flotte.Ships.Count);
  126. form.Add("Durchschnitt: " & CStr(durchschnitt));
  127. form.Add(New CHtmlBreak());
  128.  
  129. For (Each Schiff In Flotte.Ships){
  130. If((Schiff.Energy + Schiff.EmergencyBattery) > durchschnitt) {
  131. j = 0;
  132. While(((Schiff.Energy + Schiff.EmergencyBattery) > durchschnitt) AND (j < Flotte.Ships.Count))
  133. {
  134. ZielSchiff = Flotte.Ships.Item(j);
  135. If(((ZielSchiff.Energy + ZielSchiff.EmergencyBattery) < durchschnitt) AND (Schiff.ShipID <> ZielSchiff.ShipID))
  136. {
  137. transfer = (durchschnitt - (ZielSchiff.Energy + ZielSchiff.EmergencyBattery));
  138. If(transfer > (durchschnitt - (ZielSchiff.Energy + ZielSchiff.EmergencyBattery)))
  139. {
  140. transfer = (durchschnitt - (ZielSchiff.Energy + ZielSchiff.EmergencyBattery));
  141. }
  142. If(transfer > 0)
  143. {
  144. form.Add(Schiff.Name & " --( " & transfer & " )-->> " & ZielSchiff.Name);
  145. form.Add(New CHtmlBreak());
  146. Schiff.Action.TransferToShip(ZielSchiff.ShipID, transfer, EBeamResource.Energy);
  147. }
  148. }
  149. j = j + 1;
  150. }
  151. }
  152. }
  153. }
  154.  
  155. //Ausgleich 'WK'
  156. Function ausgleichWK(flottenid As Integer) {
  157. Var Flotte As New CMyFleet(flottenid);
  158.  
  159. Var j As Integer;
  160. Var transfer As Double;
  161. Var sum As Double;
  162. Var durchschnitt As Double;
  163. Var Schiff As CMyShip;
  164. Var ZielSchiff As CMyShip;
  165.  
  166. //Flotte.Aktion.SRS_Aktivieren( 1 );
  167.  
  168. For (Each Schiff In Flotte.Ships){
  169. sum = (sum + Schiff.WarpCore);
  170. }
  171.  
  172. durchschnitt = (sum / Flotte.Ships.Count);
  173. form.Add("Durchschnitt: " & CStr(durchschnitt));
  174. form.Add(New CHtmlBreak());
  175.  
  176. For (Each Schiff In Flotte.Ships){
  177. If((Schiff.WarpCore) > durchschnitt) {
  178. j = 0;
  179. While(((Schiff.WarpCore) > durchschnitt) AND (j < Flotte.Ships.Count))
  180. {
  181. ZielSchiff = Flotte.Ships.Item(j);
  182. If((ZielSchiff.WarpCore < durchschnitt) AND (Schiff.ShipID <> ZielSchiff.ShipID))
  183. {
  184. transfer = (durchschnitt - ZielSchiff.WarpCore);
  185. If(transfer > (durchschnitt - ZielSchiff.WarpCore))
  186. {
  187. transfer = (durchschnitt - ZielSchiff.WarpCore);
  188. }
  189. If(transfer > 0)
  190. {
  191. form.Add(Schiff.Name & " --( " & transfer & " )-->> " & ZielSchiff.Name);
  192. form.Add(New CHtmlBreak());
  193. Schiff.Action.TransferToShip(ZielSchiff.ShipID, transfer, - 6;
  194. }
  195. }
  196. j = j + 1;
  197. }
  198. }
  199. }
  200. }
  201.  
  202. //Ausgleich 'Crew'
  203. Function ausgleichCrew(flottenid As Integer) {
  204. Var Flotte As New CMyFleet(flottenid);
  205.  
  206. Var j As Integer;
  207. Var transfer As Double;
  208. Var sum As Double;
  209. Var durchschnitt As Double;
  210. Var Schiff As CMyShip;
  211. Var ZielSchiff As CMyShip;
  212.  
  213. //Flotte.Aktion.SRS_Aktivieren( 1 );
  214.  
  215. For (Each Schiff In Flotte.Ships){
  216. sum = (sum + Schiff.Crew);
  217. }
  218.  
  219. durchschnitt = (sum / Flotte.Ships.Count);
  220. form.Add("Durchschnitt: " & CStr(durchschnitt));
  221. form.Add(New CHtmlBreak());
  222.  
  223. For (Each Schiff In Flotte.Ships){
  224. If((Schiff.Crew) > durchschnitt) {
  225. j = 0;
  226. While(((Schiff.Crew) > durchschnitt) AND (j < Flotte.Ships.Count))
  227. {
  228. ZielSchiff = Flotte.Ships.Item(j);
  229. If((ZielSchiff.Crew < durchschnitt) AND (Schiff.ShipID <> ZielSchiff.ShipID))
  230. {
  231. transfer = (durchschnitt - ZielSchiff.Crew);
  232. If(transfer > (durchschnitt - ZielSchiff.Crew))
  233. {
  234. transfer = (durchschnitt - ZielSchiff.Crew);
  235. }
  236. If(transfer > 0)
  237. {
  238. form.Add(Schiff.Name & " --( " & transfer & " )-->> " & ZielSchiff.Name);
  239. form.Add(New CHtmlBreak());
  240. Schiff.Action.TransferToShip(ZielSchiff.ShipID, transfer, - 2);
  241. }
  242. }
  243. j = j + 1;
  244. }
  245. }
  246. }
  247. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement