Viele Objekte auf einmal kopieren im Ingame Galaxyeditor- wie?

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
Commodore MJ Fire
Posts: 476
Joined: Mon, 27. Jul 09, 17:45
x4

Viele Objekte auf einmal kopieren im Ingame Galaxyeditor- wie?

Post by Commodore MJ Fire »

Tja, wie die Überschrift schon sagt. Ich würde gern alle Asteroiden und Debris des Sektors Albion kopieren, ohne jedes einzelne mit shift c markieren zu müssen. Ich weiß, es gibt ne Möglichkeit, das erste zu markieren, runterzuscrollen im Sektormap, aufs letzte zu clicken, und alles dazwischen wird markiert. Früher konnte ich das, aber irgendwie krieg ich das nicht mehr hin.
Ich weiß, Ich kann die auch per Hand in den XMLs kopieren oder mit Doubleshadows Galaxy Editor, aber ich will nicht jedes Mal rausgehen müssen wenn ich mal ein paar mehr Asteroiden kopieren will.

Und, nicht böse sein, aber sowas wird sonst garantiert gepostet, Kommentare wie 'nutz doch den und den externen Galaxyeditor zum erstellen des Sektors' nützen mir nichts- es geht mit dem Ingame Editor einfach zehnmal besser, wenn man richtig mit ihm umgehen kann- und man hat sofort Ergebnisse. Ich muss diese Frage hier stellen, da ich nichts beim suchen gefunden hab, und will den Thread wenigstens möglichst klein halten, um das Forum nicht zu sehr vollzuladen... :wink:
Gruß, MJ Fire
Guest

Post by Guest »

--> erstell´ ´ne neue map
--> benenn´ sie in abc.xml
--> kopier´ da die debris aus albion rein
--> speichern
--> lade DEINE map
--> importiere abc.xml
--> speicher´ deine map
--> lösche abc.xml

... fertig !! ;)
// ´ne andere ingame-möglichkeit gibt´s nicht
User avatar
Commodore MJ Fire
Posts: 476
Joined: Mon, 27. Jul 09, 17:45
x4

Post by Commodore MJ Fire »

Wa ja de facto wieder die Sache mit dem XML kopieren wäre- Also ich weiß, dass ich das im Ingame- Editor in X3-Reunion drauf hatte, da hab ich alle Asteroiden von Erzgürtel mit einmal zum kopieren erfasst und dann woanders eingefügt... es geht also im Ingame Editor- aber wie...
Trotzdem Danke
Gruß, MJ Fire
Guest

Post by Guest »

... es macht (für mich) ´n unterschied, wenn du von astros statt von debris sprichst (mit debris kenn´ ich mich nicht sooo aus)
... aber hey !! jetz´ hab´ ich zumindest begriffen, wovon du >haupt sprichst :D // astros von sector A nach sector B ´rüberkopieren
=> geht relativ 1fach ;) (ich sag´ nur script editor ;) der funzt auch im GE)

FLAGS = [Find.Multiple]
Array.Astros = find asteroids null null null sector null usw. null FLAGS maxnum=99999
loop über alle elemente
--> POS = {jeweiliges.element} -> get x, y, z position
--> RES = {jeweiliges.element} -> get subtype
--> NEW.ASTRO = create asteroid // bei POS, mit subtype = RES usw.

... so in der artklappt´s auf jeden fall ^^
... dann 1fach map speichern ... fertig !! ;)
User avatar
Commodore MJ Fire
Posts: 476
Joined: Mon, 27. Jul 09, 17:45
x4

Post by Commodore MJ Fire »

Oh weh, mein scripting ist mies, kannst du das- wenns nicht zu viele Umstände macht- ganz ausformulieren? Sonst scheiter ich bestimmt an ner kleinigkeit.
Aber mich schlauchts trotzdem, es gibt ne ganz einfache Tastenkombination, wenn man mehrere Objekte hintereinander Kopieren will und nicht jedes einzeln mit shift c in die auswahl holen will...
Gruß, MJ Fire
Hab grad ne Idee, probier was...
User avatar
Commodore MJ Fire
Posts: 476
Joined: Mon, 27. Jul 09, 17:45
x4

Post by Commodore MJ Fire »

Dreck, nichts passiert. Ich denke, dass es sich bei der fraglichen option um Mehrfachauswahl handelt, aber egal, welche Taste ich belege, es tut sich einfach nichts! Wie kriege ich die verdammte Funktion zum laufen?
Gruß, MJ Fire
Guest

Post by Guest »

