[Anleitung V0.9b] neue/veränderte Waffen / neue Munition / neue Fabriken

Hier ist der ideale Ort um über Scripts und Mods für X³: Reunion zu diskutieren.

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

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

[Anleitung V0.9b] neue/veränderte Waffen / neue Munition / neue Fabriken

Post by DaOpa » Sun, 25. Nov 07, 20:16

Moin

Diese Anleitung befasst sich mit dem Verändern/Erstellen von Waffen in X³. Das Hinzufügen von neuen Waren (Munition) und entsprechender Fabriken (für Munition/Waffen) wird ebenso erklärt.

Jeder muss selbst wissen was er/sie alles verändern/erstellen möchte. Somit muss sich jeder die entsprechenden Abschnitte aussuchen, welche die benötigten Informationen enthalten.

Dies ist noch eine Beta-Version! Konstruktive Kritik, Verbesserungen etc. sind sehr erwünscht!

Mein Dank gilt UniTrader!

Übersicht

Grundlegendes
Bezeichnungen und Beschreibungen hinzufügen
Neue Munition/Ware hinzufügen (Optional)
Bullets bearbeiten
Waffen bearbeiten/erstellen
Schiffen die Waffen zuweisen
Waren den Fabriken zuweisen für KI
Fabriken hinzufügen
Waren den Fabriken zuweisen für KI
Fabriken zu Schiffswerften hinzufügen
und Waren zu HS/AD's

Spielerfabriken die Ressourcen und das Produkt zuweisen
erstellte Fabriken im Spiel aufstellen


________________________________________________________________________________________________

Grundlegendes

# Die Anleitung wurde mit dem X3 Editor Patch 0.15 erstellt.

# Das Einbinden von selbst erstellten Effekten, Sounds und Modellen wird nicht erklärt.

# Die bloße Veränderung bestehender Bullets und Waffen macht keinen Neustart erforderlich! Auch können Waren hinzugefügt werden. Weitere Veränderungen machen einen Neustart erforderlich (sind gekennzeichnet)!

# Im Spiel sind maximal 32 Waffen möglich! D.h. maximal 3 neue Waffen
# Neue Waffen kann man nur über das HUD installieren! Andere Lösung ist nicht bekannt Daher empfiehlt es sich sich bestehende Waffen umzugestalten. (z.B. Erschütterungsimpulsgenerator)

# Fast jede Ware kann als Munition genutzt werden. Die Kapazität der "Magazine" kann nicht beeinflusst werden! Es kann nur eine Ware je Waffe als Munition genutzt werden (Beispiel: PK-Munition + Energiezellen ist nicht möglich)

#Ich rate immer Sicherungskopien der Dateien anzulegen, welche man verändert, da keine Haftung für Schäden an Spielständen etc. übernommen wird.

# Veränderungen als Fake-Patch: Höchste cat/dat kopieren und mit nächst größter Nummer einfügen. Alle bearbeiteten Dateien vor dem bearbeiten mittels MOD-Manager extrahieren und in die neue cat/dat einfügen und dort bearbeiten. (nur so gelang es mir mit X3 2.5, ohne das X3 als 2.0.0.2 gestartet wurde)

# Veränderungen als eigenständiger MOD: Vorgehensweise wie beim Fake-Patch, nur das man die cat/dat individuell benennen kann (gehören dann in den 'MOD'-Ordner)
_________________________________________________________________________________________________


Bezeichnungen und Beschreibungen hinzufügen

Jedes neue Objekt braucht eine Bezeichnung, damit man es im Spiel auch finden kann!
Es gibt zwei Möglichkeiten

1. Möglichkeit

- X3 Editor -> Text Resource Editor -> höchste.cat mit \t\490001.pck öffnen
- ID 17 (Boardcomp. objekts) -> eine nicht vorhandene ID hinzufügen und die Bezeichnung eintragen, anschließend unter der gewählten ID+1 die dazugehörige Beschreibung eintragen.
- dies so oft wiederholen, bis alle gewünschten Objektbezeichungen eingetragen sind.

2. Möglichkeit (empfohlen)

Schritt 1:
- ein neues T-File in ...X3 Reunion/t/ anlegen mit einer freien ID (49xxxx.xml)
- folgenden Inhalt eintragen und was in "{}" steht durch eigene Werte/Angaben ersetzen! Die "{}" entfallen natürlich!

Code: Select all

<?xml version="1.0" encoding="utf-8" ?>
<language id="49">
<page id="17" title="" descr="">
 <t id="{deine ID}">{deine Bezeichnung}</t>
 <t id="{deine ID+1}">{deine Beschreibung}</t>
</page>
</language>
- für weitere Einträge mehr Zeilen "<t id=..." vor "</page>" hinzufügen.

Schritt 2:
- ein Script zum laden des T-Files schreiben
- Scripteditor (öffen durch "Schift+C" -> "s") weiter siehe Code:

Code: Select all

"<new Script>" wählen
->Scriptname = "setup.plugin.{eigene Bezeichnung}"
->Version und Beschreibung nach eigenen Wünschen bearbeiten (unnötig)
unter "Code" "<new line>" auswählen
-> 'General Commands' -> "load text: id=<Var/Number>" auswählen
-> herunterscrollen und "<Number>" auswählen -> die T-File ID ohne Sprachkennung (49) eintragen

mit ESC verlassen und 'speichern' bestätigen
Diese kann nun im Scripteditor mit "r" sofort aktiviert werden ("r" drücken und mit "ENTER" durchklicken). Da es ein setup-Script ist, wird es automatisch beim Laden eines Spielstandes oder Neustart geladen.

________________________________________________________________________________________________

Neue Munition/Ware hinzufügen (Optional)

