gescriptete Nividiummine produziert zu langsam

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

michathorcale
Posts: 51
Joined: Thu, 24. Apr 08, 21:47
x3tc

Post by michathorcale »

Krass, anscheinend scheint etwas an meinem Script nicht zu stimmen.
Mit dem Script von Cycrow funktionierts nämlich jetzt. *überglücklichbin*

Hm, aber dann frag ich mich was bei mir falsch ist. Immerhin funktionierts ja auch die Station in den TL zu scripten. :o
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Krass, anscheinend scheint etwas an meinem Script nicht zu stimmen.
Skript? Ich dachte du würdest keins benutzen?!
Wenn du möchtest, kannst du es mal hier posten.

MfG,
ScRaT
michathorcale
Posts: 51
Joined: Thu, 24. Apr 08, 21:47
x3tc

Post by michathorcale »

001 $station = Argonen Nividiummine M
002 $xpos = $gate -> get x position
003 $ypos = $gate -> get y position
004 $zpos = $gate -> get z position
005 $zposasteroid = $zpos + 10000
006 $yposasteroid = $ypos + 10000
007 $yposmammut = $ypos + 5000
008 $asteroid = create asteroid: type=1 addto=[SECTOR] resource=2 yield=100 x=$xpos y=$ypos z=$zposasteroid
009 if $asteroid -> exists
010 |$asteroid -> set known status to [TRUE]
011 |$asteroid -> set asteroid scanned to [TRUE]
012 end
013 $mammut = create ship: type=Mammut owner=Player addto=[SECTOR] x=$xpos y=$yposmammut z=$zpos
014 if $mammut -> exists
015 |$addstation = $mammut -> add 1 units of $station
016 end
017 return null

Weiß leider nicht wie ich das anders posten kann...
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Im Code kann ich keine Fehler entdecken.

Könntest du mal, nachdem du die Nividiummine mit diesem Skript erstellt, sie dann selbst aufgebaut hast und sie zur Erzmine geworden ist, folgendes Skript ausführen:

Code: Select all

$aim = get player tracking aim
$wtcode = $aim -> get ware type code of object
write to player logbook $wtcode
Dabei natürlich die Erz/Nividiummine anvisieren.
Den Logbucheintrag dann natürlich hier posten.

MfG,
ScRaT
michathorcale
Posts: 51
Joined: Thu, 24. Apr 08, 21:47
x3tc

Post by michathorcale »

Also im Logbuch steht dann, dass es sich um eine Argonen Erzmine handelt.
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Okay, dann könntest du evtl. mal folgendes versuchen:

Statt:
001 $station = Argonen Nividiummine M

Folgendes:
$aim = get player tracking aim
$station = $aim -> get ware type code of object

D.h. du markierst eine bestehende und funktionierende Nividiummine an (z.B. so eine, die du mittels Cycrows Cheatskript erstellt hast) und lässt dann das Skript auf deinem Schiff laufen.
Mal sehen was dann passiert.

Achja: Was hast du denn an den T-Files verändert? Hast du vllt. aus Versehen auch eine Erzmine zu Nividiummine umbennant.

Das sind übrigens alles nur verzweifelte Versuche das Problem zu lösen. Die Ursache kenne ich nicht. -.-

MfG,
ScRaT
michathorcale
Posts: 51
Joined: Thu, 24. Apr 08, 21:47
x3tc

Post by michathorcale »

Auch hier findet sich die Nividiummine im Frachtraum und wird dann trotzdem zur Erzmine.

Da bin ich ganz sicher, dass ich das nicht hab. Erst recht, nachdem ich alles nochmal neu installiert hatte. Erzmine kopiert und in NIvidiummine umbenannt mit description.

Ich finds langsam irgendwie lustig. Auf eine verzweifelte Art und Weise. :)
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Ja, irgendwie ist es schon lustig. :D

Ich könnte dir noch zwei Sachen vorschlagen:

1. Die Nividiummine an einer Schiffswerft verfügbar machen und von dort aus kaufen und aufbauen. Die Station kannst du einfach über die WareTemplate einfügen oder per Skript. Für letzteres brauchst du sie aber erstmal als Ware - am einfachsten lässt sich das wahrscheinlich über die Main- und Subtypen bestimmen.

2. Da es mit Cycrows Cheatskript ja funktioniert, mach es doch einfach so wie Cycrow. Dafür musst du einfach nur direkt die Mine aufbauen, statt sie erst in einen TL zu stecken. Damit sie auch Schilde, etc. hat musst du noch die Befehle

Code: Select all

$station -> add 4 units of 2 MJ Schild
$station -> factory task on: [TRUE]
verwenden.
Das sollte dann ja auch funktionieren.

