[DISKUSSION] Allgemeine S&M-Fragen III

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

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

Post Reply
michael86
Posts: 29
Joined: Tue, 8. Jun 21, 17:52
x3ap

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by michael86 » Thu, 21. Apr 22, 09:47

JSDD wrote:
Wed, 20. Apr 22, 23:39
michael86 hat geschrieben: ↑Mi, 20. Apr 22, 10:46
Problem ist, ich habe die TC4AP Mod und muss die Eintraege in der TDocks (bei hq bin ich mir nicht sicher) manuell hinzufuegen.
wie machst du das? ... hoffentlich NICHT mit nen texteditor, sondern mit dem X3Editor2 (von double shadow)
Genau so mache ich es. Ich nutze den X3Editor2 aber danach, um zu sehen, ob alles richtig uebernommen wurde und ob ich mich evtl. bei den Indexes evtl. verzaehlt haben koennte.
JSDD wrote:
Wed, 20. Apr 22, 23:39
ne möglich keit ist es, per script alles, was ***undefined*** im namen trägt, zu entfernen ... probiers mal
Werde das dann testen, wenn ich soweit bin und noch erforderlich ist.
Eine bloede Frage hierzu. Wenn ich das so wie du geschrieben hast einfach in X-Studio kopiere hab ich lauter Compiler-Fehler.
Im Ingame Editor - muss ich mich da durch jeden Befehl durchklicken, oder gibt es die Moeglichkeit fuer eigene Eingaben?
PS: Werft anklicken kann ich, hab aber dann keine Moeglichkeit dort irgendwo den Script Editor aufzurufen, oder meinst du den Allgemeinen?
JSDD wrote:
Wed, 20. Apr 22, 23:39
soweit ich weiß, benutzt lucike manchmal die t-files (text files) zum definieren eines stationstyps (ne nummer, a.k.a. "subtype")
diese text file wird per script gelesen und das setup macht den rest. demnach würde es reichen, die entsprechenden stationstypen aus lucikes mod in die eigene TDocks zu kopieren (mit dem X3Editor2 !!!) und dann die textfile anpassen
Ja beim AP und auch bei den vAP (gibt sogar eine Anleitung hierzu) sind die IDs in den t-files festgelegt.
JSDD wrote:
Wed, 20. Apr 22, 23:39
zieh dir die nummern bei id="30000" (also die 95) rein und check mal die ID von "OTAS Außenposten" in der TDocks (sollte ebenso 95 sein bzw 96)
96 = 95 + 1 ... bei scripts beginnt man bei 0 zu zählen, in TFiles bei 1
kapito?! ... die nummer aus DEINER TDocks (nachdem lucikes zeug eingefügt) musst du da in der textfile ändern (und das gleiche für die anderen stationen)
Genau so hab ich es gemacht und aus irgendeinem Grund hat es nicht funktioniert.
JSDD wrote:
Wed, 20. Apr 22, 23:39
das sind platzhalter, können bei bedarf ausgetauscht werden ...
üblicherweise, wenn man ne mod erstellt, versucht man seine einträge dort hin zu legen, dass künftige updates des originalen spiels NICHT die eigenen belegt
das, woran das spiel eine station identifiziert, ist eben diese "subtype" nummer (a.k.a. ID, bzw. zeilennummer in der textdatei [beginnend bei 0])
Das hab ich schon mehrfach so gelesen, aber Sinn macht es nur wenig. Das ganze funktioniert doch dann nur, wenn keine neue TDocks dazukommt, sonst wird die doch einfach ueberschrieben?
Oder koennen solche Aenderungen auch per Script eingefuegt werden?

So, was ich jetzt versuchen werde ist folgendes.
Meine TDocks aus der Mod hat ja ein oder zwei zusaetzliche Eintraege im Vergleich zum Vanilla Spiel. Also werde ich alles vom AP (von vAD dann genauso) einfuegen und mit Dummies einfach versuchen, dass es an der richtigen Position (IDs) ist, dann muss ich an den T-Files nichts machen.
Wenn ich Dummy-objects einfuege, dann zeigt mir der Editor ***undefinied*** an, das ist soweit richtig und kein Problem?
Soll ich fuer Stationen, die ich nicht verwende, gegen ein dummy tauschen oder werden diese ignoriert? (meine sowas wie OWP usw.)
edit: Ich habe jetzt einfach alles stumpf reinkopiert und mit den Dummies die Position angepasst, da es mit aendern in den t-files nicht geklappt hat. Konnte dann die Datei im Spiel nicht mehr laden. Warum auch immer.

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by JSDD » Thu, 21. Apr 22, 13:15

