Scripting:Flotten benennen
Aus STNE-Wiki
K (→Skriptcode) |
K (→Vorschlag 5: Benennung in NCC-Reihenfolge) |
||
(Der Versionsvergleich bezieht 12 dazwischenliegende Versionen mit ein.) | |||
Zeile 3: | Zeile 3: | ||
= Flotten-Benennung = | = Flotten-Benennung = | ||
- | == Skriptcode == | + | --[[Spieler:Moax|Moax]] 13:01, 25. Apr 2008 (W. Europe Daylight Time)== Skriptcode == |
+ | |||
+ | ===Vorschlag 1. === | ||
- | |||
VAR names[] AS String = { | VAR names[] AS String = { | ||
'name1', | 'name1', | ||
Zeile 12: | Zeile 13: | ||
'name4' | 'name4' | ||
} | } | ||
- | i= | + | VAR i AS Integer = 0 |
VAR Flotte AS new CMyFlotte( idDerFlotte ); | VAR Flotte AS new CMyFlotte( idDerFlotte ); | ||
- | VAR | + | VAR Ship as CMyShip |
- | + | FOR ( EACH Ship IN Flotte.Ships ) | |
- | + | ||
{ | { | ||
- | + | Ship.Name = <nowiki>''</nowiki> & names[i] | |
- | Ship.Name ='' & names[i] | + | i = i + 1 |
- | 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!'); | ||
+ | |||
+ | === Vorschlag 5: Benennung in NCC-Reihenfolge === | ||
+ | von Luggage | ||
+ | |||
+ | Var tag As String; | ||
+ | Var title As String; | ||
+ | Var name As String; | ||
+ | Var i As Integer; | ||
+ | Var flotte As Integer; | ||
+ | tag = "USS"; // Schiffskennung (z.B. "USS") - optional | ||
+ | title = "Enterprise"; // Schiffsbezeichnung (z.B. "Enterprise") | ||
+ | flotte = 123456; // FlottenID. Siehe: http://wiki.stne.net/index.php?title=Scripting:FlottenIDErmitteln | ||
+ | If (tag = <nowiki>''</nowiki>) { name = title & ' '; } | ||
+ | Else { name = tag & ' ' & title & ' '; } | ||
+ | i = 1; | ||
+ | Var fleet As New CMyFlotte(flotte); | ||
+ | Var shiplist As CShipList; | ||
+ | shiplist = fleet.Ships; | ||
+ | Var ship As CMyShip; | ||
+ | Var firstship As CMyShip; | ||
+ | WriteLine(<nowiki>''</nowiki>); | ||
+ | WriteLine('ooo/------------------------------------------------------------------------------------------------/'); | ||
+ | WriteLine('oo/ Flottenbenennung nach NCC sortiert - erstellt von Luggage (7066) mit Hilfe von Licenser (45929)/'); | ||
+ | WriteLine('o/ Warenspenden aus Dankbarkeit sind immer willkommen ;-) /---------------------------------------/'); | ||
+ | WriteLine('/--------------------------------------------------------/'); | ||
+ | WriteLine(<nowiki>''</nowiki>); | ||
+ | WriteLine('Beginne Benennung der Flotte "' & fleet.Name & '" mit folgenden Parametern:'); | ||
+ | WriteLine('Anzahl der Schiffe in Flotte: ' & shiplist.Count); | ||
+ | If (tag = <nowiki>''</nowiki>) { WriteLine('Keine Schiffskennung angegeben.'); } | ||
+ | Else { WriteLine('Schiffskennung: ' & tag); } | ||
+ | WriteLine('Schiffsbezeichnung: ' & title); | ||
+ | WriteLine(<nowiki>''</nowiki>); | ||
+ | While (shiplist.Count > 0) | ||
+ | { | ||
+ | firstship = shiplist.Item(0); | ||
+ | For (Each ship In shiplist) | ||
+ | { | ||
+ | If (ship.ShipID < firstship.ShipID) | ||
+ | { | ||
+ | firstship = ship; | ||
+ | } | ||
+ | } | ||
+ | If (i < 10) { | ||
+ | firstship.Name = name & '0' & i ; | ||
+ | i = i + 1; | ||
+ | } | ||
+ | Else { | ||
+ | firstship.Name = name & i ; | ||
+ | i = i + 1; | ||
+ | } | ||
+ | shiplist.Remove(firstship); | ||
+ | WriteLine(firstship.Name & ' (NCC: ' & firstship.ShipID & ') benannt - ' & shiplist.Count & ' Schiffe verbleiben.'); | ||
+ | } | ||
+ | WriteLine(<nowiki>''</nowiki>); | ||
+ | WriteLine('Alle Schiffe benannt.'); | ||
== Bemerkungen == | == 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 = <nowiki>'Name_'</nowiki> & 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. | ||
+ | |||
+ | |||
[[Kategorie:Scripte|Flotten benennen]] | [[Kategorie:Scripte|Flotten benennen]] |
Aktuelle Version vom 19. Dezember 2008, 16:35 Uhr
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!');
Vorschlag 5: Benennung in NCC-Reihenfolge
von Luggage
Var tag As String; Var title As String; Var name As String; Var i As Integer; Var flotte As Integer; tag = "USS"; // Schiffskennung (z.B. "USS") - optional title = "Enterprise"; // Schiffsbezeichnung (z.B. "Enterprise") flotte = 123456; // FlottenID. Siehe: http://wiki.stne.net/index.php?title=Scripting:FlottenIDErmitteln If (tag = '') { name = title & ' '; } Else { name = tag & ' ' & title & ' '; } i = 1; Var fleet As New CMyFlotte(flotte); Var shiplist As CShipList; shiplist = fleet.Ships; Var ship As CMyShip; Var firstship As CMyShip; WriteLine(''); WriteLine('ooo/------------------------------------------------------------------------------------------------/'); WriteLine('oo/ Flottenbenennung nach NCC sortiert - erstellt von Luggage (7066) mit Hilfe von Licenser (45929)/'); WriteLine('o/ Warenspenden aus Dankbarkeit sind immer willkommen ;-) /---------------------------------------/'); WriteLine('/--------------------------------------------------------/'); WriteLine(''); WriteLine('Beginne Benennung der Flotte "' & fleet.Name & '" mit folgenden Parametern:'); WriteLine('Anzahl der Schiffe in Flotte: ' & shiplist.Count); If (tag = '') { WriteLine('Keine Schiffskennung angegeben.'); } Else { WriteLine('Schiffskennung: ' & tag); } WriteLine('Schiffsbezeichnung: ' & title); WriteLine(''); While (shiplist.Count > 0) { firstship = shiplist.Item(0); For (Each ship In shiplist) { If (ship.ShipID < firstship.ShipID) { firstship = ship; } } If (i < 10) { firstship.Name = name & '0' & i ; i = i + 1; } Else { firstship.Name = name & i ; i = i + 1; } shiplist.Remove(firstship); WriteLine(firstship.Name & ' (NCC: ' & firstship.ShipID & ') benannt - ' & shiplist.Count & ' Schiffe verbleiben.'); } WriteLine(''); WriteLine('Alle Schiffe benannt.');
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.