@Egosoft: Bug imScripteditor
Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum
-
- Posts: 634
- Joined: Fri, 29. Aug 03, 06:22
@Egosoft: Bug imScripteditor
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.
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
Intel Quadcore Q9300 @ 2,5 GHz
Geforce 8800 GTS 512
4G Ram Dual-Channel
Win XP SP3
-
- Posts: 4797
- Joined: Fri, 20. Dec 02, 19:30
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
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
--<= back (for good?) =>--
don't click

--<= back (for good?) =>--
-
- Posts: 634
- Joined: Fri, 29. Aug 03, 06:22
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
Intel Quadcore Q9300 @ 2,5 GHz
Geforce 8800 GTS 512
4G Ram Dual-Channel
Win XP SP3
Re: @Egosoft: Bug imScripteditor
das script wird schon gespeichert soweit ich mich entsinne.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.
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.
-
- Posts: 892
- Joined: Mon, 29. Sep 03, 19:06
-
- Posts: 634
- Joined: Fri, 29. Aug 03, 06:22
Re: @Egosoft: Bug imScripteditor
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.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.
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
Intel Quadcore Q9300 @ 2,5 GHz
Geforce 8800 GTS 512
4G Ram Dual-Channel
Win XP SP3
-
- EGOSOFT
- Posts: 5115
- Joined: Wed, 6. Nov 02, 20:31
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
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
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)
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.
In der Ruhe liegt die Kraft. / In peace lies strength.
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.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 manim Script verwendet wird es nicht exportiert.Code: Select all
$station = Panzerungsfertigung 1MW(Argon Prime)
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
-
- Posts: 634
- Joined: Fri, 29. Aug 03, 06:22
Heureka!
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
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
Intel Quadcore Q9300 @ 2,5 GHz
Geforce 8800 GTS 512
4G Ram Dual-Channel
Win XP SP3