Ich habe leider schon wieder ein Problem. Nachdem das Script jetzt an sich gut funktioniert dachte ich mir ich baue noch eine zweite Fabrik ins Spiel mit ein.
Also habe ich das Script jetzt so verändert:
Code: Select all
if [THIS]->is of type {Terraner M/AM-Gefechtskopffertigung 7619}
* Falsche Produkte entfernen + Fabrik stoppen
$Product = [THIS]->get product ware
[THIS]->remove product from factory or dock: $Product
[THIS]->factory production task: on=[FALSE]
* ----------------------------------------------------------------
* richtige Produkte einfügen und Produktion wieder starten
[THIS]->add product to factory or dock: {M/AM-Gefechtskopf}
[THIS]->factory production task: on=[TRUE]
end
if [THIS]->is of type {Terraner Raketenfabrik Glühwürmchen}
* Falsche Produkte entfernen + Fabrik stoppen
$Product = [THIS]->get product ware
[THIS]->remove product from factory or dock: $Product
[THIS]->factory production task: on=[FALSE]
* ----------------------------------------------------------------
* richtige Produkte einfügen und Produktion wieder starten
[THIS]->add product to factory or dock: {Glühwürmchen Rakete}
[THIS]->factory production task: on=[TRUE]
end
return null
Das Script erkennt jedoch den Unterschied zwischen den Fabriken nicht. Das heißt wenn ich das Script auf meiner Terraner M/AM-Gefechtskopffertigung per Kommando ausführe, dann hat die Fabrik als Produkt die Glühwürmchen Rakete. Drehe ich im Script die Fabriken habe ich das gleiche Phänomen nur andersrum, daß heißt dann hat die Glühwürmchen Raketenfabrik als Produkt M/AM-Gefechtsköpfe.
Führe ich das Script aber auf einer anderen Fabrik (Planktonfarm, Raketenfabrik Poltergeist, Traumfabrik) dann tut es gar nichts, erkennt also offenbar das keine richtige Fabrik vorhanden ist. Woran liegt das?
EDIT: Ich habe jetzt noch weiter rum probiert, dazu hab ich das Script umgeschrieben
Code: Select all
if [THIS]->is of type {Terraner M/AM-Gefechtskopffertigung 7619}
* Falsche Produkte entfernen + Fabrik stoppen
$Product = [THIS]->get product ware
[THIS]->remove product from factory or dock: $Product
[THIS]->factory production task: on=[FALSE]
* ----------------------------------------------------------------
* richtige Produkte einfügen und Produktion wieder starten
[THIS]->add product to factory or dock: {M/AM-Gefechtskopf}
[THIS]->factory production task: on=[TRUE]
end
= wait 50000ms
if [THIS]->is of type {Terraner Raketenfabrik Poltergeist 6_432}
* Falsche Produkte entfernen + Fabrik stoppen
$Product = [THIS]->get product ware
[THIS]->remove product from factory or dock: $Product
[THIS]->factory production task: on=[FALSE]
* ----------------------------------------------------------------
* richtige Produkte einfügen und Produktion wieder starten
[THIS]->add product to factory or dock: {Glühwürmchen Rakete}
[THIS]->factory production task: on=[TRUE]
end
return null
Das Ergebnis ist das die Poltergeist Fabrik gemäß dem Script die Glühwürmchen Rakete zugeordnet bekommt. Sowohl M/AM Gefechtskopffabrik als auch die Glühwürmchen Raketenfabrik bekommen als Produkt M/AM Gefechtsköpfe. Eigentlich sollte die Glühwürmchen Raketenfabrik aber gar kein Produkt bekommen?!
EDIT2: Ich habe das Script jetzt nochmal erweitert und mir den Type ins Logbuch schreiben lassen.
Code: Select all
$my.type = [THIS] -> get ware type code of object
write to player logbook $my.type
Terraner Raketenfabrik Glühwürmchen = Terraner Raketenfabrik Glühwürmchen
Terraner Raketenfabrik Poltergeist = Terraner Raketenfabrik Poltergeist
Terraner M/AM-Gefechtskopffertigung = Terraner M/AM-Gefechtskopffertigung
Also er liest den Typ richtig aus, aber trotzdem läuft das Script auch bei der falschen Fabrik.