sander
18-10-2011, 09:12
Es gibt bereits ein fertiges Skript zum Waren bergen in der Skript Bibliothek, dieses habe ich lediglich um das Duranium extrahieren erweitert.
Allerdings verfügen einige Schiffe zusätzlich über lose herumliegende Items, im speziellen bei einigen NPC Schiffen. Gibt es eine Möglichkeit diese ebenfalls "automatisch" zu bergen?
1 //Die* ID* des* Schiffes,* dass* die* Waren bergen* soll,* einfach* in* der* nächsten* Zeile* eintragen.
2
3 Var* myShip* As* CMyShip* =* New* CMyShip(1351021);
4 Var* ship* As* CShip;
5 Var* goods* As* New* CGoodsInfoEnumerator();
6
7 //iterate* all* ships* in* the* SRS
8 For(Each* ship* In* myShip.SRS)
9 {
10 * * //if* the* owner* is* 3* (NobodyNiemand)* then* its* a* wreck
11 * * If(ship.UserID* =* 3)*
12 * * {
13 * * * * goods* =* New* CGoodsInfoEnumerator();* //create* iterator* for* the* goods
14 * * * * WriteLine("Try* to* get* goods* from* "* &* ship.Name* &* "* ("* &* ship.ShipID* &* ")* ...");
15 * * * * While* (goods.Next())* {* //iterate* every* good...
16 * * * * * * If* (ship.StockRoom.Amount(goods.CurrentWarenInfo.Good sType)* >* 0)* {* //...if* there* are* some* of* this* goods* in* the* wreck...
17 * * * * * * * * myShip.Action.TransferFromShip(ship.ShipID,* ship.StockRoom.Amount(goods.CurrentWarenInfo.Goods Type),* goods.CurrentWarenInfo.GoodsType);* //...beam* the* amout* of* the* goods* to* your* ship
18 * * * * * * }
19 * * * * }
20 * * * *
21 * * * * //* Nachdem* die* Waren* geborgen* wurden,* dass* Duranium* aus* dem* Wrack* extrahieren
22 * * * * If* (ship.Hull* >* 5* and* (myShip.Energy* +* myShip.EmergencyBattery)* >* 0* and* myShip.StockRoom.FreeStorage* >* 0){
23 * * * * * * myShip.Action.ActivateTractorBeam(ship.ShipID);
24 * * * * * * myShip.Action.ExtractFromWreck((ship.Hull* -* 5));
25 * * * * * * myShip.Action.DeactivateTractorBeam();
26 * * * * }
27 * * }
28 }
29
Allerdings verfügen einige Schiffe zusätzlich über lose herumliegende Items, im speziellen bei einigen NPC Schiffen. Gibt es eine Möglichkeit diese ebenfalls "automatisch" zu bergen?
1 //Die* ID* des* Schiffes,* dass* die* Waren bergen* soll,* einfach* in* der* nächsten* Zeile* eintragen.
2
3 Var* myShip* As* CMyShip* =* New* CMyShip(1351021);
4 Var* ship* As* CShip;
5 Var* goods* As* New* CGoodsInfoEnumerator();
6
7 //iterate* all* ships* in* the* SRS
8 For(Each* ship* In* myShip.SRS)
9 {
10 * * //if* the* owner* is* 3* (NobodyNiemand)* then* its* a* wreck
11 * * If(ship.UserID* =* 3)*
12 * * {
13 * * * * goods* =* New* CGoodsInfoEnumerator();* //create* iterator* for* the* goods
14 * * * * WriteLine("Try* to* get* goods* from* "* &* ship.Name* &* "* ("* &* ship.ShipID* &* ")* ...");
15 * * * * While* (goods.Next())* {* //iterate* every* good...
16 * * * * * * If* (ship.StockRoom.Amount(goods.CurrentWarenInfo.Good sType)* >* 0)* {* //...if* there* are* some* of* this* goods* in* the* wreck...
17 * * * * * * * * myShip.Action.TransferFromShip(ship.ShipID,* ship.StockRoom.Amount(goods.CurrentWarenInfo.Goods Type),* goods.CurrentWarenInfo.GoodsType);* //...beam* the* amout* of* the* goods* to* your* ship
18 * * * * * * }
19 * * * * }
20 * * * *
21 * * * * //* Nachdem* die* Waren* geborgen* wurden,* dass* Duranium* aus* dem* Wrack* extrahieren
22 * * * * If* (ship.Hull* >* 5* and* (myShip.Energy* +* myShip.EmergencyBattery)* >* 0* and* myShip.StockRoom.FreeStorage* >* 0){
23 * * * * * * myShip.Action.ActivateTractorBeam(ship.ShipID);
24 * * * * * * myShip.Action.ExtractFromWreck((ship.Hull* -* 5));
25 * * * * * * myShip.Action.DeactivateTractorBeam();
26 * * * * }
27 * * }
28 }
29