[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: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

User avatar
Ketraar
EGOSOFT
EGOSOFT
Posts: 12187
Joined: Fri, 21. May 04, 17:15
x4

Post by Ketraar »

Das ist meistens ein Anzeichen das iwo ein xml Fehler in der Datei ist. Gucken ab alle < und /> da sind, etc.

Ansonsten mal die Datei reichen dann kann ich mir das mal angucken, ist aber so nicht einfach zu Debuggen.

MFG

Ketraar
Image
Fa1nan
Posts: 3
Joined: Mon, 14. Mar 11, 17:41
x3tc

Post by Fa1nan »

Danke für die Antwort.

Jap, da war was komisch, allerdings nicht bezüglich der Tags. Schuld waren wohl Handels- und Ausrüstungsdock. Aus welchen Gründen auch immer hatten die jeweils einen der Positionierungswerte (x,y,z) auf einer kuriosen Zahl mit etlichen Nachkommastellen. X3 hatte kein Problem damit; der Editor offenbar umso mehr. Nach Korrektur der Werte funktioniert es wieder. :D
SK-Sly
Posts: 14
Joined: Sun, 4. Apr 10, 20:50

Post by SK-Sly »

Ich versuche gerade ein Script zu schreiben, wodurch ich einen Ausgerüsteten M1 Odin erhalte inkl. angedockter Jäger. Am besten soll man den Schiffstyp und die Anzahl und den Typ der verschiedenen Jägerauswählen können.

Der Odin ist soweit in bereitschaft und hat auch (fast) alle gewünschten Erweiterungen. Allerdings werden keine angedockten Schiffe erstellt, bzw. sie sind zwar in der Besitztümerliste, aber werden dort in keinem Sektor angezeigt.


Hier der Script:

Code: Select all

Script Carrier...ships
Version: 0
for Script Engine Version: 44

Description
Description
Arguments
Source Text

001   $carrier =  create ship: type=Odin owner=Player addto=Schwarze Sonne x=-20 y=0 z=10
002   = $carrier -> add 1 units of Bioscanner
003   = $carrier -> add 1 units of Digitales Sichtverbesserungssystem
004   = $carrier -> add 1 units of Ekliptikprojektor
005   = $carrier -> add 1 units of Erkundungssoftware
006   = $carrier -> add 1 units of Lebenserhaltung für Frachtraum
007   = $carrier -> add 1 units of Landecomputer
008   = $carrier -> add 1 units of Patrouillensoftware
009   = $carrier -> add 1 units of Sprungantrieb
010   = $carrier -> add 1 units of Transporter
011   = $carrier -> add 1 units of Versorgungssoftware
012   = $carrier -> add 1 units of Boost Erweiterung
013   = $carrier -> add 1 units of Duplex Scanner
014   = $carrier -> add 1 units of Frachtscanner
015   = $carrier -> add 1 units of Handelscomputer-Erweiterung
016   = $carrier -> add 1 units of Handelssoftware MK2
017   = $carrier -> add 1 units of Kampfsoftware MK1
018   = $carrier -> add 1 units of Kampfsoftware MK2
019   = $carrier -> add 1 units of Navigationssoftware MK1
020   = $carrier -> add 1 units of Singularitäts-Zeitverzerrungsantrieb
021   = $carrier -> add 1 units of Mineralienscanner
022   = $carrier -> add 1 units of Handelssoftware MK1
023   = $carrier -> add 1 units of Spezialsoftware Mk1
024   = $carrier -> add 1 units of Triplex Scanner
025   = $carrier -> add 1 units of Trägerkommandosoftware
026   = $carrier -> add 12 units of EM-Plasmakanone
027   = $carrier -> add 12 units of Starburst-Schockwellenkanone
028   = $carrier -> add 4 units of Punktsingularitätsprojektor
029   = $carrier -> install 5 units of 2 GJ Schild
030   
031   
032   $Fenrir.Anzahl = 0
033   while $Fenrir.Anzahl < 24
034   |$Fenrir =  create ship: type=Fenrir owner=Player addto=$carrier x=0 y=0 z=0
035   |= $Fenrir -> add 1 units of Bioscanner
036   |= $Fenrir -> add 1 units of Digitales Sichtverbesserungssystem
037   |= $Fenrir -> add 1 units of Ekliptikprojektor
038   |= $Fenrir -> add 1 units of Erkundungssoftware
039   |= $Fenrir -> add 1 units of Lebenserhaltung für Frachtraum
040   |= $Fenrir -> add 1 units of Landecomputer
041   |= $Fenrir -> add 1 units of Patrouillensoftware
042   |= $Fenrir -> add 1 units of Sprungantrieb
043   |= $Fenrir -> add 1 units of Transporter
044   |= $Fenrir -> add 1 units of Boost Erweiterung
045   |= $Fenrir -> add 1 units of Versorgungssoftware
046   |= $Fenrir -> add 1 units of Duplex Scanner
047   |= $Fenrir -> add 1 units of Frachtscanner
048   |= $Fenrir -> add 1 units of Handelssoftware MK1
049   |= $Fenrir -> add 1 units of Handelssoftware MK2
050   |= $Fenrir -> add 1 units of Handelscomputer-Erweiterung
051   |= $Fenrir -> add 1 units of Kampfsoftware MK1
052   |= $Fenrir -> add 1 units of Kampfsoftware MK2
053   |= $Fenrir -> add 1 units of Navigationssoftware MK1
054   |= $Fenrir -> add 1 units of Singularitäts-Zeitverzerrungsantrieb
055   |= $Fenrir -> add 1 units of Mineralienscanner
056   |= $Fenrir -> add 1 units of Spezialsoftware Mk1
057   |= $Fenrir -> add 1 units of Triplex Scanner
058   |= $Fenrir -> install 120 units of 25 MJ Schild
059   |= $Fenrir -> install 15 units of Laderaumerweiterung
060   |= $Fenrir -> install 10 units of Triebwerkstuning
061   |= $Fenrir -> install 6 units of 25 MJ Schild
062   |= $Fenrir -> install 12 units of EM-Plasmakanone
063   |= $Fenrir -> add 130 units of Energiezellen
064   |inc $Fenrir.Anzahl =
065   end
066   
066   return null
Weitere Frage: Wie kann ich dem SE sagen, dass er die max. Anzahl an Laderraumerweiterungen/Ruderoptimierung/Triebwerkstuning erstellt, ohne das ich einen festen Wert wie z.B. beim Fenrir eingebe???
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Ergänze mal deine Schleife durch

$Fenrir -> put into environment $carrier

Ich vermute man kann Schiffe mit Hilfe des "create ship" Befehls nicht direkt in einem Träger erstellen.
Wie kann ich dem SE sagen, dass er die max. Anzahl an Laderraumerweiterungen/Ruderoptimierung/Triebwerkstuning erstellt, ohne das ich einen festen Wert wie z.B. beim Fenrir eingebe???
Du musst herausfinden welche die maximale Anzahl ist. Tipp: Schau mal bei Trade Commands -> For Ships and Stations

MfG,
ScRaT
SK-Sly
Posts: 14
Joined: Sun, 4. Apr 10, 20:50

Post by SK-Sly »

ScRaT_GER wrote:Ergänze mal deine Schleife durch

$Fenrir -> put into environment $carrier

Ich vermute man kann Schiffe mit Hilfe des "create ship" Befehls nicht direkt in einem Träger erstellen.
Doch, das geht, wenn der Träger "real" existiert, also bereits vorhanden ist. Das habe ich ausprobiert. Danach wollte ich es halt mit einer Variable machen, so dass ich nicht ein weiteres Script aufrufen muss.
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Doch, das geht, wenn der Träger "real" existiert, also bereits vorhanden ist.
Ist er doch bei dir. Ob jetzt das Objekt das du "addto" übergibst eine Variable oder eine konstantes Objekt ist, ist vollkommen egal.

Folglich muss der Fehler woanders liegen.
Funktioniert es denn mit "put into environment" nicht?

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

Post by UniTrader »

hast du das script in einem externen editor gemacht? -> wenn ja mach bitte mal die zeilen 1 und 34 im internen neu, denn afaik produziert der externe manchmal kleine fehler im codearray, sodass trotz richtigem code etwas nicht gaz so funzt wie es soll...
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 ;)
SK-Sly
Posts: 14
Joined: Sun, 4. Apr 10, 20:50

