Asteroiden verschieben per Script?

Hier können Diskussionen rund ums scripten und modden zu X3 geführt werden.

Moderator: Moderatoren

D347h
Senior-Scharfschütze
Beiträge: 416
Registriert: Sa 21 Jul, 2007 12:48 pm
Lieblings X-Titel:
Wohnort: Austria
Kontaktdaten:

Asteroiden verschieben per Script?

Beitrag von D347h »

Moinsen =)

Kennt jemand von euch ein Script mit dem man Asteroiden verschieben kann?
Am besten waere es wenn man alle verschieben koennte, aber mir wuerde es auch reichen nue die zu verschieben wo Minen drauf sind.

Habe die Suche hier schon benutzt, aber entweder mach ich was Falsch, oder es gibt noch keinen thread?

Ich will nicht unbedingt Cheaten, aber die Astros per Traktorstrahl zu verschieben kostet mir einfach viel zu viel Zeit.

MfG
D347h
Benutzeravatar
The BMD
Ausbilder
Beiträge: 717
Registriert: Mi 28 Mär, 2007 2:27 pm
Lieblings X-Titel:
Wohnort: Getsu Fune

Beitrag von The BMD »

Im Prinzip ist das mit dem Kommando

Code: Alles auswählen

<RefObj> set position%u3a x=<Var/Number> y=<Var/Number> z=<Var/Number> 
möglich. Du findest es unter 'General Commands'.

Für RefObj musst du deinen Asteroiden deinen Asteroiden verwenden, du kannst es aber auch auf dein erfasstes Ziel verwenden.

Dazu brauchst du noch das Kommando,

Code: Alles auswählen

<RetVar/IF>get player tracking aim
zu finden unter 'Fly commands'.
Das Script sieht dann ungefähr so aus, wenn du deinen erfassten Asteroiden verschieben willst.

001 $Obj = get player tracking aim
002 $Obj = set position: x=<Var/Number> y=<Var/Number> z=<Var/Number>
003 end

Anstatt Var/Number musst du lediglich die Koordinaten angeben, an die du ein Obj verschieben willst.

Das Script ist zwar nicht für ganze Felder gedacht, aber für einzelne Astros funktionierts.

btw: Noch einen Satz zu Scripts. Scripten ist nicht gleich Cheaten :wink:

mfg
The BMD
D347h
Senior-Scharfschütze
Beiträge: 416
Registriert: Sa 21 Jul, 2007 12:48 pm
Lieblings X-Titel:
Wohnort: Austria
Kontaktdaten:

Beitrag von D347h »

Besten Dank =)
Muss ich dann gleich mal probieren.

Aber wie meinst du das:
The BMD hat geschrieben:Das Script ist zwar nicht für ganze Felder gedacht, aber für einzelne Astros funktionierts.
Ich haette vor damit den Erzguertel etwas "umzuraeumen"

MfG
D347h
Benutzeravatar
The BMD
Ausbilder
Beiträge: 717
Registriert: Mi 28 Mär, 2007 2:27 pm
Lieblings X-Titel:
Wohnort: Getsu Fune

Beitrag von The BMD »

Naja, du kannst nicht ganze Felder auf einmal umräumen, du musst es schon Asteroid für Asteroid machen :wink:

mfg
The BMD
D347h
Senior-Scharfschütze
Beiträge: 416
Registriert: Sa 21 Jul, 2007 12:48 pm
Lieblings X-Titel:
Wohnort: Austria
Kontaktdaten:

Beitrag von D347h »

Oh, OK, eh genau das was ich machen wollte, hab schon befuerchtet das ich das ganze "Feld" auch nichst Stueck fuer Stueck verschieben kann +gg+

Na, dann ist meine Frage hier schon beantwortet, besten Dank :)

MfG
D347h



Edit:
Wie kann ich das Skript denn ausfuerhen? Hab mich jetzt schon durch endlosviele Hilfeseiten gewuehlt, aber entwerder bin ich blind, oder das ist so einfach das es keiner Erwaehnung wert ist?
Benutzeravatar
The BMD
Ausbilder
Beiträge: 717
Registriert: Mi 28 Mär, 2007 2:27 pm
Lieblings X-Titel:
Wohnort: Getsu Fune

