Mache Scripts für Newbys

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
Gerfried [USC]
Posts: 137
Joined: Sun, 20. Nov 05, 23:06
x4

Mache Scripts für Newbys

Post by Gerfried [USC] »

bitte nicht zu schwere bin selbst ned der beste,
ich kann euch machen:

Warendazufügungsscripts,
Fabriken dazu fügen (Gratis),
Create Ship Scripts usw.
halt hauptsächlich dazufügen
User avatar
proggy3456
Posts: 2027
Joined: Sun, 6. Apr 03, 18:57
x3ap

Post by proggy3456 »

Das ist schön, es gibt aber schon genug Script, die nicht nur hinzufügen, sondern noch ne ganze Stange mehr können. Ein Beispiel ist das Scriptpaket auf meiner Homepage. :wink:
Kannst sie dir ja mal ansehen und davon noch was lernen. Ansonsten wird das schwere Scripten von den etwas professionelleren Leuten übernommen. :)
User avatar
Gerfried [USC]
Posts: 137
Joined: Sun, 20. Nov 05, 23:06
x4

Post by Gerfried [USC] »

dieses Thema war halt vorallem für wirkliche Newbys Gedacht halt so als Grundlage,
halt für solche die ned lange suchen wollen

ok schaus mir ma an :)
LordZsar1
Posts: 630
Joined: Mon, 6. Jun 05, 14:25
x3tc

Post by LordZsar1 »

Ich verabscheue diesen "Scripteditor"...
Und seit neuestem auch die X²-Scriptsprache selbst.

Und also bin ich daran interessiert, eine Bestellung aufzugeben:

Code: Select all

1. Wähle beliebige Station Typ "Schiffswerft"/"Trockendock"
2. Erstelle 0-10 Schiffe M4/3 des besitzenden Volkes mit
   Standartarmierung in zufälligem Verhältnis innerhalb der gewählten
   Station
3. Wähle zufälligen Sektor eines feindlichen Volkes
4. Wähle zufälliges Sprungtor in gewähltem Sektor
5. Gib Befehl "Sprungantrieb benutzen" zu gewähltem Tor an erstellte
   Schiffe
6. Nach Ankunft gib Befehl "Töte alle Feinde" an erstellte Schiffe
Eine Art kleinerer, einfacherer Bruder zu StarTrekMarcs Schlachtenscript, um die kurzen Scharmützel aus X-BtF wieder ins Spiel zu bringen.
User avatar
Gerfried [USC]
Posts: 137
Joined: Sun, 20. Nov 05, 23:06
x4

Post by Gerfried [USC] »

ok
mach ich ma

also du willst ne art Schlachten Script oder was?
LordZsar1
Posts: 630
Joined: Mon, 6. Jun 05, 14:25
x3tc

Post by LordZsar1 »

[...] ne art [...]
Jawoll.
Keine ganze "Schlacht", einfach ein kleines Scharmützel zwischen einer Handvoll von Jägern.
Ich habe mich mit solchen Sachen wie Formationsflugverhalten noch nicht auseinandergesetzt, aber es wäre schön, wenn die angreifenden Schiffe einigermaßen zusammenbleiben würden.

Ich kann dir sogar die ungefähre Vorgehensweise diktieren, einzig die Konvertierung in X²-Code bleibt dir überlassen.

Erstelle eine Integer-Variable(i1), auf der du einen zufälligen Wert zwischen 0 und 1 speicherst und ein Array(fr), in denen die "freundlichen" Völker (außer den Gonern) eingetragen werden müssen.
Erstelle eine weitere Integer-Variable(i2), auf die ein zufälliger Wert zwischen 3 und 10 gespeichert wird und noch eine(i3), der du ein zufälligen Wert zwischen 0 und 100 zuweist.
Erstelle für jedes Volk ein Array(sp), das alle Schiffswerften und Trockendocks dessen enthält (für Xenon trage stattdessen Handelsstationen ein).
Erstelle ein Schiffsarray(fl), eine Schiffsvariable (ff) und eine Sektorvariable(ta), die du noch leer lässt.

Nun zum eigentlichen Programm:

Frage per if-Struktur ab, ob der Wert von i1 == 0 sei.
Sei dies der Fall, erstelle (int) ((double)i3)/100.0*((double)i2) M2- und
i2-((int) ((double)i3)/100.0*((double)i2)) M3-Schiffe des Volkes (zufälliger Index von fr) in der Station (zufälliger Index von sp).
Trage die erstellten Schiffe in fl ein, dann statte fl mit Standartausrüstung aus und wähle ein zufälliges M3-Schiff aus fl, das du allen anderen Schiffen in fl als Gruppenführer zuweist und auf ff speicherst.
Ermittle einen zufälligen Xenonsektor, den du auf ta speicherst und erteile ff den Befehl, sich nach ta zu begeben.