- X3 Editor -> TXT Editor -> höchste.cat\types\Twaret.pck öffnen
- einen neuen Eintrag erstellen und bearbeiten
- Wichtig: den Eintrag 'index' um eins höher wählen als bei der letzten Ware (sollte 80 ff sein)
- Wichtig: nicht die 'SS_WARE_NEW_xx' nutzen! Damit erstellt man Erweiterungen!
- Wichtig: Waffen nicht eintragen!

Übersicht eines Eintrages in der TwareT.pck:

Code: Select all

ID_________________"SS_WARE_{z.B.AMMUNITION_BETA}
Name_______________automatisch gesetzt!
Body file__________28*
Picture ID_________0*
Rotation X_________0*
Rotation Y_________0*
Rotation Z_________0*
Index______________{höchster genutzter Index + 1} (sollte 80 ff sein)
Description________{die ID der passenden Bezeichnung eintragen} (ID aus T-File)
Volume_____________{Anzahl Einheiten des benötigten Laderaums um eine Einheit zu transportieren}
Production RelVal (NPC)_____#
Price modifier (1)__________#
Price modifier (2)__________#
Ware class_________Auswahl der Containergröße
Production RelVal (player)__#
Min. Notoriety______________#
Video ID___________0*
Skin index_________0*
Das Symbol "*" kennzeichnet die Werte, welchen so gesetzt werden sollen.
Das Symbol "#" kennzeichnet die Werte, welche für den Preis der Ware im Spiel verantwortlich sind. Da noch nicht geklärt ist wie diese sich zusammensetzten wird empfohlen Werte, von Waren deren Preis bekannt ist, zu übernehmen.

=> Speichern und Editor schließen
________________________________________________________________________________________________


Bullets bearbeiten (man kann auch bestehende für neue Waffen nutzen)

- X3 Editor -> TXT Editor -> höchste.cat\types\Tbullets.pck öffnen
- gewünschtes Bullet bearbeiten, oder neues hinzufügen und bearbeiten.
- Ein Bullet kann von mehreren Waffen genutzt werden!
- Wichtig: Wenn ein bestehendes Bullet geändert wird, nicht die ID verändern! Es ist besser ein Neues zu erstellen!

Code: Select all

PAC_____________setzen bei Partikelbeschleunigerkanonen
Beam____________setzen für Waffen mit durchgehendem Strahl
Zig zag_________Strahlverhalten wie beim Ionendisruptor
Areal___________setzen für Flächenschaden (Schockwellengeneratoren)
?ION____________Nur Schildschaden (gesetzt bei Ionendisruptor)
Ignore shields__Schilde Ignorieren (gesetzt bei Projektilkanone)
Use ammo________benutze Munition
Repair__________repariert Hülle
Flak____________explosion des Projektils am Ende der Lebensdauer/auftreffen auf Schilde/Hülle

Code: Select all

ID_________________"SS_BULLET_{z.B.MASS_BETA}
Body file__________{Projektilmodell; von bestehendem Bullet abschauen}
Picture ID_________0*
Rotation X_________{gewünschte Rotation
Rotation Y_________ des Bullets einstellen.
Rotation Z_________ 0 = keine Rotation}
Galaxy subtype_____-1*
Description________9001*
Hull damage________{gewünschter Hüllenschaden eines Projektils}
Shield damage______{gewünschter Schildschaden eines Projektils}
Energie used_______{gewünschter Energieverbrauch für ein Projektil}
Lifetime___________{Lebenszeit des Prjektils in Sekunden}
Speed______________{Geschwindigkeit des Projektils in Meter je Sekunde}
Range______________automatisch (= (Speed * Lifetime)/1000)
Bulet flags________automatisch durch gewählte Flags
Ammo_______________128* / bei Flag "Use ammo" gewünschte Ware auswählen
Ambient sound______{gewünschtes Umgebungsgeräusch (abschauen)}
Sound volume (min)_{gewünschte Minimallautstärke der genutzen Sounds}
Sound volume (max)_{gewünschte Maximallautstärke der genutzen Sounds}
Impact sound_______{Einschlaggeräusch (abschauen)}
Impact effect______{Einschlageffekt (abschauen)}
Launch effect______{Abschusseffekt (abschauen)}
Trail effect_______0*
Engine trail_______0*
RGB (R)____________automatisch (Farbanteil Rot in Hexadezimalzahl)
RGB (G)____________automatisch (Farbanteil Grün in Hexadezimalzahl)
RGB (B)____________automatisch (Farbanteil Blau in Hexadezimalzahl)
Color (RGB)________{doppelklicken; [...]-Taste; Farbe wählen; 2 mal 'OK'}/hat keine Auswirkung
Rapid box width____{von Bullet abschauen, von dem
Rapid box height___ das 'Body File'
Rapid box length___ abgeschaut wurde}
Production RelVal (NPC)_____10000*
Price modifier (1)__________25*
Price modifier (2)__________1*
Ware class__________________kleiner Container (0)*
Production RelVal (player)__10000*
Min. Notoriety______________-100000*
Video ID___________0*
Skin index_________0*
Das Symbol "*" kennzeichnet die Werte, welchen so gesetzt werden sollen.

- Tipp: Verwendet man bestehende Waren als Munition, welche man selber bereits herstellen kann, benötigt man keine neue Fabrik.

=> speichern und Editor schließen
________________________________________________________________________________________________


Waffen bearbeiten/erstellen

