Problem mit Überschneidung von Scripts

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
Reisser
Posts: 764
Joined: Mon, 28. Feb 05, 15:39
x4

Problem mit Überschneidung von Scripts

Post by Reisser »

Und zwar habe ich einen Script am Laufen - und zwar:

SDMPNet - Satellite Deployment/Monitoring/Patrol (http://blackspell.gmxhome.de/downloads/ ... -0.999.zip)

(diesen Script möchte ich auch keinen Fall mehr missen)

Dieser verkauft seine Software in der Argon Handels-Station in Argon Prime

Leider verkaufen dort auch andere Scripte ihre Software ... zb."Erweiterer Transporter" oder "Tuning Software Mk1"

Problem nun: der eine Script überschreibt den Namen des anderen (allerdings bekommt man dennoch die SDMPNet-Erweiterungen zu kaufen). Das gleiche gilt dann auch für die an Bord installierten Erweiterungen - auch hier hat man dann plötzlich ein "Tunik Kit" obwohl man die SDMPNet-Software installiert hat.

Da ich nun nicht sonderlich viel Ahnung (garnicht) vom X2-Scripten habe meine Frage: gibt es hier eine einfache Möglichkeit den SDMPNet-Script dahingegen zu ändern daß er z.B. auf anderen Slots verkauft und sich so keine Namensüberschneidungen mehr ergeben?
Deleted User

Post by Deleted User »

Möglichkeit ja aber da es von diesen freien Waren nicht viele gibt wirst du mit anderen Scripten Probleme bekommen.
Ausserdem ändert sich glaub ich automatisch der Preis der Software wenn man eine andere Ware verwendet aber da bin ich mir nicht sicher.
User avatar
Reisser
Posts: 764
Joined: Mon, 28. Feb 05, 15:39
x4

Post by Reisser »

Um das Thema nochmal aufzunehmen:

Das Problem tritt ja wohl auch gerne mit anderne Scripten auf die sich überschneiden - z.B. "EZ-K" und "Erweitere Transporter" etc etc etc

Es sollte doch wohl nicht so schwierig sein einen Script umzuschreiben damit er seine Erweiterungen irgendwoanders verkauft oder? Muß ja nicht alles in der Argon-Handelsstation in Argon Prime sein ...

Allerdings muß ich mir wohl nochmal ein paar FAQs durchschaun bis ich die Scripte durchschaue - zumindest mit einem normalen Editor sehen die etwas zu kryptisch für meinen Geschmack aus :wink:
Deleted User

Post by Deleted User »

Das hat nichts damit zu tun WO es was zu kaufen gibt. Waren werden immer global vergeben also anderst gesagt für das ganze Universum.
User avatar
Reisser
Posts: 764
Joined: Mon, 28. Feb 05, 15:39
x4

Post by Reisser »

Dumm ... und wie kommt es nun zu diesen Überschneidungen? Kann man im Script unterschiedliche Verkaufsslots angeben oder sind diese schon durchs System begrenzt? Sprich: was muß man ändern damit man mehrere Scripte nutzen kann die neue Software verkaufen? :?
User avatar
Reisser
Posts: 764
Joined: Mon, 28. Feb 05, 15:39
x4

Post by Reisser »

Tja ... schaun wir eben mal selbst ...

Das hier kommt aus dem SMPTnet-Paket:

Code: Select all

030   * add new wares
031   $hq =  find station in galaxy: startsector=Argon Prime class or type=Freie Argon Handelsstation race=Argonen flags=null refobj=null serial=null max.jumps=0
032   if $hq -> exists
033    $i = 0
034    while $i < $ware.count
035     $ware = $ware.array[$i]
036     if not $hq -> trades with ware $ware
037      $hq -> add product to factory or dock: $ware
038      $dummy = $hq -> add 1 units of $ware
039     end
040     inc $i = 
041    end
Und das hier (eines der Problemscripte mit dem obigen) aus EZ-Kauf

Code: Select all

001 @ = wait 3 ms
002   $ArgonPrime = get sector from universe index: x=1, y=3
003   $ausrustungsdock =  find station: sector=$ArgonPrime class or type=Argon Ausrüstungsdock race=Argonen flags=null refobj=null maxdist=null maxnum=null refpos=null
004   if $ausrustungsdock -> exists
005    if not $ausrustungsdock -> trades with ware EZ-K-Upgrade V1
006     $ausrustungsdock -> add product to factory or dock: EZ-K-Upgrade V1
007     $dummy = $ausrustungsdock -> add 1 units of EZ-K-Upgrade V1
008    end
009   end
010   
011   $wolkenbasis.NW = get sector from universe index: x=0, y=5
012   $GonerTempel =  find station: sector=$wolkenbasis.NW class or type=Tempel der Goner race=null flags=null refobj=null maxdist=null maxnum=null refpos=null
013   if $GonerTempel -> exists
014    if not $GonerTempel -> trades with ware EZ-K-Upgrade V1
015     $GonerTempel -> add product to factory or dock: EZ-K-Upgrade V1
016     $dummy = $GonerTempel -> add 1 units of EZ-K-Upgrade V1
017    end
018   end
019   return null
Eigentlich machen beide Scripte ja wohl nun das gleiche - aber welcher macht es "korrekt" ???

Ach nochwas: wo finde ich eigentlich den Preis eines Upgrades?

Nachtrag: da ich in der Firma hier kaum X2 (also auch nicht dessen Editor) installieren konnte schau ich mir das ganze mit Firefox an ... demzufolge also auch obige Scriptauszüge.
User avatar
Reisser
Posts: 764
Joined: Mon, 28. Feb 05, 15:39
x4

Post by Reisser »

Schau an - schau an - ich beantworte mir selbst wieder mal ein paar Fragen - leider kommen immer neue hinzu 8)