Sei es nicht der Fall, erstelle (int) ((double)i3)/100.0*((double)i2) M2- und
i2-((int) ((double)i3)/100.0*((double)i2)) M3-Schiffe der Xenon in der Station (zufälliger Index von sp).
Trage die erstellten Schiffe in fl ein, dann statte fl mit Standartausrüstung aus und wähle ein zufälliges M3-Schiff aus fl, das du allen anderen Schiffen in fl als Gruppenführer zuweist und auf ff speicherst.
Ermittle einen zufälligen Sektor des Volkes (zufälliger Index von fr), den du auf ta speicherst und erteile ff den Befehl, sich nach ta zu begeben.

EventListener(Element aus fl wird angegriffen)
=> erteile ff die Anweisung, den Angreifer zu bekämpfen.
EventListener(Angreifer zerstört)
=> erteile ff die Anweisung, sich nach ta zu begeben
EventListener(ta erreicht)
=> erteile ff die Anweisung, alle Feinde zu bekämpfen
EventListener(fl zerstört)
=> brich das Script ab und lösche Variablen


Es könnten einige Änderungen hinsichtlich der Gruppensteuerung vonnöten sein, da ich noch keinerlei Erfahrungen mit Flügelmannkontrolle gesammelt habe.
Auch habe ich mich (wie aus den Anweisungen ersichtlich) doch dafür entschieden, die Schiffe lieber konventionell zu ihrem Ziel fliegen zu lassen - das sorgt für etwas Atmosphäre.
X2-MegaMaster
Posts: 50
Joined: Sun, 20. Nov 05, 19:18
x2

Post by X2-MegaMaster »

Ich könnte auch mal ein Script gebrauchen:

http://forum2.egosoft.com/viewtopic.php?t=104336
67% Großhändler, 94% General

Schaut mal auf www.gamer-world.de vorbei!
User avatar
Gerfried [USC]
Posts: 137
Joined: Sun, 20. Nov 05, 23:06
x4

Post by Gerfried [USC] »

also ihr wollt da beide ne art Weltkrieg wie ich das sehe,
bei LordZsar soll ich ja alle Völker auf Feindlich stellen so das auch sie sich Feindlich gesinnt sind und nicht nur zu dir oder??

und bei dir steht dies ja ganz Klar Master

lol
solche sachen sind schwer und brauchen viel zeit.....
ist es gut wenn ich am Samstag anfange?
LordZsar1
Posts: 630
Joined: Mon, 6. Jun 05, 14:25
x3tc

Post by LordZsar1 »

!?

Entweder habe ich mich mangelhaft ausgedrückt, oder du hast mich fehlinterpretiert.

Ein Volk soll Schiffe in einen Xenonsektor, oder die Xenon Schiffe in einen Völkersektor schicken, das war es.

Das hier in Code umwandeln:
Erstelle eine Integer-Variable(i1), auf der du einen zufälligen Wert zwischen 0 und 1 speicherst und ein Array(fr), in denen die "freundlichen" Völker (außer den Gonern) eingetragen werden müssen.
Erstelle eine weitere Integer-Variable(i2), auf die ein zufälliger Wert zwischen 3 und 10 gespeichert wird und noch eine(i3), der du ein zufälligen Wert zwischen 0 und 100 zuweist.
Erstelle für jedes Volk ein Array(sp), das alle Schiffswerften und Trockendocks dessen enthält (für Xenon trage stattdessen Handelsstationen ein).
Erstelle ein Schiffsarray(fl), eine Schiffsvariable (ff) und eine Sektorvariable(ta), die du noch leer lässt.

Nun zum eigentlichen Programm:

Frage per if-Struktur ab, ob der Wert von i1 == 0 sei.
Sei dies der Fall, erstelle (int) ((double)i3)/100.0*((double)i2) M2- und
i2-((int) ((double)i3)/100.0*((double)i2)) M3-Schiffe des Volkes (zufälliger Index von fr) in der Station (zufälliger Index von sp).
Trage die erstellten Schiffe in fl ein, dann statte fl mit Standartausrüstung aus und wähle ein zufälliges M3-Schiff aus fl, das du allen anderen Schiffen in fl als Gruppenführer zuweist und auf ff speicherst.
Ermittle einen zufälligen Xenonsektor, den du auf ta speicherst und erteile ff den Befehl, sich nach ta zu begeben.

