Angebotene Waren einer Station verändern.

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

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

FritzHugo3
Posts: 4663
Joined: Mon, 6. Sep 04, 17:24
x4

Post by FritzHugo3 » Sun, 15. Apr 18, 17:25

Ist schon einige Jahre her bei mir mit dem Scripteditor aber ich meine es war so das,

$station -> add Product to Factory or Dock: Sprungantrieb
generell erst mal anweisst, dass die Ware xy vorhanden ist

und dann hiermit
$station -> add 1 units of ware Sprungantrieb
einfach nur die Anzahl xy dazugecheatet wird

Hast du auf die richtige Reihenfolge geachtet?
(manchmal sind im Auswahlmenü Ware, wenn man die Argumnente auswählen kann auch Dinge doppelt aufgelistet, dann geht meistens eins von beiden nicht, aber das nur nebenbei)

Grundsätzlich kannst du dir beim Scripten nicht so sehr viel kaputt machen, so lange du deine Savegames extra absicherst (nur Schleifen können was sehr böses sein grins). Also probier ruhig einige Befehle aus. dann Script speichern und mit "r" (glaube ich wars) kannste es testen.

Bei komplizierteren Scripts bietet es sich auch an "Fehlertöne" oder "Briefe/Lognachrichten" als quasi Marker zu nutzen, dann weis man, wo das Script gerade hängt. (Nur falls du Gefallen am Scripten gefunden haben solltest ;-))
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!

User avatar
ubuntufreakdragon
Posts: 5195
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon » Sun, 15. Apr 18, 17:38

der name des Scripts sollte mit "setup." beginnen, dann wird es automatisch beim spiel laden mit gestartet:
sähe dann minimal anders aus:

Code: Select all

*zu finden in universe commands
$sector = get sector from universe index: x=1 y=3
*zu finden in universe commands
$station = find station in sector $sector class/type= Argon Ausrüstungsdock
*zu finden in trade commands for stations
if not $station -> uses ware Sprungantrieb as product
*zu finden in trade commands for stations
$station -> add Product to Factory or Dock: Sprungantrieb
*zu finden in trade commands
$station -> add 1 units of ware Sprungantrieb 
*zu finden in general commands Flow Control
end
das hilft beim suchen: https://forum.egosoft.com/viewtopic.php?t=286343
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist

stunner666
Posts: 160
Joined: Fri, 8. Feb 08, 19:22
x4

Post by stunner666 » Sun, 15. Apr 18, 20:15

hmmm wirklich ich werd gleich wahnsinnig mit diesem Scripteditor!

"$station -> add 1 units of ware Sprungantrieb "

Ich finde zum Sterben nicht diese Zeile im Scripteditor! kann man sowas nicht von hand tippen?

Bei Flow Control finde ich nur sachen wie

end conditional
else
continiue
break
goto label

usw.

Hab ich einen anderen Scripeditor wie ihr oder bin ich einfach zu blöd dafür??? :D

Gruß

User avatar
ubuntufreakdragon
Posts: 5195
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon » Sun, 15. Apr 18, 20:20

die Befehle sehen ohne eingesetzte argumente anders aus:

Code: Select all

<RetVar/IF><RefObj> add <Var/Number> units of <Var/Ware>
* und end conditional lässt im test das conditional weg
* end conditional -> end
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist

FritzHugo3
Posts: 4663
Joined: Mon, 6. Sep 04, 17:24
x4

Post by FritzHugo3 » Mon, 16. Apr 18, 13:45

Nein direkt was schreiben kann man leider nicht in dem Editor, auch Kopieren, Scrolen, Einfügen, mehrere Scripte gleichzeitig usw. ist leider alles nicht möglich. Ich hatte mir damals auch oft was, wie eine vereinfachte Form von Notepad++ Ingame gewünscht. (Es hat aber noch einen Vorteil, du musst nicht das Spiel beenden zum Testen)

Man braucht halt recht viel Gedult aber dafür muss man auch nicht Programmieren können und macht nicht so viel kaput (denn sie wissen nicht, was sie tun grins). Hättest mal das Durcheinander bei X2 sehen müssen, da waren die noch nicht so schön sortiert grins.

Ich hab (zugegeben würde ich heute sicherlich selber die Kriese bekommen, wenn ich meinen eigenen Code lesen würde) vorher noch nie einen Code gesehen und hier mit X immerhin einige (mehr oder weniger nützliche) Scripte hinbekommen gehabt. (Auch dank der tollen Comunity und freundlichen Unterstützung einiger)

In Rebirth gibts keinen Ingameeditor und es wird einem nichts an Codeschnipseln vorgegeben, dafür darfst du direkt mal eine ganze Sprache lernen. Darauf haben die meisten Spieler, die vorher nichts mit Programmierung am Hut hatten gar keine Lust.


