Scripting:Warbkern ganzer Flotten füllen
Aus STNE-Wiki
Version vom 28. April 2008, 11:57 Uhr von Moax (Diskussion | Beiträge)
--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.