Sei es nicht der Fall, erstelle (int) ((double)i3)/100.0*((double)i2) M2- und
i2-((int) ((double)i3)/100.0*((double)i2)) M3-Schiffe der Xenon in der Station (zufälliger Index von sp).
Trage die erstellten Schiffe in fl ein, dann statte fl mit Standartausrüstung aus und wähle ein zufälliges M3-Schiff aus fl, das du allen anderen Schiffen in fl als Gruppenführer zuweist und auf ff speicherst.
Ermittle einen zufälligen Sektor des Volkes (zufälliger Index von fr), den du auf ta speicherst und erteile ff den Befehl, sich nach ta zu begeben.

EventListener(Element aus fl wird angegriffen)
=> erteile ff die Anweisung, den Angreifer zu bekämpfen.
EventListener(Angreifer zerstört)
=> erteile ff die Anweisung, sich nach ta zu begeben
EventListener(ta erreicht)
=> erteile ff die Anweisung, alle Feinde zu bekämpfen
EventListener(fl zerstört)
=> brich das Script ab und lösche Variablen
Die von dir benötigte Zeit ist relativ irrelevant.
Painkiller
Posts: 1546
Joined: Wed, 6. Nov 02, 20:31
x2

Post by Painkiller »

@ Lord Zsar1:

Hast Du schon mal ein Script gemacht?
Ich glaube nein, weil mit diesen Info´s/Vorschlägen kann man nämlich nichts als normaler Scripter anfangen in X2. X2-Scripte werden... etwas viel anders programmiert.

Weil das ginge (in Kurzform, alles mit nur einem Befehl je Zeile) so:

1. Erstelle Kommandoschiff, setze alle Eigenschaften wie gewünscht.
2. Erstelle in einer Schleife (zufällig) Schiffe, welche dem Kommandoschiff unterstehen.
3. Wähle Sektor (zufällig)
4. Gebe Kommandoschiff befehl für Invasion

Fertig.

Für dieses Script brauche ich kein Array, und Funktionen wie double, integer und Co gibts hier nicht.
Beim Scripten gil es nur, die fertigen Befehlssätze in der richtigen Reihenfolge mit den passenden Argumenten aneinanderzureihen.

Und hier kommt das komplizierte am Scripten:
Es gibt keine Beschreibung welcher Befehl zuerst geschrieben werden muß (und was er eigentlich genau macht), weil das ist nämlicht alles andere als unwichtig. Schreibt man verkehrt, gehts nicht.

mfg Painkiller
LordZsar1
Posts: 630
Joined: Mon, 6. Jun 05, 14:25
x3tc

Post by LordZsar1 »

!? !?

@Painkiller:
Ja, ich habe schon mal ein Script gemacht - genau eines.

Aber... Integer ist keine "Funktion". Um Gottes Willen!

Das ist eine Variable, auf die eine beliebige Nichtkommazahl von...
Uh... Ich bin mir nicht sicher, aber ich glaube es war -(2 hoch 24) bis +(2 hoch 24)...
Oder ich irre mich ein wenig und Long hatte die Länge von +(2 hoch 24)...
Oder aber ich irre mich vollkommen und es war irgendein anderer Exponent.

Jedenfalls ist jede Zahl, die irgendwo irgendwann irgendwie in einem beliebigen Script auftaucht, entweder Integer, Double, Short, Long oder Byte... Oder etwas anderes, dass mir ebenfalls entfallen ist.

Und wie willst du ohne Array beispielsweise die zufällige Auswahl aus den Völkern realisieren?
Oder die der Startstation?
Kinimod
Posts: 44
Joined: Tue, 20. Sep 05, 17:26
x3

Post by Kinimod »

Hi mal ne Frage,kannst du mir nen Script machen mit dem ich die Werte eines beliebigen Schiffes verändern kann?

Also das ich anstatt nur 200 500 oder so fliege?

Wäre toll wenn du mir das machen könntest wenn nicht wäre es auchnett so schlimm
The Invader Zim
Posts: 576
Joined: Thu, 29. Sep 05, 17:17
x3tc

Post by The Invader Zim »

Kinimod wrote:Hi mal ne Frage,kannst du mir nen Script machen mit dem ich die Werte eines beliebigen Schiffes verändern kann?

Also das ich anstatt nur 200 500 oder so fliege?

Wäre toll wenn du mir das machen könntest wenn nicht wäre es auchnett so schlimm
Klick Mich Hier findest du eine kleine Anleitung.
Painkiller
Posts: 1546
Joined: Wed, 6. Nov 02, 20:31
x2

