Scripting:Energieausgleich
Aus STNE-Wiki
--Moax 14:07, 28. Apr 2008 (W. Europe Daylight Time)=Energie ausgleich von Flotten=
Das Skript
Var Flotte As New CMyFlotte(74725); Var Schiffe As CShipList = Flotte.Ships; Var i As Integer Var j As Integer Var transfer As Integer; Var sum As Integer; Var durchschnitt As Integer; Var Schiff As CMyShip; Var ZielSchiff As CMyShip; Var ShipEnum As IEnumerator; Flotte.Aktion.SRS_Aktivieren(True); For (Each Schiff In Flotte.Ships) { sum = (sum + Schiff.Energie); } durchschnitt = (sum / Flotte.Ships.Count); WriteLine("Durchschnitt: " & CStr(durchschnitt)); i = 0; While(i < Flotte.Ships.Count) { Schiff = Flotte.Ships.Item(i); If(Schiff.Energie > durchschnitt) { j = 0; While((Schiff.Energie > durchschnitt) AND (j < Flotte.Ships.Count)) { ZielSchiff = Flotte.Ships.Item(j); If((ZielSchiff.Energie < durchschnitt) AND (Schiff.ShipID <> ZielSchiff.ShipID)) { transfer = (Schiff.Energie - durchschnitt); //WriteLine( CStr( transfer ) & ", " & CStr( ZielSchiff.Energie ) & ", " & CStr( durchschnitt ) ); If(transfer > (durchschnitt - ZielSchiff.Energie)) { transfer = (durchschnitt - ZielSchiff.Energie); } If(transfer > 0) { //WriteLine( "Von: " & Schiff.Name & ", Nach: " & ZielSchiff.Name ); Schiff.Aktion.TransferiereZuSchiff(ZielSchiff.ShipID, transfer, EBeamRessource.Energie); } } j = j + 1; } } i = i + 1; }
Kommentar
Bei diesem Script muss das SRS on sein. Wenn man unter Var Flotte As New CMyFlotte(xxxxx) die Flotten ID einstellt und auf ausführen geht, bekommen alle Schiffe in der Flotte die gleiche Energie.
Ein Beispiel: Wenn du 10 Schiffe hast mit 5,3,8,15,5,8,1,0,10,20 EPS dann stellt das Script alle Schiffe auf den Durchschnittswert in dem Fall auf 7 .