@Egosoft: Bug imScripteditor

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

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

User avatar
Metuelisator
Posts: 634
Joined: Fri, 29. Aug 03, 06:22
x2

@Egosoft: Bug imScripteditor

Post by Metuelisator »

Moin,

nachdem nun ca. 180 Zeilen in ein neues Script reingehackt waren fiel mir auf das das Script zwar im Savegame gespeichert wird, aber nicht im Scriptordner!

Stück für Stück habe ich mich rangetastet, bis schliesslich folgendes rauskam:

X2 deinstalliert und neuinstalliert, neues Spiel gestartet, Scripteditor installiert.

das als neues Script eingegeben (Name Heimat):

load text:id=69
$Text1=read text:page=490069 id=2
send incoming message $Text1 to player:display it=[false]
$Bland=4000 ...
$docked=[false] ...
while $Bland > 400 AND $docked == [false] ...
$Bland = get distance between [Playership] and Argon Ausrüstungdock[Argon Prime]
$docked=[Playership]-> is docked
@ $warten=wait 10000 ms
end
return null

das Script nicht ausgeführt, nur gespeichert !
Im Script-Ordner taucht es nicht auf, auch nicht irgendwo anders auf der Platte. Wenn ich den Spielstand speichere ist das Script weiterhin im Savegame, nur wird es nicht in den Ordner Scripts gespeichert. Auch mit kopiere Script und Eingabe eines neuen Namens klappt es nicht!

Ich weiss ja Scripteditor ist eigentlich noch net drin, aber spätestens wenn die Doku kommt sollte es doch schon funktionieren. Also vielleicht seid Ihr ja
a) auchschonmal in den Fehler gelaufen oder
b) könnt einen Tip geben, wie ich das Savegame entpacke um dann irgendwie an das Script ranzukommen.
Gigabyte GA-EP35-DS3
Intel Quadcore Q9300 @ 2,5 GHz
Geforce 8800 GTS 512
4G Ram Dual-Channel
Win XP SP3
Vassenego
Posts: 4797
Joined: Fri, 20. Dec 02, 19:30
x2

Post by Vassenego »

Ich bin mir jetzt nicht sicher, aber ich glaube, das ist so gewollt, da das Spiel sonst bei jedem Start auf die Scripte zugreifen würde. Beabsichtigt ist aber, dass dies nur mit dem Laden des jeweiligen (modifizierten) Spiel(standes) geschieht, um das gleichzeitige Spielen eines ungemoddeten (Original)Spieles zu ermöglichen.

Ist aber nur eine Vermutung.

Ich schiebe mal ins Scriptingforum, da weiß man vielleicht genaueres.

:)


Alles wird verschoben
Vassenego
"Bereitet euch darauf vor, relativistisch Absurdes zu werden ..." (Isaac)

don't click :spam:

--<= back (for good?) =>--
User avatar
Metuelisator
Posts: 634
Joined: Fri, 29. Aug 03, 06:22
x2

Post by Metuelisator »

err da habe ich es schon gefragt deswegen im Tech. Forum. Und so gewollt? Wie soll ich denn ein Script erstellen und weitergeben, wenn es net im Script-Ordner gespeichert wird? Kann net sein das ich mit Script-Editor Scripts nicht mehr einzeln speichern kann, deswegen als Bug auch im Tech-Forum gemeldet.
Gigabyte GA-EP35-DS3
Intel Quadcore Q9300 @ 2,5 GHz
Geforce 8800 GTS 512
4G Ram Dual-Channel
Win XP SP3
Deleted User

Re: @Egosoft: Bug imScripteditor

Post by Deleted User »

Metuelisator wrote:Moin,

nachdem nun ca. 180 Zeilen in ein neues Script reingehackt waren fiel mir auf das das Script zwar im Savegame gespeichert wird, aber nicht im Scriptordner!

Stück für Stück habe ich mich rangetastet, bis schliesslich folgendes rauskam:

X2 deinstalliert und neuinstalliert, neues Spiel gestartet, Scripteditor installiert.

das als neues Script eingegeben (Name Heimat):

