Scripting:Energieausgleich

Aus STNE-Wiki

Wechseln zu: Navigation, Suche

--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 .

Persönliche Werkzeuge