Scripting:Warbkern ganzer Flotten füllen

Aus STNE-Wiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche

Version vom 28. April 2008, 11:57 Uhr

--Moax 13:57, 28. Apr 2008 (W. Europe Daylight Time)

Warbkern ganzer Flotten füllen

Das Skript

//Eingaben: 
//Automatische Flotte 
Var flotte As New CMyFlotte(79941);// 
//Basis vorhanden oder nicht 
Var basisVorhanden As Boolean = true; 
//Basis 
Var basisID As Integer = 714966; 
//Kolonie 
Var koloID As Integer = 33233; 
//Füllhöhe 
Var wkFüllung As Integer = 1000; 


//Ab hier nichts mehr ändern, ansonsten keine Gewähr(eigentlich auch so nicht ;oP ) 
Var mySchiff As CMyShip; 
Var schilde_an As Boolean = false; 
Var srs_an As Boolean = false; 
Var i As Integer; 

//Dieser Wert berechnet die Füllungsanzahl pro Beamvorgang bzgl. des Lagers 
Var füllungMöglich As Integer; 
Var füllungsAnzahl As Integer; 
Var basis As CMyShip = New CMyShip(basisID); 
For (Each mySchiff In flotte.Ships) { 
  If (checkPosition(mySchiff.MapPosition)) { 
    If (Math.Floor((wkFüllung - mySchiff.Warpkern) / 50) > 0) { 
      schilde_an = false; 
      srs_an = false; 
      If (mySchiff.SRS_Aktiv) { 
        srs_an = true; 
      }Else { 
        mySchiff.Aktion.SRS_Aktivieren(true); 
      } 
      If (basisVorhanden) { 
        If (mySchiff.SchildeAktiv) { 
          mySchiff.Aktion.SchildeAktivieren(false); 
          schilde_an = true; 
        } 
        If ( NOT mySchiff.Angedockt) {} 
        mySchiff.Aktion.AndockenAn(basisID); 
      } 
      füllungsAnzahl = Math.Floor((wkFüllung - mySchiff.Warpkern) / 50); 
      füllungMöglich = Math.Floor(mySchiff.Lager.FreieKapazität / 5); 
      If (füllungMöglich > 0) { 
        i = 0; 
        While(füllungsAnzahl > füllungMöglich * (++i)) { 
          fülleWK(füllungMöglich); 
        } 
        i = i - 1: 
        fülleWK(füllungsAnzahl - (füllungMöglich * i)); 
      } 
      mySchiff.Aktion.Abdocken(); 
      If (basisVorhanden) { 
        mySchiff.Aktion.SchildeAktivieren(schilde_an); 
      } 
      mySchiff.Aktion.SRS_Aktivieren(srs_an); 
    } 
  } 
} 

Function fülleWK(anzahl As Integer) { 
  If (anzahl > 0) { 
    mySchiff.Aktion.TransferiereVonKolonie(koloID, anzahl * 2, EBeamRessource.Antimaterie); 
    mySchiff.Aktion.TransferiereVonKolonie(koloID, anzahl * 2, EBeamRessource.Deuterium); 
    mySchiff.Aktion.TransferiereVonKolonie(koloID, anzahl, EBeamRessource.Dilithium); 
    mySchiff.Aktion.WarpkernNachfüllen(anzahl); 
  } 
} 

Function checkPosition(pos As SMapPosition) As Boolean { 
  If (basisVorhanden = true) { 
    Return (pos = basis.MapPosition); 
  }Else { 
    Return true; 
  } 
}

Kommentar

Also mit diesen Script ist es möglich, ganze Flotten voll Automatisch, von einer Basis/Planeten aus, die Flotten mit Warbkern zufüllen. Sehr praktisch wenn man eine 80 Flotte bei einer Basis mit Orbitalseil hat braucht man nicht alle 20 Schiffe ab und andocken. Man gibt die Flotten ID in CMyFlotte(xxxxxx) eingeben, dann noch die Basis ID in Var basisID As Integer = xxxxxx und dann noch die Planeten ID in Var koloID As Integer = xxxxx eingeben und es kann schon losgehen. Ihr könnt aber auch die Warkenfüllung selbst bestimmen im Moment ist das Script auf eine WK Füllung von 1ooo ausgelegen wenn ihr nur die hälfte haben wollt gebt bei Var wkFüllung As Integer = 500 ein.

Persönliche Werkzeuge