MfG,
ScRaT
michathorcale
Posts: 51
Joined: Thu, 24. Apr 08, 21:47
x3tc

Post by michathorcale »

So, die letzten 3 Stunden hab ich ein paar Sachen probiert und gestrichen die Schnauze voll...

1. Hab die Nividiummine an einer Schiffswerft verfügbar gemacht. Es ist egal wie die Nividiummine auf den TL gelangt. Das Problem bleibt. :(

2. Hatte ich auch schon probiert. Funktioniert auch. Will die Nividiummine ja aber gern an einer Schiffswerft kaufen können.

Hab eine neue Erzmine gemoddet. Die funktioniert, wenn sie per Cycrows Script direkt auf einem Erzasteroiden plaziert wird. Aber auch hier taucht das gleiche Problem auf, wenn sie in den TL gescriptet und dann erst gebaut wird. Dabei ist egal, ob sie per Script auf den TL gelangt oder über eine Schiffswerft geladen wird.
Andererseits funktioniert es z.B. mit einer ursprünglichen Munitionsfabrik. Die heißt Nividiumfabrik und ändert auch nicht ihren Namen, nachdem sie aus dem Frachtraum des TL draußen ist.

Da Minen die einzigen Fabriken sind, die auf Asteroiden plaziert werden und nicht einfach im Raum, könnte es doch ein Script/ Datei geben, das/ die das Platzieren von Minen auf Asteroiden mit einem TL regelt. Wäre das denkbar? Denn mit Erzminen, die vorher schon im Spiel vorhanden sind und die in den TL gescriptet werden, funktioniert es. Dann müsste das Script nur soweit abgeändert werden, dass es auch auf neu gemoddete Minen zutrifft.

Hoffe mal, meine Gedanken sind nicht zu weit hergeholt... :)
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Da Minen die einzigen Fabriken sind, die auf Asteroiden plaziert werden und nicht einfach im Raum, könnte es doch ein Script/ Datei geben, das/ die das Platzieren von Minen auf Asteroiden mit einem TL regelt. Wäre das denkbar? Dann müsste das Script nur soweit abgeändert werden, dass es auch auf neu gemoddete Minen zutrifft.
So ein Skript gibt es afaik nicht - zumindest habe ich noch keins gefunden.

Minen werden aber auch nicht wirklich "auf" Asteroiden platziert - sie bringen vielmehr ihr eigenes Asteroidenmodell direkt mit.

Neue Vermutung:

Ich habe mir soeben noch mal die TFactories angeschaut. Dort siehst du für jedes Volk vier Erzminen, obwohl es eigentlich nur 2 gibt (M und L).
Dabei haben "SS_FAC_ORE" und "SS_FAC_ORE2" Größe "M" und "SS_FAC_ORE1" und "SS_FAC_ORE3" Größe "L".
Wenn man in der WareTemplate allerdings nach "SS_FAC_ORE2" und "SS_FAC_ORE3" sucht, findet man keine Schiffswerft, bei der dies als Produkt eingetragen ist.
Da Egosoft diese Minen, die auch andere Scenes benutzen, nicht umsonst gebaut haben wird, vermute ich, dass beim Bau der Mine geregelt wird, welche tatsächlich gebaut wird.

Zu meiner Vermutung passen könnte dann noch die Datei "matches" im Verzeichnis "types". Wie diese funktioniert verstehe ich nicht ganz, aber dort werden genau diese Stationen aufgeführt.

Wie das das Problem lösen kann, weiß ich allerdings nicht.

Idee 1:
Könntest du, falls du es noch nicht gemacht hast, versuchen mehrere Minen hintereinander aufzubauen? Vielleicht ist da ein bisschen Zufall im Spiel...:?:

Idee 2:
Da bei den Matches nach der Scene gefragt wird, könntest du evtl. auf versuchen, die Scene, die du für deine Nividiummine verwendest, zu kopieren und umzubennenen. Im TFactories Eintrag natürlich auf diese Mine verweisen.

MfG,
ScRaT
michathorcale
Posts: 51
Joined: Thu, 24. Apr 08, 21:47
x3tc

Post by michathorcale »

Gute Neuigkeiten: Es läuft. Naja, so halbwegs. Nun hab ich die matches ergänzt, auch die TFactories. Nun ist das Platzieren der Nividiummine aus dem TL kein Problem mehr. Nun heißt sie auch danach Nividiummine.
Allerdings ist nun der Asteroid samt Mine unsichtbar und andocken kann ich auch nicht. Außerdem produziert die Mine -obwohl ich das in der WareTemplate so eingestellt hatte- kein Nividium. Stattdessen benötigt sie als Ressourcen Energiezellen, Argnufleisch und Erz. Ungewöhnlich für ne Mine... und hergestellt wird nix. Naja, vielleicht unterlief mir da ein Fehler...