michael86 wrote:
Thu, 21. Apr 22, 09:47
JSDD wrote:
Wed, 20. Apr 22, 23:39
ne möglich keit ist es, per script alles, was ***undefined*** im namen trägt, zu entfernen ... probiers mal
Werde das dann testen, wenn ich soweit bin und noch erforderlich ist.
Eine bloede Frage hierzu. Wenn ich das so wie du geschrieben hast einfach in X-Studio kopiere hab ich lauter Compiler-Fehler.
Im Ingame Editor - muss ich mich da durch jeden Befehl durchklicken, oder gibt es die Moeglichkeit fuer eigene Eingaben?
PS: Werft anklicken kann ich, hab aber dann keine Moeglichkeit dort irgendwo den Script Editor aufzurufen, oder meinst du den Allgemeinen?
... blöde fragen gibts nicht :roll:
... ich habs aus dem kopf raus geschrieben
musst dich entweder im script editor durchklichen und n script erstellen (und dieses ausführen via taste "r" ENTER ENTER, zuvor werft anklicken)
oder mit dem Xstudio tool eins erstellen (kenn das tool nicht, ich mag lieber den SE)

michael86 wrote:
Thu, 21. Apr 22, 09:47
JSDD wrote:
Wed, 20. Apr 22, 23:39
das sind platzhalter, können bei bedarf ausgetauscht werden ...
üblicherweise, wenn man ne mod erstellt, versucht man seine einträge dort hin zu legen, dass künftige updates des originalen spiels NICHT die eigenen belegt
das, woran das spiel eine station identifiziert, ist eben diese "subtype" nummer (a.k.a. ID, bzw. zeilennummer in der textdatei [beginnend bei 0])
Das hab ich schon mehrfach so gelesen, aber Sinn macht es nur wenig. Das ganze funktioniert doch dann nur, wenn keine neue TDocks dazukommt, sonst wird die doch einfach ueberschrieben?
Oder koennen solche Aenderungen auch per Script eingefuegt werden?
die "neuste" TDocks wird geladen bzw die mit der höchsten prio
oberste prio: mods ordner
zweitoberste prio: .cat datei mit höchster nr.

michael86 wrote:
Thu, 21. Apr 22, 09:47
Meine TDocks aus der Mod hat ja ein oder zwei zusaetzliche Eintraege im Vergleich zum Vanilla Spiel. Also werde ich alles vom AP (von vAD dann genauso) einfuegen und mit Dummies einfach versuchen, dass es an der richtigen Position (IDs) ist, dann muss ich an den T-Files nichts machen.
eigentlich nicht ... es sei denn, es gibt zwei stationen an der selben zeile (aus 2 verschiedenen TDocks)

michael86 wrote:
Thu, 21. Apr 22, 09:47
Wenn ich Dummy-objects einfuege, dann zeigt mir der Editor ***undefinied*** an, das ist soweit richtig und kein Problem?
... wie fügst du eine station aus mod xyz in deine TDocks ein?
öffne deine und gleichzeitig die mod datei im X3Editor2, rechtsklick auf die zu kopierende station aus der mod (links in der liste), copy, dann in deine, rechtsklick "paste to end" (wichtig, da du sonst die zeile irgendwo zwischendrin einfügst)

michael86 wrote:
Thu, 21. Apr 22, 09:47
Soll ich fuer Stationen, die ich nicht verwende, gegen ein dummy tauschen oder werden diese ignoriert? (meine sowas wie OWP usw.)
ignorier, was du nicht brauchst ...
wenns ne unnütze undefined ist, du aber in dieser zeile etwas neues gern hättest, dann änder sie

michael86 wrote:
Thu, 21. Apr 22, 09:47
Ich habe jetzt einfach alles stumpf reinkopiert und mit den Dummies die Position angepasst, da es mit aendern in den t-files nicht geklappt hat. Konnte dann die Datei im Spiel nicht mehr laden. Warum auch immer.
ich weiß von abstürtzen des spiels (beim laden beendet das game einfach), wenn man objekte ändert, die gerade in dem aktuellen sektor vorhanden sind
z.b. schiffe und deren turrets, wenn das spiel im aktuellen sektor eins gespeichert hatte und du nun ein neues modell zu laden versuchst, stürtzt das game ab