Post by SK-Sly »

nein, alles Intern geschrieben.

Auch 2mal neu.
SK-Sly
Posts: 14
Joined: Sun, 4. Apr 10, 20:50

Post by SK-Sly »

ScRaT_GER wrote: Folglich muss der Fehler woanders liegen.
Funktioniert es denn mit "put into environment" nicht?
Nein geht nicht. Selbes problem. Irgendwo in den tiefen des Alls verschollen.

Code: Select all

Script Carrier...ships.1
Version: 0
for Script Engine Version: 44

Description
Description
Arguments
Source Text

001   $carrier =  create ship: type=Odin owner=Player addto=Argonischer Sektor M148 x=-20 y=0 z=10
002   = $carrier -> add 1 units of Bioscanner
003   = $carrier -> add 1 units of Digitales Sichtverbesserungssystem
004   = $carrier -> add 1 units of Ekliptikprojektor
005   = $carrier -> add 1 units of Erkundungssoftware 
006   = $carrier -> add 1 units of Lebenserhaltung für Frachtraum
007   = $carrier -> add 1 units of Landecomputer
008   = $carrier -> add 1 units of Patrouillensoftware 
009   = $carrier -> add 1 units of Sprungantrieb
010   = $carrier -> add 1 units of Transporter
011   = $carrier -> add 1 units of Versorgungssoftware 
012   = $carrier -> add 1 units of Boost Erweiterung
013   = $carrier -> add 1 units of Duplex Scanner
014   = $carrier -> add 1 units of Frachtscanner
015   = $carrier -> add 1 units of Handelscomputer-Erweiterung
016   = $carrier -> add 1 units of Handelssoftware MK2
017   = $carrier -> add 1 units of Kampfsoftware MK1
018   = $carrier -> add 1 units of Kampfsoftware MK2
019   = $carrier -> add 1 units of Navigationssoftware MK1
020   = $carrier -> add 1 units of Singularitäts-Zeitverzerrungsantrieb
021   = $carrier -> add 1 units of Mineralienscanner
022   = $carrier -> add 1 units of Handelssoftware MK1
023   = $carrier -> add 1 units of Spezialsoftware Mk1
024   = $carrier -> add 1 units of Triplex Scanner
025   = $carrier -> add 1 units of Trägerkommandosoftware 
026   = $carrier -> add 12 units of EM-Plasmakanone
027   = $carrier -> add 12 units of Starburst-Schockwellenkanone
028   = $carrier -> add 4 units of Punktsingularitätsprojektor
029   = $carrier -> install 5 units of 2 GJ Schild
030   
031   $Fenrir.Anzahl = 0
032   while $Fenrir.Anzahl < 24
033   |$Fenrir =  create ship: type=Fenrir owner=Player addto=$carrier x=0 y=0 z=0
034   |= $Fenrir -> add 1 units of Bioscanner
035   |= $Fenrir -> add 1 units of Digitales Sichtverbesserungssystem
036   |= $Fenrir -> add 1 units of Ekliptikprojektor
037   |= $Fenrir -> add 1 units of Erkundungssoftware 
038   |= $Fenrir -> add 1 units of Lebenserhaltung für Frachtraum
039   |= $Fenrir -> add 1 units of Landecomputer
040   |= $Fenrir -> add 1 units of Patrouillensoftware 
041   |= $Fenrir -> add 1 units of Sprungantrieb
042   |= $Fenrir -> add 1 units of Transporter
043   |= $Fenrir -> add 1 units of Boost Erweiterung
044   |= $Fenrir -> add 1 units of Versorgungssoftware 
045   |= $Fenrir -> add 1 units of Duplex Scanner
046   |= $Fenrir -> add 1 units of Frachtscanner
047   |= $Fenrir -> add 1 units of Handelssoftware MK1
048   |= $Fenrir -> add 1 units of Handelssoftware MK2
049   |= $Fenrir -> add 1 units of Handelscomputer-Erweiterung
050   |= $Fenrir -> add 1 units of Kampfsoftware MK1
051   |= $Fenrir -> add 1 units of Kampfsoftware MK2
052   |= $Fenrir -> add 1 units of Navigationssoftware MK1
053   |= $Fenrir -> add 1 units of Singularitäts-Zeitverzerrungsantrieb
054   |= $Fenrir -> add 1 units of Mineralienscanner
055   |= $Fenrir -> add 1 units of Spezialsoftware Mk1
056   |= $Fenrir -> add 1 units of Triplex Scanner
057   |= $Fenrir -> install 120 units of 25 MJ Schild
058   |= $Fenrir -> install 15 units of Laderaumerweiterung
059   |= $Fenrir -> install 10 units of Triebwerkstuning
060   |= $Fenrir -> install 6 units of 25 MJ Schild
061   |= $Fenrir -> install 12 units of EM-Plasmakanone
062   |= $Fenrir -> add 130 units of Energiezellen
063   |$Fenrir -> put into environment $carrier ->
064   |inc $Fenrir.Anzahl = 
065   end
066   
067   return null