- X3 Editor -> TXT Editor -> höchste.cat\types\Tlaser.pck öffnen
- gewünschte Waffe bearbeiten / neue hinzufügen und bearbeiten (maximal 32 möglich).
- Wichtig: Bei hinzugefügter Waffe den Eintrag 'index' um eins höher wählen als den höchsten bereits genutzen (sollte 29 bis 32 sein).
- Der X3 Editor erstellt automatisch eine neue Ware!
- Wichtig: Hinzugefügte Waffen und Terranerwaffen sind z.Z. nur über das HUD im Schiff installierbar! Daher eher nicht zu empfehlen und für die Terranerwaffen benötigt man im Spiel deren Daten. Soweit mir bekannt kann man sich diese nicht erscripten!
-Empfehlung: bestehende Waffen umgestalten (am besten welche, die man bereits herstellen kann -> keine neue Fabrik nötig)
- Wichtig: die ID bestehender Waffen nicht verändern!!!

Code: Select all

ID_________________beibehalten!* / für neue: "SS_LASER_{z.B.MASS_BETA}
Name_______________automatisch
Body file__________27*
Picture ID_________0*
Rotation X_________{Gewünschte Rotation der Waffe einstellen.
Rotation Y_________ An bekannten Waffen orientieren
Rotation Z_________ (0 = keine Rotation)}
Index______________beibehalten / für neue: {höchster Index + 1}
Description________{ID aus deinem T-File mit gewünschter Bezeichnung}
Rate of fire_______{Anzahl Schuss pro Minute}
Sound______________{Geräusch beim abfeuern der Waffe (abschauen)}
Projectile_________dein Bullet auswählen, bzw. beibehalten
Energie____________//noch nicht 100%ig geklärt// Empfehlung: abschauen
Charge rate________//noch nicht 100%ig geklärt//Empfehlung: abschauen
HUD icon___________{Im HUD angezeigte Grafik der Waffe (abschauen)}
Volume_____________{Anzahl Einheiten des benötigten Laderaums für eine Waffe}
Production RelVal (NPC)_____#
Price modifier (1)__________#
Price modifier (2)__________#
Ware class__________________{Warenklasse einstellen}
Production RelVal (player)__#
Min. Notoriety______________#
Video ID___________0* / bzw. bestehende lassen
Skin index_________0*
Das Symbol "*" kennzeichnet die Werte, welchen so gesetzt werden sollen.
Das Symbol "#" kennzeichnet die Werte, welche für den Preis der Waffe im Spiel verantwortlich sind. Da noch nicht geklärt ist wie diese sich zusammensetzten, wird empfohlen Werte von Waffen, deren Preis bekannt ist, zu übernehmen.

=> speichern und Editor schließen
________________________________________________________________________________________________


Schiffen die Waffen zuweisen

XSP-Schiffe:
- Shipcreator starten -> die Schiffsdatei laden -> 'Ändere Schiffseigenschaften'
-> 'Laser/Waffen' -> Häkchen bei der gewünschten Waffe machen
-> 'Turrets' -> 'Custom Cockpit' aktivieren -> Häkchen setzten -> dieses speichern und für die gewünschten Turrets übernehmen

Egosoft-Schiffe:
- X3 Editor -> TXT Editor -> höchste.cat\types\Tships.pck öffnen
-> jedem Schiff die Frontwaffen zuweisen. Selbstständiges eintragen des Zahlenwertes nicht nötig, das macht der Editor
#Sicherheitshalber sowohl in der 09er, als auch in der 08er bearbeiten.

- X3 Editor -> TXT Editor -> höchste.cat\types\Tcockpits.pck öffnen
-> Die gewünschten Cockpitdateien einzeln verändern und speichern.
- Vorsicht! Die Buchstaben stehen für die Völker (A = Argon; B = Boron; ...) und die Cockpitdaten gelten meistens für mehrere Schiffe!

=> speichern und Editor schließen

#Anmerkung: Sollten die Veränderungen an der Tship und Tcockpit keine Wirkung zeigen, dann nutzt Ihr einen MOD, in deren cat/dat ebenfalls eine Tship/Tcockpit vorhanden ist. => Dann sind diese natürlich zu bearbeiten.

#Solltet ihr eine Shipcreator.cat/dat vorfinden, so löscht diese einfach, deinstalliert die Schiffe und installiert diese anschließend wieder! Somit wird eine neue Shipcreator.cat/dat angelegt und die aktuellen Tship und Tcockpit übernommen!
________________________________________________________________________________________________


Fabriken hinzufügen

# Produktionsmenge, Ressourcenverbrauch und Zykluszeit werden von X3 über die Warenpreise selbstständig berechnet! D.h. man kann nur über den Preis Einfluss nehmen!