Das wirklich doofe ist, das die Ingamescripte beim Speichern nochmals umformatiert werden (es steht einmal für den Menschen und ganz unten dann der eigentliche Code fürs Spiel, sieht man, wenn man mal Scripte in Windows in nem Texteditor anschaut), leider kann man es fast vergessen, dort was zu schreiben, das wird meistens schief gehen. (ausser, es ist nur mal ne Zahl oder so was wirklich kleines, was man ändern möchte.


Du bekommst das schon hin, Gedult ist der Schlüssel



(ich meine es gäbe aber auch was fertiges, das man hinzufügen kann. Ist nichts in dieser Richtung in den Cheatscripten verbaut?). Oder du nimmst eins der Scripte, die die eigenen Ausrüstungsdocks verändern und schreibst das um. Schau dir doch mal die Liste der unsignirten Erweiterungen an.
Braucht aber auch Zeit. (Bin gerade dabei mir meine Wunschliste für ein Neuanfang zu erstellen und hab schon zwei Stunden gebraucht und bin noch lang nicht fertig ;-).
Ich fordere mehr und vorallem gerechtere Verteilung von Keksen und Süßkram für die "Magischen 20"! Daher wählen Sie jetzt die DPFGKV, die Deutsche Partei für gerechtere Keks - Verteilung!

stunner666
Posts: 160
Joined: Fri, 8. Feb 08, 19:22
x4

Post by stunner666 » Mon, 16. Apr 18, 16:17

ohhh yeah baby es geht endlich. hab alles gefunden!

Danke jungs!

stunner666
Posts: 160
Joined: Fri, 8. Feb 08, 19:22
x4

Post by stunner666 » Mon, 16. Apr 18, 18:33

ooook ich hätte doch noch eine Frage.

Ich will das ganze bissel erweitern.

Für einzelne Waren geht das jetzt wunderbar.

Aber wenn ich versuche gleichzeitig mehrere hinzuzufügen geht es nicht.

Also Sprungantrieb, Transporter und Lebenserhaltung z.B.

$station -> add Product to Factory or Dock: Sprungantrieb
$station -> add 1 units of ware Sprungantrieb

hab ich einfach kopiert untereinander gestellt und die anderen waren eingetragen anstatt Sprungantrieb

$station -> add Product to Factory or Dock: Sprungantrieb
$station -> add 1 units of ware Sprungantrieb
$station -> add Product to Factory or Dock: Transporter
$station -> add 1 units of ware Transporter

dann passiert aber leider nichts mehr :D

Könnt mir da noch jemand helfen bitte?

Gruß
Stunner

User avatar
ubuntufreakdragon
Posts: 5195
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon » Mon, 16. Apr 18, 19:13

gib mal das ganze script an
falls du die variante mit

Code: Select all

if not $station -> uses ware Sprungantrieb as product
*...
end
nutzt denk daran für jede ware einen eigenen block aufzumachen

Code: Select all

if not $station -> uses ware Sprungantrieb as product
$station -> add Product to Factory or Dock: Sprungantrieb
$station -> add 1 units of ware Sprungantrieb
end
if not $station -> uses ware Transporter as product
$station -> add Product to Factory or Dock: Transporter
$station -> add 1 units of ware Transporter 
end
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Mon, 16. Apr 18, 19:16

Warum bastelst Du nicht gleich ein neues AD? Damit hast Du weniger Probleme. Hier ein Beispiel.

Code: Select all

$x = $setLoc[0]
.........
..........
goto label check1:
return null
Dieses Beispiel habe ich entfernt.
Last edited by Klaus11 on Thu, 19. Apr 18, 13:16, edited 2 times in total.
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Tue, 17. Apr 18, 00:07

korrektur zum vorigen beispiel: der goto-Loop ist afaik im falle von ADs für Softwareeweiterungen nicht nötig. diese müssen nur einmal hinzugefügt werden, damit es etwas gibt das man kaufen kann, aber wenn man diese erwirbt wird es nicht vom lagerbestand abgezogen.
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Tue, 17. Apr 18, 06:07

Welche negativen Folgen hätte es, wenn Deine vorgeschlagene Korrektur nicht vorgenommen wird?
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Tue, 17. Apr 18, 18:29

man kann Erweiterungen nicht mehr im AD entfernen, da dann nach einer sekunde 2 davon vorhanden sind und das Lager somit voll. und nebenher ist der Preis daher ein wenig niedriger als üblich. nicht negativ, aber sicher nicht beabsichtigt...
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
ubuntufreakdragon
Posts: 5195
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon » Tue, 17. Apr 18, 18:32

So oder so dein Script ist ein schlechtes beispiel.
1 es ist zu lang, für seine zwecke wäre ein beispiel für 2 exemplare das richtig, dann sieht er was kopiert werden muss und was nicht
2 du ignorierst sonderfälle, dieser würde z.b. zusätzlich zu UTs antwort auch zu unschöner darstellung der waren führen, da docks für gewöhnlich genau ein exemplar an software führen.
3 die variablen sind nicht sinnvoll benahmt, hier z.b. wäre ein array deutlich sinnvoller statt 30 einzel vars
Hier mal eine Sinnvolle Variante für mehrere arten Software

Code: Select all

*finden von sektor + station
$sector = get sector from universe index: x=1 y=3
$station = find station in sector $sector class/type= Argon Ausrüstungsdock

*auflistung aller benötigten/gewünschten Waren
*alle unter general comands -> Arrays
$arr.warestoadd = array alloc: size=0
append Sprungantrieb to array $arr.warestoadd
append Transporter to array $arr.warestoadd

$counter = size of array $arr.warestoadd
*zu finden in general commands: <RetVar/IF><Expression>
while $counter
  *zu finden in general commands, bedeutet: ziehe 1 von $counter ab
  dec $counter =
  *unter general comands -> Arrays: RetVar/IF><Var/Array>[<Var/Number>]
  $ware = $arr.warestoadd[$counter]
  
  *der teil ist ja schon bekannt
  *erst prüfen wir ob die ware fehlt
  if not $station -> uses ware $ware as product
    *falls ja fügen wir sie hinzu
    $station -> add Product to Factory or Dock: $ware 
    $station -> add 1 units of ware $ware 
  end 
end
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist

Post Reply

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