Also:

Beide Erweiterungen (EZ-Upgrage und SMPTnet ... bestimmt auch noch etwas anderes das immer noch reinstreut) benuzten als Definition in der Sprachdatei "ReadText17-5853" Leider auch Lucike Erweiterter Transporter - was das ganze nicht einfacher macht :roll:

Frage mal ganz fix: kann ich die Nummer auf eine "freie" Stelle verschieben und reicht das dann ggf als Problemlösung aus ???
Deleted User

Post by Deleted User »

Sorry das ich auch ein Privatleben habe :roll:

@Thema
Genau dieser ReadText ist die normalerweise unbenutze Ware. Es gibt nur ein paar davon und darum die Überschneidungen. Man könnte höchstens eine andere Ware benutzen aber dann wirst du wieder Probleme mit anderen Scripten bekommen und ausserdem verändert sich der Preis.
User avatar
Reisser
Posts: 764
Joined: Mon, 28. Feb 05, 15:39
x4

Post by Reisser »

Die Frage bezog sich ja auch nicht an dich (du bist ja nicht der einzige hier will ich mal hoffen :P ) sondern an jeden der liest - ist ja ein öffentliches Forum :)

Dann hängt der Preis am ReadText .. oha ... wer hat sich denn sowas ausgedacht? :oops:

Aber ich denke mal ich finde schon was ... wenn ich nur weiß was ich ändern muß dann passe ich die Scripte eben an mich an ... und ob ich nun die 3-9 Erweiterungen für 1500 oder 15000 Cr kaufe ist mir auch wurscht ... momentan kostet der EZUpgrade soviel wie die Patroulliensoftware - also irgendwas um 59.000 Cr ... hat mich auch nicht sonderlich gestört :P
Deleted User

Post by Deleted User »

Du musst eigentlich nur die Ware in dem Script ändern und in der T-Datei die im Ordner T liegt.

Genaue Beschreibung entnehme bitte den gepinnten Threads.
User avatar
ThalonMook
Posts: 1296
Joined: Tue, 3. Feb 04, 12:11
x4

Post by ThalonMook »

Hi Reisser,