Bei Schiffen kann man eine bodyfile einstellen, für jedes Schiff ist das ne andere, aber bei den Stationen steht da immer nur "1" als verwendetes bodyfile. :?
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Gute Neuigkeiten: Es läuft. Naja, so halbwegs. Nun hab ich die matches ergänzt, auch die TFactories. Nun ist das Platzieren der Nividiummine aus dem TL kein Problem mehr. Nun heißt sie auch danach Nividiummine.
Also waren die Matches tatsächlich ein Problem? :o
Bei Schiffen kann man eine bodyfile einstellen, für jedes Schiff ist das ne andere, aber bei den Stationen steht da immer nur "1" als verwendetes bodyfile.
Bei Stationen werden generell Scenes verwendet, in denen mehrere Body Files zueinander positioniert werden.
Diese Scene Files für die Minen findest du im Verzeichnis \objects\station\station_scenes\others.
Dort einfach die Datei "argon_mineA_ore_S.bob" kopieren, einfügen und umbennenen. Den Pfad dieser umbenannten Datei dann in der TFactories unter "Scene" angeben.
Falls es nicht direkt funktioniert, am besten nochmal ohne die zusätzlichen Eintrage in der Matches.txt versuchen.

Dass die Mine die falschen Waren produziert ist sehr merkwürdig...
Der Eintrag in der WareTemplate stimmt und kommt auch nicht doppelt vor?

MfG,
ScRaT
michathorcale
Posts: 51
Joined: Thu, 24. Apr 08, 21:47
x3tc

Post by michathorcale »

Nun funktioniert alles! :D
Die Nividiummine steht und produziert was sie soll.
Die matches sind wohl notwendig. Wenn man in der TFactories nachschaut, sind ja dort zwei Erzminen der Größe M aufgelistet. Also hab ich auch 2 Nividiumminen der Größe M gemoddet. Hab dann ein bisschen rumprobiert. Das Script lässt sich wegen "error in line 1", nicht speichern, wenn nur die Nividummine SS_FAC_A_NIVIDIUM (mit der verwendeten Scene: argon_mineA_Nividium_S_scene) vorhanden ist. Wenn in der TFactories allerdings auch die Nividiummine SS_FAC_A_NIVIDIUM_2 (mit der Scene: argon_mineB_Nividium_S_scene) vorhanden ist, dann funktioniert das Script und die gebaute Nividiummine (SS_FAC_A_NIVIDIUM) ist sichtbar.

Hab dann im Spiel die Erzmine SS_FAC_A_ORE_2 (mit der Scene argon_mineB_ore_S_scene) gebaut, anstatt der SS_FAC_A_ORE (mit der Scene argon_mineA_ore_S_scene).
Das Ergebnis war, dass die SS_FAC_A_ORE_2 sichtbar war, während die SS_FAC_A_NIVIDIUM_2 nicht sichtbar war, obwohl ich die Dateien analog zur SS_FAC_A_NIVIDIUM geändert hatte.

Letzlich ist mir das jetzt aber auch egal. mit der SS_FAC_A_NIVIDIUM funktioniert alles und dabei belasse ichs jetzt. :)
Hab vielen Dank für deine Hilfe ScRaT_GER!

Gruß,
michathorcale
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Nun funktioniert alles!
Na endlich! :)
Nur seltsam, dass es bei mir ohne Probleme ging, aber hauptsache es klappt!
Hab vielen Dank für deine Hilfe ScRaT_GER!
Kein Problem!;)

MfG,
ScRaT
User avatar
falconeyes
Posts: 824
Joined: Wed, 6. Nov 02, 20:31
x3tc

Post by falconeyes »

Wenn ich mich recht erinnere, gibt es die alte TerraCorp Nvidiummine noch als Leiche im Code. Ich hatte das mal vor längerem in Cyrows Cheatpaket entdeckt. Da müsste man allerdings das Produkt ändern, denn erstaunlicherweise wird Delexianischer Weizen produziert, wenn man sie mit Cyrows Cheatpaket erstellt.

Mit den Cheats von StarTrekMarc lässt sie sich auch bauen und man kann Nividium als Produkt auswählen, benötigt dann aber, glaube ich, 3 frei wählbare Ressourcen.

Das nur mal so als Tipp für die, die sich nicht trauen die Mine manuell zu scripten.
per ardua ad astra

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”