Beitrag von The BMD »

Während des Fluges musst du [Shift] + [c] drücken, dann [s]. Jetzt müsstest du im ScriptEditor sein, und dann suchst du dein Scirpt. Stelle aber bei diesem sicher, dass du a) den Asteroiden erfasst hast, den du verschieben willst und b) die richtigen Koordinaten eingegeben hast. Dann wählst du dein Script aus und drückst [r]. Bei einer Abfrage wählst du [null] aus und ansonsten brauchst du nur [Enter] zu drücken (nicht das Enter auf dem NumPad).

mfg
The BMD
D347h
Senior-Scharfschütze
Beiträge: 416
Registriert: Sa 21 Jul, 2007 12:48 pm
Lieblings X-Titel:
Wohnort: Austria
Kontaktdaten:

Beitrag von D347h »

Wow, schnell reagiert :)

Besten Dank, war also so einfach das es keiner Erwaehnung Wert war.
Und das Script an-sich hab ich ja schon geschrieben, nur mim starten hatte ich ein Problem.

Danke nochmals fuer die schnellste Hilfe.

MfG
D34zh
Ziggi
Scharfschützen-Anwärter
Beiträge: 292
Registriert: Sa 20 Jan, 2007 7:38 pm
Lieblings X-Titel:

Beitrag von Ziggi »

bei mir stehen exakt diese drei zeilen im scripteditor, wie du sie oben angegeben hast... wenn ich speichern will sacht er mir "lost statement in line 3"... und da ich mich mit sowas überhaupt nicht auskenne, hab ich auch keine ahnung, wie ich das jetzt zum laufen kriege oder wo der fehler liegt... könnt mir da vielleicht jemand weiterhelfen?? würd halt gern meine mine n bissel weiter in den freien raum schieben...
D347h
Senior-Scharfschütze
Beiträge: 416
Registriert: Sa 21 Jul, 2007 12:48 pm
Lieblings X-Titel:
Wohnort: Austria
Kontaktdaten:

Beitrag von D347h »

hm... weis nicht ob's daran liegt (bin selbst noch N00b ^^) aber bei mir steht das in der Letzten Zeile:

Code: Alles auswählen

return null
und der gesammt Code sieht so aus:

Code: Alles auswählen

001   $XPosi = $XPosi * 1000
002   $YPosi = $YPosi * 1000
003   $ZPosi = $ZPosi * 1000
004   $obj =  get player tracking aim
005   $obj -> set position: x=$XPosi y=$YPosi z=$ZPosi
006   return null
(das mit dem *1000 hat den Sinn das ich mir nullen erspare +g+)
Das mit der Eingabe ist zwar noch n bisschen umstaendlich, aber das wird schon noch =)



Ach ja, Edit:
das "return null" hat er Automatisch angehaengt, nachdem ich bei Zeile 2 auf [ESC] gedrueckt hab ^^
Ziggi
Scharfschützen-Anwärter
Beiträge: 292
Registriert: Sa 20 Jan, 2007 7:38 pm
Lieblings X-Titel:

Beitrag von Ziggi »

ja, das sieht ja so aus als hättest du das "end" in der letzten zeile weggelassen... aber dann passiert bei mir nix... also das aktivieren hab ich wie beschrieben gemacht, script angeklickt, r gedrückt und dann jeweils enter... danach warn die positionen immernoch wie gehabt...
Benutzeravatar
The BMD
Ausbilder
Beiträge: 717
Registriert: Mi 28 Mär, 2007 2:27 pm
Lieblings X-Titel:
Wohnort: Getsu Fune

Beitrag von The BMD »

@Ziggi: Hast du den Asteroiden erfasst, den du verschieben möchtest? Schau dir mal die Zeilen 004 und 005 an. Zeile 004 gibt an, was das obj ist (Hier wird folgendes gesagt -> obj ist das, was der Spieler erfasst hat).

005 sagt, obj wird auf x y z verschoben. Aber wenn du kein Objekt erfasst hast, kann 005 nicht funktionieren.