... ansonsten würd ich vermuten, die TDocks hat n formatierungsfehler oder so ?? (keine ahnung :?: )
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

michael86
Posts: 29
Joined: Tue, 8. Jun 21, 17:52
x3ap

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by michael86 » Thu, 21. Apr 22, 20:30

JSDD wrote:
Thu, 21. Apr 22, 13:15
oder mit dem Xstudio tool eins erstellen (kenn das tool nicht, ich mag lieber den SE)
Ist so aehnlich wie VisualStudio. Hab es aber aufgegeben. Nach etwa 2 Stunden im SE hatte ich 3 Zeilen fertig. Da sucht man ja ewig wenn man das noch nie gemacht hat.
Aber egal. Ich hab das Cheatpackage installiert und mit diesem dann den Eintrag entfernt bekommen.
JSDD wrote:
Thu, 21. Apr 22, 13:15
die "neuste" TDocks wird geladen bzw die mit der höchsten prio
schon klar. Also muss man neue Eintraege immer manuell hinzufuegen, geht nur darum, dass die IDs dann einheitlich sind? Anders haette es mich auch irgendwie gewundert.
JSDD wrote:
Thu, 21. Apr 22, 13:15
ignorier, was du nicht brauchst ...
wenns ne unnütze undefined ist, du aber in dieser zeile etwas neues gern hättest, dann änder sie
Ok, wie eins weiter oben hab ich jetzt verstanden, was die machen.
JSDD wrote:
Thu, 21. Apr 22, 13:15
... wie fügst du eine station aus mod xyz in deine TDocks ein?
öffne deine und gleichzeitig die mod datei im X3Editor2, rechtsklick auf die zu kopierende station aus der mod (links in der liste), copy, dann in deine, rechtsklick "paste to end" (wichtig, da du sonst die zeile irgendwo zwischendrin einfügst)
Wie bereits gesagt, ganz einfach mit einem Texteditor, copy&paste. Danach pruefe ich mit dem X3Editor2, ob die Datei ueberhaupt gelesen werden kann und ob die Eintraege Sinn machen.
JSDD wrote:
Thu, 21. Apr 22, 13:15
ich weiß von abstürtzen des spiels (beim laden beendet das game einfach), wenn man objekte ändert, die gerade in dem aktuellen sektor vorhanden sind
z.b. schiffe und deren turrets, wenn das spiel im aktuellen sektor eins gespeichert hatte und du nun ein neues modell zu laden versuchst, stürtzt das game ab

... ansonsten würd ich vermuten, die TDocks hat n formatierungsfehler oder so ?? (keine ahnung )
Nein, Spiel startet ganz normal, bekam nur die Meldung (in dem Postfach), dass die Sprachdatei nicht geladen werden konnte.
Formatierungsfehler schliesse ich mal aus, da es zuvor funktionierte und ich nur drei Werte geaendert hatte, sonst nichts. Da kann selbst mir kein Fehler passieren.
ABER: Ich habe es jetzt hinbekommen.
Hab die Dummies so lange angepasst, bis alles an der richtigen Position von den IDs war und mit den T-files uebereinstimmte. Jetzt funktioniert es scheinbar. Hab aber noch nicht ausfuehrlich getestet.
Hing wohl irgendwie im Savegame fest, aber nur, wenn das Script installiert war. Beim Entfernen war auch der Eintrag weg. Und bei einem neuen Spiel erschien er gar nicht. Seltsam.
Hab zwar bei einer neuen Ware ein Readtest Error, aber da frage ich besser im entsprechenden Breich nach, falls dort noch jemand liesst. Hab da auf die Schnelle den Fehler nicht gefunden. *edit: auch geloest bekommen.*

Wenn man einmal rausgefunden hat, worauf man achten muss, ist MODs zusammenfuehren eigentlich gar nicht so schlimm wie alle immer behaupten.
Und danke fuer deine Hilfe soweit.

FritzHugo3
Posts: 4657
Joined: Mon, 6. Sep 04, 17:24
x4

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by FritzHugo3 » Fri, 22. Apr 22, 04:34

