[DISKUSSION] Allgemeine S&M-Fragen III

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

Post Reply
User avatar
JSDD
Posts: 834
Joined: Fri, 21. Mar 14, 21:51

Post by JSDD » Sat, 18. Feb 17, 17:03

reden können die piloten natürlich auch, d.h. wie z.B. die polizisten:
wenn spieler illegale waren bei sich hat, kommt:

Code: Select all

[THIS] -> send audio message 948 to player
dann sagt dir der pilot:
page 114 text 948 wrote:Ich hab nichts für Sie, Pilot. Nichts, nada, nasshingu! Nun hau ab!
falls du z.B. nen extra task auf dem rücken des schiffs startest (task 12345 z.B.), auf dem kannste dann solche "spielchen" ausrichten ...
in nem endlos-loop checken, ob player im selben sektor ist & sich nähert, ggf. ansprechen ...

questions gehen auch, dazu brauchste halt noch ein "callback" script, welches (samt antwort als "argument1") aufgefufen wird, wenn du antwortest
http://xpluginmanager.co.uk/scripts/hel ... index.html
die question musste halt in ne textdatei verpacken ...

damit lassen sich interessante "interaktionsmoglichkeiten" schaffen, die X3 sonst vermissen lässt (imho), ansonsten ist ja immer:
player requested irgendwas <-- X3 antwortet (einseitige g'schicht')

beispiel: piratengilde3 (falls du das kennst)
per hotkey umgeht man den "üblichen" kommunikationsweg (C taste) & schafft durch ne art menü, mit der man auch die antworten der gegenseite scripten kann etc pp, sprich: vollste kontrolle hat
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

User avatar
Klaus11
Posts: 810
Joined: Mon, 13. Feb 12, 18:23

Post by Klaus11 » Sun, 19. Feb 17, 10:20

Hi JSDD,

dank deiner Beispiele funktioniert es nun tatsächlich. Ich habe nur etwas länger gebraucht, weil ich mir deine Einträge in der Job.txt nicht genau angesehen habe. Beim Skriptaufruf darf man „Job.“ nicht mit angeben, dass musste ich bei mir korrigieren.
Ich habe das erste Skript noch mit einem Job.Script gekoppelt und nun ist alles super. :lol:
JSDD wrote:reden können die piloten natürlich auch, d.h. wie z.B. die polizisten:
wenn spieler illegale waren bei sich hat, kommt:

Code: Select all

[THIS] -> send audio message 948 to player
dann sagt dir der pilot:
page 114 text 948 wrote:Ich hab nichts für Sie, Pilot. Nichts, nada, nasshingu! Nun hau ab!
falls du z.B. nen extra task auf dem rücken des schiffs startest (task 12345 z.B.), auf dem kannste dann solche "spielchen" ausrichten ...
in nem endlos-loop checken, ob player im selben sektor ist & sich nähert, ggf. ansprechen ...
Wäre ne tolle Sache, bin ich aber schon wieder raus. Ich habe keine Ahnung, wie das aussehen soll. :cry:
JSDD wrote:questions gehen auch, dazu brauchste halt noch ein "callback" script, welches (samt antwort als "argument1") aufgefufen wird, wenn du antwortest
http://xpluginmanager.co.uk/scripts/hel ... index.html
die question musste halt in ne textdatei verpacken ...

damit lassen sich interessante "interaktionsmoglichkeiten" schaffen, die X3 sonst vermissen lässt (imho), ansonsten ist ja immer:
player requested irgendwas <-- X3 antwortet (einseitige g'schicht')

beispiel: piratengilde3 (falls du das kennst)
per hotkey umgeht man den "üblichen" kommunikationsweg (C taste) & schafft durch ne art menü, mit der man auch die antworten der gegenseite scripten kann etc pp, sprich: vollste kontrolle hat
Wie das mit dem "callback" script funktioniert muss ich mir unbedingt auch mal ansehen. Ja, in piratengilde3 habe ich es erlebt. Die Interaktion wirkt dadurch lebendiger.

Vielen Dank noch mal. Nun habe ich ein Problem weniger.
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
JSDD
Posts: 834
Joined: Fri, 21. Mar 14, 21:51

Post by JSDD » Sun, 19. Feb 17, 11:33