... probier das mal:
// sollte theoretisch (hab´s nicht getestet !!) alle astros von "Ore Belt" nach "Argon Prime" "kopieren"

Code: Select all

001   $Sector.Source = Ore Belt
002   $Sector.Target = Argon Prime
003   
004   $Find.Flags = [Find.Multiple]
005   
006   $Array.Asteroids = find asteroid: sector=$Sector.Source resourcetype=null min.yield=null flags=$Find.Flags refobj=null maxdist=null maxnum=99999 refpos=null
007   $Index = size of array $Array.Asteroids
008   
009   while $Index
010   |dec $Index = 
011   |$Asteroid = $Array.Asteroids[$Index]
012   |skip if $Asteroid -> exists
013   ||continue
014   |$Position.X = $Asteroid -> get x position
015   |$Position.Y = $Asteroid -> get y position
016   |$Position.Z = $Asteroid -> get z position
017   |$Type = $Asteroid -> get ware type code of object
018   |$Resource = $Asteroid -> get subtype
019   |$Yield = $Asteroid -> get asteroid yield
020   |$Asteroid = create asteroid: type=$Type addto=$Sector.Target resource=$Resource yield=$Yield x=$Position.X y=$Position.Y z=$Position.Z
021   end
022   
023   return null
--> zeile 1, 2, 9, 10 findest du unter general commands (<retvar/if><expression>)
--> zeile 4 ebenfalls, den ausdruck in klammern findest du unter select constant
--> zeile 6 universe commands
--> zeile 7, 11 general commands>>arrays
--> zeile 18 trade commands
--> zeile 21, 23 unter general commands>>flow control
--> restliches unter general object commands
User avatar
Commodore MJ Fire
Posts: 476
Joined: Mon, 27. Jul 09, 17:45
x4

Post by Commodore MJ Fire »

Funktioniert das auch mit den Debris, die ja hauptsächlich in Albion zu finden sind? (das sind die kleinen Asteroidenbröckchen, die überall sind)
Gruß, MJ Fire
Guest

Post by Guest »

... geht praktisch genauso, nur muss man ´nen anderen "find"-befehl nutzen
// nebenbei ... funktioniert´s mit obigem code ??
User avatar
Commodore MJ Fire
Posts: 476
Joined: Mon, 27. Jul 09, 17:45
x4

Post by Commodore MJ Fire »

Sag ich dir bald, ich teste grad ne ganze Bandbreite an Sachen, neue Texturen und BGs unter anderem. Aber spätestens Morgen werd ich das Script testen.
Gruß, MJ Fire
PS: Hm, wenn man die kleinen Nebel wieder aktivieren könnte, diese X2 Funktionen sind immer noch alle da, sogar im Galaxyeditor erstellbar- da muss man doch was machen können... :wink:
User avatar
Commodore MJ Fire
Posts: 476
Joined: Mon, 27. Jul 09, 17:45
x4

Post by Commodore MJ Fire »

Also erstmal funktioniert das kopieren, aber die Resource und Type Zeile stimmen nicht. nach dem Vertauschen der Variablen stimmte der Subtype zumindest, aber der Yieldtype (Erz oder Silizium) scheint nicht richtig kopiert zu werden.
Hm, kann man da ne Art Zufallsgenerator einbauen, dass er Eis, Erz oder Silizium t? wär Cool, dann wärs keine Eins zu eins Kopie mehr und ich hätt zufällige Ressourcen in den Sektoren... :wink:
Aber das original zu kopieren reicht natürlich auch, nur so ne Idee... :D
Gruß, MJ Fire
User avatar
Commodore MJ Fire
Posts: 476
Joined: Mon, 27. Jul 09, 17:45
x4

Post by Commodore MJ Fire »

Hab selbst ne Lösung gefunden- hab erstmal den Eintrag speziell für den Warentyp von Asteroiden genutzt, aber das reicht nicht, weil im create nicht mit der Ware direkt, sondern mit der subtype-Nummer gearbeitet wird (quasi dasselbe, aber offenbar nicht für X3 :wink: ). Also noch ne Zeile, wo du aus der Ware den subtype bekommst. Das sind die Einträge:

$Waretype = $Asteroids -> get resource waretype of asteroid
$Resource = get subtype of ware $Waretype

Beim Debris dasselbe Script, nur mit Debris bei find und create. Hab Ziel und Ursprungssektor als Argumente gemacht, dann muss ich nicht immer das Script umschreiben. Es Funktioniert, Vielen Dank! So kann ich sogar die Ressourcenart beim Kopieren für alle auf einmal bestimmen, und da es in Albion eh nur Erz gibt...
Gruß, MJ Fire

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