load text:id=69
$Text1=read text:page=490069 id=2
send incoming message $Text1 to player:display it=[false]
$Bland=4000 ...
$docked=[false] ...
while $Bland > 400 AND $docked == [false] ...
$Bland = get distance between [Playership] and Argon Ausrüstungdock[Argon Prime]
$docked=[Playership]-> is docked
@ $warten=wait 10000 ms
end
return null

das Script nicht ausgeführt, nur gespeichert !
Im Script-Ordner taucht es nicht auf, auch nicht irgendwo anders auf der Platte. Wenn ich den Spielstand speichere ist das Script weiterhin im Savegame, nur wird es nicht in den Ordner Scripts gespeichert. Auch mit kopiere Script und Eingabe eines neuen Namens klappt es nicht!

Ich weiss ja Scripteditor ist eigentlich noch net drin, aber spätestens wenn die Doku kommt sollte es doch schon funktionieren. Also vielleicht seid Ihr ja
a) auchschonmal in den Fehler gelaufen oder
b) könnt einen Tip geben, wie ich das Savegame entpacke um dann irgendwie an das Script ranzukommen.
das script wird schon gespeichert soweit ich mich entsinne.

aber das ist als XML feil gespeichert - steht also ganz unten im sriptordner neben den piratenscripts (US-Version) wichtig ist das das script einen namen hat - und das du dem scripteditor das speichern erlaubst.
User avatar
lenny5000
Posts: 892
Joined: Mon, 29. Sep 03, 19:06
x3

Post by lenny5000 »