Klaus11 wrote:
JSDD wrote:reden können die piloten natürlich auch, d.h. wie z.B. die polizisten:
wenn spieler illegale waren bei sich hat, kommt:

Code: Select all

[THIS] -> send audio message 948 to player
dann sagt dir der pilot:
page 114 text 948 wrote:Ich hab nichts für Sie, Pilot. Nichts, nada, nasshingu! Nun hau ab!
falls du z.B. nen extra task auf dem rücken des schiffs startest (task 12345 z.B.), auf dem kannste dann solche "spielchen" ausrichten ...
in nem endlos-loop checken, ob player im selben sektor ist & sich nähert, ggf. ansprechen ...
Wäre ne tolle Sache, bin ich aber schon wieder raus. Ich habe keine Ahnung, wie das aussehen soll. :cry:
in job.myjobscript fügste 1 zeile hinzu:

Code: Select all

[THIS] -> start task 12345 with script 'job.myjobscript.logic' prio 0, null null null nul null
das startet das script 'job.myjobscript.logic' (welches du zuvor erstellen musst) auf dem "rücken" des schiffs, es läuft nebenbei sozusagen

'job.myjobscript.logic' sähe ungefähr so aus:

Code: Select all

$distanz.anfunken = 10000 // in meter
$distanz.zuletzt = 999999 // in meter

while [THIS] -> exists

@ wait 15000 to 25000 ms

// nur im spielersektor
if not [THIS] -> is in active sector
... $distanz.zuletzt = 999999
... continue
end

// hat sich player genähert ?
$distanz = get distance between [THIS] and [PLAYERSHIP]
skip if ($distanz < $distanz.anfunken)
... continue

// spieler is in der nähe, aber entfernt er sich ?
skip if ($distanz < $distanz.zuletzt)
... continue

// merke distanz ...
$distanz.zuletzt = $distanz

// hier weist du bescheid dass der spieler sich auf daein jobschiff zubewegt
// frag ihn, ob er die koordinaten / sektor des vom jobschiff kürzlich entdecktes herrenloses schiff kaufen will
// oder ob er statdesssen ä bissle dope beschaffen könnte oder sonstwas
// wie das geht kannste im oben verlinkten tutorial lesen

// ambesten mach man hier nen zufallstrigger: sowas wie:
$zufallswert = random value from 0 to 10 -1
if ($zufallswert == 0)
... frag wegen herrenloses schiffskoordinaten
else if ($zufallswert == 1)
... frag ob er dope will / hat
else if ($zufallswert == 2)
... fordere des spieler auf, sofort sein fracht auszuwerfen sonst kommen die ganzen piratenkollegen & machen trouble !!! (nur wenn sektor == Brennans triumph oder so ähnlich)
else if ( etc pp )
...
end


end

dieses script läuft solange das jobschiff existiert & läuft dann auf jedem jobschiff separat. wenn z.B. mehrere jobschiffe in einem sektor sind, check ob bereits ne frage gestellt wurde (setz / check einfach ne globale variable)
check auch, ob die zuletzt gestellte frage mindestens 5minuten her ist (ebenfalls globale variable)

das wäre dann praktisch dein "life plugin" setup, alles weitere scriptest du dan da rein


oder noch so ne verrückte idee: anheuerbare gks
das jobschiff ist von typ minotaurus & hat n paar raketen über, weis nich was man damit machen soll & scheint gerade etwas "triggerhappy" zu sein ;) für knappe 50k Credits (+ raketenkosten) kommt der gute mit dir mit auf aggro tour durch xenonsektor & co, aber halt nur kurzweilig
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

User avatar
Klaus11
Posts: 810
Joined: Mon, 13. Feb 12, 18:23

Post by Klaus11 » Sun, 19. Feb 17, 12:41

Hi JSDD,

Gott segne dich, du hast mich zum Lachen gebracht. :D :D
JSDD wrote:oder noch so ne verrückte idee: anheuerbare gks
das jobschiff ist von typ minotaurus & hat n paar raketen über, weis nich was man damit machen soll & scheint gerade etwas "triggerhappy" zu sein ;) für knappe 50k Credits (+ raketenkosten) kommt der gute mit dir mit auf aggro tour durch xenonsektor & co, aber halt nur kurzweilig
Deine Ideen sind verrückt und originell zugleich. Ich werde deine Vorschläge unbedingt ausprobieren. Wenn ich die Zusammenhänge geschnallt habe, sind der Fantasie keine Grenzen mehr gesetzt. Einige meiner Ideen habe ich bisher über das Cheatpaket realisiert. Deine Herangehensweise lässt sich aber viel besser in ein Spiel einfügen. :thumb_up:

Nachgefragt

Code: Select all

// nur im spielersektor
if not [THIS] -> is in active sector
... $distanz.zuletzt = 999999
... continue
end 
Diese Punkte Z.B. vor continue sind Füllzeichen?
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
JSDD
Posts: 834
Joined: Fri, 21. Mar 14, 21:51

Post by JSDD » Sun, 19. Feb 17, 13:12

die pünktchen existieren so nicht, das hab ich nur der besseren sichbarkeit etwegen eingefügt (damit nicht alles linksbündig ist)
To err is human. To really foul things up you need a computer.
Irren ist menschlich. Aber wenn man richtig Fehler machen will, braucht man einen Computer.


Mission Director Beispiele

User avatar
Klaus11
Posts: 810
Joined: Mon, 13. Feb 12, 18:23

Post by Klaus11 » Sun, 19. Feb 17, 13:50

JSDD wrote:die pünktchen existieren so nicht, das hab ich nur der besseren sichbarkeit etwegen eingefügt (damit nicht alles linksbündig ist)
Aha, alles klar. :) Danke.
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Klaus11
Posts: 810
Joined: Mon, 13. Feb 12, 18:23

Post by Klaus11 » Thu, 4. May 17, 22:21

Hallo Leute,

ich habe im IG Scripteditor wieder mal was scripten wollen und bin dabei bisher auf zwei ReadText Fehler 2003-1654 und 2003-1655 gestoßen. In dem T File 0001-L049.xml konnte ich unter der 2003 auch keine entsprechende Eintragung finden. Vielleicht habe ich auch in der falschen Datei nachgesehen.

Kann mir jemand verraten, was sich dahinter verbergen könnte und wo ich den richtigen T File finde? Möglicher Weise bringt meine Mod da was durcheinander.

Gruß, Klaus
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 20853
Joined: Sun, 2. Apr 06, 16:38

Post by X2-Illuminatus » Thu, 4. May 17, 22:41

Das sind zwei der vier neuen Scriptbefehle, die mit dem neuen Update hinzugekommen sind. Kann es sein, dass du im t-Ordner im Spielverzeichnis eine alte Textdatei 0001-L049.xml liegen hast, in der die besagten Befehle fehlen?
Besteht Interesse an einem Nopileos-Hörbuch?

Farnhams Legende und Nopileos als E-Books!

"People who think they know everything are a great annoyance to those of us who do." - Isaac Asimov

"If it's not impossible, there must be a way to do it." - Sir Nicholas Winton

User avatar
Klaus11
Posts: 810
Joined: Mon, 13. Feb 12, 18:23

Post by Klaus11 » Fri, 5. May 17, 07:33

X2-Illuminatus wrote:Das sind zwei der vier neuen Scriptbefehle, die mit dem neuen Update hinzugekommen sind. Kann es sein, dass du im t-Ordner im Spielverzeichnis eine alte Textdatei 0001-L049.xml liegen hast, in der die besagten Befehle fehlen?
Ich danke dir für deine schnelle Antwort. Die neuen Befehle könnten meine Mod noch mal verbessern. :D
Großen Dank für diese nützlichen Erweiterungen.

Ich werde mal meine Steam Version nach dem neuen T-File durchforsten.
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Aldebaran_Prime
Posts: 1103
Joined: Sat, 20. Feb 10, 18:47

Raumfliegen

Post by Aldebaran_Prime » Mon, 8. May 17, 07:52

Gibt es eigentlich eine Möglichkeit, die Wahrscheinlichkeit des Erscheinens von Raumfliegen zu erhöhen, oder ist das hardcoded?

Wie könnte ich ansonsten Raumfliegen mit MD oder MSCI so erzeugen, dass sie nicht auf den Gravidar erscheinen?
Image

User avatar
Aldebaran_Prime
Posts: 1103
Joined: Sat, 20. Feb 10, 18:47