ich benutze das SMPDNet schon ewig und hatte damit am Anfang auch probleme.... Ist aber ein geniales Script und ich möchte darauf auch nicht mehr verzichten....
Ich habe das Script an meine bedürfnisse angepasst und den Warenrohling verändert...

Du musst erst mal schauen welche Erweiterungen Du benutzt... Dazu schaust Du Dir alle Sprachfiles (die im t Ordner 49xxxx.xml) nacheinander an und notierst Dir die Warenrohlinge die das jeweilige Script benutzt...
z.B.

Code: Select all

- <page id="17">
  <t id="5843">SDMPNet Installationssoftware MK1</t> 
  <t id="5844">Mit dieser Software koennen Sie einem Ihrer Schiffe den Auftrag geben, in allen von Ihnen benutzen Sektoren Ueberwachungssatelliten aufzustellen.</t> 
  <t id="5853">SDMPNet Patroulliesoftware MK1</t> 
  <t id="5854">Diese Software fuegt ihrem Bordcomputer ein neues Kommando "SDMPNet Patroullie" hinzu. Schiffe, die fuer SDMPNet patroulllieren werden automatisch SDMPNet Feindwarnungen zugeordnet.</t> 
  </page>
Unter der Page ID 17 werden die Rohlinge genannt .... In diesem Fall ist "5843" die Soft zum Installieren. "5844" ist dann die Beschreibung...

Ich habs am Anfang so gemacht, das ich einfach per copy&paste die Zeilen in eine Textdatei übertragen habe und danach alles etwas aufgegräumt hab....

Dann hast Du eine Liste von den Warenrohlingen die Deine Scripte verwenden.....

  • 5753 Erweiterter Transporter
    5763 Bergungslizenz
    5773 Tiefpreisfinder
    5783 Hoechstpreisfinder
    5793 Xai Corp. Fleet Support Ship Software

    5803 Tuning Modul MK1
    5813 KriMe.SDS Station Delivery Software V02
    5823 BPH-Erweiterungskit MK1
    5833 Xai Corp. Sprung-Kommando Software
    5843 SDMPNet Installationssoftware MK1
    5853 SDMPNet Patroulliesoftware MK1
    5863 Huellen Reparatur System
    5873 Handelssoftware MK3
    5883 Geschütz Manschaft
    5893 XaiTec Traktorstrahl
    5903 Xai Corp. Fleet Commander Software
    5913 Raumfliegen Detektor
    5923 Statusscanner
So siehts bei mir aus....

Rohlinge gibts in X2 leider nicht so viele also musst Du sparam damit umgehen....

Also um zu Deinem Problem zurück zu kommen.... Wenn Du alle Deine verwendeten Warenrohlinge notiert hast siehst du ja was noch frei ist (schau Dir meine Liste an da werden fast alle Rohlinge verwendet) ....
Such Dir einen Rohling aus und ändere dann Deine Sprachdatei (49xxxx.xml) mit einem Texteditor dem entsprechend ab...

Also

Code: Select all

 <t id="5843">SDMPNet Installationssoftware MK1</t> 
  <t id="5844">Mit dieser Software koennen Sie einem Ihrer Schiffe den Auftrag geben, in allen von Ihnen benutzen Sektoren Ueberwachungssatelliten aufzustellen.</t> 
in z.B.

Code: Select all

 <t id="5763">SDMPNet Installationssoftware MK1</t> 
  <t id="5764">Mit dieser Software koennen Sie einem Ihrer Schiffe den Auftrag geben, in allen von Ihnen benutzen Sektoren Ueberwachungssatelliten aufzustellen.</t> 

Nimm wenn möglich eine niedrige Nummer, denn je kleiner die Zahl desto billiger ist die Ware dann...