Ich persönlich mag auch den ingame Editor lieber, mit Ausnahme von Copy & Paste, da finde ich den externen schon ganz brauchbar, grad wenn man mehrere Codezeilen aus anderen Scripten ähhhm :gruebel:, sich ausleiht. Das schöne beim ingame Editor, ich kanns halt direkt testen und nach einer Weile weiß man eh, wo was steht bzw. kann es im externen suchen und dann ingame klicken. Ich vertraue dem Externen einfach nicht so und er lässt mehr "Blödsinn" zu, Der ingame Editor meckert direkt beim Speichern, wenn man was ganz falsches produziert hat.

Schlussendlich ist es natürlich Geschmackssache.
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!

Vega8
Posts: 24
Joined: Wed, 29. Jan 20, 08:17
x3ap

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by Vega8 » Sun, 1. May 22, 07:29

Was genau muss ich hier ändern in Zeile 20 und 40?

$r = [THIS] -> use jump drive: target=$target
in
$r = [THIS] -> put into environment: $sector
????

JSDD wrote:
Sun, 3. Apr 22, 01:33


benutzt man den befehl "[object] -> put into environment: $sector" statt "= [object] -> use jump drive: target= $sector", dann wird ohne zeitverzug gewarpt

Code: Select all

Script !move.jump
Version: 2
for Script Engine Version: 40

Description
jump to a sector 
Arguments
•1: target , Value , 'gate or sector' 
•2: withfollowers , Var/Number , 'followers should jump too' 

Source Text


001   if [THIS] -> is docked
002 @ |= [THIS] -> call script '!move.undock' : 
003   end
004   
005   skip if [THIS] -> get true amount of ware Jumpdrive in cargo bay
006   |return FLRET_ERROR
007   
008   $sector = $target
009   skip if $target -> is of class Sector
010   |$sector = $target -> get sector
011   
012   $energy = [THIS] -> needed jump drive energy for jump to sector $sector
013   $nume = [THIS] -> get true amount of ware Energy Cells in cargo bay
014   skip if $nume >= $energy
015   |return FLRET_ERROR
016   
017   * big ships take longer to jump than fighter escorts. So the escorts fly back
018   * by having the big ship jump before tellings escorts to jump we avoid that
019   skip if not [THIS] -> is of class Big Ship
020   |$r = [THIS] -> use jump drive: target=$target
021   
022   if $withfollowers
023   |$afollowers = [THIS] -> get formation follower ships
024   |if $afollowers
025   ||$s =  size of array $afollowers
026   ||while $s > 0
027   |||dec $s = 
028   |||$ship = $afollowers[$s]
029   |||$docked = $ship -> get environment
030   |||if $docked != [THIS]
031   * 12Jan09: only ships that are not docked at leader undock for jump
032   ||||$ship -> interrupt with script '!ship.signal.leaderjumps' and prio 20: arg1=[THIS] arg2=$target arg3=$withfollowers arg4=null
033   |||end
034   ||end
035   |end
036   end
037   
038   * big ships should already have jumped
039   skip if [THIS] -> is of class Big Ship
040   |$r = [THIS] -> use jump drive: target=$target
041   
042   return $r
zeile 20 und 40 wären zu ändern, um nie wieder zeitverzug beim springen abwarten zu müssen (in besagtes "[THIS -> ]put into environment: $sector")
sowie den rückgabewert $r = [FLRET_WARPED] setzen (würd ich sagen)

habe es gerade probiert, klappt ohne probleme :roll:

Andras89
Posts: 357
Joined: Sun, 12. Aug 07, 23:57

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by Andras89 » Sun, 22. Jan 23, 12:37

Hallo zusammen, ich hoffe ich bin hier richtig. :)

Ich versuche gerade über den SE mit dem Befehl..

Code: Select all

<RetVar/IF><RefObj> realign gate: gatenum=<Value> gate to link=<Var/Warpgate> force=<Var/Boolean>
2 Sprungtore miteinander zu verbinden.
Leider bekomme ich nicht die korrekte Parameterkonfiguration hin.
Ich kann auch keine Erklärung im Forum zu diesem Befehl finden.
Könnte mir jemand sagen welche Parameter und Bedingungen wichtig sind? :gruebel:

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by JSDD » Sun, 22. Jan 23, 21:58

Andras89 wrote:
Sun, 22. Jan 23, 12:37
Hallo zusammen, ich hoffe ich bin hier richtig. :)

Ich versuche gerade über den SE mit dem Befehl..

Code: Select all