Post by Painkiller »

@ LordZsar1:

Da ich selber mal richtig programmiert habe, weiß ich eh was ne Intergerzahl ist :wink:
Ich hab hier nur die Kurzform verwendet...

Ok, wie ich das mache:

Völker: (kein X2-Code jetzt das ist:)

Zahl= Random 1-5

If Zahl=1 then Race=Argon

usw.

Dann schnappen wir uns nen Sektor (dafür gibts in X2 ne fertige Funktion: Find random sector usw. mit Argumenten)
Aus diesem hol ich mir per Zufall ne Station... fertig.

X2 hat den Vorteil daß es für viele Wünsche bereits fertige Funktionen gibt, die man eben nicht mehr zu proggen braucht.
Man muß sie nur finden...
User avatar
Gerfried [USC]
Posts: 137
Joined: Sun, 20. Nov 05, 23:06
x4

Post by Gerfried [USC] »

Kinimod wrote:Hi mal ne Frage,kannst du mir nen Script machen mit dem ich die Werte eines beliebigen Schiffes verändern kann?

Also das ich anstatt nur 200 500 oder so fliege?

Wäre toll wenn du mir das machen könntest wenn nicht wäre es auchnett so schlimm

ok einfach so
in den Script Editor,
dann New Script, New Line
Trade Commands, Add Ware irgendwas
dann Playership,No returnvalue
dann number (soviel du willst angeben)
dann Select Ware und dort Triebwerkstuning.

ps:
wenn du übertreibst geht esa nicht mehr
wenn du zb. add ware + 10000 Triebwerkstuning eingiebst gibt es in den meisten fällen einen Absturz,
du kannst aber nach belieben so viel du willst l Add Ware + 10/20/30
oder so angeben und aktivieren.

Greetz
Kinimod
Posts: 44
Joined: Tue, 20. Sep 05, 17:26
x3

Post by Kinimod »

Danke,werde ich gliech mal ausprobieren.

Und wie kann man die Schild- und Waffen buchten und max.Schild/Waffen verändern und natürlich den Laderaum
Das soll ja auch irgendwie gehen,aber keine sorge will mir kein Ultimatives Schiff machen :)

Wäre toll wenn du mir das auch erklären könntest oder mir nen Link zur ner erklärung gibts.

thx im vorraus

mfg
Kinimod
User avatar
Gerfried [USC]
Posts: 137
Joined: Sun, 20. Nov 05, 23:06
x4

Post by Gerfried [USC] »

also beim Laderraum genau das selbe wie mit dem Triebwerkstuning,
mit dem anpassen der verschiedenen Maxis kann ichdir auch ned helfen das weiss ich selber ned.

ps: du kannst alle Waren so beifügen wie ich es mit dem Triebwerkstuning erklärt habe, einfach bei Select Ware ne andere Software usw.
User avatar
Ripbroker
Posts: 420
Joined: Fri, 8. Apr 05, 16:55
x2

Post by Ripbroker »

wie kann ich mir ein Schiff scripten?
Ich will einfach nur mal im Simulator den Phönix testen, habs aber noch net hinbekommen, dass der erscheint (geschweige denn, dass der mir gehört.......)
__----___
|___+___\==========
<o
|-----|---------\
\-o-o-o-o-o-o-/


RIPBROKER is watching YOU
User avatar
Gerfried [USC]
Posts: 137
Joined: Sun, 20. Nov 05, 23:06
x4

Post by Gerfried [USC] »

Script Editor öffnen
Script suchen Namens : galaxy.Example.initplayership
Enter drücken
dann bei zeile 004 schauen und enter drücken
dann $plship wählen
wieder Enter drücken
dann select Ship (dann dein gewünschter Schiff Typ)
dann wieder Enter
dann auf Owner drücken
dann wieder Enter
dann select Sector (dann gewünschten Sector auswählen)
dann wieder Enter
dann 0
dann enter
dann 0
dann enter
dann 0

und dann Escape drücken
Save Script Ja
script wieder raussuchen r drücken und Sektor auswählen wo dein schiff ist
dann dein Schiff und dann haben wir das schon.
User avatar
Ripbroker
Posts: 420
Joined: Fri, 8. Apr 05, 16:55
x2

Post by Ripbroker »

thx, werd ich ma ausprobieren

noch ne frage, wenn ich dieses Script im Simulator verändere, mach ich mir damit was im Hauptspiel kaputt?!?
__----___
|___+___\==========
<o
|-----|---------\
\-o-o-o-o-o-o-/


RIPBROKER is watching YOU

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