- X3 Editor -> TXT Editor -> höchste.cat\types\Tfactories.pck öffnen
- neuen Eintrag hinzufügen
- es empfiehlt sich die Werte eine bestehende Fabrik, welche ähnlich der Gewünschten ist, zu kopieren.
- eigene ID eintragen (z.B. "SS_FAC_{Rasse}_{z.B. PAK}
- unter 'description' die ID aus deinem T-FIle eintragen, welche die gewünschte Bezeichnung beinhaltet

=> speichern und Editor schleißen
________________________________________________________________________________________________


Waren den Fabriken zuweisen für KI erfordert Neustart! [wird noch überprüft][fehlendes Feedback!]

# Diesen Abschnitt kann man überspringen, wenn man keine KI-Fabriken wünscht, welche die neuen Waren herstellen.

- X3 Editor -> Galaxy Editor -> 06.cat/maps/WareTemplate.pck öffnen
- Rechtsklick auf den Sector "Split Feuer" (ist der einzige) und 'add object...' wählen. Unter 'Type' Factory auswählen und unter 'Subtype' die in der Tfactory erstellte Fabrik auswählen. Mit 'OK' bestätigen und die Fabrik befindet sich nun am unteren Ende der Liste.
- nun geht man einen Schritt tiefer in der Baumstruktur der neuen Fabrik. Dort findet man die Einträge: 'primary resources', 'product' und 'docked ships'. Letzteren kann man ruhig entfernen.
- Primäre Ressourcen hinzufügen: Rechtsklick auf 'primary resources' -> 'add object' -> unter 'type' die Warenkategorie auswählen und unter 'sybtype' die eigentliche Ware.
- genau so geht man auch bei den Produkten und sekundär Ressourcen vor. (sekundäre Ressourcen Ordner hinzufügen: Rechtsklick auf die Fabrik -> 'add object' -> unter 'type' 'sub object' und unter 'subtype' 'secundary resources' wählen.)

- Um die Fabriken den Schiffswerften zuzuteilen das gleiche Verfahren nutzen und als Produkt die ID der Fabriken eintragen.
- Ebenso die Ausrüstungsdocks und Handelsstationen bearbeiten.

- Somit sollten die KI-Fabriken funktionieren. wird noch überprüft Für den Spieler sind die Veränderungen nicht sichtbar!

=> speichern und Editor schließen
________________________________________________________________________________________________


Fabriken zu Schiffswerften hinzufügen
und Waren zu HS/AD's


# Empfehlung: gleich der WareTemplate Produkte zuteilen.
# Es ist kein Neustart erforderlich, wenn die WareTemplate nicht bearbeitet worden ist.

# Ich beschreibe hier zwei Varianten

Fabrik(en)/Ware(n) zu einer Station hinzufügen

- den Scripteditor öffnen (shift+C -> "s")
- new Script -> name="setup.plugin.{z.B. neue Fabriken}
- Version und Beschreibung nach eigenen Wünschen bearbeiten
- unter 'Code' nachfolgendes eintragen

Code: Select all

001 $sector = get sector from universe index: x=1, y=3
002 $station =  find station in galaxy: startsector=$sector class or type=Argonen Argon Schiffswerft race=Argonen flags=null refobj=null serial=null max.jumps=1
003 $s1 = Argonen 120 mm Geschütz Schmiede
004 $station -> add product to factory or dock: $s1
005 $tmp = $station -> add 1 units of $s1
006 return null
Nachfolgend, wo Ihr die Befehle findet
=> benötigte Eingaben

Code: Select all

001 'Universe and Sector Commands'
=> <Variable> {z.B.: "sector"} + <Number> + <Number> (1 und 3 für Argon Prime)
002 'General Object Command'
=> <Variable> {z.B.: "station"} + {"sector"} + 'Select Sation Type' {z.B.: Argon Schiffswerft} + 'Select Race' {z.B.: Argonen} + 'null' + 'null' + 'null' + <Number> {1}
003 'General Commands' -> "<RefVar/IF><Expression>"
=> <Variable> {z.B. s1} + 'Select Station Type'/'select Ware' {hinzuzufügende Fabrik/Ware auswählen}
004 'General Object Commands'
=> {"station"} + {"s1}
005 'Trade Commands'
=> <Variable> {z.B. "Tmp"} + {"station"} + <number> {1} + "s1"
006 Das "Return null" wird automatisch gesetzt, sobald ihr mit 'ESC' die Bearbeitung des Scriptes beendet und 'speichern' bestätigt.
- Für mehr Fabriken/Waren einfach mit "c" die Zeilen 3 bis 5 kopieren und unter Zeile 5 mit "v" einfügen. Die Variablen bleiben gleich, ihr müsst nur das gewünschte Objekt (Fabrik/Ware), aus Zeile 3, anpassen!
- Mann möchte alles in einem Script erledigen?! -> Erst eine Station abarbeiten, dann Zeile 2 erneut einfügen (vorher Zeile 1, wenn die Zielstation in einem anderen Sektor ist) und den Ziel-Stationstyp ändern. Anschließend wieder Zeile 3 bis 5 ... und so weiter.


Fabrik(en)/Ware(n) zu allen Stationen eines Types hinzufügen

- neues Script erstellen mit folgendem Code

Code: Select all

001 $station.arr =  get station array: of race Argonen class/type=Argonen Argon Schiffswerft
002 $size =  size of array $station.arr
003 while $size
004 ║dec $size = 
005 ║$station = $station.arr[$size]
006 ║$s1 = Argonen 120 mm Geschütz Schmiede
007 ║$station -> add product to factory or dock: $s1
008 ║$tmp = $station -> add 1 units of $s1
009 end
010 return null
Nachfolgend wieder wo ihr die Befehle findet
=> und die benötigten Eingaben

Code: Select all

001 'Universe and Sector Commands'
=> <Variable> {z.B. station.arr} + 'select race' {z.B.Argonen} + 'select station type' {z.B. Argon Schiffswerft}
002 'General Commands' -> 'Arrays'
=> <Variable> {z.B. size} + "station.arr"
003 'General Commands' -> "<RefVar/IF><Expression>"
=> 'while' + "size"
004 'General Commands'
=> "size"
005 'General Commands' -> 'Arrays' -> <RefVar/IF><Var/Array>[<Var/Number>]
=> <Variable> {z.B. station} + "station.arr" + "size"
006 - 008 siehe vorherige Erklärung
009 'General Commands' -> 'Flow Control' -> 'end conditional'
- Für mehr Fabriken/Waren einfach mit "c" die Zeilen 6 bis 8 kopieren und unter Zeile 8 mit "v" einfügen. Die Variablen bleiben gleich, ihr müsst nur das gewünschte Objekt (Fabrik/Ware), aus Zeile 6, anpassen!
- Mann möchte alles in einem Script erledigen?! -> Erst einen Stationstyp abarbeiten, dann Zeile 1 erneut einfügen und den Ziel-Stationstyp ändern. Anschließend wieder Zeile 2 bis 9 ... und so weiter.
________________________________________________________________________________________________


Spielerfabriken die Ressourcen und das Produkt zuweisen Verbesserungen vorbehalten

- Im Scripteditor zwei neue Scripts erstellen.

Erklärung meiner Variante:
- Das Setup Script überprüft die Abbruchbedingung (Spielername) und startet gegebenenfalls das eigentliche Endlosscript.
- Im Endlosscript wird zu Beginn erneut die Abbruchbedingung abgefragt und die Haupt-Schleife gestartet.
- in der Hauptschleife wird das Stationsarray nach Rasse und Stationstyp abgefragt.
- Es wird die Größe des Stationsarrays abgefragt.
- Nun wird die Größe des Stationsarrays mit der gespeicherten verglichen und bei Ungleichheit die Überprüfung jedes Array-Eintrages gestartet.
- Es wird nur nach dem Produkt gefragt (mehr ist unnötig)
- Ist das Produkt vorhanden, dann geschieht nichts
- Ist das Produkt nicht vorhanden, werden die Ressourcen und das Produkt hinzugefügt, sowie der Produktionstask auf 'True' gesetzt (sonst läuft die Fab nicht!)
- zum Schluss die Abfrage nach der Abbruchbedingung in der Schleife und ein 'Wait' zur Schonung der Performance.

Das Setup-Script {z.B.: setup.plugin.{addwares}}

Code: Select all

001 $playername =  get player name
002 if $playername != 'ende'
003 ║$stop = get global variable: name= 'Opa.stop'
004 ║if $stop == 'False'
005 ║║$null = null
006 ║║@ START $null -> call script 'plugin.Opa.Stationsressourcen' :
007 ║║set global variable: name= 'Opa.stop' value= 'True
008 ║end
009 else
010 ║set global variable: name='Opa.stop' value= 'False'
011 end
012 return null
und das Haupt-Script {z.B.: plugin.{ich}.addwares}

Code: Select all

001 $playername =  get player name
002 while $playername != 'ende'
003 ║
004 ║$station1 =  get station array: of race Player class/type=Argonen 120 mm Geschütz Schmiede
011 ║$size1 =  size of array $station1
018 ║if $size1 != $size12
019 ║║$size12 = $size1
020 ║║$A = $size1
021 ║║while $A
022 ║║║dec $A =
023 ║║║$Fabrik = $station1[$A]
024 ║║║$produkt = $Fabrik -> get product ware
025 ║║║if $produkt != 120 mm Geschütz
026 ║║║║$Fabrik -> add product to factory or dock: 120 mm Geschütz
027 ║║║║$Fabrik -> add primary resource to factory: Energiezellen
028 ║║║║$Fabrik -> add primary resource to factory: Erz
029 ║║║║$Fabrik -> add primary resource to factory: Cahoona Fleischblöcke
030 ║║║║$Fabrik -> station trade and production task: on=[TRUE]
031 ║║║end
032 ║║end
033 ║end
117 ║@ = wait 10000 ms
118 ║$playername =  get player name
119 end
120 write to player logbook 'Script um Spielerfabriken lauffähig zu machen beendet!'
121 set global variable: name= 'Opa.stop' value= 'False'
122 return null
Ich verzichte an dieser Stelle auf die Befehlpfade! Wer die vorhergehenden Scripte geschrieben hat sollte keine Probleme haben.
________________________________________________________________________________________________


erstellte Fabriken im Spiel aufstellen Verbesserungen vorbehalten

Es gibt, wie immer, mehrere Wege nach Rom, bzw. zur Lösung dieses Problemchens. Ich zeige hier eine Variante mit Setup-Script.
Im Setup wird eine Globale Variable abgefragt, welche als Abbruchbedingung genutzt wird. Sie wird im Hauptscript festgelegt, nachdem die gewünschten Stationen platziert wurden. Somit werden die Stationen bei jedem Neustart automatisch gesetzt, jedoch anschließend nicht erneut beim laden von Spielständen (GV wird mitgespeichert), wo diese bereits existieren.

Das Setup-Script: "setup.plugin.{gewünschter name}"

Code: Select all

001 $erledigt = get global variable: name='Opa.KI.Stationen'
002 if $erledigt != 99
003 ║$null = null
004 ║@ START $null -> call script 'plugin.opa.KIstationen' : 
005 ║write to player logbook 'KI Stationen hinzugefügt!'
006 end
007 return null
und das Hauptscript: "plugin.{gewünschter name}"

Code: Select all

111 $station =  create station: type=Argonen Munitionsfabrik 120 mm owner=Argonen addto=Zentrum der Arbeit x=14000 y=15000 z=-20000
112 = $station -> install 1 units of 10 GJ Schild
113 $maxShild = $station -> get maximum shield strength
114 $station -> set current shield strength to $maxShild
115 $station -> add product to factory or dock: 120 mm Munition
116 $station -> add primary resource to factory: Energiezellen
117 $station -> add primary resource to factory: Erz
118 $station -> add primary resource to factory: Cahoona Fleischblöcke
119 $station -> station trade and production tasks: on=[TRUE]
120 
121 set global variable: name='Beschi.KI.Stationen' value=99
122 return null
Hier verzichte ich erneut auf die Befehlspfade.
________________________________________________________________________________________________


Gruß DaOpa
Last edited by DaOpa on Fri, 7. Mar 08, 11:47, edited 37 times in total.

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Tue, 27. Nov 07, 22:19

Moin nochmal
Ist jemand willig/in der Lage mir bei obigen Problemen zu helfen? Habe mir noch mal die Sticky's angesehen und nichts brauchbares entdeckt! Ich probier mal noch einiges im X3-Editor, kann aber nichts versprechen.
Würde mich über konstruktives freuen!
Gruß

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Tue, 27. Nov 07, 22:24

Waffennamen eintragen:

die nummer unter Description steht für die t id unter der Page id 17 (schau am besten dazu die Datei 490001 an ;)).

Waffen im Spiel erhalten:
sollte eigentlich mit STMs Cheats kein problem sein... oder meintest du damit eher sie kaufbar zu machen??
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Tue, 27. Nov 07, 22:46

Moin
Ne 490001? Ich habe ne ...02; -03.pck! Macht sich komisch zu öffnen.
Es reicht mir, wenn ich sie selber herstellen kann/bzw. jene als Waren verfügbar sind.
Wollte mich schon in der 08er cad/dat verewigen unter Waren, doch der Editor lässt mich nichts hinzufügen :?
Ich möchte ja noch entsprechende Munition als Waren hinzufügen/kaufbar/herstellbar machen.
:roll: Und JA es ist ein wenig umständlich! Im Editor bin ich auch kein unbeschriebenes Blatt, aber Wegweiser wären hilfreich!
Gruß

EDIT: Wichtige Kleinigkeiten wären auch hilfreich (Preise zuordnen, ProdVal oder so, etc.)

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Tue, 27. Nov 07, 23:59

oh, sorry hab wohl ganz die ordnerangabe vergessen.. du solltest die Datei t/490001.pck (bzw. xml) aus der CAT/DAT mit der höchsten nummer, welche eine solche Datei enthält verwenden (das gilt übrigens auch für alle anderen Dateien von X), denn diese sind diejenigen der aktuellen Version, die anderen sind aus früheren Versionen ;)