<RetVar/IF><RefObj> realign gate: gatenum=<Value> gate to link=<Var/Warpgate> force=<Var/Boolean>
2 Sprungtore miteinander zu verbinden.
Leider bekomme ich nicht die korrekte Parameterkonfiguration hin.
Ich kann auch keine Erklärung im Forum zu diesem Befehl finden.
Könnte mir jemand sagen welche Parameter und Bedingungen wichtig sind? :gruebel:
hab den befehl noch nie verwendet ... jedoch steht alles da, was du wissen musst:

<RetVar/IF> = resultat, ob der befehl erfolgreich war ... also kannst du z.B.

Code: Select all

do if <RefObj> realign gate: gatenum=<Value> gate to link=<Var/Warpgate> force=<Var/Boolean>
incoming message: text = "hat geklappt mit dem realignen ..."
<RefObj> = referenz objekt, kann nur der hub sein ^^

Code: Select all

$Array.Hubs = get station array: race = Player class/type = Xenon Hub
if size of array $Array.Hubs
$Hub = $Array.Hubs[0]
... hier gehts weiter
end
gatenum=<Value> ... teste mal die 0, 1, 2, usw ...
Var/Warpgate> ... selektiere mal einen gate typ vom hub, oder probiere die zahlen 9 - 14 aus (siehe TGates)
force=<Var/Boolean> ... probiere [TRUE]
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

Andras89
Posts: 357
Joined: Sun, 12. Aug 07, 23:57

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by Andras89 » Mon, 23. Jan 23, 18:25

Hallo JSDD,

ich glaube du hast mir mit deinem Post schon sehr geholfen.
Ich vergesse immer wieder, dass die Script-Befehle begrenzt sind.
Ich war der Meinung, dass ich diesen Befehl auch ohne den HUB nutzen kann.
Als Softwareentwickler ist für mich ein <RefObj> halt nicht nur der HUB :roll: , gerade dann wenn man auch mehr Auswahl hat.
Ich werde das Testen und mich noch einmal melden.
Vielen Dank für die schnelle Rückmeldung.

Beste Grüße,

User avatar
JSDD
Posts: 1378
Joined: Fri, 21. Mar 14, 20:51
x3tc

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by JSDD » Mon, 23. Jan 23, 19:02

Andras89 wrote:
Mon, 23. Jan 23, 18:25
Ich war der Meinung, dass ich diesen Befehl auch ohne den HUB nutzen kann.
Als Softwareentwickler ist für mich ein <RefObj> halt nicht nur der HUB :roll: , gerade dann wenn man auch mehr Auswahl hat.
und was sollte der befehl dann anstellen ??? :D

Code: Select all

class Hub
{
public:
    bool realign_gate (unsigned int gatenum, unsigned int warpgate, bool force);
};
... so in etwa :wink:
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

Andras89
Posts: 357
Joined: Sun, 12. Aug 07, 23:57

Re: [DISKUSSION] Allgemeine S&M-Fragen III

Post by Andras89 » Wed, 25. Jan 23, 18:37

Also die Idee war, dass ich Torverbindungen herstellen und lösen kann wie ich das möchte.
Das sollte dann auch für bestehende Torverbindungen und ohne HUB Tore gehen.

Zum Hintergrund:
Ich hatte darüber nachgedacht den Xenon Sektor neben dem Sektor "Terraner Unbekannter Sektor 3" mit dem zentralen Xenon Sektor zu verbinden und dafür die Verbindung zu den Terraner-Sektoren abzubrechen.
Mich stört, dass die Xenon immer wieder in den Terraner-Sektor eindringen, der die Schiffswerft der Terraner enthält.
Aktuell halte ich die Xenon mit eigenen Schiffen auf, was dazu führt, dass ich regelmäßig Meldungen bekomme, dass eines meiner Schiffe angegriffen wird und das geht einem irgendwann auf den Keks :D.
Ein bessere Lösung als das Stoppen der Gateverbindung ist mir noch nicht eingefallen :| .

Wie versprochen habe ich den Befehl überprüft.

Es ist tatsächlich so, dass man erst das HUB auswählt. Dann das Tor im HUB 0,1,2,3,4,5 und dann das Gate in einem Sektor zu dem es hin verbunden werden soll.

Damit tut der Befehl leider nicht das, was ich erhofft hatte, aber das ist dann so.
Trotzdem noch einmal vielen Dank für die Unterstützung.:)

Post Reply

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