Wie lautet der Befehl unter Trade Commands -> for Ships and Stations. hatte dort alle veruscht, doch keiner hat irgendetwas verändert.
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Wie lautet der Befehl unter Trade Commands -> for Ships and Stations. hatte dort alle veruscht, doch keiner hat irgendetwas verändert.
Ich meine den Befehl "get max amount of ware that can be stored in cargo bay". Damit sollte es eigentlich möglich sein, die maximale Anzahl der installierbaren Triebwerkstunings herauszubekommen, sodass du diese dann direkt installieren kannst.

Wobei es auch sein könnte, dass dieser Befehl nicht funktioniert, weil Triebwerkstunings keine normalen Waren sind. In diesem Fall könntest du auch noch den Befehl "get max upgrade for upgrade" aus den General Object Commands versuchen.

Was dein anderes Problem angeht, weiß ich jetzt auch nicht direkt eine Lösung.

MfG,
ScRaT
SK-Sly
Posts: 14
Joined: Sun, 4. Apr 10, 20:50

Post by SK-Sly »

und wenn ich automatisch ein 2tes Script aufrufe, welches die Jäger hinzufügt???

Kann man das so programmieren, dass der odin automatisch als Ziel gewählt wird?
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Also ich verstehe echt nicht, wieso das bei dir nicht funktioniert.
Ich habe gerade eben zum Testen mal folgendes Miniskript geschrieben:

Code: Select all

001   $carrier =  create ship: type=Colossus owner=Player addto=Argon Prime x=null y=null z=null
002   $ship =  create ship: type=#deca.deaf  owner=Player addto=$carrier x=null y=null z=null
Das funktioniert einwandfrei. Das Schiff wird korrekt im Träger gespawnt, hat den richtigen Sektor, etc..

Versuch doch einfach mal das Skript oben auszuführen.
und wenn ich automatisch ein 2tes Script aufrufe, welches die Jäger hinzufügt???
Ja, aber das würde keinen Unterschied machen.
Kann man das so programmieren, dass der odin automatisch als Ziel gewählt wird?
Ja, indem du dem zweiten (unnötigen) Skript den Träger als Argument übergibst.

MfG,
ScRaT
SK-Sly
Posts: 14
Joined: Sun, 4. Apr 10, 20:50

Post by SK-Sly »

Jetzt geht der Script soweit. hab die 3 Odin erweiterungen entfernt (Laderaum/Triebwerkstuning/Ruderoptimierung)

Allerdings fehlen die jetzt. Der fehlerhafte befehl sah so aus:

Code: Select all

$carrier = $carrier -> get max upgrades for upgrade Ruder-Optimierung
User avatar
ThalonMook
Posts: 1296
Joined: Tue, 3. Feb 04, 12:11
x4

Post by ThalonMook »

Hi,

um Max Upgrades zu installieren solltest Du folgendes schreiben:

Code: Select all

$maxup = $carrier -> get max upgrades for upgrade Ruder-Optimierung
= $carrier -> install $maxup units of Ruder-Optimierung
Für die anderen halt die Ware anpassen.

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

Post by UniTrader »

ThalonMook wrote:

Code: Select all

= $carrier -> install $maxup units of Ruder-Optimierung

nimm in diesem fall lieber add statt install, der ist weniger fehleranfällig ;) Install sollte man nur nehmen wenn man es wirklich braucht, weil die Waren in einen Slot müssen (wie bei Schilden und Waffen), bei Software, Waren und Tunings sowie beim entfernen von Waren jeglicher Art sollte man dagegen immer add nehmen ;)
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 ;)
SK-Sly
Posts: 14
Joined: Sun, 4. Apr 10, 20:50

Post by SK-Sly »

Läuft. Danke!
Sapatus
Posts: 67
Joined: Sun, 1. Aug 10, 12:02
x3tc

Post by Sapatus »

Hallo,

ich habe eine Frage zu den t-files. Ich möchte in einem Skript einen Text aus einer t-file laden. Die t-file sieht so aus:

Code: Select all

<xml version="1.0" encoding="utf-8">
<language id="49">
	<page id="9910" title="Heimatbasis Manager" descr="">
	<t id="0">"Ich funktioniere"</t>
</language>
Die Datei habe ich als xml im UTF 8 Format gespeichert. Ich habe versucht die Datei mit dem Befehl

Code: Select all

$Versuch = readtext: page=9910 id=0
zu laden. Aber er zeigt mir nur ReadText9910-1 an. Ich konnte aber Problemlos Text aus anderen t-files laden.

mfg
Man möchte immer einen Credit mehr haben
User avatar
Ketraar
EGOSOFT
EGOSOFT
Posts: 12187
Joined: Fri, 21. May 04, 17:15
x4

Post by Ketraar »

1. Starte mit 1 nicht 0

2. fehlt nach dem text id ein </page> (vor dem language).

MFG

Ketraar
Image
User avatar
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

1. Starte mit 1 nicht 0
0 geht aber auch.

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

Post by UniTrader »

hast du das file ausserdem vorher per load text geladen??
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 ;)

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