Bei mir wurde auch mal was nicht gespeichert (oder ich hab' zwei mal auf "nicht speichern" gedrückt, aber so blöd bin ich eigentlich nicht - dazu bitte keine Kommentare :P ). Ich speichere jetzt halt immer alle 10 Zeilen ab, schon wegen der Abstürze.
Greets
lenny5000
Deleted User

Post by Deleted User »

lenny5000 wrote:Bei mir wurde auch mal was nicht gespeichert (oder ich hab' zwei mal auf "nicht speichern" gedrückt, aber so blöd bin ich eigentlich nicht - dazu bitte keine Kommentare :P ). Ich speichere jetzt halt immer alle 10 Zeilen ab, schon wegen der Abstürze.
:?: scripte - abstürtze - 10 zeilen hä :?:
User avatar
Metuelisator
Posts: 634
Joined: Fri, 29. Aug 03, 06:22
x2

Re: @Egosoft: Bug imScripteditor

Post by Metuelisator »

das script wird schon gespeichert soweit ich mich entsinne.

aber das ist als XML feil gespeichert - steht also ganz unten im sriptordner neben den piratenscripts (US-Version) wichtig ist das das script einen namen hat - und das du dem scripteditor das speichern erlaubst.
arg, das XML erwähnte ich schon und glaub mir ich habe den scripts-Ordner von oben bis unten durchsucht. Ich habe deutsche Version. Namen habe ich auch oben angegeben.
Aber was meinst mit "speichern erlauben?" Doch doch, ich klicke natürlich auf "Ja" bei der Abfrage, oder gibts da noch was anderes?
Gigabyte GA-EP35-DS3
Intel Quadcore Q9300 @ 2,5 GHz
Geforce 8800 GTS 512
4G Ram Dual-Channel
Win XP SP3
User avatar
BurnIt!
EGOSOFT
EGOSOFT
Posts: 5115
Joined: Wed, 6. Nov 02, 20:31
x4

Post by BurnIt! »

Nein, das ist kein Bug.

Ein Script wird im Savegame gespeichert, weil es dort zum Spieluniversum passt.
Bezieht sich das Script aber auf konkrete Objekte in diesem Universum wird es nicht auch als XML gespeichert, weil nicht sichergestellt ist, dass dieses Objekt in einem anderen Spieluniversum auch funktioniert.

d.h. wenn man

Code: Select all

$station = Panzerungsfertigung 1MW(Argon Prime)
im Script verwendet wird es nicht exportiert.
Daher sollte für soetwas die "find station" Routine verwendet werden und bevor man damit weiterarbeitet sollte man überprüfen, ob das Gefundene auch existiert (if $station exists)
Und um ganz sicher zu gehen sollte man einen Sektor auch so ermitteln.
$sector = get sector from universe index: x=1, y=3 (Argon Prime)
if $sector exists
$station = find station in galaxy: startsector= $sector class or type=Panzerungsfertigung 1MW race= Argon flags=null refobj=null serial=null max.jumps=0
if $station exists
*So, jetzt können wir sicher sein, dass wir die richtige Station gefunden haben und sie auch existiert
end
end
BurnIt!
In der Ruhe liegt die Kraft. / In peace lies strength.
Deleted User

Post by Deleted User »

BurnIt! wrote:Nein, das ist kein Bug.

Ein Script wird im Savegame gespeichert, weil es dort zum Spieluniversum passt.
Bezieht sich das Script aber auf konkrete Objekte in diesem Universum wird es nicht auch als XML gespeichert, weil nicht sichergestellt ist, dass dieses Objekt in einem anderen Spieluniversum auch funktioniert.

d.h. wenn man

Code: Select all

$station = Panzerungsfertigung 1MW(Argon Prime)
im Script verwendet wird es nicht exportiert.
Daher sollte für soetwas die "find station" Routine verwendet werden und bevor man damit weiterarbeitet sollte man überprüfen, ob das Gefundene auch existiert (if $station exists)
Und um ganz sicher zu gehen sollte man einen Sektor auch so ermitteln.
$sector = get sector from universe index: x=1, y=3 (Argon Prime)
if $sector exists
$station = find station in galaxy: startsector= $sector class or type=Panzerungsfertigung 1MW race= Argon flags=null refobj=null serial=null max.jumps=0
if $station exists
*So, jetzt können wir sicher sein, dass wir die richtige Station gefunden haben und sie auch existiert
end
end
schön und gut BurnIt - aber nu ist immer noch nicht geklärt wie und wo man dann das script als solches findet um es zu copieren etc. - es nutzt dem scripter ja nichts wenn das script nicht ausserhalb des saves bzw. des spiels erreichbar ist. wenns auch zugegebener masen nicht wirklich ärgernich ist, so muß es dennoch ne möglichkeit geben das script als solches auch weitergeben zu können ohne das ganze nochmal umständlich ausserhalb des scripteditors schreiben oder umkopieren zu müssen - und genau danach wird ja gesucht.
User avatar
Metuelisator
Posts: 634
Joined: Fri, 29. Aug 03, 06:22
x2

Heureka!

Post by Metuelisator »

so, nun hab ichs endlich gefunden, natürlich bevor Burnit das hier gepostet hat;)

Der Knackpunkt ist wie er sagte die Zeile:
$Bland = get distance between [Playership] AND Argon Ausrüstungdock[Argon Prime]

Ich habe Stück für Stück Zeilen im Script gelöscht bis es wieder gespeichert wurde, so bin ich drauf gekommen.

Nun dachte ich mir wie macht man das umständlicher und bin auf die "findstation" gestossen, also:

$BStation= find Station ...und dann Sektor und Stationstyp angeben und dann
$Bland = get distance between [Playership] AND $Bstation

und schon hats geklappert.
Ok, türlich muss der Scripteditor anfragen ob denn das Objekt auch vorhanden ist (die findStation würde ja auch sonst "null" ausgeben),
aber eine Meldung ala "Object not static" oder so wäre net schlecht.

Trotzdem natürlich danke an Burnit, das Du geantwortet hast. Ich weiss scho das es neben Forumlesen noch was anders gibt.

Wie auch immer, ich hoffe das andere auch was von der Lösung haben und das Mr. Script Burnit mir mal sagt, was er denn von meinem Mod hält ;)
http://www.egosoft.com/x2/forum/viewtopic.php?t=32856
Gigabyte GA-EP35-DS3
Intel Quadcore Q9300 @ 2,5 GHz
Geforce 8800 GTS 512
4G Ram Dual-Channel
Win XP SP3

Return to “X²: Die Bedrohung - Scripts und Modding”