PDA

View Full Version : Freien Laderaum überprüfen



Saboti
08-04-2013, 09:04
Hi zusammen,

ich will in einem Script Deuterium auf 2 unterschiedliche Transporter und ein Depot Beamen bis diese voll sind.
Bekomme aber irgendwie die Abfrage nicht so ganz hin.
Hier mal der Auszug was ich habe:



Var Ship As CMyShip;
Var Deutfleet As New CMyFleet(60760);
Var freestoragetrans1 As Integer;
Var freestoragetrans2 As Integer;
Var freestoragedepot As Integer;
freestoragetrans1 = Trans1.StockRoom.FreeStorage;
freestoragetrans2 = Trans2.StockRoom.FreeStorage;
freestoragedepot = Depot.StockRoom.FreeStorage;

For (Each Ship In Deutfleet.Ships)
{
If(freestoragetrans1 < 10){
WriteLine("Transportiere zu Trans2 - Freier Laderaum Trans1:" & Trans1.StockRoom.FreeStorage);
Ship.Action.TransferToShip(Trans2.ShipID, Ship.StockRoom.Amount(EGoodsType.Deuterium), EBeamResource.Deuterium);
}
elseif(freestoragetrans2 < 10){
WriteLine("Transportiere zu Trans1 - Freier Laderaum Trans2:" & Trans2.StockRoom.FreeStorage);
Ship.Action.TransferToShip(Trans1.ShipID, Ship.StockRoom.Amount(EGoodsType.Deuterium), EBeamResource.Deuterium);
}
else{
WriteLine("Transportiere zu Depot - Freier Laderaum Depot:" & Depot.StockRoom.FreeStorage);
Ship.Action.TransferToShip(Depot.ShipID, Ship.StockRoom.Amount(EGoodsType.Deuterium), EBeamResource.Deuterium);
}
}


Kann mir da jemand weiterhelfen wie ich das hinbekommen könnte? Ich denke das evtl. mein ganzer Ansatz falsch ist..?

Gruß Saboti

quor
24-04-2013, 20:48
Var Ship As CMyShip;
Var Deutfleet As New CMyFleet(60760);
Var freestoragetrans1 As Integer;
Var freestoragetrans2 As Integer;
Var freestoragedepot As Integer;
freestoragetrans1 = Trans1.StockRoom.FreeStorage;
freestoragetrans2 = Trans2.StockRoom.FreeStorage;
freestoragedepot = Depot.StockRoom.FreeStorage;

For (Each Ship In Deutfleet.Ships)
{
If(freestoragetrans1 < 10){
WriteLine("Transportiere zu Trans2 - Freier Laderaum Trans1:" & Trans1.StockRoom.FreeStorage);
Ship.Action.TransferToShip(Trans2.ShipID, Ship.StockRoom.Amount(EGoodsType.Deuterium), EBeamResource.Deuterium);



Falls er obige Code alles ist fehlen die Definitionen zu Trans2, Trans1 und Depot.


Das ist erstmal das was mir aufgefallen ist. Viel Erfolg.