Ich habs selbst mit einem etwas anderem Script getestet, es funktioniert (auch wenn mein persönliches Script einen anderen Zweck hat)..

Berichtigung meinerseits: Zeile 003 im Script weiter oben könnt / müsst ihr weglassen, dann müsste es auf auch bei dir, Ziggi funktionieren. (Habe das end hingeschrieben, weil ich an was anderem am Basteln war, oder an was anderes gedacht). Also nur die Zeilen 001 und 002 und ggf. die Erweiterung der Version von D347h

mfg
The BMD

[hr]
Nachtrag:

Ich habe es etwas komfortabler gemacht...

1. Ihr braucht das Kommando

Code: Alles auswählen

<RetVar/IF> = <Var/Array>[<Var/Number>]
zu finden unter General Commands, Arrays

2. Mit diesem Kommando füllt ihr die ersten 3 Zeilen.
Für <RetVar/IF> schreibt ihr x, y, z jeweils eines davon pro Zeile, in dieser Reihenfolge.
Für <Var/Array> nehmt ihr SecLoc (ist eigentlich egal was ihr nehmt)
Für [<Var/Number>] jeweils pro Zeile 0, 1, 2 in dieser Reihenfolge.
Die Zahl könnt ihr unter 'Number' eingeben.

bis dahin müsste euer Script so aussehen.

001 $x=$SecLoc [0]
002 $y=$SecLoc [1]
003 $z=$SecLoc [2]
den Rest könnt ihr so übernehmen.

Jetzt fügt ihr ein Argument hinzu. Unter 'Arguments' auf <New Argument>. Als Argument Namne verwendet ihr SecLoc (oder wie auch immer ihr es genannt habt). Im darauf folgenden Menü wählt ihr <Var/Sector Position>. Im folgendem Menü könnt ihr schreiben was ihr wollt, verwendet am besten " ".

Also sieht unseres fertiges Script so aus:

Arguments: SecLoc = <Var/Sector Postion>

Code: Alles auswählen

001 $x=$SecLoc [0]
002 $y=$SecLoc [1]
003 $z=$SecLoc [2]
004 $obj= get player tracking aim
005 $obj=set position: x=$x y=$y z=$z
006 return null
Bei 005 ist wichtig, dass ihr für die X, Y, Z Postionen euere obigen Werte verwendet.

Der Vorteil dieser Variante ist, dass ihr beim Ausführen die Position wie beim Aufbauen einer Fabrik bestimmen könnt und ihr müsst nicht die Koordinaten mühsam abfliegen :wink:

Wenn der Wunsch besteht, lade ich das fertige Script hoch und ihr könnt es euch downloaden, aber erst versucht ihr es selbst :wink: (Ich konnte auch mal nur ganz wenig und jetzt kann ich schon ein bisschen mehr, in dem ich immer ein wenig selbst probiert habe, bei anderen geschaut habe)

mfg
The BMD
Ziggi
Scharfschützen-Anwärter
Beiträge: 292
Registriert: Sa 20 Jan, 2007 7:38 pm
Lieblings X-Titel:

Beitrag von Ziggi »

ok, also mein erstes problem war ja, dass ich das script gar nicht erst speichern konnte... das lag aber an der dritten zeile, die du wohl aus versehen angefügt hattest... ohne diese zeile konnte ich das problemlos speichern...
und beim verschieben, naja, glaube ich hatte es schon anvisiert... naja, war halt kein asteroid mehr sondern ne mine, dachte das wär egal... im script wird ja nicht gesagt, dass es ein asteroid sein muss...

jetzt werd ichs gleich mal mit deiner neuen version probieren... werd dann gleich sagen obs geklappt hat... von daher schonma danke für die hilfe!!


Edit: hmm, dass es bei mir zuerst nicht funktioniert hatte lag wohl doch daran, dass ich ne mine ausgewählt hatte und keinen asteroiden... mit nem asteroiden hats wunderbar geklappt... nur dass ich nicht bedacht hatte, dass die koordinaten dort in metern und nicht in kilometern angegeben werden ^^