Ok das war der erste Teil....
Jetzt musst Du nur noch das ini.xxxx.xml oder setup.xxxx.xml mit dem X2 Scripteditor anpassen.... Das macht man am besten mit einer 2. X2 Installation sozusagen eine Developer Version... Denn wenn Du ein frisches X2 benutzt hast Du keine Konflikte mit anderen Scripten....
Also installier X2 nochmal auf irgend einer Partiton und ändere den Ordner X2 in z.B. X2-Test oder sonstwas um...
Dann installierst Du die Standardscripte (Bonuserweiterungen) und startest ein neues Spiel.... Sobald Du den Vorspann hinter Dir hast und zum ersten mal ins All fliegen kannst speicherst Du das Spiel ab...
Dann raus aus der Station und den Scripteditor aktivieren (Ich schätze darauf bruache ich nicht weiter eigehen).... Jetzt wieder irgendwon Landen und speichern.... Jetzt hast Du einen Spielstand mit dem Du arbeiten kannst....
Wenn Du jetzt ein neues Script hast kannst Du es in Deiner Testversion von X2 testen und anpassen.... So verhindert man das ein neues Script, durch das überschreiben von irgendwelchen Waren oder Befehlen ein anderes Script verändert und es nicht zu konflikten kommt...
Wenn Du Dein Script soweit angepasst hast...

hier das Setup Script für das SMDPNet

Code: Select all

009 @ = wait 1 ms
010   load text: id=101
011   
012   * variables
013   $ware.array =  array alloc: size=0
014   append SDMPNet Patroulliesoftware MK1 to array $ware.array
015   append SDMPNet Installationssoftware MK1 to array $ware.array
016   $ware.count =  size of array $ware.array
wie du siehst sollte in Zeile 14 die Patrouliensoft und in Zeile 15 die InstSoft stehen... Wenn das bei Dir nicht der fall ist musst Du es ändern....

Ok ich hoffe Dir etwas geholfen zu haben....

Wenn Du es nicht hinbekommst kann ich Dir das SMPDNet auch an Deine Bedürfnisse anpassen....
Du must mir nur Deine Liste mit den Rohlingen posten...

Ok bis denn Thalon
XFile
Posts: 270
Joined: Wed, 2. Mar 05, 21:56
x2

Post by XFile »

noch einfacher geht's wenn du mir dem Scripteditor die "init.*****" oder "setup.****" (**** müsste der name deines sripts oder ähnliches sein) öffnest und dann bei

"set script command upgrade: command= <command> upgrade= <ware>"

die <ware> in eine schon in X2 vorhandene, wie z.B. "Navigationssoftware Mk1" änderst. Dann ist der Warenslot wieder frei und es überschneidet sich nicht mehr.
User avatar
Reisser
Posts: 764
Joined: Mon, 28. Feb 05, 15:39
x4

Post by Reisser »

@ThalonMook: vielen Dank für die Mühe :roll: dann werde ich mich mal ranmachen meine Scriptsammlung dementsprechend anzupassen - hakt ja irgendwann doch hier und da :wink: . Das werd ich schon hinbekommen - will ja auch nicht dumm sterben :P

@XFile: uh? Das müßte ich mir dann "vor Ort" anschaun - momentan kann ich mir darunter nicht ganz so viel vorstellen :?

Reisser

(das aber nur wenn man mich heute irgendwann aus der Arbeit entläßt ... )
XFile
Posts: 270
Joined: Wed, 2. Mar 05, 21:56
x2

Post by XFile »

mit dem Befehl wird <command> an eine Software gebunden (<ware>)

d.h. dein Script <command> benötigt die Software <ware> damit der Befehl im Schiff sichtbar ist.

Wenn du nun eine schon vorhandene Software benutzt anstatt eine neue zu setzen gibt es keine Überschneidungen.

(nur nochmal zur verdeutlichung [hoffe diesmal wars nicht so unverständlich geschrieben :oops: ])

mfg XFile
User avatar
Reisser
Posts: 764
Joined: Mon, 28. Feb 05, 15:39
x4

Post by Reisser »

22:03 - und immer noch in der Firma :evil:

Sorry - heute könntest du mir das noch so gut erklären - ich würds jetzt nicht mehr verstehen :o

Ich mach mich morgen mal dran - da könnte ich schon um 20:00 zuhause sein :D

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