Zum Hinzufügen von Waren per X3Editor kann ich dir leider nix sagen, ich bastel lieber per Notepad an den xmls bzw. txts rum :D jedenfalls weiss ich, dass sich der Preis aus 2 oder 3 werten zusammensetzt: price modifier 1, price modifier 2 und evtl. noch RelValue, welche Preiose am ende rauskommman kann ich dir aber ned sagen...
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Fri, 30. Nov 07, 16:20

Moin
Habe mal ein paar veraltete Antworten, von mir, gelöscht!

Grundlegende Fragen sind noch immer
-die Einstellungen der Preise,
-wie man hinzugefügte Waffen voll nutzbar machen kann (man will sie ja nicht jedes Mal im HUD auswählen müssen),
-die Zuordnung von Waren zu hinzugefügten Fabriken, bzw. die Fabriken den Schiffswerften hinzufügen
-und die Fabriken für den Spieler nutzbar machen!

Den Ausschnitt mit der WareTemplate habe ich aus einem alten Post geklaut, kann aber leider nichts damit anfangen, weil ich entsprechende Datei nicht finde!

Wer was weiß, das ich noch nicht weiß, sollte bitte hier posten!

Gruß DaOpa

P.S.: Ich möchte nicht für jede einzelne Frage ein neues Thema eröffnen!

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Fri, 30. Nov 07, 22:11

