Passagier anderen Namen geben

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
ThalonMook
Posts: 1296
Joined: Tue, 3. Feb 04, 12:11
x4

Passagier anderen Namen geben

Post by ThalonMook »

Hi Leute,

ich hab mal wieder ein kleines Scriptproblem.

Ich möchte Passagiere die in einem TP sitzen umbenennen.

Folgendes hab ich geschieben aber es funzt nicht:

Code: Select all

Script aaa.set.name.pilot
Version: 0
for Script Engine Version: 44

Description
Description
Arguments
1: schiff , Var/Ship and Passenger , 'Schiff' 
Source Text

001   $name = $schiff -> get pilot name
002   if $name == 'Unbekanntes Objekt'
003   |$rnd.name = get random name: race=Piraten
004   |$schiff -> set name to $rnd.name
005   end
006   return null

Wenn ich mir die Rasse oder den Namen im Log ausgeben lasse bekomme ich nur Unbekanntes Objekt als Rasse und CLAS0 als Namen raus.

Kann mir jemand helfen?

Bis denn Thalon
wingcommander1
Posts: 89
Joined: Thu, 6. Sep 07, 10:55
x3tc

Post by wingcommander1 »

Hallo,

habe folgendes gemacht:

Code: Select all

Arguments
0: ship , Var/Ship , 'ship' 
Source Text

001   $array = $ship -> get passenger array
002   
003   $ret = open custom menu: title='Passengers' description='List of Passengers' option array=$array
004   $pas = $array[$ret]
005   $race = $pas -> get owner race
006   $name = $pas -> get name
007   
008   $string = = sprintf: fmt='name: %s race: %s', $name, $race, null, null, null
009   send incoming message $string to player: display it=[TRUE]
010   return null

Damit kannst du dir den Namen und die Rasse richtig ausgeben lassen.
Ändern konnte ich den Namen aber nicht. Wenn es dir nur um Namen und Rasse geht könntest du den Passagier löschen und einen neuen mit neuem Namen und ausgelesener Rasse erzeugen.

Edit: mit dem Befehl <RefObj> -> set pilot name to <Var/String> lässt sich der Name des Passagiers ändern
User avatar
ThalonMook
Posts: 1296
Joined: Tue, 3. Feb 04, 12:11
x4

Post by ThalonMook »

Thx für die schnelle Hilfe.

Habs nun hinbekommen.

Es geht scheinbar wirklich nur mit dem 'passenger array'

So sieht mein Script nun aus.

Da ich alle Passagiere die 'Unbekanntes Objekt' heissen umbennen möchte hab ichs mit ner Schleife gemacht.


Code: Select all

Script aaa.set.name.pilot
Version: 0
for Script Engine Version: 44

Description
Description
Arguments
1: schiff , Var/Ship , 'Schiff' 
Source Text

001   $array = $schiff -> get passenger array
002   *$ret =  open custom menu: title='Passagiere' description='Liste der Passagiere' option array=$array
003   $anz =  size of array $array
004   while $anz
005   |$pas = $array[$anz]
006   |$name = $pas -> get name
007   |$race = $pas -> get owner race
008   |if $name == 'Unbekanntes Objekt'
009   ||$rnd.name = get random name: race=Piraten
010   ||$pas -> set pilot name to $rnd.name
011   *$ausg = sprintf: fmt='Name: %s Rasse %s', $name, $race, null, null, null
012   *send incoming message $ausg to player: display it=[TRUE]
013   |end
014   |dec $anz = 
015   end
016   return null

Bis denn Thalon

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