Objekttypen

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
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Die fw existiert Bruchteile von Sekunden und ist somit kein wirkliches Problem
Das stimmt. Ein Problem war es von Anfang an nicht. Es ging mir eher um die Ästhetik. :)
ch werde es aber nicht nochmal umbauen, da es so 100%ig funktioniert und eine relativ große Sicherheit bietet.
Der Umbau:

Code: Select all

$tmpWare = get ware from maintype 16 and subtype 64
$tmpName = printf: fmt='%s', $tmpWare, null, null, null, null
* Lesen des Warennamen aus dem t-File:
$tmpTName = read text: page=17 id=5803
if $tmpName == $tmpTName
  * In diesem Fall entspricht der Warenname dem Warennamen aus dem t-File
  $tmpEntry = array alloc: size=3
  $tmpEntry[0] = $tmpWare
  $tmpNotoReq = get notoriety required to buy ware: $tmpWare
  * Rangcheck:
  if $MaxNoto >= $tmpNotoReq AND $tmpNotoReq != null
    $tmpEntry[1] = [TRUE]
  else
    $tmpEntry[1] = [FALSE]
  end
  $tmpEntry[2] = 109
  append $tmpEntry to array $tmpArray
end
:D

Na, um mal wieder ein bisschen zurück zum Thema zu kommen:
Schöne Idee und schönes Menü! :)

MfG,
ScRaT
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

ok - Dein Umbau gefällt mir doch :) Ich denke ich werde das doch nochmal kurz anfassen :D

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

Post by ScRaT_GER »

Eine Sache noch ist mir noch aufgefallen:
Im aktuellen Entwurf (und auch in dem davor) würde der Vergleich $tmpName == $tmpTName immer zu [TRUE] ausgewertet werden, da der Name der Ware auch immer auf Page 7, ID 5803 steht - egal, ob das Skript installiert ist oder nicht. Das heißt, wenn das Skript installiert wird heißt der Vergleich 'Warenlogistiksoftware MK1' == 'Warenlogistiksoftware MK1' und sonst eben 'SS_WARE_SW_NEW6' == 'SS_WARE_SW_NEW6'.

Es würde deswegen Sinn machen, wenn du die gesuchten Namen selbst in der T-File definiert und dann $tmpTName irgendwie so abfragst:

Code: Select all

$tmpTName = read text: page=$DeinePageID id=$irgendeineTID
MfG,
ScRaT
User avatar
Gazz
Posts: 13244
Joined: Fri, 13. Jan 06, 16:39
x4

Post by Gazz »

Das funktioniert dann nur in den Sprachen, für die man die Namen hinterlegt hat, und ist auch mit Lasermods inkompatibel.
Ist eher mehr Arbeit als weniger. =P
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
ScRaT_GER
Posts: 1962
Joined: Tue, 8. Jan 08, 18:19
x3tc

Post by ScRaT_GER »

Ist eher mehr Arbeit als weniger. =P
Aber sonst funktioniert es gar nicht. Nicht mit der "get name"-Methode und auch nicht mit der String-Konvertierungs-Methode.

Auch das Testen auf die Patterns SS_WARE_* um zu bestimmen, ob die Ware installiert ist, gibt noch keine Sicherheit, dass es sich dabei tatsächlich um die WLS MK1 handelt. Es könnte ja schließlich auch jemand anders den Warenslot für eine andere Software verwendet haben.
ist auch mit Lasermods inkompatibel.
Wieso das denn? Wenn er in seiner eigenen T-File noch 'Warenlogistiksoftware MK1' definiert entsteht doch keine Inkompatibilität zu Lasermods.
Es geht doch darum besimmte Softwareerweiterungen nur verfügbar zu machen, wenn bestimmte Skripts verwendet werden.
Das funktioniert dann nur in den Sprachen, für die man die Namen hinterlegt hat
Das stimmt natürlich. Aber Deutsch und Englisch wird er wohl noch hinbekommen. Und um die Übersetzung in andere Sprachen würden sich dann sicherlich auch andere kümmern.

MfG,
ScRaT
User avatar
Reflexer
Posts: 863
Joined: Sat, 21. Feb 09, 12:54
x4

Post by Reflexer »

ScRaT_GER wrote:Eine Sache noch ist mir noch aufgefallen:
Im aktuellen Entwurf (und auch in dem davor) würde der Vergleich $tmpName == $tmpTName immer zu [TRUE] ausgewertet werden, da der Name der Ware auch immer auf Page 7, ID 5803 steht - egal, ob das Skript installiert ist oder nicht. Das heißt, wenn das Skript installiert wird heißt der Vergleich 'Warenlogistiksoftware MK1' == 'Warenlogistiksoftware MK1' und sonst eben 'SS_WARE_SW_NEW6' == 'SS_WARE_SW_NEW6'.

Es würde deswegen Sinn machen, wenn du die gesuchten Namen selbst in der T-File definiert und dann $tmpTName irgendwie so abfragst:

Code: Select all

$tmpTName = read text: page=$DeinePageID id=$irgendeineTID
MfG,
ScRaT
Ich weiß. Gazz hatte weiter vorne schon drauf hingewiesen, weshalb ich inzwischen auch auf die ersten 3 Zeichen prüfe... Diese dürfen nich "SS_" sein....

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