Post by Aldebaran_Prime » Wed, 10. May 17, 17:42

Also wie man Raumfliegen mit MD Script erzeugt habe ich jetzt selbst herausgefunden:

Code: Select all

            <do_all min="20" max="100" counter="Mcounter">
              <create_ship typename="SS_SH_SPACEFLY"  race="unknown" racelogic="1" capturable="0" boardable="0">
                <equipment loadout="default" />

              </create_ship>

            </do_all>
Dann sind sie automatisch auch nicht auf dem Gravidar sichtbar und können mit dem Ionendisruptor fein betäubt und eingesammelt werden.

Leider stehen sie nur unbeweglich im Raum - auch das zuweisen eines Commands mit dem Command-Tag: <command command="default"/> oder auch follow bringt nix.

hat jemand eine Idee?

Bleibt auch offen, wie das im Spiel standardmäßig geregelt ist?
Image

User avatar
Klaus11
Posts: 810
Joined: Mon, 13. Feb 12, 18:23

Post by Klaus11 » Wed, 10. May 17, 19:24

Du erzeugst also zurzeit nur tote Fliegen?
Hast du schon mal den Befehl "beschütze Position" ausprobiert? Frage mich jetzt aber nicht, wie man die Position im Sektor im MD festlegt. :oops:

Edit:
ach ja,:
<find_sector x="21" y="3" name="Insel des Klaus"/>
<position x="0km" y="250km" z="150km"/>

Ich habe mir eben mal ein paar Raumfliegen per Skript in den Laderaum gepackt. Dann habe ich diese ausgeworfen und sie wurden lebendig. Sie flogen los und machten ihre seltsamen Geräusche. Damit werde ich mal weiter testen.
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Aldebaran_Prime
Posts: 1103
Joined: Sat, 20. Feb 10, 18:47

Post by Aldebaran_Prime » Wed, 10. May 17, 23:36

nee, geht leider auch nicht... :evil:

Ich habe in dem Nest (=this.HB{counter@HBcounter}) Raumfliegen als Fracht hinzugefügt und diese dann mit diesem Befehl ausgeworfen:

Code: Select all

            <eject_cargo object="this.HB{counter@HBcounter}">
           	    <ware typename="SS_WARE_TECH239" min="20" max="100"/>  
           	</eject_cargo>  
dann fliegt leider ein Container mit 20 Raumfliegen im Weltall - aber eben keine lebenden 20 Raumfliegen - schade!

ich habe jetzt noch einmal genau in der MD-Dokumentation geschaut - es gibt ja einen extra <create_spacefly> Tag für Raumfliegen:

Code: Select all

            <do_all min="40" max="100" counter="Mcounter">            
              <create_spacefly> 
              	<sector sector="{param@Sector_id}" />    
              	<position x="0" y="0" z="0" />           
              </create_spacefly>              
            </do_all>
obiger Code produziert trotzdem nur "tote" Raumfliegen...
Image

User avatar
Aldebaran_Prime
Posts: 1103
Joined: Sat, 20. Feb 10, 18:47

Post by Aldebaran_Prime » Thu, 11. May 17, 00:20

so, weiter experimentiert. wenn man swarm="1" als parameter hinzufügt erwecken sie zu leben:

Code: Select all

            <do_all min="10" max="40" >            
              <create_spacefly swarm="1"> 
              	<sector sector="{param@Sector_id}" />    
              	<position object="this.HB{counter@HBcounter}" min="5km" max="10km"  />          
              </create_spacefly>              
            </do_all>
zudem habe ich nun ein paar Beispiele in der MD-Datei "3.08 Sector Management.xml" gefunden

Problem gelöst
Image

User avatar
Klaus11
Posts: 810
Joined: Mon, 13. Feb 12, 18:23

Post by Klaus11 » Thu, 11. May 17, 07:12

Glückwunsch, deine Hartnäckigkeit hat sich mal wieder gelohnt. :D Damit kann man doch was anfangen. :lol:

Was hältst du von der Idee, die Wahrscheinlichkeit des Erscheinens der Raumfliegen in einigen Sektoren zu erhöhen, wenn im Spielerschiff eine Raumfliegenfangeinrichtung vorhanden ist?
Image Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

Post Reply

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