die Datei für die Warentemplates heisst
'maps/WareTemplate.pck'
und die aktuelle findest du warscheinlich in einer der neuren CATs/DATS (mit jedem Patch ist nämlich je eine dazugekommen ;)) Übrigens ist es am einfachsten wenn du diese Datei mit einem Galaxieeditor für X3 bearbeitest.. (am einfachsten wäre der im X3Editor enthaltene ;))


zusätzliche Waffen kann man afaik nicht voll nutzbar machen, zumindest hab ich noch nie gehört dass es jemand geschafft hat...


mit den price modifiern kenn ich mich wie gesagt nicht aus, aber ich glaube ich hab da mal was im englischen Forum gelesen...


ach ja: statt die t/490001.pck zu editieren solltest du lieber ein eigenes t-file erstellen und dieses per Script laden ;) (keine panik, das ist nur eine Scriptzeile)

das ganze sollte dann ungefähr so aussehen:

Dateiname:
t/49****.pck/xml (die **** stehen für eine Zahl von 7000 bis 8999, ne Freie kannst du dir im Sticky für die Unsignierten Erweiterungen unter dem Abschnitt Sprachdatei raussuchen ;) vergiss aber nicht bei der veröffentlichung einer mod diese auch dort eintragen zu lassen ^^)

Inhalt:
Das hier kommt immer an den Anfang eies jeden deutschen t-files (für andere Sprachen ist nur die 49 durch was anderes zu ersetzen)

Code: Select all

<?xml version="1.0" encoding="UTF-8" ?>
<language id="49">
Hier ist der eigentliche Inhalt, in deinem fall brauchst du nur die PageID 17 (Objektnamen und beschreibungen), wenn du Scripts schreibst und Texte aus dem t-file lädst oder Kommandoslots verwendest brauchst du ne eigene /andere ID (dazu mehr auf anfrage, ich mach hier jetzt kein komplettes Tuto ^^)

Code: Select all

<page id="17">
 <t id="{deine t id}">{dein Objektname}</t>
 <t id="{deine id + 1}">{deine Objektbeschreibung}</t>
</page>
und hier noch der abschluss des ganzen files:

Code: Select all

</language>

Diese Datei lädst du dann mit einem Script, welches den namen 'Setup.plugin.{Erweiterungsname}' trägt und den Inhalt

Code: Select all

load text: {deine gewählte t-file-id}
hat ;)

sollte was unklar sein bitte zitieren und fragen ^^ ich hab selbst nicht mehr im blick, was ich da geschrieben hab :D

PS alles in {} ist durch eigene Werte zu ersetzen

