Scripting:Warbkern ganzer Flotten füllen
Aus STNE-Wiki
--Moax 13:57, 28. Apr 2008 (W. Europe Daylight Time)
Warpkern 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 Warpkern 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 Warpkenfü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.