kurze frage zu "setup-scripts"

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
o1ofco2
Posts: 1035
Joined: Mon, 2. Feb 04, 20:30
x4

kurze frage zu "setup-scripts"

Post by o1ofco2 »

Hiho Leute :)

ich hab mal ne frage zu sogenannten "setup"-scripts, die beim start des spiels automatisch ausgeführt werden:

Wenn das setup-script ne endlosschleife beinhaltet, wird es dann nach dem speichern des spiels und erneutem Laden neu gestartet?

also läuft es dann 2 mal parallel?

hier mein code zur Verdeutlichung:

Code: Select all


Description
Adds some Hackerchips to cargobay of target
Arguments

Source Text

001   * playertrackingaimcheck
002   targetcheck:
003   $aimtarget =  get player tracking aim
004   $targetClass = $aimtarget -> get object class
005   
006   
007   * check target if its a pirateship
008   if $targetClass -> is of class Bewegliches Schiff
009   |$targetRace = $aimtarget -> get owner race
010   |if $targetRace == Piraten
011   * random if target will get some chips
012   ||$RNDchance =  = random value from 0 to 4 - 1
013   ||if $RNDchance >= 2
014   * check if it has already chips in cargobay
015   |||$chipAmt = $aimtarget -> get amount of ware Hackerchips in cargo bay
016   * if lower than 1 chip in cargobay - add some
017   |||if $chipAmt < 1
018   ||||$RND =  = random value from 0 to 21 - 1
019   ||||= $aimtarget -> add $RND units of Hackerchips
020   * ------------debug-----------
021   ||||write to player logbook: printf: fmt='aimtarget: %s , targetClass: %s , Hackerchips: %s', $aimtarget, $targetClass, $RND, null, null
022   * ------------debug-----------
023   |||end
024   ||end
025   |end
026   end
027 @ = wait randomly from 2000 to 10000 ms
028   goto label targetcheck
029   
030   
031   return null
tnx für hilfreiche Antworten

LG
-o1
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Das hängt sich vermutlich auf.

setups werden bei jedem mal Spiel Laden ausgeführt.

Und vergiß waits. Während der setup-Phase werden keine interrupts ausgeführt.

Wenn, dann benutze START call $Null -> setup.script mit irgendeinem Argument.
Dann läuft das "zweite" setup script als gewöhnliches globales script und nicht während der setup-Phase.

Nimm lieber ein AL Plugin für sowas. Das ist viel pflegeleichter und kann auch problemlos abgeschaltet werden.
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
User avatar
Generalwest
Posts: 2764
Joined: Thu, 31. May 07, 18:07
x4

Post by Generalwest »

endlosschleifen in setups sind zudem eig unerwünscht da sonst andere Setup Scripts nicht ausgeführt werden soweit ich weis.
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Eben. Weil es sich aufhängt. =)
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
User avatar
o1ofco2
Posts: 1035
Joined: Mon, 2. Feb 04, 20:30
x4

Post by o1ofco2 »

naja, aufhängen tut sichs nicht, aber mir ist gestern kurz vorm einschlafen auch die idee gekommen, dieses script von nem setupscript zu starten und auf ner globalen variable laufen zu lassen, die beim 2. mal laden abgeprüft wird ob das script schon läuft - > wenn ja -> return null

aber thx für die Hinweise :)

LG
-o1
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

o1ofco2 wrote:naja, aufhängen tut sichs nicht, aber mir ist gestern kurz vorm einschlafen auch die idee gekommen, dieses script von nem setupscript zu starten und auf ner globalen variable laufen zu lassen, die beim 2. mal laden abgeprüft wird ob das script schon läuft - > wenn ja -> return null
Übrigens: Das mit dem Prüfen sollte automatisch auch gleich Versionsupdate sein.

Wenn also das (zweite) script anläuft, schreibt es Playtime in die Variable.
Später checkt es dann nur noch, ob in der GlobalVar immer noch das drinsteht, was es selbst reingeschrieben hat.

Wenn nicht, dann hat offensichtlich ein jüngeres Script - das eine neue Version sein könnte - was anderes reingeschrieben.
Also Tschüß.

So läßt sich auch bei den schwierig zu fassenden globalen scripts Versionsupdate + Uninstall auf einfachste Weise regeln - oder zumindest vorsehen. =)

Wenn du das nämlich nicht machst kannst du dir später den Mund fusselig reden wenn du jedem Script-Analphabeten erklärst, wie denn ein globales Script wieder gelöscht werden kann.


PS: Globale scripts können sich auch selbständig beenden wenn das Setup script gelöscht wird, also gar nichts mehr signalisieren kann.
Last edited by Gazz on Fri, 8. May 09, 13:23, edited 1 time in total.
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
User avatar
Generalwest
Posts: 2764
Joined: Thu, 31. May 07, 18:07
x4

Post by Generalwest »

Gazz wrote:Eben. Weil es sich aufhängt. =)
nicht weil es sich aufhängt sondern weil das script endlos läuft was ja auch der sinn davon ist ^^.

ich geh aber mal davon aus das wir dem Hund nur nen anderen namen geben

das mit dem Prüfen könntest du ihm auch genauer erklären ^^
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Generalwest wrote:ich geh aber mal davon aus das wir dem Hund nur nen anderen namen geben
Sagen wir einfach, daß es stilistisch ein grober faux pas ist. So kommt man bei Scripterparties nie am Türsteher vorbei!
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
User avatar
Generalwest
Posts: 2764
Joined: Thu, 31. May 07, 18:07
x4

Post by Generalwest »

ich merk immer wieder das du einen großen, originellen und für mich kaum verständlichen Wortschatz hast. Aber der sinn ist bei beiden gleich.

faux pas das Goggel ich mal :roll:
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Generalwest wrote:das mit dem Prüfen könntest du ihm auch genauer erklären ^^
Och, ich will doch keinem das Denken abnehmen. Für einen Scripter wäre das eine enorme Behinderung!

Außerdem werde ich dann vielleicht verklagt, wegen Unterdrückung von Eigenkreativität.
Wie in der Fernsehwerbung vom Baumarkt. "Hab ich selbst gemacht!"

Einen Tip zu geben ist ja okay aber es ist schlechter Stil, jemandem vorzuschreiben, wie er etwas zu machen hat.
Wenn ich einen Handwerker engagiere oder die Anforderungen für ein elektronisches Bauteil aufliste, dann sage ich auch nur was ich will. Für das wie benutzt man schließlich Fachleute.
My complete script download page. . . . . . I AM THE LAW!
There is no sense crying over every mistake. You just keep on trying till you run out of cake.
User avatar
laux
Posts: 2609
Joined: Sun, 7. Mar 04, 11:39
x3tc

Post by laux »

Ich frag mich, wie Ihr es schafft, auf der kurzen Strecke zwischen Hamburg und Berlin, in München zu landen.
Ich würde euch nahelegen, die nächste Raststätte aufzusuchen, bevor ihr euch noch weiter vom Ziel entfernt!

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