PS2 das sieht ja so aus als willst du nen komplettes Tuto draus machen :) :thumb_up: ich werde es im Sticky verlinken wenn alle Punkte geklärt sind ;)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Fri, 30. Nov 07, 23:27

Moin
Anscheinend bist du der Einzige, der mir hilft. :wink:
Jup das soll ein möglichst komplettes Tutorial werden! Jedoch ohne selbstgemoddete Bullets etc., weil davon verstehe ich absolut nix (noch :wink: )
Wenn ich das richtig verstanden habe, kommt das 't'-File in den 't'-Ordner des X3 Verzeichnisses?! Ich probiere mich gleich mal daran und schreibe es anschließend in den Eröffnungspost.

Das mit den Waffen habe ich auch in älteren Post's gelesen und den Pricemodifier ansatzweise verstanden (gibt dazu irgendwo im deutschen Forum nen Topic), in dem leider nur Anhaltspunkte gegeben werden. Etwas endgültiges konnte ich noch nicht finden. Ich suche auch mal im englischen Forum. Mal schaun was ich so finde :roll:

Schließlich verbleiben nur noch die Fragen, wie ich hinzugefügt Stationen (hinzufügen via X3 Editor in der Tfactories.pck) für den Spieler nutzbar mache und am besten gleich noch ein paar aufstellen lasse.

Zum Schluss noch mal vielen DANK an Dich!

Gruß DaOpa

EDIT: Meine ID's sollten aber in der 490001.pck auch frei sein? Richtig?

EDIT2: Ich habe die WareTemplate in der 06er gefunden! Alles andere wird als "x3_universe_v..._patch.pck" bezeichnet. Der 'Text Ressource Editor' zeigt mir eine leere Datei an und im 'Galaxy Editor' werden jeweils nur einzelne Sektoren angezeigt. Bisher ist es mir nicht gelungen Einfluß auf die Ressourcen zu nehmen!

El_Topo
Posts: 463
Joined: Wed, 6. Nov 02, 20:31
x3

Post by El_Topo » Sat, 1. Dec 07, 01:14

Ich hab die Waretemplate auch in der 06. Mit dem Galaxyeditor öffnen. Da ist nur ein Sektor mit allen Stationen (die in der tfactorie definiert sind). Bei den Stationen Ressourcen und Produkt (mehrere für NPC möglich) eintragen.

Um sie kaufbar zu machen in der aktuellen Galaxymap den Schiffswerften als Produkt hinzufügen :wink:

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Sat, 1. Dec 07, 02:06

Moin
Danke El_Topo! So was billiges zu übersehen :oops: Das ist fast so wie in einem Wald keinen Baum zu finden :roll:
Jetzt hab ich es glücklicherweise auch geschnallt!
Bin wohl doch langsam müde geworden?!

Habe mich trotz dem ein Weilchen im Forum umgesehen und zum Thema Preise einstellen folgendes gefunden:
Bei Waren ist der Preis ungefähr 28 mal dem RelVal (ist für NPC und Player identisch). Für Waffen sieht das schon wieder anders aus. Dort sind RelVal (NPC) und RelVal (Player) unterschiedlich. Bei der PK konnte ich sowohl Minimum, Mittelwert und Maximum annähernd (1000-2000 Cr Unterschied) reproduzieren. Bei der BPIK klappte meine Vorgehensweise nicht mehr :?

Naja! Morgen ist auch noch ein Tag und dann probiere ich mich mal am Stationsbasteln!

Gute Nacht DaOpa

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Sat, 1. Dec 07, 14:57

Moin
So da ist er wieder! Neue Station erstellt in der TFactories. Diese dann in der Waretemplate hinzugefügt und ihr Ressourcen und Produkte zugewiesen. Anschließend den Eintrag für die Argon Schiffswerft gesucht (es gibt nur einen :? sind doch drei Werften???) Un dort unter Produkt die Fab hinzugefügt, aus der rechten Spalte das 'Race' gelöscht und fertig.

Das schien ja zu einfach zu sein! Darum ist es mir auch nicht möglich im Spiel die Station an den Schiffswerften zu finden! Mir ist weiter aufgefallen, das z.B. nur Ranch eingetragen ist!? Dementsprechend muss ich doch bestimmt noch was Anderes ändern/anpassen?

Gruß DaOpa

EDIT: Mir ist gerade aufgefallen, das mein Textfile gar nicht geladen wird! Ich habe UniTrader wohl zu wörtlich genommen! Ich muss wohl ein Script schreiben (am besten im ScriptEditor) was die Zeile enthält: Lade Text ID!? MAl schaun was bei raus kommt!

EDIT2: Script geschrieben und es ist funktionsfähig! Anleitung wird oben angefügt!

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Sat, 1. Dec 07, 22:36

Ich muss hiermit meinen letzten Post Korrigieren: die WareTemplate gilt nur für die KI-Fabriken, ich hab wohl irgendwie überlesen, dass es Spielerfabriken sind....

Die in dieser Datei aufgeführten Produkte und Ressourcen gelten für alle KI-Fabriken des jeweiligen typs allgemein, darüber hinaus kann man in der X3_universe.xml & den Patchuniversen auch noch für jede einzelne Fabrik weitere Produkte und ressourcen festlegen, welche dann zu denen aus der WareTemplate für die jeweilige Station noch hinzugefügt werden. allerdings hat das keinen Einfluss auf die Spielerfabriken.. deren Produkten und Ressourcen sind afaik im Hardcode festgelegt, es ist aso nen Script nötig was diese der jeweiligen Stationen innem gewissen Zeitintervall hinzufügt. Des weiteren kannman dabei auch gleich die Fabriken in die SWs als Produkt eintragen, was im gegensatz zu der Methode über die WareTemplate keinen neustart erfordert...


