Scripting:Flotten benennen

Aus STNE-Wiki

Wechseln zu: Navigation, Suche
fertige Scripte | Anleitungen und FAQ | Überblick über die Scripting-Sektion | Hilfen zum Arbeiten im Wiki


Inhaltsverzeichnis

Flotten-Benennung

--Moax 13:01, 25. Apr 2008 (W. Europe Daylight Time)== Skriptcode ==

Vorschlag 1.

VAR names[] AS String = {
'name1',
'name2',
'name3',
'name4'
}
VAR i AS Integer = 0
VAR Flotte AS new CMyFlotte( idDerFlotte );
VAR Ship as CMyShip
FOR ( EACH Ship IN Flotte.Ships )
{ 
   Ship.Name = '' & names[i]
   i = i + 1
}

Vorschlag 2.

von Positron

VAR i AS Integer = 1
VAR Flotte AS new CMyFlotte( idDerFlotte );
VAR Ship as CMyShip
FOR ( EACH Ship IN Flotte.Ships )
{ 
   Ship.Name = 'Name_' & i; // damit heisst das erste Schiff Name_1, das zweite Name_2 etc.
   i = i + 1;
}

Vorschlag 3.

von moax

Var i As Integer = 1;
Var Flotte As New CMyFlotte(79925);
Var Ship As CMyShip;
For (Each Ship In Flotte.Ships)
{
  If (i > 9) {
    Ship.Name = 'Prinz Eugen' & i;
  } Else {
    Ship.Name = 'Prinz Eugen 0' & i;
  }
  i = i + 1;
}

Vorschlag 4.

von moax

Var tag As String;
Var name As String;
Var i As Integer;
Var flotte As Integer;
tag = "K - ";
name = "Löwenzahn ";
i = 1;
flotte = 79939;
Var fleet As New CMyFlotte(flotte);
Var shiplist As CShipList;
shiplist = fleet.Ships;
shiplist.Reverse();
shiplist.Reverse();
Var ship As CMyShip;
For (Each ship In shiplist)
{ 
  If (i < 10) {
    ship.Name =  & tag & ' ' & name & ' 0' & i ;
    i = i + 1;
  }
  Else {
    ship.Name =  & tag & ' ' & name & ' ' & i ;
    i = i + 1;
  }
}
WriteLine('Bennenung der Flotte erfolgreich ausgeführt!');

Bemerkungen

Kommentare

von Positron: Ich verstehe nicht ganz wofür dieses String-Array gut sein solle. Weil so muss man die Anzahl der "names" Parameter genauso gross oder mindestes so gross halten wie die Anzahl der Schiffe in der Flotte. Meist kommt es zu einer Fehlermeldung, wo der Index Ausserhalb des Arrays landet, weil ja nur zB 3 Namen im Array stehen aber es mehr als 3 Schiffe in der Flotte gibt. Sinnvoller ist es das Array komplett wegzulassen inklusive der names[i]-Angabe.. Hinzu kommt, das wenn man dann doch jeden Namen wieder einzeln für alle Schiffe einer Flotte(bis zu 80 Stk) einzeln eingeben muss, sich ein Script dafür erübrigt.

Mein Vorschlag für einen neuen Script-Code:

VAR i AS Integer = 1
VAR Flotte AS new CMyFlotte( idDerFlotte );
VAR Ship as CMyShip
FOR ( EACH Ship IN Flotte.Ships )
{ 
   Ship.Name = 'Name_' & i; // damit heisst das erste Schiff Name_1, das zweite Name_2 etc.
   i = i + 1;
}


von moax: Ich hab nun alle Varianten mal reingeben wobei ich die letzter bevorzuge.

Persönliche Werkzeuge