dann hab ich ma die andere version probiert, die du noch gepostet hattest... nachdem ich gemerkt habe, dass ich da beim aktivieren nicht einfach nur stur enter drücken darf sondern irgendwann den punkt "position auswählen" anklicken muss hat auch das sehr gut geklappt...
(hab sogar auf anhieb den asteroiden so perfekt positioniert, dass zwischen dem asteroiden und der nächsten station nur mit viel mühe n m3 durchpasst^^)


naja, jedenfalls mal vielen dank für die hilfe!! so langsam beginne ich teile dieses systems zu verstehen... ok, viele dinge sind ja selbsterklärend, nur muss man halt wissen, was man noch an zeilen "drumherum" braucht, um die sache zum laufen zu bringen...
D347h
Senior-Scharfschütze
Beiträge: 416
Registriert: Sa 21 Jul, 2007 12:48 pm
Lieblings X-Titel:
Wohnort: Austria
Kontaktdaten:

Beitrag von D347h »

Besten Dank, werde ich Heute Abend gleich mal Probieren und dann hier reineditieren wie's gelaufen ist.

Edit:
Funktioniert ansich ganz toll, nur ich bleib lieber bei der Reinen Zahleneingabe, is mir genauer, und die Paar Koordinaten die ich mir da merken muss sind auch schon egal =)

Aber das vor der eigentlichen Eingabe immer eine Abfrage kommt, welchen Datentyp (Nummer) ich eingeben will, liegt vermutlich daran das ich das Script aus dem Scripteditor heraus starte?
Hab da mal was gefunden um Skripte an Hotkey's zu binden, werde mich wohl wieder auf die Suche machen, denn das Script ueber ein Menue einzubinden ist mir, ersten zu Kompliziert, und zweitens in der Anwendung zu umstaendlich.

MfG
D347h
Benutzeravatar
The BMD
Ausbilder
Beiträge: 717
Registriert: Mi 28 Mär, 2007 2:27 pm
Lieblings X-Titel:
Wohnort: Getsu Fune

Beitrag von The BMD »

Kannst du die Meldung mal hier rein posten, denn ich weiß jetzt beim besten Willen nicht, welche du meinst ;)

mfg
The BMD
D347h
Senior-Scharfschütze
Beiträge: 416
Registriert: Sa 21 Jul, 2007 12:48 pm
Lieblings X-Titel:
Wohnort: Austria
Kontaktdaten:

Beitrag von D347h »

Hmm.. ich versuch's mal per Text:

Also, ich druecke [SHIFT][C] fuer die Komandokonsole, dann [S] fuer den Skripteditor, dort gehe ich dann auf die Zeile mit dem Script und druecke [R] zum ausfuerhen.
Soweit so klar, nur dann passiert folgendes:
  • Eine Konsole geht auf bei der ich etwas auswaehlen muss. - Druecke ich [ENTER]
  • Es erscheint ein Fenster in dem u.a. die Angegebenen Argumente angezeigt werden. - Druecke ich [ENTER]
  • eine Konsole wo ich nur <Nummer> auswaehlen kann erscheint. - Druecke ich [ENTER]
  • eine Konsole fuer die X-Achse erscheint. - Koordinate eingeben und [ENTER]
  • eine Konsole wo ich nur <Nummer> auswaehlen kann erscheint. - Druecke ich [ENTER]
  • eine Konsole fuer die Y-Achse erscheint. - Koordinate eingeben und [ENTER]
  • eine Konsole wo ich nur <Nummer> auswaehlen kann erscheint. - Druecke ich [ENTER]
  • eine Konsole fuer die Y-Achse erscheint. - Koordinate eingeben und [ENTER]
  • Astro wird versetzt
und dann lande ich wieder beim Script-Editor

Hoffe das das ausfuerhlich genug war?
wenn nicht kann ich Heute am Abend noch Screenshot's machen.

Ach ja, nebenbei noch, bei Screenshot, mit welchem Programm oeffnet ihr die?
(passt zwar nicht ganz, aber ich werd's vermutlich am Abend brauchen ^^)

MfG
D347h
Antworten