PS sorry, dass ichdass ned gleich gesagt hab aber man kann sich nunmal nicht immer alle methoden zur realisierung eines Vorhabens merken ^^

uns PS2 ja, infos habe ich in sachen Scripting und Modding viele, aber ich kann einfach keine Tutos schreiben :D
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Sat, 1. Dec 07, 23:32

Moin
Naja :wink: dann schreibe ich eben hinzu, das das Einfügen in die WareTemplate nur gemacht werden muss, wenn man wüscht, das die KI diese Fabriken auch benutz und selbstständig die Waren produziert.
Ich versuche mal meine Waren an den AD's hinzuzufügen.

Wäre schön, wenn du mir mit dem Script helfen könntest! Zum einen die Fabriken (gegebenfalls auch Waren zu AD/HS) den SW's hinzuzufügen und zum Zweiten gleich ein paar aufstellen, damit man sich schon zu Beginn damit versorgen kann.

Gruß DaOpa

EDIT: Ein Script zum erhalten der Terranerdaten wäre auch hilfreich! :oops: musste gerade feststellen, das ich unbekannte Objekte nutzen will :roll:

El_Topo
Posts: 463
Joined: Wed, 6. Nov 02, 20:31
x3

Post by El_Topo » Mon, 3. Dec 07, 05:58

DaOpa wrote:...Anschließend den Eintrag für die Argon Schiffswerft gesucht (es gibt nur einen :? sind doch drei Werften???) Un dort unter Produkt die Fab hinzugefügt, aus der rechten Spalte das 'Race' gelöscht und fertig...!
Wenn ich Dich recht verstanden habe hast Du die Fab einer Schiffswerft in der waretemplate hinzugefügt?

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Mon, 3. Dec 07, 09:42

Moin
Ja, genau das! Hatte das in einem älteren Post gelesen. Ich möchte das GOD, bzw. die KI selber derartige Fabriken aufstellt und betreibt. Weil ich mir deswegen nicht sicher war, habe ich es einfach mal probiert!
=> Die Auswirkungen sind mir bisher nicht genau bekannt!
Gruß DaOpa

El_Topo
Posts: 463
Joined: Wed, 6. Nov 02, 20:31
x3

Post by El_Topo » Mon, 3. Dec 07, 15:07

Na dann ist alles klar! Die Fabs musst Du in der aktuellen Map, also jene die vom Spiel verwendet wird, plazieren. Bei mir ist das zb. die vom extendet mod - wo Deine ist musst selber schaun! Ob die Fabs vom "god" verwendet werden weiss ich jedoch nicht! Wie UniTrader aber schon sagte müssen Ress und Produkt bei Spielerfabs per script nachgetragen werden!

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Tue, 4. Dec 07, 16:31

Moin
Konnte mal wieder ein paar Problemchen ausradieren :xenon: !
Leider sind meine Scriptbemühungen noch nicht wirklich von Erfolg gekrönt. Das Hinzufügen von Stationen zu Schiffswerften sollte ich bald gebacken bekommen (ein Mehrzeiler Tutorial könnte mir sehr helfen). Ich weiß nur noch nicht so wirklich, wie es funktioniert die Fabs voll lauffähig zu machen.
Ich bin noch nicht dazu gekommen Produkte HS/AD's hinzuzufügen via Waretemplate. Ist das dann wieder nur für die KI interessant, oder kann man sich so das Schreiben von Scripten ersparen?

Gruß DaOpa

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Tue, 4. Dec 07, 22:55

*Post gelöscht*
Last edited by DaOpa on Wed, 5. Dec 07, 19:12, edited 1 time in total.

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Wed, 5. Dec 07, 18:41

bitte das nächste mal einfach nen Doppelklick auf die *.xml machen und den text aus dem Browser kopieren, dieses Codewirrwarr kann ja kein schwein lesen :shock:

probiers mal mit max.jumps = 1, so wird die Station einfach zu irgendeiner Argon SW hinzugefügt ;)

PS sorry dass ich auf die letzten Beiträge ned geantwortet hab, war zu beschäftigt ^^
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

DaOpa
Posts: 914
Joined: Sun, 28. Jan 07, 17:55

Post by DaOpa » Wed, 5. Dec 07, 19:11

Moin
Mein Browser XML-Teil will nicht wirklich funktionieren! Keine Ahnung warum?
Ich werde den Code mal entfernen! Ich hatte vorher schon das probiert mit allen SW's! Auch ohne Erfolg. Welcher Befehl ist das genau beim zuweisen von $s1 ? Ebenso weiß ich nicht ob es korrekt ist, wenn hinter dem Befehl noch "..." steht. Weiter der Befehl "dec [Variable]" endet mit "=". War das der richtige (bei hinzufügen zu allen vor der Schleife)?

Das man mal keine Zeit hat ist klar! Aber du bist ja nicht der Einzige Scripter hier im Forum, jedoch der Einzige (anscheinend) der mir hilft!

Gruß DaOpa

P.S.: Ich kann mir die Fabriken via Cheat holen und sie funktionieren! Wie bewerkstellige ich das mit gekauften Stationen?

EDIT:

Code: Select all

001 $sector = get sector from universe index: x=1, y=3
 002 $Stat =  find station in galaxy: startsector=$sector class or type=Argonen Argon Schiffswerft race=Argonen flags=null refobj=null serial=null max.jumps=99
 003 $s1 = Argonen 120 mm Geschütz Schmiede
 004 $objekt -> add product to factory or dock: $s1
 005 $tmp = $objekt -> add 1 units of $s1
 006 return null

Post Reply

Return to “X³: Reunion - Scripts und Modding”