<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.stne.net/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.stne.net/index.php?feed=atom&amp;target=Arakis&amp;title=Spezial%3ABeitr%C3%A4ge%2FArakis</id>
		<title>STNE-Wiki - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.stne.net/index.php?feed=atom&amp;target=Arakis&amp;title=Spezial%3ABeitr%C3%A4ge%2FArakis"/>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Spezial:Beitr%C3%A4ge/Arakis"/>
		<updated>2026-04-07T20:23:30Z</updated>
		<subtitle>Aus STNE-Wiki</subtitle>
		<generator>MediaWiki 1.16.0</generator>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Vorlage:Menue</id>
		<title>Vorlage:Menue</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Vorlage:Menue"/>
				<updated>2020-09-28T19:57:24Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; &lt;br /&gt;
! | '''[[Inhalt|Inhalt]]''' | '''[[Inhalt|Inhalt]]''' | '''[[:Kategorie:STNE|STNE]]''' | '''[[:Kategorie:Regeln und Gesetze|Regeln]]''' | '''[[NPC]]''' | '''[[:Kategorie:Kolonien|Kolonien]]''' | '''[[:Kategorie:Gebäude|Gebäude]]''' | '''[[:Kategorie:Waren|Waren]]''' | '''[[:Kategorie:Schiffe|Schiffe]]''' | '''[[:Kategorie:Waffen|Waffen]]''' | '''[[Sternenkartographie]]''' | '''[[:Kategorie:Forschungen|Forschungen]]''' | '''[[:Kategorie:Handel|Handel]]''' | '''[[Siedler]]''' | '''[[:Kategorie:RPG|RPG]]''' | '''[[Support]]''' | '''[[Index]]'''  	&lt;br /&gt;
|}&lt;br /&gt;
STNE ist ein Online Strategie- und Rollenspiel. '''[https://game.stne.net &amp;lt;span style=&amp;quot;color:rgb(144, 238, 144)&amp;quot;&amp;gt;Du kannst hier mitspielen&amp;lt;/span&amp;gt;]'''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Vorlage:Menue</id>
		<title>Vorlage:Menue</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Vorlage:Menue"/>
				<updated>2020-09-28T19:51:53Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; &lt;br /&gt;
! | '''[[Inhalt|Inhalt]]''' | '''[[Inhalt|Inhalt]]''' | '''[[:Kategorie:STNE|STNE]]''' | '''[[:Kategorie:Regeln und Gesetze|Regeln]]''' | '''[[NPC]]''' | '''[[:Kategorie:Kolonien|Kolonien]]''' | '''[[:Kategorie:Gebäude|Gebäude]]''' | '''[[:Kategorie:Waren|Waren]]''' | '''[[:Kategorie:Schiffe|Schiffe]]''' | '''[[:Kategorie:Waffen|Waffen]]''' | '''[[Sternenkartographie]]''' | '''[[:Kategorie:Forschungen|Forschungen]]''' | '''[[:Kategorie:Handel|Handel]]''' | '''[[Siedler]]''' | '''[[:Kategorie:RPG|RPG]]''' | '''[[Support]]''' | '''[[Index]]'''  	&lt;br /&gt;
|}&lt;br /&gt;
STNE ist ein Online Strategie- und Rollenspiel. '''[https://game.stne.net Du kannst hier mitspielen]'''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:4px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Schiffslimit</id>
		<title>Schiffslimit</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Schiffslimit"/>
				<updated>2013-04-23T18:14:12Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menue}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das '''Schiffslimit''' oder besser das '''Slotlimit''' für Schiffe bestimmt, wie viele Slots ein Siedler maximal mit Schiffen füllen kann. Normalerweise liegt das Limit bei 100 Slots, aber es kann in 10er Schritten gegen [[Credits]] erhöht werden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das maximale Limit liegt bei 200 Slots. Es beinhaltet ALLE Schiffe, Raumstationen, Sonden und MVWs - egal ob gekauft, ersteigert oder selbst gebaut. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Optionen]] &amp;gt; [[Credits]] eintauschen &amp;gt; [[Schiffslimit erhöhen]] +10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{seealso}}&lt;br /&gt;
* [[Optionen]]&lt;br /&gt;
* [[Schiffslimit erhöhen]]&lt;br /&gt;
* [[Credits]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Kategorie:Schiffe]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Schiffslimit</id>
		<title>Schiffslimit</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Schiffslimit"/>
				<updated>2013-04-23T18:13:57Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menue}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
.&lt;br /&gt;
Das '''Schiffslimit''' oder besser das '''Slotlimit''' für Schiffe bestimmt, wie viele Slots ein Siedler maximal mit Schiffen füllen kann. Normalerweise liegt das Limit bei 100 Slots, aber es kann in 10er Schritten gegen [[Credits]] erhöht werden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das maximale Limit liegt bei 200 Slots. Es beinhaltet ALLE Schiffe, Raumstationen, Sonden und MVWs - egal ob gekauft, ersteigert oder selbst gebaut. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Optionen]] &amp;gt; [[Credits]] eintauschen &amp;gt; [[Schiffslimit erhöhen]] +10&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{seealso}}&lt;br /&gt;
* [[Optionen]]&lt;br /&gt;
* [[Schiffslimit erhöhen]]&lt;br /&gt;
* [[Credits]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Kategorie:Schiffe]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Siedler</id>
		<title>Siedler</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Siedler"/>
				<updated>2010-08-20T03:52:04Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menue}}&lt;br /&gt;
== Die Siedler  ==&lt;br /&gt;
&lt;br /&gt;
Als Siedler werden die Spieler von [[STNE]] bezeichnet. Sie konzentrieren sich je nach persönlichen Neigungen, Bedürfnissen und Ressourcen auf verschiedene Aspekte des Spiels. Die Siedler bilden eine von mehreren Bevölkerungsgruppen im [[Delta-Quadrant|Delta-Quadranten]] neben der [[Föderation]] und verschiedenen anderen Machtgruppen. Viele Siedler sind widerum in [[Allianz]]en organisiert, um sich durch eine größere militärische, wirtschaftliche und soziale Machtbasis einen größeren Einfluss in die politischen Geschehnisse des [[Delta-Quadrant|DQ]] zu sichern. Andere bevorzugen es, allein zu agieren.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Im Wiki beschriebene Siedlerseiten ==&lt;br /&gt;
&lt;br /&gt;
* [[Spieler:AMJeanLucPicard|AMJeanLucPicard (ID 43506)]]&lt;br /&gt;
* [[Spieler:Atlan|Atlan (ID 49592)]]&lt;br /&gt;
* [[Spieler:Apofis|Apofis (ID 28774)]]&lt;br /&gt;
* [[Spieler:W!Zz4Rd|Borg - Vinkulum 39C[BA] (ID 16475) -W!Zz4Rd-]]&lt;br /&gt;
* [[Spieler:Chi|Chi (ID 15944)]]&lt;br /&gt;
* [[Spieler:Cortana KI|[UNSC] Cortana &amp;lt;small&amp;gt;KI&amp;lt;/small&amp;gt; (ID 51936)]]&lt;br /&gt;
* [[Spieler:Degra|Degra (ID 7500)]]&lt;br /&gt;
* [[Spieler:Jing|Datura (ID 6228) -Jing-]]&lt;br /&gt;
* [[Spieler:El Rolo|El Rolo (ID )]]&lt;br /&gt;
* [[Spieler:falcon_gfx|falcon_gfx - Abgesandter des Auridianischen Reiches (ID 21837)]]&lt;br /&gt;
* [[Spieler:Xenon|Großadministrator von Ritaka (ID 10127) -Xenon-]]&lt;br /&gt;
* [[Spieler:SpaceTribe#Server 3|Großfürstin Thea-Mania von Sanctûar (S3-ID 6214) -SpaceTribe-]]&lt;br /&gt;
* [[Spieler:Hirano|Hirano Colonies - Hiranische Freiheitsbewegung (ID S1-54666)]]&lt;br /&gt;
* [[Spieler:Humankind Empire of Abh| Humankind Empire of Abh (ID 36384)]]&lt;br /&gt;
* [[Spieler:Jack*Black|Jack*Black aka König Minos (ID 17118)]]&lt;br /&gt;
* [[Spieler:Jem'Hadar| Jem'Hadar (ID 32006)]]&lt;br /&gt;
* [[Spieler:Reed|Julian Reed (ID S1-22100)]]&lt;br /&gt;
* [[Spieler:Jörg|Jörg (ID 18598)]]&lt;br /&gt;
* [[Spieler:Tadeus Demming|Königreich Som (ID 33357)]]&lt;br /&gt;
* [[Spieler:Ll'on Darier|Ll'on Darier (ID )]]&lt;br /&gt;
* [[Spieler:Lord Arkanis|Lord Arkanis (ID 23647)]]&lt;br /&gt;
* [[Spieler:Lucien Museveni|Lucien Museveni (ID )]]&lt;br /&gt;
* [[Spieler:Moritz der Mächtige|Moritz der Mächtige (ID )]]&lt;br /&gt;
* [[Spieler:Myselection|Myselection (ID 44964)]]&lt;br /&gt;
* [[Spieler:Proximo|Proximo (ID 21617)]]&lt;br /&gt;
* [[Spieler:QuentinT|QuentinT (ID 21838)]]&lt;br /&gt;
* [[Spieler:Saltok T'Lar|Saltok T'Lar (ID 13804)]]&lt;br /&gt;
* [[Spieler:Die Schatten von Maraskan|Die Schatten von Maraskan (ID 16962)]]&lt;br /&gt;
* [[Spieler:SpaceTribe|SpaceTribe (ID 30160)]]&lt;br /&gt;
* [[Spieler:StarChild|StarChild (ID 30474)]]&lt;br /&gt;
* [[Spieler:Thlog'|Thlog' (ID 11190)]]&lt;br /&gt;
* [[Spieler:Zakdorn|Thron Teufel  (ID 25969) -Zakdorn-]]&lt;br /&gt;
* [[Spieler:UNSC Marine Corps|[UNSC] Sir Terrence Hood &amp;lt;small&amp;gt;[*****]&amp;lt;/small&amp;gt; (ID 39692)]]&lt;br /&gt;
* [[Spieler:Serina| [SEK] United States of Berania  (ID 25774) -Serina-]]&lt;br /&gt;
* [[Spieler:Vulkanier|Vulkanier]]&lt;br /&gt;
* [[Westeros| Westeros (ID 17118)]]&lt;br /&gt;
* [[Spieler:Son'a|Son'a (ID 39705)]]&lt;br /&gt;
* [[Spieler:Commonwealth (ID 1021)]]&lt;br /&gt;
* [[Spieler: Freies Reich von Suruchada (ID 3121)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;edit: ich habe mir erlaubt die Liste alphabetisch zu Ordnen -nach InGame-Namen- und wenn nötig die Spieler-Namen zu ergänzen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Gruß&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
euer SpaceTribe&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{seealso}}&lt;br /&gt;
[[:Kategorie:Spieler|Übersicht aller im Wiki registrierten Spieler]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Spieler| Siedler]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=STNE-Wiki:Administratoren</id>
		<title>STNE-Wiki:Administratoren</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=STNE-Wiki:Administratoren"/>
				<updated>2010-08-20T03:50:20Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menue}}&lt;br /&gt;
{{Wiki-Hilfe}}&lt;br /&gt;
&lt;br /&gt;
Hier findet ihr eine Liste der Administratoren des Wiki. Bitte wendet euch bei Streitfragen rund ums Wiki an die unten stehen Admins. Weitere Hilfe gibt es im Forum und im IRC (Channel #wiki)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== aktuelle Wiki-Administratoren ==&lt;br /&gt;
* [[Spieler:Arakis|Arakis (ID 1)]]&lt;br /&gt;
* [[Spieler:Data|Data (ID 6236 [Server 1])]]&lt;br /&gt;
* [[Spieler:Terrell|Terrell (ID 4409 [Server 1])]]&lt;br /&gt;
* [[Spieler:Juliuspedia|Atlantropa (DE3-26)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ehemalige Wiki-Administratoren ==&lt;br /&gt;
* [[Spieler:Die Schatten von Maraskan|Die Schatten von Maraskan (frühere Server 1-ID: 16962)]]&lt;br /&gt;
* [[Spieler:Jelandria|Jelandria Alderion (frühere Server 1-ID: 16976)]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Wiki-Hilfe|Administratoren]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:CBaseShipManager</id>
		<title>API:CBaseShipManager</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:CBaseShipManager"/>
				<updated>2010-08-20T01:54:21Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:ApiMenu}}&lt;br /&gt;
Die Klasse [[API:CBaseShipManager|CBaseShipManger]] wird benötigt um Aktionen mit einem Schiff durchzuführen.&lt;br /&gt;
&lt;br /&gt;
Hierzu ist es erstmal notwendig, eine Instanz von [[API:CMyShip|CMyShip]] zu erzeugen:&lt;br /&gt;
&lt;br /&gt;
[[code|Var Schiff As New CMyShip(123456);]]&lt;br /&gt;
&lt;br /&gt;
Auf das Schiff mit der NCC 123456 kann man nun sämtliche Methoden des Objektes [[API:CBaseShipManager|CBaseShipManger]] anwenden, da die Eigenschaft [[code|Action]] von [[API:CMyShip|CMyShip]] der Klasse [[API:CBaseShipManager|CBaseShipManager]] entspricht.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Var Schiff As New CMyShip(123456);&lt;br /&gt;
  Var Station As New CMyShip(54321);&lt;br /&gt;
&lt;br /&gt;
  Schiff.Action.CollectOre(20);&lt;br /&gt;
  Schiff.Action.FlyTo(&amp;quot;150|250&amp;quot;);&lt;br /&gt;
  Schiff.Action.EnterOrbit();&lt;br /&gt;
  Schiff.Action.DockTo(Station.ShipID);&lt;br /&gt;
  Schiff.Action.TransferToShip(Station.ShipID, 100, EBeamResource.IridiumOre);&lt;br /&gt;
  Schiff.Action.TransferFromShip(Station.ShipID, 50, EBeamResource.Deuterium);&lt;br /&gt;
  Schiff.Action.TransferFromShip(54321, 50, EBeamRessource.Food);&lt;br /&gt;
  Schiff.Action.Undock();&lt;br /&gt;
  Schiff.Action.LeaveOrbit();&lt;br /&gt;
  Schiff.Action.FlyTo(&amp;quot;152|251&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
In dem Beispiel würde das eigene Schiff die vorgegeben Aktionen ausführen, in dem Fall: Erz sammeln, zu einer Station in einem tiefen Orbit fliegen, Andocken, Erz rüberbeamen, Schiff mit Nahrung sowie Deuterium versorgen und anschließend zurück fliegen.&lt;br /&gt;
&lt;br /&gt;
Hier eine Liste der gebräuchlichen Methoden von [[API:CBaseShipManager|CBaseShipManager]]:&lt;br /&gt;
&lt;br /&gt;
''Bitte beachte: Die Aktionen unterliegen den selben Einschränkungen wie im Spiel, d.h. du kannst nur mit anderen Schiffen interagieren, wenn sie im selben Sektor sind oder zum Beispiel auch nur die Schilde laden, wenn sie auch abgekühlt sind.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Methode !! Parameter !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
|ActivateLRS(Status) || [[API:Boolean|Boolean]] || Bei Schiff.Action.ActivateLRS(True) wird das LRS aktiviert, bei &amp;quot;False&amp;quot; deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|ActivateReplicators(Status) || [[API:Boolean|Boolean]] || Aktiviert/Deaktiviert den Replikator an Bord&lt;br /&gt;
|-&lt;br /&gt;
|ActivateShields(Status) || [[API:Boolean|Boolean]] || Schilde aktivieren&lt;br /&gt;
|-&lt;br /&gt;
|ActivateSRS(Status) || [[API:Boolean|Boolean]] || SRS aktivieren&lt;br /&gt;
|-&lt;br /&gt;
|ActivateTractorBeam(ShipID) || [[API:Integer|Integer]] || Erfasst das Schiff mit der NCC-Nr &amp;quot;ShipID&amp;quot; im Traktorstrahl&lt;br /&gt;
|-&lt;br /&gt;
|ActivateWarpCore(Status) || [[API:Boolean|Boolean]] || Warpkern aktivieren&lt;br /&gt;
|-&lt;br /&gt;
|ApplyGoodsToConstruction() || - || Speißt beim Umbau von Tugs / Stationen die Waren ein&lt;br /&gt;
|-&lt;br /&gt;
|ChargeEmergencyBattery(ShipID, Menge) || [[API:Integer|Integer]], [[API:Integer|Integer]] || Lädt die Reservebatterie von dem Schiff mit der NCC-Nr &amp;quot;ShipID&amp;quot; um &amp;quot;Menge&amp;quot; Energieeinheiten&lt;br /&gt;
|-&lt;br /&gt;
|ChargeShields(Menge) || [[API:Integer|Integer]] || Lädt die eigenen Schilde um &amp;quot;Menge&amp;quot; auf.&lt;br /&gt;
|-&lt;br /&gt;
|CollectDeuterium(Energie) || [[API:Integer|Integer]] || Sammelt mit &amp;quot;Energie&amp;quot; Einheiten Deuterium&lt;br /&gt;
|-&lt;br /&gt;
|CollectOre(Energie) || [[API:Integer|Integer]] || Extrahiert mit &amp;quot;Energie&amp;quot; Einheiten Erz&lt;br /&gt;
|-&lt;br /&gt;
|DeactivateTractorBeam() || - || Deaktiviert den Traktorstrahl, in dem ein andere Schiff gehalten wird.&lt;br /&gt;
|-&lt;br /&gt;
|DischargeEmergencyBattery(Menge) || [[API:Integer|Integer]] || Entlädt die Reservebatterie um &amp;quot;Menge&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|DockTo(ShipID) || [[API:Integer|Integer]] || Dockt an das Schiff/Station mit der NCC-Nr &amp;quot;ShipID&amp;quot; an&lt;br /&gt;
|-&lt;br /&gt;
|EnterOrbit || - || Betritt den Orbit der Kolonie, über der das Schiff gerade steht&lt;br /&gt;
|-&lt;br /&gt;
| ExtractFromWreck(Menge) || [[API:Integer|Integer]]&lt;br /&gt;
|-&lt;br /&gt;
| Fly(AnzahlFelder, Richtung) || [[API:Integer|Integer]], [[API:EShipDirection|EShipDirection]]&lt;br /&gt;
|- &lt;br /&gt;
| FlyTo(Position) || [[API:String|String]]&lt;br /&gt;
|-&lt;br /&gt;
| Hide(Versteckt) || [[API:Boolean|Boolean]]&lt;br /&gt;
|-&lt;br /&gt;
| JettisonGoods(Menge, WarenTyp) || [[API:Integer|Integer]], [[API:EGoodsType|EGoodsType]]&lt;br /&gt;
|-&lt;br /&gt;
| LeaveAllFleets() || - &lt;br /&gt;
|-&lt;br /&gt;
| LeaveOrbit() || - &lt;br /&gt;
|-&lt;br /&gt;
| RefillWarpCore(Menge) || [[API:Integer|Integer]]&lt;br /&gt;
|-&lt;br /&gt;
| Repair(ShipID, Hüllenpunkte) || [[API:Integer|Integer]], [[API:Integer|Integer]]&lt;br /&gt;
|-&lt;br /&gt;
| SetAlertLevel(Stufe) || [[API:EAlertLevel|EAlertLevel]]&lt;br /&gt;
|-&lt;br /&gt;
| SetName(Name) || [[API:String|String]]&lt;br /&gt;
|-&lt;br /&gt;
| TransferFromColony(FromColonieID, Anzahl, Ressource) || [[API:Integer|Integer]], [[API:Integer|Integer]], [[API:EBeamResource|EBeamResource]]&lt;br /&gt;
|-&lt;br /&gt;
| TransferFromShip(FromShipID, Anzahl, Ressource) || [[API:Integer|Integer]], [[API:Integer|Integer]], [[API:EBeamResource|EBeamResource]]&lt;br /&gt;
|-&lt;br /&gt;
| TransferToColony(ToColonieID, Anzahl, Ressource) || [[API:Integer|Integer]], [[API:Integer|Integer]], [[API:EBeamResource|EBeamResource]]&lt;br /&gt;
|-&lt;br /&gt;
| TransferToShip(ToShipID, Anzahl, Ressource) || [[API:Integer|Integer]], [[API:Integer|Integer]], [[API:EBeamResource|EBeamResource]]&lt;br /&gt;
|-&lt;br /&gt;
| Undock() || -&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | Weitere Erklärungen folgen...&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:Boolean</id>
		<title>API:Boolean</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:Boolean"/>
				<updated>2010-08-20T01:52:46Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:ApiMenu}}&lt;br /&gt;
[[API:Boolean|Boolean]] ist ein Variablentyp. Jede Variable hat einen &amp;quot;Typ&amp;quot;, darunter versteht man was für Daten in ihr gespeichert sind. &lt;br /&gt;
&lt;br /&gt;
Bei Boolean kommen nur zwei Werte in Frage - [[code|True]] oder [[code|False]] (umgangssprachlich 0 oder 1). &lt;br /&gt;
Falls ein Paramater als [[API:Boolean|Boolean]] erwartet wird, bedeutet dies, dass man einfach True oder False (ohne Anführungsstriche) angeben muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desweiteren gibt es die Struktur Boolean http://game.stne.net/ObjectExplorer.aspx?p=Boolean :&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Methode !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| CompareTo(value AS Object)&lt;br /&gt;
|-&lt;br /&gt;
| FalseString&lt;br /&gt;
|-&lt;br /&gt;
| GetTypeCode()&lt;br /&gt;
|-&lt;br /&gt;
| Parse(s As String) || Diese Methode wandelt einen String in einen Integer-Wert um und gibt diesen zurück.&lt;br /&gt;
|-&lt;br /&gt;
| TrueString&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:CMyShip</id>
		<title>API:CMyShip</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:CMyShip"/>
				<updated>2010-08-20T01:50:05Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:ApiMenu}}&lt;br /&gt;
{{Code|CMyShip}} ist so ziemlich die wichtigste Klasse in der ScriptEngine. Sie erbt die kompletten Eigenschaften von [[API:CShip|CShip]].&lt;br /&gt;
&lt;br /&gt;
Zum Verständnis ein kurzes Beispiel, in dem es sich um ein eigenes Schiff mit der NCC-Nummer 123456 handelt.&lt;br /&gt;
&lt;br /&gt;
{{Code|Var Schiff As New CMyShip(123456);}}&lt;br /&gt;
&lt;br /&gt;
Nun ist in der Variable Schiff eine Instanz des Objektes [[API:CMyShip|CMyShip]] gespeichert.&lt;br /&gt;
Ein Blick auf den Objektexplorer (http://game.stne.net/ObjectExplorer.aspx?p=CMyShip) verrät dir, was du damit anstellen kannst:&lt;br /&gt;
&lt;br /&gt;
{{Code|WriteLine(Schiff.Name &amp;amp; &amp;quot; hat momentan &amp;quot; &amp;amp; Schiff.Energy &amp;amp; &amp;quot; Energie&amp;quot;);}}&lt;br /&gt;
&lt;br /&gt;
Desweiteren sind natürlich auch Aktionen über das Objekt [[API:CBaseShipManager|CBaseShipManager]] mit Hilfe der Methode Schiff.Action möglich.&lt;br /&gt;
Genauere Informationen hierzu findest du bei der Objekt-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
{{Code|Schiff.Action.ActivateSRS(True);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die am häufigsten benutzten Eigenschaften oder Methoden sind die folgenden:&lt;br /&gt;
&lt;br /&gt;
*Action ---&amp;gt; [[CBaseShipManager]]&lt;br /&gt;
*Energy ---&amp;gt; gibt eine Zahl zurück&lt;br /&gt;
*Docked ---&amp;gt; gibt True/False zurück&lt;br /&gt;
*FlightRange ---&amp;gt; gibt die Anzahl der geflogenen Felder (Tick) zurück&lt;br /&gt;
*Name &lt;br /&gt;
*StockRoom --&amp;gt; Gibt dir eine Instanz der Klasse [API:|SStockRoom] zurück, mit denen du die aktueleln Waren im Lager etc. auslesen kannst&lt;br /&gt;
*SRS ---&amp;gt; Gibt eine Instanz der Klasse [[API:CShipList|CShipList]] mit sämtlichen Schiffen im SRS zurück&lt;br /&gt;
*WarpCore --&amp;gt; Wert des Warpkerns&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Liste findest du direkt im Objektexplorer unter (http://game.stne.net/ObjectExplorer.aspx?p=CMyShip)&lt;br /&gt;
&lt;br /&gt;
Mit denen ist es möglich, Informationen über das Schiff abfragen zu lassen und anschließend zum Beispiel den Warpkern auffüllen zu lassen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Var Schiff As CMyShip(12345);&lt;br /&gt;
  If (Schiff.WarpCore &amp;lt; 100) {&lt;br /&gt;
    If (Schiff.Docked = False) { &lt;br /&gt;
      Schiff.Action.DockTo(54321);&lt;br /&gt;
    }&lt;br /&gt;
    Schiff.Action.TransferFromShip(54321, 10, EBeamResource.Deuterium);&lt;br /&gt;
    Schiff.Action.TransferFromShip(54321, 10, EBeamResource.Antimatter);&lt;br /&gt;
    Schiff.Action.TransferFromShip(54321, 5, EBeamResource.Dilicium);&lt;br /&gt;
    Schiff.Action.RefilWarpCore(10);&lt;br /&gt;
  }&lt;br /&gt;
  WriteLine(&amp;quot;Der Wert des Warpkerns beträgt nun: &amp;quot; &amp;amp; Schiff.WarpCore &amp;amp; &amp;quot; Einheiten&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Merke: Du kannst nur Instanzen von [[API:CMyShip|CMyShip]] mit deinen eigenen Schiffen erstellen, andere Schiffe kannst du nur via [[API:CShip|CShip]] handhaben aber nicht via der NCC-Nummer erstellen.&lt;br /&gt;
Du kannst nur mit ihnen Arbeiten, wenn dir eine Funktion z.B. die Auswertung der SRS-Liste mit Hilfe von Schiff.SRS dir Instanzen von CShip mit einem &amp;quot;fremden&amp;quot; Schiff übergibt.''&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:CBaseShipManager</id>
		<title>API:CBaseShipManager</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:CBaseShipManager"/>
				<updated>2010-08-20T01:49:40Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:ApiMenu}}&lt;br /&gt;
Die Klasse [[API:CBaseShipManager|CBaseShipManger]] wird benötigt um Aktionen mit einem Schiff durchzuführen.&lt;br /&gt;
&lt;br /&gt;
Hierzu ist es erstmal notwendig, eine Instanz von [[API:CMyShip|CMyShip]] zu erzeugen:&lt;br /&gt;
&lt;br /&gt;
[[code|Var Schiff As New CMyShip(123456);]]&lt;br /&gt;
&lt;br /&gt;
Auf das Schiff mit der NCC 123456 kann man nun sämtliche Methoden des Objektes [[API:CBaseShipManager|CBaseShipManger]] anwenden, da die Eigenschaft [[code|Action]] von [[API:CMyShip|CMyShip]] der Klasse [[API:CBaseShipManager|CBaseShipManager]] entspricht.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&lt;br /&gt;
  Var Schiff As New CMyShip(123456);&lt;br /&gt;
  Var Station As New CMyShip(54321);&lt;br /&gt;
&lt;br /&gt;
  Schiff.Action.CollectOre(20);&lt;br /&gt;
  Schiff.Action.FlyTo(&amp;quot;150|250&amp;quot;);&lt;br /&gt;
  Schiff.Action.EnterOrbit();&lt;br /&gt;
  Schiff.Action.DockTo(Station.ShipID);&lt;br /&gt;
  Schiff.Action.TransferToShip(Station.ShipID, 100, EBeamResource.IridiumOre);&lt;br /&gt;
  Schiff.Action.TransferFromShip(Station.ShipID, 50, EBeamResource.Deuterium);&lt;br /&gt;
  Schiff.Action.TransferFromShip(54321, 50, EBeamRessource.Food);&lt;br /&gt;
  Schiff.Action.Undock();&lt;br /&gt;
  Schiff.Action.LeaveOrbit();&lt;br /&gt;
  Schiff.Action.FlyTo(&amp;quot;152|251&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
In dem Beispiel würde das eigene Schiff die vorgegeben Aktionen ausführen, in dem Fall: Erz sammeln, zu einer Station in einem tiefen Orbit fliegen, Andocken, Erz rüberbeamen, Schiff mit Nahrung sowie Deuterium versorgen und anschließend zurück fliegen.&lt;br /&gt;
&lt;br /&gt;
Hier eine Liste der gebräuchlichen Methoden von [[API:CBaseShipManager:CBaseShipManager]]:&lt;br /&gt;
&lt;br /&gt;
''Bitte beachte: Die Aktionen unterliegen den selben Einschränkungen wie im Spiel, d.h. du kannst nur mit anderen Schiffen interagieren, wenn sie im selben Sektor sind oder zum Beispiel auch nur die Schilde laden, wenn sie auch abgekühlt sind.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
!Methode !! Parameter !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
|ActivateLRS(Status) || [[API:Boolean|Boolean]] || Bei Schiff.Action.ActivateLRS(True) wird das LRS aktiviert, bei &amp;quot;False&amp;quot; deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|ActivateReplicators(Status) || [[API:Boolean|Boolean]] || Aktiviert/Deaktiviert den Replikator an Bord&lt;br /&gt;
|-&lt;br /&gt;
|ActivateShields(Status) || [[API:Boolean|Boolean]] || Schilde aktivieren&lt;br /&gt;
|-&lt;br /&gt;
|ActivateSRS(Status) || [[API:Boolean|Boolean]] || SRS aktivieren&lt;br /&gt;
|-&lt;br /&gt;
|ActivateTractorBeam(ShipID) || [[API:Integer|Integer]] || Erfasst das Schiff mit der NCC-Nr &amp;quot;ShipID&amp;quot; im Traktorstrahl&lt;br /&gt;
|-&lt;br /&gt;
|ActivateWarpCore(Status) || [[API:Boolean|Boolean]] || Warpkern aktivieren&lt;br /&gt;
|-&lt;br /&gt;
|ApplyGoodsToConstruction() || - || Speißt beim Umbau von Tugs / Stationen die Waren ein&lt;br /&gt;
|-&lt;br /&gt;
|ChargeEmergencyBattery(ShipID, Menge) || [[API:Integer|Integer]], [[API:Integer|Integer]] || Lädt die Reservebatterie von dem Schiff mit der NCC-Nr &amp;quot;ShipID&amp;quot; um &amp;quot;Menge&amp;quot; Energieeinheiten&lt;br /&gt;
|-&lt;br /&gt;
|ChargeShields(Menge) || [[API:Integer|Integer]] || Lädt die eigenen Schilde um &amp;quot;Menge&amp;quot; auf.&lt;br /&gt;
|-&lt;br /&gt;
|CollectDeuterium(Energie) || [[API:Integer|Integer]] || Sammelt mit &amp;quot;Energie&amp;quot; Einheiten Deuterium&lt;br /&gt;
|-&lt;br /&gt;
|CollectOre(Energie) || [[API:Integer|Integer]] || Extrahiert mit &amp;quot;Energie&amp;quot; Einheiten Erz&lt;br /&gt;
|-&lt;br /&gt;
|DeactivateTractorBeam() || - || Deaktiviert den Traktorstrahl, in dem ein andere Schiff gehalten wird.&lt;br /&gt;
|-&lt;br /&gt;
|DischargeEmergencyBattery(Menge) || [[API:Integer|Integer]] || Entlädt die Reservebatterie um &amp;quot;Menge&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|DockTo(ShipID) || [[API:Integer|Integer]] || Dockt an das Schiff/Station mit der NCC-Nr &amp;quot;ShipID&amp;quot; an&lt;br /&gt;
|-&lt;br /&gt;
|EnterOrbit || - || Betritt den Orbit der Kolonie, über der das Schiff gerade steht&lt;br /&gt;
|-&lt;br /&gt;
| ExtractFromWreck(Menge) || [[API:Integer|Integer]]&lt;br /&gt;
|-&lt;br /&gt;
| Fly(AnzahlFelder, Richtung) || [[API:Integer|Integer]], [[API:EShipDirection|EShipDirection]]&lt;br /&gt;
|- &lt;br /&gt;
| FlyTo(Position) || [[API:String|String]]&lt;br /&gt;
|-&lt;br /&gt;
| Hide(Versteckt) || [[API:Boolean|Boolean]]&lt;br /&gt;
|-&lt;br /&gt;
| JettisonGoods(Menge, WarenTyp) || [[API:Integer|Integer]], [[API:EGoodsType|EGoodsType]]&lt;br /&gt;
|-&lt;br /&gt;
| LeaveAllFleets() || - &lt;br /&gt;
|-&lt;br /&gt;
| LeaveOrbit() || - &lt;br /&gt;
|-&lt;br /&gt;
| RefillWarpCore(Menge) || [[API:Integer|Integer]]&lt;br /&gt;
|-&lt;br /&gt;
| Repair(ShipID, Hüllenpunkte) || [[API:Integer|Integer]], [[API:Integer|Integer]]&lt;br /&gt;
|-&lt;br /&gt;
| SetAlertLevel(Stufe) || [[API:EAlertLevel|EAlertLevel]]&lt;br /&gt;
|-&lt;br /&gt;
| SetName(Name) || [[API:String|String]]&lt;br /&gt;
|-&lt;br /&gt;
| TransferFromColony(FromColonieID, Anzahl, Ressource) || [[API:Integer|Integer]], [[API:Integer|Integer]], [[API:EBeamResource|EBeamResource]]&lt;br /&gt;
|-&lt;br /&gt;
| TransferFromShip(FromShipID, Anzahl, Ressource) || [[API:Integer|Integer]], [[API:Integer|Integer]], [[API:EBeamResource|EBeamResource]]&lt;br /&gt;
|-&lt;br /&gt;
| TransferToColony(ToColonieID, Anzahl, Ressource) || [[API:Integer|Integer]], [[API:Integer|Integer]], [[API:EBeamResource|EBeamResource]]&lt;br /&gt;
|-&lt;br /&gt;
| TransferToShip(ToShipID, Anzahl, Ressource) || [[API:Integer|Integer]], [[API:Integer|Integer]], [[API:EBeamResource|EBeamResource]]&lt;br /&gt;
|-&lt;br /&gt;
| Undock() || -&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; | Weitere Erklärungen folgen...&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:Boolean</id>
		<title>API:Boolean</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:Boolean"/>
				<updated>2010-08-20T01:49:26Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:ApiMenu}}&lt;br /&gt;
[[API:Boolean|Boolean]] ist ein Variablentyp. Jede Variable hat einen &amp;quot;Typ&amp;quot;, darunter versteht man was für Daten in ihr gespeichert sind. &lt;br /&gt;
&lt;br /&gt;
Bei Boolean kommen nur zwei Werte in Frage - [[code|True]] oder [[code|False]] (umgangssprachlich 0 oder 1). &lt;br /&gt;
Falls ein Paramater als [[API:Bollean|Boolean]] erwartet wird, bedeutet dies, dass man einfach True oder False (ohne Anführungsstriche) angeben muss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desweiteren gibt es die Struktur Boolean http://game.stne.net/ObjectExplorer.aspx?p=Boolean :&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Methode !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| CompareTo(value AS Object)&lt;br /&gt;
|-&lt;br /&gt;
| FalseString&lt;br /&gt;
|-&lt;br /&gt;
| GetTypeCode()&lt;br /&gt;
|-&lt;br /&gt;
| Parse(s As String) || Diese Methode wandelt einen String in einen Integer-Wert um und gibt diesen zurück.&lt;br /&gt;
|-&lt;br /&gt;
| TrueString&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Kategorie:API</id>
		<title>Kategorie:API</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Kategorie:API"/>
				<updated>2010-08-20T01:48:52Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: Die Seite wurde neu angelegt: „Diese Kategorie listet die Klassen der Scriptengine auf.“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Kategorie listet die Klassen der Scriptengine auf.&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:Integer</id>
		<title>API:Integer</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:Integer"/>
				<updated>2010-08-20T01:48:19Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:ApiMenu}}&lt;br /&gt;
[[API:Integer|Integer]] ist ein Variablentyp. Jede Variable hat einen &amp;quot;Typ&amp;quot;, darunter versteht man was für Daten in ihr gespeichert sind. &lt;br /&gt;
&lt;br /&gt;
Bei Integer sind es ganze Zahlen. Wenn irgendein Parameter als [[API:Integer|Integer]] angegeben werden muss, heißt das, die Funktion erwartet einfach eine Zahl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desweiteren gibt es die Struktur Integer http://game.stne.net/ObjectExplorer.aspx?p=Integer :&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Methode !! Erklärung&lt;br /&gt;
|-&lt;br /&gt;
| CompareTo(value AS Object)&lt;br /&gt;
|-&lt;br /&gt;
| GetTypeCode()&lt;br /&gt;
|-&lt;br /&gt;
| MaxValue&lt;br /&gt;
|-&lt;br /&gt;
| MinValue&lt;br /&gt;
|-&lt;br /&gt;
| Parse(s As String) || Diese Methode wandelt einen String in einen Integer-Wert um und gibt diesen zurück.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Vorlage:ApiMenu</id>
		<title>Vorlage:ApiMenu</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Vorlage:ApiMenu"/>
				<updated>2010-08-20T01:47:22Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: Die Seite wurde neu angelegt: „{| width=&amp;quot;100%&amp;quot;  | class=&amp;quot;bc&amp;quot; | '''fertige Scripte''' | '''Anleitungen und FAQ''' | '''[[:Kategorie:Scriptin…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; &lt;br /&gt;
| class=&amp;quot;bc&amp;quot; | '''[[:Kategorie:Scripte|fertige Scripte]]''' | '''[[:Kategorie:Scripting-Hilfe|Anleitungen und FAQ]]''' | '''[[:Kategorie:Scripting|Überblick über die Scripting-Sektion]]''' | '''[[STNE-Wiki:Hilfe|Hilfen zum Arbeiten im Wiki]]''' 		&lt;br /&gt;
|}&lt;br /&gt;
[[Kategorie:API]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Vorlage:Scriptingmenue</id>
		<title>Vorlage:Scriptingmenue</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Vorlage:Scriptingmenue"/>
				<updated>2010-08-20T01:45:11Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot; &lt;br /&gt;
| class=&amp;quot;bc&amp;quot; | '''[[:Kategorie:Scripte|fertige Scripte]]''' | '''[[:Kategorie:Scripting-Hilfe|Anleitungen und FAQ]]''' | '''[[:Kategorie:Scripting|Überblick über die Scripting-Sektion]]''' | '''[[STNE-Wiki:Hilfe|Hilfen zum Arbeiten im Wiki]]''' 		&lt;br /&gt;
|}&lt;br /&gt;
[[Kategorie:Scripting]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=MediaWiki:Sidebar</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=MediaWiki:Sidebar"/>
				<updated>2010-08-20T01:42:14Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** Inhalt|Inhaltsverzeichnis&lt;br /&gt;
** Index|Von A bis Z&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
&lt;br /&gt;
* Mitmachen&lt;br /&gt;
** helppage|help&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** Spenden|Spenden&lt;br /&gt;
&lt;br /&gt;
* Starflyer - Wikizeitung&lt;br /&gt;
** News:Hauptseite|News-Start&lt;br /&gt;
** News:Inhalt|Nachschlagen&lt;br /&gt;
** Hilfe:News-Hilfe|Hilfe zum Mitschreiben&lt;br /&gt;
&lt;br /&gt;
* Script-Engine&lt;br /&gt;
** Scripting:Hauptseite|Script-Start&lt;br /&gt;
** Scripting:Inhalt|Nachschlagen&lt;br /&gt;
** Kategorie:API|API Referenz&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Hauptseite</id>
		<title>Scripting:Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Hauptseite"/>
				<updated>2010-08-19T21:28:32Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
{{Scriptingmenue}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top; border-width:0px; width:100%&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-right:10px;border:2px solid #16344E;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 1. Abschnitt oben Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:0.3em 2.5em 0.7em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
== Willkommen im Scripting-Teil des STNE-Wiki ==&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellpadding=&amp;quot;10px&amp;quot;&lt;br /&gt;
| class=&amp;quot;nl&amp;quot; width=&amp;quot;100%&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Willkommen im Scripting-Teil des STNE-Wiki. Hier könnt ihr eigene Scripte veröffentlichen, Anleitungen schreiben oder einfach Beschreibungen zu Variablen, Konstanten und Funktionen ablegen. Weitere Informationen und Hilfe bekommt ihr im [http://forum.stne.net/index.php?c=34 Forum].&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 1. Abschnitt oben Ende --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;small&amp;gt; &amp;lt;br&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:top; border-width:0px; width:40%;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-right:10px;border:2px solid #16344E;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 2. Abschnitt (unten-links) Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:0.3em 1em 0.7em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== neue Artikel ==&lt;br /&gt;
Jeder kann hier mitmachen. Alles was du dafür benötigst sind ein registrierter Wiki-Account und entsprechende Kenntnisse im Scripten. Bitte ordent eure Artikel immer einer &amp;quot;sprechenden&amp;quot; Kategorie zu. So ist es später leichter, alles wieder zu finden.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Gib hier den Titel des neuen Artikels ein: &amp;lt;br&amp;gt;&lt;br /&gt;
{{Vorlage:Neuen_Script-Artikel_eintragen}}&lt;br /&gt;
&amp;lt;small&amp;gt;'''Gib den Titel für den neuen Artikel z.B. wie folgt an:&amp;lt;br&amp;gt;&lt;br /&gt;
Scripting:Funktion xyz '''&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- 2. Abschnitt (unten-links) Ende --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;vertical-align:top; border-width:0px; width:60%;&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-right:10px;border:2px solid #16344E;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- 3. Abschnitt (unten-mitte) Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:0.3em 1em 0.7em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== fertige Artikel ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;&amp;quot;&amp;gt;[{{SERVER}}{{localurl:Vorlage:AktuellenScript-Artikel|action=edit}} '''„Fertigen&amp;amp;nbsp;Artikel“ hinzufügen''']&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;clear:both;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{AktuellenScript-Artikel}}&lt;br /&gt;
&amp;lt;!-- 3. Abschnitt (unten-mitte) Ende --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Hauptseite"/>
				<updated>2010-08-19T21:27:05Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menue}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; style=&amp;quot;vertical-align:top; border-width:0px&amp;quot;|&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-right:10px;border:2px solid #16344E;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--   Begrüßung - 1. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:0.3em 1em 0.7em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
=='''Willkommen im STNE-Wiki'''==&lt;br /&gt;
Willkommen in der Enzyklopädie von STNE. Hier findet ihr Hilfe zu allen Themen rund um STNE, könnt euch, eure Völker, Allianzen und Geschichten veröffentlichen. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- Navigationsleiste Themen --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:7px 0px 4px 0px; border:0px solid #16344E; border-width:1px 0px 0px 0px;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;'''[http://game.stne.net/ STNE - Das Spiel] · [http://forum.stne.net/ STNE-Forum] &amp;lt;br&amp;gt; [[STNE-Team-Liste]] · [[News:Hauptseite|Wiki-Zeitung]]'''&amp;lt;/big&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Begrüßung - 1. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!-- unsichtbar - 2. Abschnitt links Anfang &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:10px 10px 0px 0px; border:2px solid #dfdfdf; padding:0.6em; &amp;quot;&amp;gt;&lt;br /&gt;
'''Wiki-News'''&lt;br /&gt;
textetxt&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
unsichtbar - 2. Abschnitt links Ende--&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wie benutze ich ... - 3. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #16344E; padding:0em 1em 1em 1em; &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Schnellstart''' ==&lt;br /&gt;
* '''[[Bugs|Übersicht aktueller Bugs]]'''&lt;br /&gt;
* '''[[STNE2|Änderungen in STNE 2]]'''&lt;br /&gt;
* [[Inhalt|Inhaltsverzeichnis]]&lt;br /&gt;
* [[Index|Von A bis Z]]&lt;br /&gt;
* [[Abkürzungsverzeichnis]]&lt;br /&gt;
* [[:Kategorie:Allgemeines|thematische Suche]]&lt;br /&gt;
* [[Hilfe:Cattree|Themenbaum]]&lt;br /&gt;
* [[Spezial:Specialpages|Suchen in speziellen Seiten]]&lt;br /&gt;
* [[Spezial:Search|Wiki-Suchfunktion]]&lt;br /&gt;
* [http://www.google.de/custom?sa=Google+Search&amp;amp;domains=wiki.stne.net&amp;amp;sitesearch=wiki.stne.net Googlesuche im STNE-Wiki]&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;'''mehr über [[Hilfe:Suche|suchen im Wiki]]... ''' &amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wie benutze ich ... - 3. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wichtige Links - 4. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #16344E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Schon gewußt, dass ...'''==&lt;br /&gt;
{{HS-Doyouknow}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wichtige Links - 4. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   News - 5. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #16344E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Wiki-News''' ==&lt;br /&gt;
{{HS-News}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   News - 5. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!-- RECHTE SPALTE --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Logo - 1. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
| width=&amp;quot;48%&amp;quot; style=&amp;quot;vertical-align:top; border-width:0px&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0;  border:2px solid gold padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:warp5.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Logo - 1. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Schnellstart - 2. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:2px solid #16344E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Hilfe zum STNE-Wiki?''' ==&lt;br /&gt;
Hilfe zum STNE-Wiki findet ihr hier:&lt;br /&gt;
* [[STNE-Wiki:Hilfe|STNE-Wiki-Hilfe]]&lt;br /&gt;
* im [[IRC]] im Channel #wiki&lt;br /&gt;
* einen Admin aus dieser [[STNE-Wiki:Administratoren|Liste]] ingame anschreiben&lt;br /&gt;
* [http://wiki.stne.net/index.php?title=Hilfe:Fragen_zum_STNE-Wiki&amp;amp;action=edit&amp;amp;section=new ...oder stelle deine Frage hier]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Schnellstart - 2. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wiki-Mitarbeit - 3. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:2px solid #16344E; padding:0em 1em 1em 1em; margin-top:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Wiki-Mitarbeit''' ==&lt;br /&gt;
Jeder im Wiki angemeldete Spieler kann am Wiki mit arbeiten. Alles was ihr dazu braucht ist ein wenig Zeit und etwas Wissen, dass ihr mit anderen teilen wollt.&lt;br /&gt;
Ebenso warten noch viele Einzelseiten auf einen Inhalt. Ihr findet diese Seiten [[Spezial:Wantedpages|hier]].&lt;br /&gt;
Auch viele der bereits vorhandenen Seiten warten auf Ergänzungen oder Korrekturen. Schaut einfach mal rein !&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hilfreiche Links zum Thema Wiki-Mitarbeit findet ihr hier:&lt;br /&gt;
* [[STNE-Wiki:Hilfe|STNE-Wiki-Hilfe]]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Wikipedia:Erste_Schritte erste Schritte im Wiki]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Wikipedia:Handbuch Benutzerhandbuch]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Bitte tragt auf jeder Seite ganz oben &amp;lt;nowiki&amp;gt;{{menue}}&amp;lt;/nowiki&amp;gt; und ganz unten &amp;lt;nowiki&amp;gt;[[Kategorie:kategoriename]]&amp;lt;/nowiki&amp;gt; ein. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;'''mehr über [[Wiki-Mitarbeit]]'''&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wiki-Mitarbeit - 3. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:CMyShip</id>
		<title>API:CMyShip</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:CMyShip"/>
				<updated>2010-08-19T20:34:54Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CMyShip ist so ziemlich die wichtigste Klasse in der ScriptEngine. Sie erbt die kompletten Eigenschaften von [[API:CShip|CShip]].&lt;br /&gt;
&lt;br /&gt;
Zum Verständnis ein kurzes Beispiel, in dem es sich um ein eigenes Schiff mit der NCC-Nummer 123456 handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Code|Var Schiff As New CMyShip(123456);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun ist in der Variable Schiff eine Instanz des Objektes CMyShip gespeichert.&lt;br /&gt;
Ein Blick auf den Objektexplorer (http://game.stne.net/ObjectExplorer.aspx?p=CMyShip) verrät dir, was du damit anstellen kannst:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Code|WriteLine(Schiff.Name &amp;amp; &amp;quot; hat momentan &amp;quot; &amp;amp; Schiff.Energy &amp;amp; &amp;quot; Energie&amp;quot;);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desweiteren sind natürlich auch Aktionen über das Objekt [[API:CBaseShipManager|CBaseShipManager]] möglich.&lt;br /&gt;
Genauere Informationen hierzu findest du bei der Objekt-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Code|Schiff.Action.ActivateSRS(True);}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Merke: Du kannst nur Instanzen von CMyShip mit deinen eigenen Schiffen erstellen, andere Schiffe kannst du nur via [[API:CShip|CShip]] handhaben aber nicht via der NCC-Nummer erstellen.&lt;br /&gt;
Du kannst nur mit ihnen Arbeiten, wenn dir eine Funktion z.B. die Auswertung der SRS-Liste dir eine Instanz von CShip mit einem &amp;quot;fremden&amp;quot; Schiff übergibt.''&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Vorlage:Code</id>
		<title>Vorlage:Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Vorlage:Code"/>
				<updated>2010-08-19T20:33:45Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;Use this template for small pieces of in-line code. Use pre tags for multi-line code.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;{{code|Function DoStuff()}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
{{code|Function DoStuff()}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;span style=&amp;quot;font-family:monospace; color:#FFFFFF;&amp;quot;&amp;gt;{{{1}}}&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:CMyShip</id>
		<title>API:CMyShip</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:CMyShip"/>
				<updated>2010-08-19T20:31:49Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CMyShip ist so ziemlich die wichtigste Klasse in der ScriptEngine. Sie erbt die kompletten Eigenschaften von [[API:CShip|CShip]].&lt;br /&gt;
&lt;br /&gt;
Zum Verständnis ein kurzes Beispiel, in dem es sich um ein eigenes Schiff mit der NCC-Nummer 123456 handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Var Schiff As New CMyShip(123456);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun ist in der Variable Schiff eine Instanz des Objektes CMyShip gespeichert.&lt;br /&gt;
Ein Blick auf den Objektexplorer (http://game.stne.net/ObjectExplorer.aspx?p=CMyShip) verrät dir, was du damit anstellen kannst:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::WriteLine(Schiff.Name &amp;amp; &amp;quot; hat momentan &amp;quot; &amp;amp; Schiff.Energy &amp;amp; &amp;quot; Energie&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desweiteren sind natürlich auch Aktionen über das Objekt [[API:CBaseShipManager|CBaseShipManager]] möglich.&lt;br /&gt;
Genauere Informationen hierzu findest du bei der Objekt-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Schiff.Action.ActivateSRS(True);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Merke: Du kannst nur Instanzen von CMyShip mit deinen eigenen Schiffen erstellen, andere Schiffe kannst du nur via [[API:CShip|CShip]] handhaben aber nicht via der NCC-Nummer erstellen.&lt;br /&gt;
Du kannst nur mit ihnen Arbeiten, wenn dir eine Funktion z.B. die Auswertung der SRS-Liste dir eine Instanz von CShip mit einem &amp;quot;fremden&amp;quot; Schiff übergibt.''&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:CMyShip</id>
		<title>API:CMyShip</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:CMyShip"/>
				<updated>2010-08-19T20:31:25Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CMyShip ist so ziemlich die wichtigste Klasse in der ScriptEngine. Sie erbt die kompletten Eigenschaften von [[API:CShip|CShip]].&lt;br /&gt;
&lt;br /&gt;
Zum Verständnis ein kurzes Beispiel, in dem es sich um ein eigenes Schiff mit der NCC-Nummer 123456 handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Var Schiff As New CMyShip(123456);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun ist in der Variable Schiff eine Instanz des Objektes CMyShip gespeichert.&lt;br /&gt;
Ein Blick auf den Objektexplorer (http://game.stne.net/ObjectExplorer.aspx?p=CMyShip) verrät dir, was du damit anstellen kannst:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::WriteLine(Schiff.Name &amp;amp; &amp;quot; hat momentan &amp;quot; &amp;amp; Schiff.Energy &amp;amp; &amp;quot; Energie&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desweiteren sind natürlich auch Aktionen über das Objekt [[API:CBaseShipManager|CBaseShipManager]] möglich.&lt;br /&gt;
Genauere Informationen hierzu findest du bei der Objekt-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Schiff.Action.ActivateSRS(True);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Merke: Du kannst nur Instanzen von CMyShip mit deinen eigenen Schiffen erstellen, andere Schiffe kannst du nur via [[CShip]] handhaben aber nicht via der NCC-Nummer erstellen.&lt;br /&gt;
Du kannst nur mit ihnen Arbeiten, wenn dir eine Funktion z.B. die Auswertung der SRS-Liste dir eine Instanz von CShip mit einem &amp;quot;fremden&amp;quot; Schiff übergibt.''&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=API:CMyShip</id>
		<title>API:CMyShip</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=API:CMyShip"/>
				<updated>2010-08-19T20:30:56Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CMyShip ist so ziemlich die wichtigste Klasse in der ScriptEngine. Sie erbt die kompletten Eigenschaften von [[API:CShip]].&lt;br /&gt;
&lt;br /&gt;
Zum Verständnis ein kurzes Beispiel, in dem es sich um ein eigenes Schiff mit der NCC-Nummer 123456 handelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Var Schiff As New CMyShip(123456);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun ist in der Variable Schiff eine Instanz des Objektes CMyShip gespeichert.&lt;br /&gt;
Ein Blick auf den Objektexplorer (http://game.stne.net/ObjectExplorer.aspx?p=CMyShip) verrät dir, was du damit anstellen kannst:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::WriteLine(Schiff.Name &amp;amp; &amp;quot; hat momentan &amp;quot; &amp;amp; Schiff.Energy &amp;amp; &amp;quot; Energie&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Desweiteren sind natürlich auch Aktionen über das Objekt [[API:CBaseShipManager]] möglich.&lt;br /&gt;
Genauere Informationen hierzu findest du bei der Objekt-Dokumentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Schiff.Action.ActivateSRS(True);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Merke: Du kannst nur Instanzen von CMyShip mit deinen eigenen Schiffen erstellen, andere Schiffe kannst du nur via [[CShip]] handhaben aber nicht via der NCC-Nummer erstellen.&lt;br /&gt;
Du kannst nur mit ihnen Arbeiten, wenn dir eine Funktion z.B. die Auswertung der SRS-Liste dir eine Instanz von CShip mit einem &amp;quot;fremden&amp;quot; Schiff übergibt.''&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Polaronkraftwerk</id>
		<title>Polaronkraftwerk</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Polaronkraftwerk"/>
				<updated>2010-08-03T23:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Menue}}&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;float:right;margin-left:0.5em&amp;quot;&lt;br /&gt;
!| Polaronkraftwerk&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | http://game2.stne.net/i/m/4/42/0.gif http://game2.stne.net/i/m/5/42/0.gif http://game2.stne.net/i/m/10/42/0.gif&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!|[[Untergrund]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [[Eis]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[Wüste]] &amp;lt;br&amp;gt;&lt;br /&gt;
* [[Gestein]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!|Notwendiges Kolo-Level&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 8+&lt;br /&gt;
|-&lt;br /&gt;
!|Notwendige Forschung&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; |[[Polaron-Kraftwerk-Konstruktion]]&lt;br /&gt;
|-&lt;br /&gt;
!|Integrität / Panzerung&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 300 / 6&lt;br /&gt;
|-&lt;br /&gt;
!|Baukosten&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* 100 [[Energie]] &amp;lt;br&amp;gt;&lt;br /&gt;
* 200 [[Baumaterial]] &amp;lt;br&amp;gt;&lt;br /&gt;
* 200 [[Duranium]] &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!|Dauerkosten&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* 6 [[Leute]] &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!|Dauereffekt&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 60 [[Energie]]&amp;lt;br&amp;gt;&lt;br /&gt;
-20 [[Internes Ansehen]]&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!|Bauzeit&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 20 [[Ticks|Runden]]&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein &amp;lt;B&amp;gt;Polar&amp;lt;/B&amp;gt;(ische I)&amp;lt;B&amp;gt;on&amp;lt;/B&amp;gt;(en)&amp;lt;B&amp;gt;-Kraftwerk&amp;lt;/B&amp;gt; macht sich die Polaron-Strahlung zu Nutze, um 60 Energie pro Tick zu erzeugen. '''Jede Runde besteht allerdings auch eine 0,2-prozentige Chance, dass das Polaronkraftwerk explodiert.''' Dabei werden alle 8 Einrichtungen rund um das Kraftwerk mit je 60 Punkten beschädigt und alle 16 Einrichtungen im Radius von 2 Feldern um das Kraftwerk mit je 30 Schadenspunkten.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn ein Polaronkraftwerk explodiert, ist die Kolonie für 35 Ticks &amp;quot;&amp;lt;B&amp;gt;unbesiedelt&amp;lt;/B&amp;gt;&amp;quot;, unabhängig davon, wo welches Gebäude stand. Die entstehende Polaronwolke verliert jede Runde an Stärke. Nach einer Woche (35 Ticks) kann die Kolonie wieder besiedelt werden. Desweiteren flieht sämtliche Crew von Schiffen im Orbit, dessen Schilde nicht aktiviert sind.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
Seit dem berühmten Unfall auf der romulanischen Forschungsbasis &amp;lt;I&amp;gt;Chaltok IV&amp;lt;/I&amp;gt; sind Polaronkraftwerke interstellar &amp;lt;B&amp;gt;geächtete Einrichtungen&amp;lt;/B&amp;gt;. Sie sind äußerst gefährlich und beschädigen bei ihrer Explosion den Subraum. Leider ist der Einsatz dieses Kraftwerkstyps bei der Bevölkerung auf Grund der damit verbunden Risiken nicht sehr beliebt und führt zu einem Verlust von 20 internen Ansehenspunkten pro Tick.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{seealso}}&lt;br /&gt;
* [[Polaron-Kraftwerk-Konstruktion]] (Forschung)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Polaron-Forschung]] (Forschung)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Warpkern]] (Gebäude)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Geothermales Kraftwerk]] (Gebäude)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Strahlungssammler]] (Gebäude)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Fusionsreaktor]] (Gebäude)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Strömungsturbinen]] (Gebäude)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Solarsatellit]] (Gebäude)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Solarkomplex]] (Gebäude)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Solarzellen]] (Gebäude)&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Gebäude]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Kategorie:Gebäude]]&lt;br /&gt;
[[Kategorie:zu erforschende Gebäude]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs</id>
		<title>Scripting:Anfängerkurs</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs"/>
				<updated>2009-03-15T14:55:05Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: /* Methoden */  Klammern bei Return nicht notwendig!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
'''Hier wird in nächster Zeit ein Anfängerkurs für die STNE-Scriptengine entstehen. Wer mithelfen will oder bereits jetzt fragen hat kann sich vertrauensvoll an uns wenden, einfach im irc den channel #scripting joinen!'''&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Dieser Kurs richtet sich vor allem an diejenigen, die zuvor noch nie mit Programmierung zu tun hatten und trotzdem gerne Scripts für STNE schreiben würden. Die sollen hier auf möglichst einfache Weise einen Einstieg finden. &lt;br /&gt;
Aber bitte erwartet keine Wunder, niemand der keine Ahnung vom Programieren hat, kann dies über Nacht lernen. Daher ist insbesondere eine Sache von enormer Wichtigkeit: Geduld – denn nur wer mit Geduld die Sachen angeht wird letzten Endes mit einem funktionieren Script belohnt. Wer die schnellen Erfolge sucht, der sollte es gleich lassen.&lt;br /&gt;
Wir wünschen allen viel Spaß und gutes Gelingen.&lt;br /&gt;
==Kapitel 1 - Strings==&lt;br /&gt;
===String? - Kann man das essen?===&lt;br /&gt;
'''Nein''', ein String (englisch) oder eine Zeichenkette, ist eine Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen, und Steuerzeichen) aus einem definierten Zeichensatz.&lt;br /&gt;
&lt;br /&gt;
Nun wissen wir also, was dieser ominöse String überhaupt ist. Wenden wir uns nun zur Ausgabe von Strings!&lt;br /&gt;
&lt;br /&gt;
=== Ausgabe von Strings ===&lt;br /&gt;
In diesem Kapitel werden wir uns der einfachen Ausgabe von Strings zuwenden. Um einen String auszugeben, müssen wir uns natürlich erst einmal überlegen was wir überhaupt ausgeben wollen. Nehmen wir als Beispiel einfach ''&amp;quot;Hallo!&amp;quot;''. Als Nächstes müssen wir wissen wie wir der Engine sagen, dass sie etwas ausgeben soll! Dies geschieht mit dem Befehl ''writeline();''.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;WriteLine('Hallo!');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Klammern steht immer der String, der ausgegeben werden soll. Die einfachen Anführungszeichen sagen dem Befehl, dass das Nachfolgende ein String und keine Variable ist (Was eine Variable ist erfahren wir im nächsten Kapitel). Das Semikolon signalisiert der Engine, dass der Befehl hier endet, dies wird nicht bei jedem Befehl benötigt.&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mehrere Strings nach einander ausgeben möchte, ist es natürlich unsinnig, für jedes Wort einen neuen ''writeline();'' Befehl auszuführen. Also kann man Strings an einander reihen. Hierzu setzt man einfach ein ''&amp;amp;''-Zeichen zwischen die Strings. Natürlich kann man auch die jeweiligen Strings einfach, wie wir noch später lernen durch Variablen ersetzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;WriteLine('Hallo!' &amp;amp; ' Wie geht es?');&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wichtig hierbei ist, dass das ''&amp;amp;''-Zeichen kein Leerzeichen einfügt. Dies muss manuell innerhalb des Strings passieren.&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Strings===&lt;br /&gt;
&lt;br /&gt;
* Ein String ist eine Folge von mehreren Zeichen.&lt;br /&gt;
* Zum Ausgeben von Strings wird ''writeline();'' verwendet.&lt;br /&gt;
* Es ist möglich mehrere Strings bzw. Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''writeline();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 2 - Variablen==&lt;br /&gt;
===Variablen? - Schon wieder was zum futtern?===&lt;br /&gt;
'''Nein''', lediglich ein weiterer Fachbegriff der Programmierer. Variablen sind eine Art von Platzhalter, in denen man Informationen, wie zum Beispiel Strings, für eine spätere Verwendung abspeichern kann. Natürlich gibt es für verschiedene Informationen ganz spezielle und verschiedene Variablentypen, die man auch [[Scripting:Datentypen|Datentypen]] nennt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten [[Scripting:Datentypen|Datentypen]] sind:&lt;br /&gt;
* String  - Zeichenketten&lt;br /&gt;
* Integer - Zahlen&lt;br /&gt;
* Boolean - Entscheidungen (&amp;lt;tt&amp;gt;Ja/Nein; Wahr/Falsch; True/False&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Variablen setzen===&lt;br /&gt;
Da das Arbeiten mit statischen Daten auf Dauer, vor allem bei längeren Scripten, ziemlich zeitaufwendig und unflexibel ist, verwendet man Variablen. Diese speichern Daten, geben sie auf Wunsch aus und lassen sich auch belibig oft verändern.&lt;br /&gt;
&lt;br /&gt;
Um eine Variable zu erschaffen verwendet man den Befehl ''var''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach ''VAR'' kommt dann der Variablen Name, dieser darf Zahlen und Buchstaben enthalten. Zahlen allerdings nur mit einer Ausnahme, sie dürfen nicht an erster Stelle stehen. Optional danach kann ein ''AS'' stehen (as, engl., als) dieses gibt an was für einen Datentyp die Variable hat, zb. String also eine Zeichenkette. Hier ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR i1 AS String&amp;lt;/pre&amp;gt;&lt;br /&gt;
Um dieser Variable einen Inhalt zuzuordnen, schreibt man in der nächsten Zeile die Variable vor ein Gleichheitszeichen, dahinter kommt dann der Inhalt, den die Variable annehmen soll, in unserem nächsten Beispiel ein &amp;lt;i&amp;gt;Hallo!&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Var test AS String&lt;br /&gt;
test = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
man kann das ganze auch in eine Zeile packen, das sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR test AS String = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier müssen wir wieder die einfachen Anführungszeichen setzen, als Kennzeichen dafür, dass wir einen String als Inhalt benutzen. Wir können Variablen aber auch andere Datentypen wie Integer oder Bolean zuweisen. Dazu einfach string durch den jeweiligen Datetyp ersetzten.(Liste der Typen: [[Scripting:Typen|klick mich]])&lt;br /&gt;
&lt;br /&gt;
Auch kann man die Variable &amp;quot;leeren&amp;quot; hierzu gibt man ihr einfach nichts mit, hier auch dazu ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR test AS String = 'Hallo!'&lt;br /&gt;
test = ''&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele mit Variablen===&lt;br /&gt;
 VAR test AS String = 'Hallo!'&lt;br /&gt;
 WriteLine( test &amp;amp; ' Wie gehts?');&lt;br /&gt;
Auch hier ist weider zu beachten das kein Leerzeichen eingefügt wird! Die Variable kann an jeder Stelle innerhalb der Klammern stehen, zu beachten ist nur, dass sie nicht innerhalb von Anführungszeichen steht sonst wird die Variable als String gewertet.&lt;br /&gt;
 VAR test AS String = 'Hallo!'&lt;br /&gt;
 WriteLine(test);&lt;br /&gt;
Hier wird nun zum Beispiel nur eine Variable ausgegeben.&lt;br /&gt;
&lt;br /&gt;
===Umwandlung von Variablen in andere Datentypen===&lt;br /&gt;
Wollen wir eine Integer-Variable, also eine Zahl, ausgeben, so bekommen wir ein Problem. Der Computer verarbeitet ein Integer intern anders als ein String. Ein String kann er ausgeben ein Integer nicht. Daher müssen alle Integervariablen (wie allen anderen auch) in Stringvariablen umgewandelt werden, bevor man diese ausgeben kann.&lt;br /&gt;
Die geschieht über den Befehl &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CStr();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR zahl AS Integer;&lt;br /&gt;
zahl = 5;&lt;br /&gt;
WriteLine(CStr(Zahl));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umgekehrt müssen Stringvariablen in Integer umgewandelt werden, wenn mit diesen zum Beispiel gerechnet werden soll.&lt;br /&gt;
Dies geschießt über:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CInt();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR einstring AS String;&lt;br /&gt;
VAR einezahl AS Integer;&lt;br /&gt;
einstring = '42';&lt;br /&gt;
einezahl = CInt(einstring);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Regeln bei der Bennenung von Variablen===&lt;br /&gt;
&lt;br /&gt;
* Niemals reservierte Namen benutzen! Dazu Zählen u.a. alle Datumsangaben, wie &amp;lt;tt&amp;gt;Date&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Minute&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Day&amp;lt;/tt&amp;gt; etc.; jegliche Befehle und vom Systemvorgegebenen Funktionsnamen und Eigenschaften wie: &amp;lt;tt&amp;gt;Flotte&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BenutzeSchiff&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Nahrung&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;FliegeZu&amp;lt;/tt&amp;gt; etc.&lt;br /&gt;
* Man sollte der Übersicht wegen die Variablen immer (Richtlinie) mit drei Buchstaben beginnen lassen, welche beschreiben, welches Datenformat die Variable hat (z.B.: &amp;lt;tt&amp;gt;strVariablenName&amp;lt;/tt&amp;gt; für ein String, &amp;lt;tt&amp;gt;IntVariablenName&amp;lt;/tt&amp;gt; für ein Integer etc.)&lt;br /&gt;
* Man sollte immer die gleichen Namensrichtlinien einsetzen, damit man bei älteren Scripten noch den Durchblick behält&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Variablen===&lt;br /&gt;
&lt;br /&gt;
* Eine Variable ist ein Platzhalter für einen variablen Inhalt eines festgelegten Datentypen.&lt;br /&gt;
* Um eine Variable zu erstellen wird ''VAR &amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt; AS &amp;lt;b&amp;gt;Datentyp&amp;lt;/b&amp;gt;;'' verwendet.&lt;br /&gt;
* Um einer Variablen einen Inhalt zu zuweisen wird ''&amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt; = &amp;lt;b&amp;gt;Inhalt&amp;lt;/b&amp;gt;;'' verwendet.&lt;br /&gt;
* Um eine Variable auszugeben oder mit ihr zu arbeiten, wird der Name geschrieben zB: ''WriteLine(&amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt;);''&lt;br /&gt;
* Es ist möglich mehrere Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''WriteLine();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 3 - Kontrollstrukturen==&lt;br /&gt;
Da wir uns in Kapitel 2 mit Variablen beschäftigt haben, können wir uns nun dem eigentlichen Aufwand beim Programmieren zuwenden: den Kontrollstrukturen. Diese Wort klingt ersteinmal sehr hochtrabend, an und für sich ist es jedoch sehr einfach.&lt;br /&gt;
&lt;br /&gt;
===If - then - Else===&lt;br /&gt;
Es werden 2 Variablen miteinander verglichen oder überprüft, ob eine Variable einem Wert entspricht und dann wird darauf reagiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 = 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist nicht 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist ersteinmal sehr einfach und wirkt auf den ersten Blick sinnlos, was es auch ist. Aber es zeigt auf einfache Art, wie man 2 Werte miteinander vergleicht, dies kann man zum Beispiel dafür nutzen, um zu prüfen wieviel Lageraum ein Schiff noch hat. Dazu aber irgendwann später mehr.&lt;br /&gt;
Bleiben wir bei dem Code und schauen ihn uns einmal genauer an:&lt;br /&gt;
In der ersten Zeile wird die Variable '''var1''' definiert, dies sollte aus Kapitel 2 bekannt sein.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;If (var1 = 42)&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier wird der Vergleich durgeführt, in diesem Fall wir geschaut ob der Wert von Zahl1 42 ist. &lt;br /&gt;
Man könnte an dieser Stelle genausogut prüfen ob der Wert größer oder kleiner ist, als ein anderer.&lt;br /&gt;
Hierfür nutzt man dann nicht &amp;quot;=&amp;quot; sondern &amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;=&amp;quot;,&amp;quot;&amp;gt;=&amp;quot;&lt;br /&gt;
Innerhalb der { } folgt dann der Code, welcher ausgeführt werden soll, wenn die Bedigung stimmt, also in diesem Fall, wenn '''var1 ''' gleich 42 ist. &lt;br /&gt;
&lt;br /&gt;
Das folgende ''Else'' mit den Klammern gibt, welche Aktionen ausgeführt werden sollen, wenn die Bedingung nicht stimmt.&lt;br /&gt;
&lt;br /&gt;
Zu guter letzt gibt es noch ''Elseif'' dies ist dafür gedacht wenn man mehr als eine Alternative hat.&lt;br /&gt;
Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 &amp;lt; 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
elseif (var1 &amp;gt; 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist größer als 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist weder größer noch kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist nicht auf ein ''elseif'' beschränkt, es können beliebig viele sein.&lt;br /&gt;
&lt;br /&gt;
===Schleifen===&lt;br /&gt;
Die soeben kennen gelernten Strukturen helfen uns Fallunterscheidungen zu machen. Aber was machen wir wenn wir eine ganze Liste (zum Beispiel Schiffe) haben und die abarbeiten wollen? Dafür gibt es ''Schleifen'', hier unterscheid man in drei Arten: Kopf-, Fuss- und Zählergesteuert.&lt;br /&gt;
====while====&lt;br /&gt;
While Schleifen sind Kopfgesteuert, dass heißt, solange die Bedingung zutrifft, wird der Inhalt der Schleife ausgeführt.&lt;br /&gt;
Es gelten die selben Operatoren wie bei Abfragen mit if: =,&amp;lt;,&amp;gt;,&amp;gt;=,&amp;lt;=,&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 0;&lt;br /&gt;
WriteLine('Ich zähle jetzt bis Zehn');&lt;br /&gt;
while ( i &amp;lt;= 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solange '''i''' kleiner oder gleich 10 ist, wird '''i''' ausgegeben und dann einen hochgezählt. &lt;br /&gt;
Bei Whileschleifen ist zu beachten, dass wenn die Bedingung zu Anfang bereits '''nicht''' erfüllt ist, dass sie dann nicht durchläuft. Soll sie mindestens einmal durchlaufen muss man Fussgesteuerte Schleifen wählen.&lt;br /&gt;
====Do====&lt;br /&gt;
Do-Schleifen sind Fussgesteuert. Sie funktionieren wie While-Schleifen nur das sie mindestens einmal durchlaufen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 10;&lt;br /&gt;
WriteLine('Ich zähle jetzt bis Null');&lt;br /&gt;
Do&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
  i = i -1;&lt;br /&gt;
}&lt;br /&gt;
While (i &amp;gt;= 0);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Gebe '''i''' solange aus und zähle einen runter, solange '''i''' größer gleich null ist.&lt;br /&gt;
Aus der Beschreibung wird deutlich wo der unterschied zwischen While- und Do-Schleifen liegt.&lt;br /&gt;
&lt;br /&gt;
In beiden Schleifen wird deutlich das ich jedes mal die Variable '''i''' runter bzw. hochzählen muss, um dies zu umgehen gibt es die möglichkeit Zählergesteuerte Schleifen zu verwenden.&lt;br /&gt;
&lt;br /&gt;
====For====&lt;br /&gt;
For-Schleifen sind genau dies. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
auf diese Weise kann man sich ein wenig Arbeit abnehmen, da die Schleife einem das Zählen abnimmt. So kann man auch Endlosschleifen vermeiden, die auftreten wenn man vergisst, die Schleifenvariable (in diesen Fällen immer '''i''') runter- bzw. hochzuzählen.&lt;br /&gt;
&lt;br /&gt;
For-Schleifen bieten noch eine weitere Möglichkeit: Es kann angegeben werden in welchen Schritten die Schleife zählt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 100 Step 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Code ist der bis auf das ''Step'' identisch. Die Zahl die hinter Step steht kann sowohl positiv als auch negativ sein.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 4 - Der Shipmanager - Einführung==&lt;br /&gt;
Nachdem wir nun über ein paar Grundlagen verfügen, wollen wir uns den wirklich interessanten Dingen zuwenden, der Steuerung von Spielinhalten durch Scripte.&lt;br /&gt;
&lt;br /&gt;
Um mit Schiffen zu interagieren gibt es eine Sammlung von Methoden, welche im Shipmanager zu finden sind.&lt;br /&gt;
Hierzu müssen wir dem Shipmanager als erstes Mitteilen, welches bzw. welche Flotte er verwenden soll.&lt;br /&gt;
&lt;br /&gt;
Hierführ gibt es die Befehle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;ShipManager.BenutzeSchiff(NCC-Nummer des Schiffes);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;ShipManager.BenutzeFlotte(ID der Flotte);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit weiß der ShipManager schonmal welches Schiff, bzw. welche Flotte die Aktionen ausführen soll.&lt;br /&gt;
&lt;br /&gt;
Mit dem Shipmanager können folgende Aktionen ausgeführt werden:&lt;br /&gt;
*An- und Abdocken&lt;br /&gt;
*Alarm Stufe ändern&lt;br /&gt;
*Aus Flotten austreten&lt;br /&gt;
*Aus Orbit einfliegen austreten &lt;br /&gt;
*Benennen(Name As String)&lt;br /&gt;
*Deuterium sammeln (Nur mit FP)&lt;br /&gt;
*Erz sammeln (Nur mit FP)&lt;br /&gt;
*Fliegen&lt;br /&gt;
*Sensoren aktivieren / deaktivieren&lt;br /&gt;
*Reparieren&lt;br /&gt;
*Batterien entladen&lt;br /&gt;
*Schilde aktivieren/deaktiviere/aufladen&lt;br /&gt;
*Reservebatterie aufladen&lt;br /&gt;
*Traktorstrahl ein- / ausschalten&lt;br /&gt;
*Beamen&lt;br /&gt;
*Verstecken&lt;br /&gt;
*Replikator aktivieren/deaktivieren&lt;br /&gt;
*Waren über Bord werfen&lt;br /&gt;
*Warpkern aktiveren/deaktivieren&lt;br /&gt;
*Wrackextraktoren&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Auflistung aller Funktionen findet sich im [http://game.stne.net/ObjectExplorer.aspx?p=CShipManager Objekt-Explorer].&lt;br /&gt;
&lt;br /&gt;
Im folgenden wollen wir uns einige Funktionen genauer anschauen:&lt;br /&gt;
===Beamen===&lt;br /&gt;
Syntaxe:&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(''Schiffid'', ''Menge'', EBeamRessource.''Ware'');&lt;br /&gt;
Hier musst du nun nurnoch den kursiven Text mit deinen Angaben ersetzten. Hier ein Beispiele:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(2, 20, EBeamRessource.Nahrung);&lt;br /&gt;
Natürlich kann man auch eine ganze Flotte beamen lassen, dazu ersetzt du ''ShipManager.BenutzteSchiff(1);'' durch ''ShipManager.BenutzteFlotte(1);'' Dann sieht das Script folgendermasen aus:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(2, 20, EBeamRessource.Nahrung);&lt;br /&gt;
&lt;br /&gt;
===Fliegen===&lt;br /&gt;
Bei der Syntaxe gibt es 2 Möglichkeiten, die eine für Spieler unter Level 8 oder mit [[Feature-Pack]], also mit Autopilot, und die andere für die Leute über Level 8 und ohne Feature-Pack, die Variante ohne Autopilot.&lt;br /&gt;
====Fliegen mit dem Autopiloten====&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;'''''Nur für Spieler mit Feature-Pack oder unter Kolonisationslevel 8 möglich!'''''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl:&lt;br /&gt;
 ShipManager.FliegeZu(''xxx|yyy'');&lt;br /&gt;
Auch hier Gilt es wieder das kursive durch die eigenen Angaben zu ersetzten. Wie in folgendem Beispiel:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.FliegeZu('123|465');&lt;br /&gt;
oder mit dem Flottenbefehl:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.FliegeZu('123|465');&lt;br /&gt;
Mit deisem Befehl fliegt das Schiff zu einer belibigen Position, [[NPC|NPC-Gebiete]] ausgenommen, und umgeht dabei wie der Autopilot Energie-intensive Hindernisse, sowie solche die das Schiff oder die Crew Gefährden.&lt;br /&gt;
&lt;br /&gt;
====Fliegen ohne Autopilot====&lt;br /&gt;
Der Befehl hierzu sieht wie folgt aus:&lt;br /&gt;
 ShipManager.Fliege(''Strecke'', EShipRichtung.''Richtung'');&lt;br /&gt;
Auch hier ersetzt du die kursiven Worte mit deinen Angaben, ein Beispiel folgt:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.Fliege(5, EShipRichtung.Hoch);&lt;br /&gt;
 ShipManager.Fliege(8, EshipRichtung.Links);&lt;br /&gt;
oder wenn es eine ganze Flotte ist:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.Fliege(5, EShipRichtung.Hoch);&lt;br /&gt;
 ShipManager.Fliege(8, EshipRichtung.Links);&lt;br /&gt;
&lt;br /&gt;
===Schiffsystem nutzen===&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
===Alternative zum Schiffsmanager: Schiffsaktion===&lt;br /&gt;
&lt;br /&gt;
Für Objekte des Typ's CMyFlotte und CMyShip kann über die Eigenschaft Aktion direkt auf die Funktionen des Schiffsmanagers zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;VAR Schiff AS CMyShip = new CMyShip( 4711 )&lt;br /&gt;
Schiff.Aktion.Abdocken()&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;VAR Flotte AS CMyFlotte = new CMyFlotte( 4711 )&lt;br /&gt;
Flotte.Aktion.Abdocken()&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enumeration ist Alles==&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
==Methoden==&lt;br /&gt;
&lt;br /&gt;
Öfters wiederkehrende Aufgaben können in Methoden zusammengefasst werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Function ShowKoords(x As Integer, y As Integer)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(x) + '|' + CStr(y));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Methode ShowKoords kann dann im Script folgendermaßen aufgerufen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ShowKoords(3, 4);&lt;br /&gt;
ShowKoords(ship.MapPosition.X,ship.MapPosition.Y);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn berechnete Werte von der Methode zurückgegeben werden sollen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Function Distanz(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer) As Integer&lt;br /&gt;
{&lt;br /&gt;
  Var distanz As Integer;&lt;br /&gt;
  &lt;br /&gt;
  distanz = Math.Abs(x1 - x2) + Math.Abs(y1 - y2);&lt;br /&gt;
  Return distanz ;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
WriteLine(Distanz(1, 1, 5, 5));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Einfache Typen werden immer 'ByVal' übergeben, d.h. die Werte werden als Kopie an die Methode übergeben und die entsprechenden Variablen im Script nicht verändert.&lt;br /&gt;
'ByRef' ist zwar in der Scriptengine vorgesehen und kann angegeben werden, ist aber derzeit ohne Funktion.&lt;br /&gt;
Objekte werden immer ByRef übergeben.&lt;br /&gt;
&lt;br /&gt;
==Klassen==&lt;br /&gt;
&lt;br /&gt;
In Klassen können Daten und Methoden in einem Objekt gekapselt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Class CKoords&lt;br /&gt;
{&lt;br /&gt;
  Var x As Integer;&lt;br /&gt;
  Var y As Integer;&lt;br /&gt;
  &lt;br /&gt;
  Function New(x As Integer, y As Integer)&lt;br /&gt;
  {&lt;br /&gt;
    This.x = x;&lt;br /&gt;
    This.y = y;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  Function ToString() As String&lt;br /&gt;
  {&lt;br /&gt;
    Return (CStr(x) + '|' + CStr(y);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  Function Distanz(koord As CKoords) As Integer&lt;br /&gt;
  {&lt;br /&gt;
    Return Math.Abs(x - koord.x) + Math.Abs(y - koord.y);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Var ko1 As New CKoords(3, 5);&lt;br /&gt;
Var ko2 As CKoords;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ko2 = New CKoords(8, 9);&lt;br /&gt;
WriteLine('Distanz von ' + ko1.ToString() + ' nach ' + ko2.ToString() + ': ' + CStr(ko1.Distanz(ko2)));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig: Klassen brauchen immer eine Methode New(), sonst kann kein neues Objekt der Klasse generiert werden!&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
(hier dürfen sich diejenigen verewigen die hier min. ein Kapitel geschrieben haben [sonst kommt noch einer daher nur weil er nen Rechtschreibfehler verbessert hat ;)])&lt;br /&gt;
{|&lt;br /&gt;
!Nickname&lt;br /&gt;
!IG-id&lt;br /&gt;
!Kapitel&lt;br /&gt;
|-&lt;br /&gt;
|WiZz4Rd&lt;br /&gt;
|16475&lt;br /&gt;
|Kapitel 1, Kapitel 2, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|Stryke&lt;br /&gt;
|28885&lt;br /&gt;
|Vorwort, Kapitel 3, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|[[Spieler:Xenon|Xenon]]&lt;br /&gt;
|10127&lt;br /&gt;
|Korrektur &amp;amp; Überarbeitung Kapitel 1&lt;br /&gt;
|-&lt;br /&gt;
|Fling&lt;br /&gt;
|54865&lt;br /&gt;
|Kapitel 7, Kapitel 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Anfängerkurs]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs</id>
		<title>Scripting:Anfängerkurs</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs"/>
				<updated>2009-03-15T14:54:21Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: /* Klassen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
'''Hier wird in nächster Zeit ein Anfängerkurs für die STNE-Scriptengine entstehen. Wer mithelfen will oder bereits jetzt fragen hat kann sich vertrauensvoll an uns wenden, einfach im irc den channel #scripting joinen!'''&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Dieser Kurs richtet sich vor allem an diejenigen, die zuvor noch nie mit Programmierung zu tun hatten und trotzdem gerne Scripts für STNE schreiben würden. Die sollen hier auf möglichst einfache Weise einen Einstieg finden. &lt;br /&gt;
Aber bitte erwartet keine Wunder, niemand der keine Ahnung vom Programieren hat, kann dies über Nacht lernen. Daher ist insbesondere eine Sache von enormer Wichtigkeit: Geduld – denn nur wer mit Geduld die Sachen angeht wird letzten Endes mit einem funktionieren Script belohnt. Wer die schnellen Erfolge sucht, der sollte es gleich lassen.&lt;br /&gt;
Wir wünschen allen viel Spaß und gutes Gelingen.&lt;br /&gt;
==Kapitel 1 - Strings==&lt;br /&gt;
===String? - Kann man das essen?===&lt;br /&gt;
'''Nein''', ein String (englisch) oder eine Zeichenkette, ist eine Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen, und Steuerzeichen) aus einem definierten Zeichensatz.&lt;br /&gt;
&lt;br /&gt;
Nun wissen wir also, was dieser ominöse String überhaupt ist. Wenden wir uns nun zur Ausgabe von Strings!&lt;br /&gt;
&lt;br /&gt;
=== Ausgabe von Strings ===&lt;br /&gt;
In diesem Kapitel werden wir uns der einfachen Ausgabe von Strings zuwenden. Um einen String auszugeben, müssen wir uns natürlich erst einmal überlegen was wir überhaupt ausgeben wollen. Nehmen wir als Beispiel einfach ''&amp;quot;Hallo!&amp;quot;''. Als Nächstes müssen wir wissen wie wir der Engine sagen, dass sie etwas ausgeben soll! Dies geschieht mit dem Befehl ''writeline();''.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;WriteLine('Hallo!');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Klammern steht immer der String, der ausgegeben werden soll. Die einfachen Anführungszeichen sagen dem Befehl, dass das Nachfolgende ein String und keine Variable ist (Was eine Variable ist erfahren wir im nächsten Kapitel). Das Semikolon signalisiert der Engine, dass der Befehl hier endet, dies wird nicht bei jedem Befehl benötigt.&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mehrere Strings nach einander ausgeben möchte, ist es natürlich unsinnig, für jedes Wort einen neuen ''writeline();'' Befehl auszuführen. Also kann man Strings an einander reihen. Hierzu setzt man einfach ein ''&amp;amp;''-Zeichen zwischen die Strings. Natürlich kann man auch die jeweiligen Strings einfach, wie wir noch später lernen durch Variablen ersetzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;WriteLine('Hallo!' &amp;amp; ' Wie geht es?');&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wichtig hierbei ist, dass das ''&amp;amp;''-Zeichen kein Leerzeichen einfügt. Dies muss manuell innerhalb des Strings passieren.&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Strings===&lt;br /&gt;
&lt;br /&gt;
* Ein String ist eine Folge von mehreren Zeichen.&lt;br /&gt;
* Zum Ausgeben von Strings wird ''writeline();'' verwendet.&lt;br /&gt;
* Es ist möglich mehrere Strings bzw. Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''writeline();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 2 - Variablen==&lt;br /&gt;
===Variablen? - Schon wieder was zum futtern?===&lt;br /&gt;
'''Nein''', lediglich ein weiterer Fachbegriff der Programmierer. Variablen sind eine Art von Platzhalter, in denen man Informationen, wie zum Beispiel Strings, für eine spätere Verwendung abspeichern kann. Natürlich gibt es für verschiedene Informationen ganz spezielle und verschiedene Variablentypen, die man auch [[Scripting:Datentypen|Datentypen]] nennt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten [[Scripting:Datentypen|Datentypen]] sind:&lt;br /&gt;
* String  - Zeichenketten&lt;br /&gt;
* Integer - Zahlen&lt;br /&gt;
* Boolean - Entscheidungen (&amp;lt;tt&amp;gt;Ja/Nein; Wahr/Falsch; True/False&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Variablen setzen===&lt;br /&gt;
Da das Arbeiten mit statischen Daten auf Dauer, vor allem bei längeren Scripten, ziemlich zeitaufwendig und unflexibel ist, verwendet man Variablen. Diese speichern Daten, geben sie auf Wunsch aus und lassen sich auch belibig oft verändern.&lt;br /&gt;
&lt;br /&gt;
Um eine Variable zu erschaffen verwendet man den Befehl ''var''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach ''VAR'' kommt dann der Variablen Name, dieser darf Zahlen und Buchstaben enthalten. Zahlen allerdings nur mit einer Ausnahme, sie dürfen nicht an erster Stelle stehen. Optional danach kann ein ''AS'' stehen (as, engl., als) dieses gibt an was für einen Datentyp die Variable hat, zb. String also eine Zeichenkette. Hier ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR i1 AS String&amp;lt;/pre&amp;gt;&lt;br /&gt;
Um dieser Variable einen Inhalt zuzuordnen, schreibt man in der nächsten Zeile die Variable vor ein Gleichheitszeichen, dahinter kommt dann der Inhalt, den die Variable annehmen soll, in unserem nächsten Beispiel ein &amp;lt;i&amp;gt;Hallo!&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Var test AS String&lt;br /&gt;
test = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
man kann das ganze auch in eine Zeile packen, das sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR test AS String = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier müssen wir wieder die einfachen Anführungszeichen setzen, als Kennzeichen dafür, dass wir einen String als Inhalt benutzen. Wir können Variablen aber auch andere Datentypen wie Integer oder Bolean zuweisen. Dazu einfach string durch den jeweiligen Datetyp ersetzten.(Liste der Typen: [[Scripting:Typen|klick mich]])&lt;br /&gt;
&lt;br /&gt;
Auch kann man die Variable &amp;quot;leeren&amp;quot; hierzu gibt man ihr einfach nichts mit, hier auch dazu ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR test AS String = 'Hallo!'&lt;br /&gt;
test = ''&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele mit Variablen===&lt;br /&gt;
 VAR test AS String = 'Hallo!'&lt;br /&gt;
 WriteLine( test &amp;amp; ' Wie gehts?');&lt;br /&gt;
Auch hier ist weider zu beachten das kein Leerzeichen eingefügt wird! Die Variable kann an jeder Stelle innerhalb der Klammern stehen, zu beachten ist nur, dass sie nicht innerhalb von Anführungszeichen steht sonst wird die Variable als String gewertet.&lt;br /&gt;
 VAR test AS String = 'Hallo!'&lt;br /&gt;
 WriteLine(test);&lt;br /&gt;
Hier wird nun zum Beispiel nur eine Variable ausgegeben.&lt;br /&gt;
&lt;br /&gt;
===Umwandlung von Variablen in andere Datentypen===&lt;br /&gt;
Wollen wir eine Integer-Variable, also eine Zahl, ausgeben, so bekommen wir ein Problem. Der Computer verarbeitet ein Integer intern anders als ein String. Ein String kann er ausgeben ein Integer nicht. Daher müssen alle Integervariablen (wie allen anderen auch) in Stringvariablen umgewandelt werden, bevor man diese ausgeben kann.&lt;br /&gt;
Die geschieht über den Befehl &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CStr();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR zahl AS Integer;&lt;br /&gt;
zahl = 5;&lt;br /&gt;
WriteLine(CStr(Zahl));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umgekehrt müssen Stringvariablen in Integer umgewandelt werden, wenn mit diesen zum Beispiel gerechnet werden soll.&lt;br /&gt;
Dies geschießt über:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CInt();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR einstring AS String;&lt;br /&gt;
VAR einezahl AS Integer;&lt;br /&gt;
einstring = '42';&lt;br /&gt;
einezahl = CInt(einstring);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Regeln bei der Bennenung von Variablen===&lt;br /&gt;
&lt;br /&gt;
* Niemals reservierte Namen benutzen! Dazu Zählen u.a. alle Datumsangaben, wie &amp;lt;tt&amp;gt;Date&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Minute&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Day&amp;lt;/tt&amp;gt; etc.; jegliche Befehle und vom Systemvorgegebenen Funktionsnamen und Eigenschaften wie: &amp;lt;tt&amp;gt;Flotte&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BenutzeSchiff&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Nahrung&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;FliegeZu&amp;lt;/tt&amp;gt; etc.&lt;br /&gt;
* Man sollte der Übersicht wegen die Variablen immer (Richtlinie) mit drei Buchstaben beginnen lassen, welche beschreiben, welches Datenformat die Variable hat (z.B.: &amp;lt;tt&amp;gt;strVariablenName&amp;lt;/tt&amp;gt; für ein String, &amp;lt;tt&amp;gt;IntVariablenName&amp;lt;/tt&amp;gt; für ein Integer etc.)&lt;br /&gt;
* Man sollte immer die gleichen Namensrichtlinien einsetzen, damit man bei älteren Scripten noch den Durchblick behält&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Variablen===&lt;br /&gt;
&lt;br /&gt;
* Eine Variable ist ein Platzhalter für einen variablen Inhalt eines festgelegten Datentypen.&lt;br /&gt;
* Um eine Variable zu erstellen wird ''VAR &amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt; AS &amp;lt;b&amp;gt;Datentyp&amp;lt;/b&amp;gt;;'' verwendet.&lt;br /&gt;
* Um einer Variablen einen Inhalt zu zuweisen wird ''&amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt; = &amp;lt;b&amp;gt;Inhalt&amp;lt;/b&amp;gt;;'' verwendet.&lt;br /&gt;
* Um eine Variable auszugeben oder mit ihr zu arbeiten, wird der Name geschrieben zB: ''WriteLine(&amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt;);''&lt;br /&gt;
* Es ist möglich mehrere Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''WriteLine();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 3 - Kontrollstrukturen==&lt;br /&gt;
Da wir uns in Kapitel 2 mit Variablen beschäftigt haben, können wir uns nun dem eigentlichen Aufwand beim Programmieren zuwenden: den Kontrollstrukturen. Diese Wort klingt ersteinmal sehr hochtrabend, an und für sich ist es jedoch sehr einfach.&lt;br /&gt;
&lt;br /&gt;
===If - then - Else===&lt;br /&gt;
Es werden 2 Variablen miteinander verglichen oder überprüft, ob eine Variable einem Wert entspricht und dann wird darauf reagiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 = 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist nicht 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist ersteinmal sehr einfach und wirkt auf den ersten Blick sinnlos, was es auch ist. Aber es zeigt auf einfache Art, wie man 2 Werte miteinander vergleicht, dies kann man zum Beispiel dafür nutzen, um zu prüfen wieviel Lageraum ein Schiff noch hat. Dazu aber irgendwann später mehr.&lt;br /&gt;
Bleiben wir bei dem Code und schauen ihn uns einmal genauer an:&lt;br /&gt;
In der ersten Zeile wird die Variable '''var1''' definiert, dies sollte aus Kapitel 2 bekannt sein.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;If (var1 = 42)&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier wird der Vergleich durgeführt, in diesem Fall wir geschaut ob der Wert von Zahl1 42 ist. &lt;br /&gt;
Man könnte an dieser Stelle genausogut prüfen ob der Wert größer oder kleiner ist, als ein anderer.&lt;br /&gt;
Hierfür nutzt man dann nicht &amp;quot;=&amp;quot; sondern &amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;=&amp;quot;,&amp;quot;&amp;gt;=&amp;quot;&lt;br /&gt;
Innerhalb der { } folgt dann der Code, welcher ausgeführt werden soll, wenn die Bedigung stimmt, also in diesem Fall, wenn '''var1 ''' gleich 42 ist. &lt;br /&gt;
&lt;br /&gt;
Das folgende ''Else'' mit den Klammern gibt, welche Aktionen ausgeführt werden sollen, wenn die Bedingung nicht stimmt.&lt;br /&gt;
&lt;br /&gt;
Zu guter letzt gibt es noch ''Elseif'' dies ist dafür gedacht wenn man mehr als eine Alternative hat.&lt;br /&gt;
Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 &amp;lt; 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
elseif (var1 &amp;gt; 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist größer als 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist weder größer noch kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist nicht auf ein ''elseif'' beschränkt, es können beliebig viele sein.&lt;br /&gt;
&lt;br /&gt;
===Schleifen===&lt;br /&gt;
Die soeben kennen gelernten Strukturen helfen uns Fallunterscheidungen zu machen. Aber was machen wir wenn wir eine ganze Liste (zum Beispiel Schiffe) haben und die abarbeiten wollen? Dafür gibt es ''Schleifen'', hier unterscheid man in drei Arten: Kopf-, Fuss- und Zählergesteuert.&lt;br /&gt;
====while====&lt;br /&gt;
While Schleifen sind Kopfgesteuert, dass heißt, solange die Bedingung zutrifft, wird der Inhalt der Schleife ausgeführt.&lt;br /&gt;
Es gelten die selben Operatoren wie bei Abfragen mit if: =,&amp;lt;,&amp;gt;,&amp;gt;=,&amp;lt;=,&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 0;&lt;br /&gt;
WriteLine('Ich zähle jetzt bis Zehn');&lt;br /&gt;
while ( i &amp;lt;= 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solange '''i''' kleiner oder gleich 10 ist, wird '''i''' ausgegeben und dann einen hochgezählt. &lt;br /&gt;
Bei Whileschleifen ist zu beachten, dass wenn die Bedingung zu Anfang bereits '''nicht''' erfüllt ist, dass sie dann nicht durchläuft. Soll sie mindestens einmal durchlaufen muss man Fussgesteuerte Schleifen wählen.&lt;br /&gt;
====Do====&lt;br /&gt;
Do-Schleifen sind Fussgesteuert. Sie funktionieren wie While-Schleifen nur das sie mindestens einmal durchlaufen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 10;&lt;br /&gt;
WriteLine('Ich zähle jetzt bis Null');&lt;br /&gt;
Do&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
  i = i -1;&lt;br /&gt;
}&lt;br /&gt;
While (i &amp;gt;= 0);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Gebe '''i''' solange aus und zähle einen runter, solange '''i''' größer gleich null ist.&lt;br /&gt;
Aus der Beschreibung wird deutlich wo der unterschied zwischen While- und Do-Schleifen liegt.&lt;br /&gt;
&lt;br /&gt;
In beiden Schleifen wird deutlich das ich jedes mal die Variable '''i''' runter bzw. hochzählen muss, um dies zu umgehen gibt es die möglichkeit Zählergesteuerte Schleifen zu verwenden.&lt;br /&gt;
&lt;br /&gt;
====For====&lt;br /&gt;
For-Schleifen sind genau dies. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
auf diese Weise kann man sich ein wenig Arbeit abnehmen, da die Schleife einem das Zählen abnimmt. So kann man auch Endlosschleifen vermeiden, die auftreten wenn man vergisst, die Schleifenvariable (in diesen Fällen immer '''i''') runter- bzw. hochzuzählen.&lt;br /&gt;
&lt;br /&gt;
For-Schleifen bieten noch eine weitere Möglichkeit: Es kann angegeben werden in welchen Schritten die Schleife zählt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 100 Step 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Code ist der bis auf das ''Step'' identisch. Die Zahl die hinter Step steht kann sowohl positiv als auch negativ sein.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 4 - Der Shipmanager - Einführung==&lt;br /&gt;
Nachdem wir nun über ein paar Grundlagen verfügen, wollen wir uns den wirklich interessanten Dingen zuwenden, der Steuerung von Spielinhalten durch Scripte.&lt;br /&gt;
&lt;br /&gt;
Um mit Schiffen zu interagieren gibt es eine Sammlung von Methoden, welche im Shipmanager zu finden sind.&lt;br /&gt;
Hierzu müssen wir dem Shipmanager als erstes Mitteilen, welches bzw. welche Flotte er verwenden soll.&lt;br /&gt;
&lt;br /&gt;
Hierführ gibt es die Befehle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;ShipManager.BenutzeSchiff(NCC-Nummer des Schiffes);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;ShipManager.BenutzeFlotte(ID der Flotte);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit weiß der ShipManager schonmal welches Schiff, bzw. welche Flotte die Aktionen ausführen soll.&lt;br /&gt;
&lt;br /&gt;
Mit dem Shipmanager können folgende Aktionen ausgeführt werden:&lt;br /&gt;
*An- und Abdocken&lt;br /&gt;
*Alarm Stufe ändern&lt;br /&gt;
*Aus Flotten austreten&lt;br /&gt;
*Aus Orbit einfliegen austreten &lt;br /&gt;
*Benennen(Name As String)&lt;br /&gt;
*Deuterium sammeln (Nur mit FP)&lt;br /&gt;
*Erz sammeln (Nur mit FP)&lt;br /&gt;
*Fliegen&lt;br /&gt;
*Sensoren aktivieren / deaktivieren&lt;br /&gt;
*Reparieren&lt;br /&gt;
*Batterien entladen&lt;br /&gt;
*Schilde aktivieren/deaktiviere/aufladen&lt;br /&gt;
*Reservebatterie aufladen&lt;br /&gt;
*Traktorstrahl ein- / ausschalten&lt;br /&gt;
*Beamen&lt;br /&gt;
*Verstecken&lt;br /&gt;
*Replikator aktivieren/deaktivieren&lt;br /&gt;
*Waren über Bord werfen&lt;br /&gt;
*Warpkern aktiveren/deaktivieren&lt;br /&gt;
*Wrackextraktoren&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Auflistung aller Funktionen findet sich im [http://game.stne.net/ObjectExplorer.aspx?p=CShipManager Objekt-Explorer].&lt;br /&gt;
&lt;br /&gt;
Im folgenden wollen wir uns einige Funktionen genauer anschauen:&lt;br /&gt;
===Beamen===&lt;br /&gt;
Syntaxe:&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(''Schiffid'', ''Menge'', EBeamRessource.''Ware'');&lt;br /&gt;
Hier musst du nun nurnoch den kursiven Text mit deinen Angaben ersetzten. Hier ein Beispiele:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(2, 20, EBeamRessource.Nahrung);&lt;br /&gt;
Natürlich kann man auch eine ganze Flotte beamen lassen, dazu ersetzt du ''ShipManager.BenutzteSchiff(1);'' durch ''ShipManager.BenutzteFlotte(1);'' Dann sieht das Script folgendermasen aus:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(2, 20, EBeamRessource.Nahrung);&lt;br /&gt;
&lt;br /&gt;
===Fliegen===&lt;br /&gt;
Bei der Syntaxe gibt es 2 Möglichkeiten, die eine für Spieler unter Level 8 oder mit [[Feature-Pack]], also mit Autopilot, und die andere für die Leute über Level 8 und ohne Feature-Pack, die Variante ohne Autopilot.&lt;br /&gt;
====Fliegen mit dem Autopiloten====&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;'''''Nur für Spieler mit Feature-Pack oder unter Kolonisationslevel 8 möglich!'''''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl:&lt;br /&gt;
 ShipManager.FliegeZu(''xxx|yyy'');&lt;br /&gt;
Auch hier Gilt es wieder das kursive durch die eigenen Angaben zu ersetzten. Wie in folgendem Beispiel:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.FliegeZu('123|465');&lt;br /&gt;
oder mit dem Flottenbefehl:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.FliegeZu('123|465');&lt;br /&gt;
Mit deisem Befehl fliegt das Schiff zu einer belibigen Position, [[NPC|NPC-Gebiete]] ausgenommen, und umgeht dabei wie der Autopilot Energie-intensive Hindernisse, sowie solche die das Schiff oder die Crew Gefährden.&lt;br /&gt;
&lt;br /&gt;
====Fliegen ohne Autopilot====&lt;br /&gt;
Der Befehl hierzu sieht wie folgt aus:&lt;br /&gt;
 ShipManager.Fliege(''Strecke'', EShipRichtung.''Richtung'');&lt;br /&gt;
Auch hier ersetzt du die kursiven Worte mit deinen Angaben, ein Beispiel folgt:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.Fliege(5, EShipRichtung.Hoch);&lt;br /&gt;
 ShipManager.Fliege(8, EshipRichtung.Links);&lt;br /&gt;
oder wenn es eine ganze Flotte ist:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.Fliege(5, EShipRichtung.Hoch);&lt;br /&gt;
 ShipManager.Fliege(8, EshipRichtung.Links);&lt;br /&gt;
&lt;br /&gt;
===Schiffsystem nutzen===&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
===Alternative zum Schiffsmanager: Schiffsaktion===&lt;br /&gt;
&lt;br /&gt;
Für Objekte des Typ's CMyFlotte und CMyShip kann über die Eigenschaft Aktion direkt auf die Funktionen des Schiffsmanagers zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;VAR Schiff AS CMyShip = new CMyShip( 4711 )&lt;br /&gt;
Schiff.Aktion.Abdocken()&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;VAR Flotte AS CMyFlotte = new CMyFlotte( 4711 )&lt;br /&gt;
Flotte.Aktion.Abdocken()&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enumeration ist Alles==&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
==Methoden==&lt;br /&gt;
&lt;br /&gt;
Öfters wiederkehrende Aufgaben können in Methoden zusammengefasst werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Function ShowKoords(x As Integer, y As Integer)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(x) + '|' + CStr(y));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Methode ShowKoords kann dann im Script folgendermaßen aufgerufen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ShowKoords(3, 4);&lt;br /&gt;
ShowKoords(ship.MapPosition.X,ship.MapPosition.Y);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn berechnete Werte von der Methode zurückgegeben werden sollen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Function Distanz(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer) As Integer&lt;br /&gt;
{&lt;br /&gt;
  Var distanz As Integer;&lt;br /&gt;
  &lt;br /&gt;
  distanz = Math.Abs(x1 - x2) + Math.Abs(y1 - y2);&lt;br /&gt;
  Return(distanz);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
WriteLine(Distanz(1, 1, 5, 5));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Einfache Typen werden immer 'ByVal' übergeben, d.h. die Werte werden als Kopie an die Methode übergeben und die entsprechenden Variablen im Script nicht verändert.&lt;br /&gt;
'ByRef' ist zwar in der Scriptengine vorgesehen und kann angegeben werden, ist aber derzeit ohne Funktion.&lt;br /&gt;
Objekte werden immer ByRef übergeben.&lt;br /&gt;
&lt;br /&gt;
==Klassen==&lt;br /&gt;
&lt;br /&gt;
In Klassen können Daten und Methoden in einem Objekt gekapselt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Class CKoords&lt;br /&gt;
{&lt;br /&gt;
  Var x As Integer;&lt;br /&gt;
  Var y As Integer;&lt;br /&gt;
  &lt;br /&gt;
  Function New(x As Integer, y As Integer)&lt;br /&gt;
  {&lt;br /&gt;
    This.x = x;&lt;br /&gt;
    This.y = y;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  Function ToString() As String&lt;br /&gt;
  {&lt;br /&gt;
    Return (CStr(x) + '|' + CStr(y);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  Function Distanz(koord As CKoords) As Integer&lt;br /&gt;
  {&lt;br /&gt;
    Return Math.Abs(x - koord.x) + Math.Abs(y - koord.y);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Var ko1 As New CKoords(3, 5);&lt;br /&gt;
Var ko2 As CKoords;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ko2 = New CKoords(8, 9);&lt;br /&gt;
WriteLine('Distanz von ' + ko1.ToString() + ' nach ' + ko2.ToString() + ': ' + CStr(ko1.Distanz(ko2)));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig: Klassen brauchen immer eine Methode New(), sonst kann kein neues Objekt der Klasse generiert werden!&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
(hier dürfen sich diejenigen verewigen die hier min. ein Kapitel geschrieben haben [sonst kommt noch einer daher nur weil er nen Rechtschreibfehler verbessert hat ;)])&lt;br /&gt;
{|&lt;br /&gt;
!Nickname&lt;br /&gt;
!IG-id&lt;br /&gt;
!Kapitel&lt;br /&gt;
|-&lt;br /&gt;
|WiZz4Rd&lt;br /&gt;
|16475&lt;br /&gt;
|Kapitel 1, Kapitel 2, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|Stryke&lt;br /&gt;
|28885&lt;br /&gt;
|Vorwort, Kapitel 3, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|[[Spieler:Xenon|Xenon]]&lt;br /&gt;
|10127&lt;br /&gt;
|Korrektur &amp;amp; Überarbeitung Kapitel 1&lt;br /&gt;
|-&lt;br /&gt;
|Fling&lt;br /&gt;
|54865&lt;br /&gt;
|Kapitel 7, Kapitel 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Anfängerkurs]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs</id>
		<title>Scripting:Anfängerkurs</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs"/>
				<updated>2009-03-15T14:54:02Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: /* Klassen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
'''Hier wird in nächster Zeit ein Anfängerkurs für die STNE-Scriptengine entstehen. Wer mithelfen will oder bereits jetzt fragen hat kann sich vertrauensvoll an uns wenden, einfach im irc den channel #scripting joinen!'''&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Dieser Kurs richtet sich vor allem an diejenigen, die zuvor noch nie mit Programmierung zu tun hatten und trotzdem gerne Scripts für STNE schreiben würden. Die sollen hier auf möglichst einfache Weise einen Einstieg finden. &lt;br /&gt;
Aber bitte erwartet keine Wunder, niemand der keine Ahnung vom Programieren hat, kann dies über Nacht lernen. Daher ist insbesondere eine Sache von enormer Wichtigkeit: Geduld – denn nur wer mit Geduld die Sachen angeht wird letzten Endes mit einem funktionieren Script belohnt. Wer die schnellen Erfolge sucht, der sollte es gleich lassen.&lt;br /&gt;
Wir wünschen allen viel Spaß und gutes Gelingen.&lt;br /&gt;
==Kapitel 1 - Strings==&lt;br /&gt;
===String? - Kann man das essen?===&lt;br /&gt;
'''Nein''', ein String (englisch) oder eine Zeichenkette, ist eine Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen, und Steuerzeichen) aus einem definierten Zeichensatz.&lt;br /&gt;
&lt;br /&gt;
Nun wissen wir also, was dieser ominöse String überhaupt ist. Wenden wir uns nun zur Ausgabe von Strings!&lt;br /&gt;
&lt;br /&gt;
=== Ausgabe von Strings ===&lt;br /&gt;
In diesem Kapitel werden wir uns der einfachen Ausgabe von Strings zuwenden. Um einen String auszugeben, müssen wir uns natürlich erst einmal überlegen was wir überhaupt ausgeben wollen. Nehmen wir als Beispiel einfach ''&amp;quot;Hallo!&amp;quot;''. Als Nächstes müssen wir wissen wie wir der Engine sagen, dass sie etwas ausgeben soll! Dies geschieht mit dem Befehl ''writeline();''.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;WriteLine('Hallo!');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Klammern steht immer der String, der ausgegeben werden soll. Die einfachen Anführungszeichen sagen dem Befehl, dass das Nachfolgende ein String und keine Variable ist (Was eine Variable ist erfahren wir im nächsten Kapitel). Das Semikolon signalisiert der Engine, dass der Befehl hier endet, dies wird nicht bei jedem Befehl benötigt.&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mehrere Strings nach einander ausgeben möchte, ist es natürlich unsinnig, für jedes Wort einen neuen ''writeline();'' Befehl auszuführen. Also kann man Strings an einander reihen. Hierzu setzt man einfach ein ''&amp;amp;''-Zeichen zwischen die Strings. Natürlich kann man auch die jeweiligen Strings einfach, wie wir noch später lernen durch Variablen ersetzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;WriteLine('Hallo!' &amp;amp; ' Wie geht es?');&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wichtig hierbei ist, dass das ''&amp;amp;''-Zeichen kein Leerzeichen einfügt. Dies muss manuell innerhalb des Strings passieren.&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Strings===&lt;br /&gt;
&lt;br /&gt;
* Ein String ist eine Folge von mehreren Zeichen.&lt;br /&gt;
* Zum Ausgeben von Strings wird ''writeline();'' verwendet.&lt;br /&gt;
* Es ist möglich mehrere Strings bzw. Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''writeline();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 2 - Variablen==&lt;br /&gt;
===Variablen? - Schon wieder was zum futtern?===&lt;br /&gt;
'''Nein''', lediglich ein weiterer Fachbegriff der Programmierer. Variablen sind eine Art von Platzhalter, in denen man Informationen, wie zum Beispiel Strings, für eine spätere Verwendung abspeichern kann. Natürlich gibt es für verschiedene Informationen ganz spezielle und verschiedene Variablentypen, die man auch [[Scripting:Datentypen|Datentypen]] nennt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten [[Scripting:Datentypen|Datentypen]] sind:&lt;br /&gt;
* String  - Zeichenketten&lt;br /&gt;
* Integer - Zahlen&lt;br /&gt;
* Boolean - Entscheidungen (&amp;lt;tt&amp;gt;Ja/Nein; Wahr/Falsch; True/False&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Variablen setzen===&lt;br /&gt;
Da das Arbeiten mit statischen Daten auf Dauer, vor allem bei längeren Scripten, ziemlich zeitaufwendig und unflexibel ist, verwendet man Variablen. Diese speichern Daten, geben sie auf Wunsch aus und lassen sich auch belibig oft verändern.&lt;br /&gt;
&lt;br /&gt;
Um eine Variable zu erschaffen verwendet man den Befehl ''var''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach ''VAR'' kommt dann der Variablen Name, dieser darf Zahlen und Buchstaben enthalten. Zahlen allerdings nur mit einer Ausnahme, sie dürfen nicht an erster Stelle stehen. Optional danach kann ein ''AS'' stehen (as, engl., als) dieses gibt an was für einen Datentyp die Variable hat, zb. String also eine Zeichenkette. Hier ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR i1 AS String&amp;lt;/pre&amp;gt;&lt;br /&gt;
Um dieser Variable einen Inhalt zuzuordnen, schreibt man in der nächsten Zeile die Variable vor ein Gleichheitszeichen, dahinter kommt dann der Inhalt, den die Variable annehmen soll, in unserem nächsten Beispiel ein &amp;lt;i&amp;gt;Hallo!&amp;lt;/i&amp;gt;.&lt;br /&gt;
&amp;lt;pre&amp;gt;Var test AS String&lt;br /&gt;
test = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
man kann das ganze auch in eine Zeile packen, das sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR test AS String = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier müssen wir wieder die einfachen Anführungszeichen setzen, als Kennzeichen dafür, dass wir einen String als Inhalt benutzen. Wir können Variablen aber auch andere Datentypen wie Integer oder Bolean zuweisen. Dazu einfach string durch den jeweiligen Datetyp ersetzten.(Liste der Typen: [[Scripting:Typen|klick mich]])&lt;br /&gt;
&lt;br /&gt;
Auch kann man die Variable &amp;quot;leeren&amp;quot; hierzu gibt man ihr einfach nichts mit, hier auch dazu ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;VAR test AS String = 'Hallo!'&lt;br /&gt;
test = ''&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele mit Variablen===&lt;br /&gt;
 VAR test AS String = 'Hallo!'&lt;br /&gt;
 WriteLine( test &amp;amp; ' Wie gehts?');&lt;br /&gt;
Auch hier ist weider zu beachten das kein Leerzeichen eingefügt wird! Die Variable kann an jeder Stelle innerhalb der Klammern stehen, zu beachten ist nur, dass sie nicht innerhalb von Anführungszeichen steht sonst wird die Variable als String gewertet.&lt;br /&gt;
 VAR test AS String = 'Hallo!'&lt;br /&gt;
 WriteLine(test);&lt;br /&gt;
Hier wird nun zum Beispiel nur eine Variable ausgegeben.&lt;br /&gt;
&lt;br /&gt;
===Umwandlung von Variablen in andere Datentypen===&lt;br /&gt;
Wollen wir eine Integer-Variable, also eine Zahl, ausgeben, so bekommen wir ein Problem. Der Computer verarbeitet ein Integer intern anders als ein String. Ein String kann er ausgeben ein Integer nicht. Daher müssen alle Integervariablen (wie allen anderen auch) in Stringvariablen umgewandelt werden, bevor man diese ausgeben kann.&lt;br /&gt;
Die geschieht über den Befehl &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CStr();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR zahl AS Integer;&lt;br /&gt;
zahl = 5;&lt;br /&gt;
WriteLine(CStr(Zahl));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umgekehrt müssen Stringvariablen in Integer umgewandelt werden, wenn mit diesen zum Beispiel gerechnet werden soll.&lt;br /&gt;
Dies geschießt über:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CInt();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR einstring AS String;&lt;br /&gt;
VAR einezahl AS Integer;&lt;br /&gt;
einstring = '42';&lt;br /&gt;
einezahl = CInt(einstring);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Regeln bei der Bennenung von Variablen===&lt;br /&gt;
&lt;br /&gt;
* Niemals reservierte Namen benutzen! Dazu Zählen u.a. alle Datumsangaben, wie &amp;lt;tt&amp;gt;Date&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Minute&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Day&amp;lt;/tt&amp;gt; etc.; jegliche Befehle und vom Systemvorgegebenen Funktionsnamen und Eigenschaften wie: &amp;lt;tt&amp;gt;Flotte&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;BenutzeSchiff&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;Nahrung&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;FliegeZu&amp;lt;/tt&amp;gt; etc.&lt;br /&gt;
* Man sollte der Übersicht wegen die Variablen immer (Richtlinie) mit drei Buchstaben beginnen lassen, welche beschreiben, welches Datenformat die Variable hat (z.B.: &amp;lt;tt&amp;gt;strVariablenName&amp;lt;/tt&amp;gt; für ein String, &amp;lt;tt&amp;gt;IntVariablenName&amp;lt;/tt&amp;gt; für ein Integer etc.)&lt;br /&gt;
* Man sollte immer die gleichen Namensrichtlinien einsetzen, damit man bei älteren Scripten noch den Durchblick behält&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Variablen===&lt;br /&gt;
&lt;br /&gt;
* Eine Variable ist ein Platzhalter für einen variablen Inhalt eines festgelegten Datentypen.&lt;br /&gt;
* Um eine Variable zu erstellen wird ''VAR &amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt; AS &amp;lt;b&amp;gt;Datentyp&amp;lt;/b&amp;gt;;'' verwendet.&lt;br /&gt;
* Um einer Variablen einen Inhalt zu zuweisen wird ''&amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt; = &amp;lt;b&amp;gt;Inhalt&amp;lt;/b&amp;gt;;'' verwendet.&lt;br /&gt;
* Um eine Variable auszugeben oder mit ihr zu arbeiten, wird der Name geschrieben zB: ''WriteLine(&amp;lt;b&amp;gt;Name&amp;lt;/b&amp;gt;);''&lt;br /&gt;
* Es ist möglich mehrere Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''WriteLine();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 3 - Kontrollstrukturen==&lt;br /&gt;
Da wir uns in Kapitel 2 mit Variablen beschäftigt haben, können wir uns nun dem eigentlichen Aufwand beim Programmieren zuwenden: den Kontrollstrukturen. Diese Wort klingt ersteinmal sehr hochtrabend, an und für sich ist es jedoch sehr einfach.&lt;br /&gt;
&lt;br /&gt;
===If - then - Else===&lt;br /&gt;
Es werden 2 Variablen miteinander verglichen oder überprüft, ob eine Variable einem Wert entspricht und dann wird darauf reagiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 = 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist nicht 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist ersteinmal sehr einfach und wirkt auf den ersten Blick sinnlos, was es auch ist. Aber es zeigt auf einfache Art, wie man 2 Werte miteinander vergleicht, dies kann man zum Beispiel dafür nutzen, um zu prüfen wieviel Lageraum ein Schiff noch hat. Dazu aber irgendwann später mehr.&lt;br /&gt;
Bleiben wir bei dem Code und schauen ihn uns einmal genauer an:&lt;br /&gt;
In der ersten Zeile wird die Variable '''var1''' definiert, dies sollte aus Kapitel 2 bekannt sein.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;If (var1 = 42)&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier wird der Vergleich durgeführt, in diesem Fall wir geschaut ob der Wert von Zahl1 42 ist. &lt;br /&gt;
Man könnte an dieser Stelle genausogut prüfen ob der Wert größer oder kleiner ist, als ein anderer.&lt;br /&gt;
Hierfür nutzt man dann nicht &amp;quot;=&amp;quot; sondern &amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;=&amp;quot;,&amp;quot;&amp;gt;=&amp;quot;&lt;br /&gt;
Innerhalb der { } folgt dann der Code, welcher ausgeführt werden soll, wenn die Bedigung stimmt, also in diesem Fall, wenn '''var1 ''' gleich 42 ist. &lt;br /&gt;
&lt;br /&gt;
Das folgende ''Else'' mit den Klammern gibt, welche Aktionen ausgeführt werden sollen, wenn die Bedingung nicht stimmt.&lt;br /&gt;
&lt;br /&gt;
Zu guter letzt gibt es noch ''Elseif'' dies ist dafür gedacht wenn man mehr als eine Alternative hat.&lt;br /&gt;
Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 &amp;lt; 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
elseif (var1 &amp;gt; 42)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist größer als 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('var1 ist weder größer noch kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist nicht auf ein ''elseif'' beschränkt, es können beliebig viele sein.&lt;br /&gt;
&lt;br /&gt;
===Schleifen===&lt;br /&gt;
Die soeben kennen gelernten Strukturen helfen uns Fallunterscheidungen zu machen. Aber was machen wir wenn wir eine ganze Liste (zum Beispiel Schiffe) haben und die abarbeiten wollen? Dafür gibt es ''Schleifen'', hier unterscheid man in drei Arten: Kopf-, Fuss- und Zählergesteuert.&lt;br /&gt;
====while====&lt;br /&gt;
While Schleifen sind Kopfgesteuert, dass heißt, solange die Bedingung zutrifft, wird der Inhalt der Schleife ausgeführt.&lt;br /&gt;
Es gelten die selben Operatoren wie bei Abfragen mit if: =,&amp;lt;,&amp;gt;,&amp;gt;=,&amp;lt;=,&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 0;&lt;br /&gt;
WriteLine('Ich zähle jetzt bis Zehn');&lt;br /&gt;
while ( i &amp;lt;= 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solange '''i''' kleiner oder gleich 10 ist, wird '''i''' ausgegeben und dann einen hochgezählt. &lt;br /&gt;
Bei Whileschleifen ist zu beachten, dass wenn die Bedingung zu Anfang bereits '''nicht''' erfüllt ist, dass sie dann nicht durchläuft. Soll sie mindestens einmal durchlaufen muss man Fussgesteuerte Schleifen wählen.&lt;br /&gt;
====Do====&lt;br /&gt;
Do-Schleifen sind Fussgesteuert. Sie funktionieren wie While-Schleifen nur das sie mindestens einmal durchlaufen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 10;&lt;br /&gt;
WriteLine('Ich zähle jetzt bis Null');&lt;br /&gt;
Do&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
  i = i -1;&lt;br /&gt;
}&lt;br /&gt;
While (i &amp;gt;= 0);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Gebe '''i''' solange aus und zähle einen runter, solange '''i''' größer gleich null ist.&lt;br /&gt;
Aus der Beschreibung wird deutlich wo der unterschied zwischen While- und Do-Schleifen liegt.&lt;br /&gt;
&lt;br /&gt;
In beiden Schleifen wird deutlich das ich jedes mal die Variable '''i''' runter bzw. hochzählen muss, um dies zu umgehen gibt es die möglichkeit Zählergesteuerte Schleifen zu verwenden.&lt;br /&gt;
&lt;br /&gt;
====For====&lt;br /&gt;
For-Schleifen sind genau dies. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
auf diese Weise kann man sich ein wenig Arbeit abnehmen, da die Schleife einem das Zählen abnimmt. So kann man auch Endlosschleifen vermeiden, die auftreten wenn man vergisst, die Schleifenvariable (in diesen Fällen immer '''i''') runter- bzw. hochzuzählen.&lt;br /&gt;
&lt;br /&gt;
For-Schleifen bieten noch eine weitere Möglichkeit: Es kann angegeben werden in welchen Schritten die Schleife zählt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 100 Step 10)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Code ist der bis auf das ''Step'' identisch. Die Zahl die hinter Step steht kann sowohl positiv als auch negativ sein.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 4 - Der Shipmanager - Einführung==&lt;br /&gt;
Nachdem wir nun über ein paar Grundlagen verfügen, wollen wir uns den wirklich interessanten Dingen zuwenden, der Steuerung von Spielinhalten durch Scripte.&lt;br /&gt;
&lt;br /&gt;
Um mit Schiffen zu interagieren gibt es eine Sammlung von Methoden, welche im Shipmanager zu finden sind.&lt;br /&gt;
Hierzu müssen wir dem Shipmanager als erstes Mitteilen, welches bzw. welche Flotte er verwenden soll.&lt;br /&gt;
&lt;br /&gt;
Hierführ gibt es die Befehle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;ShipManager.BenutzeSchiff(NCC-Nummer des Schiffes);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;ShipManager.BenutzeFlotte(ID der Flotte);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit weiß der ShipManager schonmal welches Schiff, bzw. welche Flotte die Aktionen ausführen soll.&lt;br /&gt;
&lt;br /&gt;
Mit dem Shipmanager können folgende Aktionen ausgeführt werden:&lt;br /&gt;
*An- und Abdocken&lt;br /&gt;
*Alarm Stufe ändern&lt;br /&gt;
*Aus Flotten austreten&lt;br /&gt;
*Aus Orbit einfliegen austreten &lt;br /&gt;
*Benennen(Name As String)&lt;br /&gt;
*Deuterium sammeln (Nur mit FP)&lt;br /&gt;
*Erz sammeln (Nur mit FP)&lt;br /&gt;
*Fliegen&lt;br /&gt;
*Sensoren aktivieren / deaktivieren&lt;br /&gt;
*Reparieren&lt;br /&gt;
*Batterien entladen&lt;br /&gt;
*Schilde aktivieren/deaktiviere/aufladen&lt;br /&gt;
*Reservebatterie aufladen&lt;br /&gt;
*Traktorstrahl ein- / ausschalten&lt;br /&gt;
*Beamen&lt;br /&gt;
*Verstecken&lt;br /&gt;
*Replikator aktivieren/deaktivieren&lt;br /&gt;
*Waren über Bord werfen&lt;br /&gt;
*Warpkern aktiveren/deaktivieren&lt;br /&gt;
*Wrackextraktoren&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Auflistung aller Funktionen findet sich im [http://game.stne.net/ObjectExplorer.aspx?p=CShipManager Objekt-Explorer].&lt;br /&gt;
&lt;br /&gt;
Im folgenden wollen wir uns einige Funktionen genauer anschauen:&lt;br /&gt;
===Beamen===&lt;br /&gt;
Syntaxe:&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(''Schiffid'', ''Menge'', EBeamRessource.''Ware'');&lt;br /&gt;
Hier musst du nun nurnoch den kursiven Text mit deinen Angaben ersetzten. Hier ein Beispiele:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(2, 20, EBeamRessource.Nahrung);&lt;br /&gt;
Natürlich kann man auch eine ganze Flotte beamen lassen, dazu ersetzt du ''ShipManager.BenutzteSchiff(1);'' durch ''ShipManager.BenutzteFlotte(1);'' Dann sieht das Script folgendermasen aus:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.TransferiereZuSchiff(2, 20, EBeamRessource.Nahrung);&lt;br /&gt;
&lt;br /&gt;
===Fliegen===&lt;br /&gt;
Bei der Syntaxe gibt es 2 Möglichkeiten, die eine für Spieler unter Level 8 oder mit [[Feature-Pack]], also mit Autopilot, und die andere für die Leute über Level 8 und ohne Feature-Pack, die Variante ohne Autopilot.&lt;br /&gt;
====Fliegen mit dem Autopiloten====&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;'''''Nur für Spieler mit Feature-Pack oder unter Kolonisationslevel 8 möglich!'''''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Befehl:&lt;br /&gt;
 ShipManager.FliegeZu(''xxx|yyy'');&lt;br /&gt;
Auch hier Gilt es wieder das kursive durch die eigenen Angaben zu ersetzten. Wie in folgendem Beispiel:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.FliegeZu('123|465');&lt;br /&gt;
oder mit dem Flottenbefehl:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.FliegeZu('123|465');&lt;br /&gt;
Mit deisem Befehl fliegt das Schiff zu einer belibigen Position, [[NPC|NPC-Gebiete]] ausgenommen, und umgeht dabei wie der Autopilot Energie-intensive Hindernisse, sowie solche die das Schiff oder die Crew Gefährden.&lt;br /&gt;
&lt;br /&gt;
====Fliegen ohne Autopilot====&lt;br /&gt;
Der Befehl hierzu sieht wie folgt aus:&lt;br /&gt;
 ShipManager.Fliege(''Strecke'', EShipRichtung.''Richtung'');&lt;br /&gt;
Auch hier ersetzt du die kursiven Worte mit deinen Angaben, ein Beispiel folgt:&lt;br /&gt;
 ShipManager.BenutzteSchiff(1);&lt;br /&gt;
 ShipManager.Fliege(5, EShipRichtung.Hoch);&lt;br /&gt;
 ShipManager.Fliege(8, EshipRichtung.Links);&lt;br /&gt;
oder wenn es eine ganze Flotte ist:&lt;br /&gt;
 ShipManager.BenutzteFlotte(1);&lt;br /&gt;
 ShipManager.Fliege(5, EShipRichtung.Hoch);&lt;br /&gt;
 ShipManager.Fliege(8, EshipRichtung.Links);&lt;br /&gt;
&lt;br /&gt;
===Schiffsystem nutzen===&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
===Alternative zum Schiffsmanager: Schiffsaktion===&lt;br /&gt;
&lt;br /&gt;
Für Objekte des Typ's CMyFlotte und CMyShip kann über die Eigenschaft Aktion direkt auf die Funktionen des Schiffsmanagers zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;VAR Schiff AS CMyShip = new CMyShip( 4711 )&lt;br /&gt;
Schiff.Aktion.Abdocken()&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;VAR Flotte AS CMyFlotte = new CMyFlotte( 4711 )&lt;br /&gt;
Flotte.Aktion.Abdocken()&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enumeration ist Alles==&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
==Methoden==&lt;br /&gt;
&lt;br /&gt;
Öfters wiederkehrende Aufgaben können in Methoden zusammengefasst werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Function ShowKoords(x As Integer, y As Integer)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(CStr(x) + '|' + CStr(y));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Methode ShowKoords kann dann im Script folgendermaßen aufgerufen werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
ShowKoords(3, 4);&lt;br /&gt;
ShowKoords(ship.MapPosition.X,ship.MapPosition.Y);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn berechnete Werte von der Methode zurückgegeben werden sollen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Function Distanz(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer) As Integer&lt;br /&gt;
{&lt;br /&gt;
  Var distanz As Integer;&lt;br /&gt;
  &lt;br /&gt;
  distanz = Math.Abs(x1 - x2) + Math.Abs(y1 - y2);&lt;br /&gt;
  Return(distanz);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
WriteLine(Distanz(1, 1, 5, 5));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Einfache Typen werden immer 'ByVal' übergeben, d.h. die Werte werden als Kopie an die Methode übergeben und die entsprechenden Variablen im Script nicht verändert.&lt;br /&gt;
'ByRef' ist zwar in der Scriptengine vorgesehen und kann angegeben werden, ist aber derzeit ohne Funktion.&lt;br /&gt;
Objekte werden immer ByRef übergeben.&lt;br /&gt;
&lt;br /&gt;
==Klassen==&lt;br /&gt;
&lt;br /&gt;
In Klassen können Daten und Methoden in einem Objekt gekapselt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Class CKoords&lt;br /&gt;
{&lt;br /&gt;
  Var x As Integer;&lt;br /&gt;
  Var y As Integer;&lt;br /&gt;
  &lt;br /&gt;
  Function New(x As Integer, y As Integer)&lt;br /&gt;
  {&lt;br /&gt;
    This.x = x;&lt;br /&gt;
    This.y = y;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  Function ToString() As String&lt;br /&gt;
  {&lt;br /&gt;
    Return((CStr(x) + '|' + CStr(y));&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  Function Distanz(koord As CKoords) As Integer&lt;br /&gt;
  {&lt;br /&gt;
    Return Math.Abs(x - koord.x) + Math.Abs(y - koord.y);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Var ko1 As New CKoords(3, 5);&lt;br /&gt;
Var ko2 As CKoords;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ko2 = New CKoords(8, 9);&lt;br /&gt;
WriteLine('Distanz von ' + ko1.ToString() + ' nach ' + ko2.ToString() + ': ' + CStr(ko1.Distanz(ko2)));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wichtig: Klassen brauchen immer eine Methode New(), sonst kann kein neues Objekt der Klasse generiert werden!&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
(hier dürfen sich diejenigen verewigen die hier min. ein Kapitel geschrieben haben [sonst kommt noch einer daher nur weil er nen Rechtschreibfehler verbessert hat ;)])&lt;br /&gt;
{|&lt;br /&gt;
!Nickname&lt;br /&gt;
!IG-id&lt;br /&gt;
!Kapitel&lt;br /&gt;
|-&lt;br /&gt;
|WiZz4Rd&lt;br /&gt;
|16475&lt;br /&gt;
|Kapitel 1, Kapitel 2, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|Stryke&lt;br /&gt;
|28885&lt;br /&gt;
|Vorwort, Kapitel 3, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|[[Spieler:Xenon|Xenon]]&lt;br /&gt;
|10127&lt;br /&gt;
|Korrektur &amp;amp; Überarbeitung Kapitel 1&lt;br /&gt;
|-&lt;br /&gt;
|Fling&lt;br /&gt;
|54865&lt;br /&gt;
|Kapitel 7, Kapitel 8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Anfängerkurs]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Hauptseite"/>
				<updated>2008-02-01T22:05:33Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menue}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; style=&amp;quot;vertical-align:top; border-width:0px&amp;quot;|&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-right:10px;border:2px solid #1A1C5E;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--   Begrüßung - 1. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:0.3em 1em 0.7em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
=='''Willkommen im STNE-Wiki'''==&lt;br /&gt;
Willkommen in der Enzyklopädie von STNE. Hier findet ihr Hilfe zu allen Themen rund um STNE, könnt euch, eure Völker, Allianzen und Geschichten veröffentlichen. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- Navigationsleiste Themen --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:7px 0px 4px 0px; border:0px solid #1A1C5E; border-width:1px 0px 0px 0px;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;'''[http://game.stne.net/ STNE - Das Spiel] · [http://status.delta-times.de STNE-Statusseite] · [http://forum.stne.net/ STNE-Forum] &amp;lt;br&amp;gt; [[STNE-Team-Liste]] · [[News:Hauptseite|Wiki-Zeitung]]'''&amp;lt;/big&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Begrüßung - 1. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!-- unsichtbar - 2. Abschnitt links Anfang &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:10px 10px 0px 0px; border:2px solid #dfdfdf; padding:0.6em; &amp;quot;&amp;gt;&lt;br /&gt;
'''Wiki-News'''&lt;br /&gt;
textetxt&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
unsichtbar - 2. Abschnitt links Ende--&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wie benutze ich ... - 3. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em; &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Schnellstart''' ==&lt;br /&gt;
* '''[[STNE2|Änderungen in STNE 2]]'''&lt;br /&gt;
* [[Inhalt|Inhaltsverzeichnis]]&lt;br /&gt;
* [[Index|Von A bis Z]]&lt;br /&gt;
* [[Abkürzungsverzeichnis]]&lt;br /&gt;
* [[:Kategorie:Allgemeines|thematische Suche]]&lt;br /&gt;
* [[Hilfe:Cattree|Themenbaum]]&lt;br /&gt;
* [[Spezial:Specialpages|Suchen in speziellen Seiten]]&lt;br /&gt;
* [[Spezial:Search|Wiki-Suchfunktion]]&lt;br /&gt;
* [http://www.google.de/custom?sa=Google+Search&amp;amp;domains=wiki.stne.net&amp;amp;sitesearch=wiki.stne.net Googlesuche im STNE-Wiki]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;'''mehr über [[Hilfe:Suche|suchen im Wiki]]... ''' &amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wie benutze ich ... - 3. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wichtige Links - 4. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Schon gewußt, dass ...'''==&lt;br /&gt;
{{HS-Doyouknow}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wichtige Links - 4. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   News - 5. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Wiki-News''' ==&lt;br /&gt;
{{HS-News}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   News - 5. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!-- RECHTE SPALTE --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Logo - 1. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
| width=&amp;quot;48%&amp;quot; style=&amp;quot;vertical-align:top; border-width:0px&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0;  border:2px solid gold padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:warp5.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Logo - 1. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Schnellstart - 2. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Hilfe zum STNE-Wiki?''' ==&lt;br /&gt;
Hilfe zum STNE-Wiki findet ihr hier:&lt;br /&gt;
* [[STNE-Wiki:Hilfe|STNE-Wiki-Hilfe]]&lt;br /&gt;
* im [[IRC]] im Channel #wiki&lt;br /&gt;
* einen Admin aus dieser [[STNE-Wiki:Administratoren|Liste]] ingame anschreiben&lt;br /&gt;
* [http://wiki.stne.net/index.php?title=Hilfe:Fragen_zum_STNE-Wiki&amp;amp;action=edit&amp;amp;section=new ...oder stelle deine Frage hier]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Schnellstart - 2. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wiki-Mitarbeit - 3. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em; margin-top:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Wiki-Mitarbeit''' ==&lt;br /&gt;
Jeder im Wiki angemeldete Spieler kann am Wiki mit arbeiten. Alles was ihr dazu braucht ist ein wenig Zeit und etwas Wissen, dass ihr mit anderen teilen wollt. Im Moment werden vor allem Helfer zum Thema Kampf (zwischen Schiffen, Schiff - Planet etc.) gesucht. Ebenso warten noch viele Einzelseiten auf einen Inhalt. Ihr findet diese Seiten [[Spezial:Wantedpages|hier]]. Auch viele der bereits vorhandenen Seiten warten auf Ergänzungen oder Korrekturen. Schaut einfach mal rein ...&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hilfreiche Links zum Thema Wiki-Mitarbeit findet ihr hier:&lt;br /&gt;
* [[STNE-Wiki:Hilfe|STNE-Wiki-Hilfe]]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Wikipedia:Erste_Schritte erste Schritte im Wiki]&lt;br /&gt;
* [http://meta.wikipedia.org/wiki/MediaWiki_i18n Dokumentation zur Anpassung der Benutzeroberfläche]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Wikipedia:Handbuch Benutzerhandbuch]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Bitte tragt auf jeder Seite ganz oben &amp;lt;nowiki&amp;gt;{{menue}}&amp;lt;/nowiki&amp;gt; und ganz unten &amp;lt;nowiki&amp;gt;[[Kategorie:kategoriename]]&amp;lt;/nowiki&amp;gt; ein. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;'''mehr über [[Wiki-Mitarbeit]]'''&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wiki-Mitarbeit - 3. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Hauptseite"/>
				<updated>2008-02-01T22:04:59Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{menue}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;80%&amp;quot; style=&amp;quot;vertical-align:top; border-width:0px&amp;quot;|&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-right:10px;border:2px solid #1A1C5E;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--   Begrüßung - 1. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:0.3em 1em 0.7em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
=='''Willkommen im STNE-Wiki'''==&lt;br /&gt;
Willkommen in der Enzyklopädie von STNE. Hier findet ihr Hilfe zu allen Themen rund um STNE, könnt euch, eure Völker, Allianzen und Geschichten veröffentlichen. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- Navigationsleiste Themen --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align:center; padding:7px 0px 4px 0px; border:0px solid #1A1C5E; border-width:1px 0px 0px 0px;&amp;quot;&amp;gt;&amp;lt;big&amp;gt;'''[http://game.stne.net/ STNE - Das Spiel] · [http://status.delta-times.de STNE-Statusseite] · [http://forum.stne.net/ STNE-Forum] &amp;lt;br&amp;gt; [[STNE-Team-Liste]] · [[News:Hauptseite|Wiki-Zeitung]]'''&amp;lt;/big&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Begrüßung - 1. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!-- unsichtbar - 2. Abschnitt links Anfang &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:10px 10px 0px 0px; border:2px solid #dfdfdf; padding:0.6em; &amp;quot;&amp;gt;&lt;br /&gt;
'''Wiki-News'''&lt;br /&gt;
textetxt&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
unsichtbar - 2. Abschnitt links Ende--&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wie benutze ich ... - 3. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em; &amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Schnellstart''' ==&lt;br /&gt;
* [[STNE2|Änderungen in STNE 2]]&lt;br /&gt;
* [[Inhalt|Inhaltsverzeichnis]]&lt;br /&gt;
* [[Index|Von A bis Z]]&lt;br /&gt;
* [[Abkürzungsverzeichnis]]&lt;br /&gt;
* [[:Kategorie:Allgemeines|thematische Suche]]&lt;br /&gt;
* [[Hilfe:Cattree|Themenbaum]]&lt;br /&gt;
* [[Spezial:Specialpages|Suchen in speziellen Seiten]]&lt;br /&gt;
* [[Spezial:Search|Wiki-Suchfunktion]]&lt;br /&gt;
* [http://www.google.de/custom?sa=Google+Search&amp;amp;domains=wiki.stne.net&amp;amp;sitesearch=wiki.stne.net Googlesuche im STNE-Wiki]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;'''mehr über [[Hilfe:Suche|suchen im Wiki]]... ''' &amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wie benutze ich ... - 3. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wichtige Links - 4. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Schon gewußt, dass ...'''==&lt;br /&gt;
{{HS-Doyouknow}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wichtige Links - 4. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   News - 5. Abschnitt links Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Wiki-News''' ==&lt;br /&gt;
{{HS-News}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   News - 5. Abschnitt links Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!-- RECHTE SPALTE --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Logo - 1. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
| width=&amp;quot;48%&amp;quot; style=&amp;quot;vertical-align:top; border-width:0px&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0;  border:2px solid gold padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Bild:warp5.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Logo - 1. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Schnellstart - 2. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Hilfe zum STNE-Wiki?''' ==&lt;br /&gt;
Hilfe zum STNE-Wiki findet ihr hier:&lt;br /&gt;
* [[STNE-Wiki:Hilfe|STNE-Wiki-Hilfe]]&lt;br /&gt;
* im [[IRC]] im Channel #wiki&lt;br /&gt;
* einen Admin aus dieser [[STNE-Wiki:Administratoren|Liste]] ingame anschreiben&lt;br /&gt;
* [http://wiki.stne.net/index.php?title=Hilfe:Fragen_zum_STNE-Wiki&amp;amp;action=edit&amp;amp;section=new ...oder stelle deine Frage hier]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Schnellstart - 2. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wiki-Mitarbeit - 3. Abschnitt rechts Anfang --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:2px solid #1A1C5E; padding:0em 1em 1em 1em; margin-top:10px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Wiki-Mitarbeit''' ==&lt;br /&gt;
Jeder im Wiki angemeldete Spieler kann am Wiki mit arbeiten. Alles was ihr dazu braucht ist ein wenig Zeit und etwas Wissen, dass ihr mit anderen teilen wollt. Im Moment werden vor allem Helfer zum Thema Kampf (zwischen Schiffen, Schiff - Planet etc.) gesucht. Ebenso warten noch viele Einzelseiten auf einen Inhalt. Ihr findet diese Seiten [[Spezial:Wantedpages|hier]]. Auch viele der bereits vorhandenen Seiten warten auf Ergänzungen oder Korrekturen. Schaut einfach mal rein ...&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hilfreiche Links zum Thema Wiki-Mitarbeit findet ihr hier:&lt;br /&gt;
* [[STNE-Wiki:Hilfe|STNE-Wiki-Hilfe]]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Wikipedia:Erste_Schritte erste Schritte im Wiki]&lt;br /&gt;
* [http://meta.wikipedia.org/wiki/MediaWiki_i18n Dokumentation zur Anpassung der Benutzeroberfläche]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Wikipedia:Handbuch Benutzerhandbuch]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Bitte tragt auf jeder Seite ganz oben &amp;lt;nowiki&amp;gt;{{menue}}&amp;lt;/nowiki&amp;gt; und ganz unten &amp;lt;nowiki&amp;gt;[[Kategorie:kategoriename]]&amp;lt;/nowiki&amp;gt; ein. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;small&amp;gt;'''mehr über [[Wiki-Mitarbeit]]'''&amp;lt;/small&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--   Wiki-Mitarbeit - 3. Abschnitt rechts Ende --&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=STNE2</id>
		<title>STNE2</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=STNE2"/>
				<updated>2008-02-01T22:03:53Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;blubb&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Items</id>
		<title>Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Items"/>
				<updated>2007-12-02T22:39:29Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Items sind grundsätzlich ersteinmal beliebige &amp;quot;Gegenstände&amp;quot;, welche ähnlich wie Waren behandelt werden und auf Schiffen und Kolonien gebeamt werden können. Items können Eigenschaften von Schiffen und Gebäuden manipulieren oder haben spezielle Einwegfunktionen, z.b. einmalig die Schilde voll aufladen. Items können auch einfach nur keine RPG-Gegenstände sein, welche keine Funktion haben.&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen folgenden Items unterschieden:&lt;br /&gt;
 - Items für Schiffe&lt;br /&gt;
   - Schiffsmodule, welche Schiffsfähigkeiten manipulieren&lt;br /&gt;
   - Items, welche einmalig Schiffswerte ändern&lt;br /&gt;
 - Items für Gebäude&lt;br /&gt;
 - Custom-RGP-Items, welche durch Siedler erstellt werden können.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es nur Schiffsmodule.&lt;br /&gt;
&lt;br /&gt;
Je nach Schiffsmodul lassen sich diese Installieren und oder manuell aktivieren/deaktivieren. Bestimmte Module zeigen ihre Wirkung erst nach Installation, andere lassen sich auch ohne Installation aktivieren. Es gibt auch Module, welche sich nicht mehr deaktivieren lassen, nach dem sie installiert wurden.&lt;br /&gt;
&lt;br /&gt;
Installierte Module lassen sich nicht mehr entfernen und können auch nicht mehr gebeamt werden. Das Modul wird erst bei Zerstörung des Schiffes wieder freigegeben. Dabei werden jedoch die Werte des Moduls herabgesetzt, weil es in seiner Qualität sinkt.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es ca. 30 verschiedene Schiffsmodule.&lt;br /&gt;
&lt;br /&gt;
== Schiffsmodule ==&lt;br /&gt;
&lt;br /&gt;
'''EPS-Akkumulator''': +40 EPS | -10 Lager&lt;br /&gt;
&lt;br /&gt;
'''Supraleitender Bussardkollektor''': +1 Bussard Effizienz | -20% Gondeln&lt;br /&gt;
&lt;br /&gt;
'''Warpgondel''': +50 Gondeln | -20% EPS&lt;br /&gt;
&lt;br /&gt;
'''Kleines Torpedolager''': +10 Torpedos lagern&lt;br /&gt;
&lt;br /&gt;
'''Diborit-Emitter-Kristall''': +1 Phaser Stärke&lt;br /&gt;
&lt;br /&gt;
'''Solarkollektoren''': +Solarkollektoren | -10% Hülle&lt;br /&gt;
&lt;br /&gt;
'''Replikator''': +Replikator&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Items</id>
		<title>Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Items"/>
				<updated>2007-12-01T14:41:44Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Items sind grundsätzlich ersteinmal beliebige &amp;quot;Gegenstände&amp;quot;, welche ähnlich wie Waren behandelt werden und auf Schiffen und Kolonien gebeamt werden können. Items können Eigenschaften von Schiffen und Gebäuden manipulieren oder haben spezielle Einwegfunktionen, z.b. einmalig die Schilde voll aufladen. Items können auch einfach nur keine RPG-Gegenstände sein, welche keine Funktion haben.&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen folgenden Items unterschieden:&lt;br /&gt;
 - Items für Schiffe&lt;br /&gt;
   - Schiffsmodule, welche Schiffsfähigkeiten manipulieren&lt;br /&gt;
   - Items, welche einmalig Schiffswerte ändern&lt;br /&gt;
 - Items für Gebäude&lt;br /&gt;
 - Custom-RGP-Items, welche durch Siedler erstellt werden können.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es nur Schiffsmodule.&lt;br /&gt;
&lt;br /&gt;
Je nach Schiffsmodul lassen sich diese Installieren und oder manuell aktivieren/deaktivieren. Bestimmte Module zeigen ihre Wirkung erst nach Installation, andere lassen sich auch ohne Installation aktivieren. Es gibt auch Module, welche sich nicht mehr deaktivieren lassen, nach dem sie installiert wurden.&lt;br /&gt;
&lt;br /&gt;
Installierte Module lassen sich nicht mehr entfernen und können auch nicht mehr gebeamt werden. Das Modul wird erst bei Zerstörung des Schiffes wieder freigegeben. Dabei werden jedoch die Werte des Moduls herabgesetzt, weil es in seiner Qualität sinkt.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es ca. 30 verschiedene Schiffsmodule.&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Items</id>
		<title>Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Items"/>
				<updated>2007-12-01T13:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Items sind grundsätzlich ersteinmal beliebige &amp;quot;Gegenstände&amp;quot;, welche ähnlich wie Waren behandelt werden und auf Schiffen und Kolonien gebeamt werden können. Items können Eigenschaften von Schiffen und Gebäuden manipulieren oder haben spezielle Einwegfunktionen, z.b. einmalig die Schilde voll aufladen. Items können auch einfach nur keine RPG-Gegenstände sein, welche keine Funktion haben.&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen folgenden Items unterschieden:&lt;br /&gt;
+ Items für Schiffe&lt;br /&gt;
++ Schiffsmodule, welche Schiffsfähigkeiten manipulieren&lt;br /&gt;
++ Items, welche einmalig Schiffswerte ändern&lt;br /&gt;
+ Items für Gebäude&lt;br /&gt;
+ Custom-RGP-Items, welche durch Siedler erstellt werden können.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es nur Schiffsmodule.&lt;br /&gt;
&lt;br /&gt;
Je nach Schiffsmodul lassen sich diese Installieren und oder manuell aktivieren/deaktivieren. Bestimmte Module zeigen ihre Wirkung erst nach Installation, andere lassen sich auch ohne Installation aktivieren. Es gibt auch Module, welche sich nicht mehr deaktivieren lassen, nach dem sie installiert wurden.&lt;br /&gt;
&lt;br /&gt;
Installierte Module lassen sich nicht mehr entfernen und können auch nicht mehr gebeamt werden. Das Modul wird erst bei Zerstörung des Schiffes wieder freigegeben. Dabei werden jedoch die Werte des Moduls herabgesetzt, weil es in seiner Qualität sinkt.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es ca. 30 verschiedene Schiffsmodule.&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Items</id>
		<title>Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Items"/>
				<updated>2007-12-01T13:10:07Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Items sind grundsätzlich ersteinmal beliebige &amp;quot;Gegenstände&amp;quot;, welche ähnlich wie Waren behandelt werden und auf Schiffen und Kolonien gebeamt werden können. Items können Eigenschaften von Schiffen und Gebäuden manipulieren oder haben spezielle Einwegfunktionen, z.b. einmalig die Schilde voll aufladen. Items können auch einfach nur keine RPG-Gegenstände sein, welche keine Funktion haben.&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen folgenden Items unterschieden:&lt;br /&gt;
+ Items für Schiffe&lt;br /&gt;
++ Schiffsmodule, welche Schiffsfähigkeiten manipulieren&lt;br /&gt;
++ Items, welche einmalig Schiffswerte ändern&lt;br /&gt;
+ Items für Gebäude&lt;br /&gt;
+ Custom-RGP-Items, welche durch Siedler erstellt werden können.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es nur Schiffsmodule.&lt;br /&gt;
&lt;br /&gt;
Je nach Schiffsmodul lassen sich diese Installieren und oder manuell aktivieren/deaktivieren. Bestimmte Module zeigen ihre Wirkung erst nach Installation, andere lassen sich auch ohne Installation aktivieren. Es gibt auch Module, welche sich nicht mehr deaktivieren lassen, nach dem sie installiert wurden.&lt;br /&gt;
&lt;br /&gt;
Installierte Module lassen sich nicht mehr entfernen und können auch nicht mehr gebeamt werden. Das Modul wird erst bei Zerstörung des Schiffes wieder freigegeben. Dabei werden jedoch die Werte des Moduls herabgesetzt, weil es in seiner Qualität sinkt.&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Items</id>
		<title>Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Items"/>
				<updated>2007-12-01T13:09:52Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Items sind grundsätzlich ersteinmal beliebige &amp;quot;Gegenstände&amp;quot;, welche ähnlich wie Waren behandelt werden und auf Schiffen und Kolonien gebeamt werden können. Items können Eigenschaften von Schiffen und Gebäuden manipulieren oder haben spezielle Einwegfunktionen, z.b. einmalig die Schilde voll aufladen. Items können auch einfach nur keine RPG-Gegenstände sein, welche keine Funktion haben.&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen folgenden Items unterschieden:&lt;br /&gt;
+ Items für Schiffe&lt;br /&gt;
++ Schiffsmodule, welche Schiffsfähigkeiten manipulieren&lt;br /&gt;
++ Items, welche einmalig Schiffswerte ändern&lt;br /&gt;
+ Items für Gebäude&lt;br /&gt;
+ Custom-RGP-Items, welche durch Siedler erstellt werden können.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es nur Schiffsmodule.&lt;br /&gt;
&lt;br /&gt;
Je nach Schiffsmodul lassen sich dieser Installieren und oder manuell aktivieren/deaktivieren. Bestimmte Module zeigen ihre Wirkung erst nach Installation, andere lassen sich auch ohne Installation aktivieren. Es gibt auch Module, welche sich nicht mehr deaktivieren lassen, nach dem sie installiert wurden.&lt;br /&gt;
&lt;br /&gt;
Installierte Module lassen sich nicht mehr entfernen und können auch nicht mehr gebeamt werden. Das Modul wird erst bei Zerstörung des Schiffes wieder freigegeben. Dabei werden jedoch die Werte des Moduls herabgesetzt, weil es in seiner Qualität sinkt.&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Items</id>
		<title>Items</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Items"/>
				<updated>2007-12-01T13:07:07Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Items sind grundsätzlich ersteinmal beliebige &amp;quot;Gegenstände&amp;quot;, welche ähnlich wie Waren behandelt werden und auf Schiffen und Kolonien gebeamt werden können. Items können Eigenschaften von Schiffen und Gebäuden manipulieren oder haben spezielle Einwegfunktionen, z.b. einmalig die Schilde voll aufladen. Items können auch einfach nur keine RPG-Gegenstände sein, welche keine Funktion haben.&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen folgenden Items unterschieden:&lt;br /&gt;
+ Items für Schiffe&lt;br /&gt;
++ Schiffsmodule, welche Schiffsfähigkeiten manipulieren&lt;br /&gt;
++ Items, welche einmalig Schiffswerte ändern&lt;br /&gt;
+ Items für Gebäude&lt;br /&gt;
+ Custom-RGP-Items, welche durch Siedler erstellt werden können.&lt;br /&gt;
&lt;br /&gt;
Zur Zeit gibt es nur Schiffsmodule.&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting_Diskussion:KolonieEnergie_optimieren</id>
		<title>Scripting Diskussion:KolonieEnergie optimieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting_Diskussion:KolonieEnergie_optimieren"/>
				<updated>2007-05-02T20:45:25Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: /* Optimierung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Optimierung ==&lt;br /&gt;
&lt;br /&gt;
Du brauchst keine Enumerator, du kannst direkt FOR (haus IN colo.Gebäude){} schreiben. Desweiteren ist es besser statt haus.TypName='Solarsatelit' lieber haus.Typ = EGebäudeTyp.Solarsatelit zu schreiben. Und anstatt die Position zusammenzubauen kannst du besser haus.Feld.Position.ToString() schreiben.&lt;br /&gt;
[[Spieler:Arakis|Arakis]] 22:43, 2. Mai 2007 (W. Europe Daylight Time)&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting_Diskussion:KolonieEnergie_optimieren</id>
		<title>Scripting Diskussion:KolonieEnergie optimieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting_Diskussion:KolonieEnergie_optimieren"/>
				<updated>2007-05-02T20:43:56Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: Optimierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Optimierung ==&lt;br /&gt;
&lt;br /&gt;
Du brauchst keine Enumerator, du kannst direkt FOR (haus IN colo.Gebäude){} schreiben. Desweiteren ist es besser statt haus.TypName='Solarsatelit' lieber haus.Typ = EGebäudeTyp.Solarsatelit zu schreiben.&lt;br /&gt;
[[Spieler:Arakis|Arakis]] 22:43, 2. Mai 2007 (W. Europe Daylight Time)&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting_Diskussion:Flotten</id>
		<title>Scripting Diskussion:Flotten</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting_Diskussion:Flotten"/>
				<updated>2006-07-29T09:52:33Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ich möchte wetten dass du den Soruce nicht einmal selber getestet hast, es gibt schwere Syntaxfehler im Code.&lt;br /&gt;
[[Spieler:Arakis|Arakis]] 11:52, 29. Jul 2006 (W. Europe Daylight Time)&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Vorlage:AktuellenScript-Artikel</id>
		<title>Vorlage:AktuellenScript-Artikel</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Vorlage:AktuellenScript-Artikel"/>
				<updated>2006-06-23T12:55:30Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Scripting:Anfängerkurs|Anfängerkurs]] - Einführung in die Script-Engine&lt;br /&gt;
* [[Scripting:Flotten_benennen|Flotten Benennen]] - Script zum Benennen von größeren Flotten&lt;br /&gt;
* [[Scripting:Deutsammeln%28flotte%29|Deutsammeln(flotte)]] - Script zum [[Deuterium]]-Sammeln mit einer Flotte&lt;br /&gt;
* [[Scripting:BinarySearch|BinarySearch]] - durchsucht sortierte Arrays nach einer Zahl&lt;br /&gt;
* [[Scripting:BubbleSort|BubbleSort]] - sortiert Zahlen-Arrays&lt;br /&gt;
* [[Scripting:FAQ|FAQ]] - beantwortet Fragen rund ums Scripten in STNE&lt;br /&gt;
* [[Scripting:Syntax|Syntax]] - kurze Syntax-Beschreibung&lt;br /&gt;
* [[Scripting:TestSkript0.11|TestSkript0.11]] - demonstriert die wesentlichen Funktionen&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs</id>
		<title>Scripting:Anfängerkurs</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs"/>
				<updated>2006-06-23T12:38:26Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: /* Variablen setzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
'''Hier wird in nächster Zeit ein Anfängerkurs für die STNE-Scriptengine entstehen. Wer mithelfen will oder bereits jetzt fragen hat kann sich vertrauensvoll an uns wenden, einfach im irc den channel #scripting joinen!'''&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Dieser Kurs richtet sich vor allem an diejenigen, die zuvor noch nie mit Programmierung zu tun hatten und trotzdem gerne Scripts für STNE schreiben würden. Die sollen hier auf möglichst einfache Weise einen Einstieg finden. &lt;br /&gt;
Aber bitte erwartet keine Wunder, niemand der keine Ahnung vom Programieren hat, kann dies über Nacht lernen. Daher ist insbesondere eine Sache von enormer Wichtigkeit: Geduld – denn nur wer mit Geduld die Sachen angeht wird letzten Endes mit einem funktionieren Script belohnt. Wer die schnellen Erfolge sucht, der sollte es gleich lassen.&lt;br /&gt;
Wir wünschen allen viel Spaß und gutes Gelingen.&lt;br /&gt;
==Kapitel 1 - Strings==&lt;br /&gt;
===String? - Kann man das essen?===&lt;br /&gt;
'''Nein''', ein String (englisch) oder eine Zeichenkette, ist eine Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen, und Steuerzeichen) aus einem definierten Zeichensatz.&lt;br /&gt;
&lt;br /&gt;
Nun wissen wir also, was dieser ominöse String überhaupt ist. Wenden wir uns nun zur Ausgabe von Strings!&lt;br /&gt;
&lt;br /&gt;
=== Ausgabe von Strings ===&lt;br /&gt;
In diesem Kapitel werden wir uns der einfachen Ausgabe von Strings zuwenden. Um einen String auszugeben, müssen wir uns natürlich erst einmal überlegen was wir überhaupt ausgeben wollen. Nehmen wir als Beispiel einfach ''&amp;quot;Hallo!&amp;quot;''. Als Nächstes müssen wir wissen wie wir der Engine sagen, dass sie etwas ausgeben soll! Dies geschieht mit dem Befehl ''writeline();''.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;writeline('Hallo!');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Klammern steht immer der String, der ausgegeben werden soll. Die einfachen Anführungszeichen sagen dem Befehl, dass das Nachfolgende ein String und keine Variable ist (Was eine Variable ist erfahren wir im nächsten Kapitel). Das Semikolon signalisiert der Engine, dass der Befehl hier endet, dies wird nicht bei jedem Befehl benötigt.&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mehrere Strings nach einander ausgeben möchte, ist es natürlich unsinnig, für jedes Wort einen neuen ''writeline();'' Befehl auszuführen. Also kann man Strings an einander reihen. Hierzu setzt man einfach ein ''&amp;amp;''-Zeichen zwischen die Strings. Natürlich kann man auch die jeweiligen Strings einfach, wie wir noch später lernen durch Variablen ersetzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;writeline('Hallo!' &amp;amp; ' Wie geht es?');&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wichtig hierbei ist, dass das ''&amp;amp;''-Zeichen kein Leerzeichen einfügt. Dies muss manuell innerhalb des Strings passieren.&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Strings===&lt;br /&gt;
&lt;br /&gt;
* Ein String ist eine Folge von verschiedenen Zeichen.&lt;br /&gt;
* Zum Ausgeben von Strings wird ''writeline();'' verwendet.&lt;br /&gt;
* Es ist möglich mehrere Strings bzw. Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''writeline();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 2 - Variablen==&lt;br /&gt;
===Variablen? - Schon wieder was zum futtern?===&lt;br /&gt;
'''Nein''', lediglich ein weiterer Fachbegriff der Programmierer. Variablen sind eine Art von Platzhalter, in denen man Informationen, wie zum Beispiel Strings, für eine spätere Verwendung abspeichern kann. Natürlich gibt es für verschiedene Informationen ganz spezielle und verschiedene Variablentypen, die man auch [[Scripting:Datentypen|Datentypen]] nennt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten [[Scripting:Datentypen|Datentypen]] sind:&lt;br /&gt;
* String  - &lt;br /&gt;
* Integer -&lt;br /&gt;
* Boolean -&lt;br /&gt;
&lt;br /&gt;
===Variablen setzen===&lt;br /&gt;
Da das Arbeiten mit statischen Daten auf Dauer, vor allem bei längeren Scripten, ziemlich zeitaufwendig und unflexibel ist, verwendet man Variablen. Diese speichern Daten, geben sie auf Wunsch aus und lassen sich auch belibig oft verändern.&lt;br /&gt;
&lt;br /&gt;
Um eine Variable zu erschaffen verwendet man den Befehl ''var''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach ''var'' kommt dann der Variablen Name, dieser darf Zahlen und Buchstaben enthalten. Zahlen allerdings nur mit einer Ausnahme, sie dürfen nicht an erster Stelle stehen. optional danach kann ein as stehen (as, engl., als) dieses gibt an was für einen Inhalt die Variable hat, zb. str für string also eine Zeichenkette. Hier ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;var i1 as string&amp;lt;/pre&amp;gt;&lt;br /&gt;
Um einer Variable einen Inhalt zuzuordnen setzt man die Variable vor ein Gleichheitszeichen, dahinter kommt dann der Inhalt in unserem nächsten Beispiel ein String.&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as string&lt;br /&gt;
test = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
man kann das ganze auch in eine Zeile packen, das sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as string = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier sehen wir wieder die einfachen Anführungszeichen als Kennzeichen für einen String. Wir können Variablen aber auch andere Werte wie Integer oder Bolean zuweisen. Dazu einfach str durch den jewaligen Typ ersetzten.(Liste der Typen: [[Scripting:Typen|klick mich]])&lt;br /&gt;
&lt;br /&gt;
Auch kann man die Variable &amp;quot;leeren&amp;quot; hirzu gibt man ihr einfach nichts mit, hier auch dazu ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as string = 'Hallo!'&lt;br /&gt;
test = ''&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele mit Variablen===&lt;br /&gt;
 var test as string = 'Hallo!'&lt;br /&gt;
 writeline( test &amp;amp; ' Wie gehts?');&lt;br /&gt;
Auch hier ist weider zu beachten das kein Leerzeiche eingefügt wird! Die Variable kann an jeder Stelle innerhalb der Klammern stehen, zu beachten ist nur das sie nicht innerhalb von Anführungszeichen steht sonst wird die Variable als String gewertet.&lt;br /&gt;
 var test as string = 'Hallo!'&lt;br /&gt;
 writeline(test);&lt;br /&gt;
Hier wird nun zum Beispiel nur eine Variable ausgegeben.&lt;br /&gt;
&lt;br /&gt;
===Umwandlung von Variablen in andere Datentypen===&lt;br /&gt;
Wollen wir eine Integer-Variable ausgeben, so bekommen wir ein Problem. Der Computer verarbeitet Integer intern anders als String. String kann er ausgeben Integer nicht. Daher müssen alle Integervariablen (wie allen anderen auch) in Stringvariablen umgewandelt werden, bevor man diese ausgeben kann.&lt;br /&gt;
Die geschieht über den Befehl &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CStr();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR zahl AS Integer;&lt;br /&gt;
zahl = 5;&lt;br /&gt;
writeline(CStr(Zahl));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umgekehrt müssen Stringvariablen in Integer umgewandelt werden, wenn mit diesen zum Beispiel gerechnet werden soll.&lt;br /&gt;
Dies geschießt über:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CInt();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR einstring AS String;&lt;br /&gt;
VAR einezahl AS Integer;&lt;br /&gt;
einstring = '42';&lt;br /&gt;
einezahl = CInt(einstring);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Regeln bei der Bennenung von Variablen===&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Variablen===&lt;br /&gt;
&lt;br /&gt;
==Kapitel 3 - Kontrollstrukturen==&lt;br /&gt;
Da wir uns in Kapitel 2 mit Variablen beschäftigt haben, können wir uns nun dem eigentlichen Aufwand beim Programmieren zuwenden: den Kontrollstrukturen. Diese Wort klingt ersteinmal sehr hochtrabend, an und für sich ist es jedoch sehr einfach.&lt;br /&gt;
&lt;br /&gt;
===If - then - Else===&lt;br /&gt;
Es werden einfach 2 Variablen miteinander verglichen und dann wird darauf reagiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (varl1 = 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist nicht 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist ersteinmal sehr einfach und wirkt auf den ersten Blick sinnlos, was es auch ist. Aber es zeigt auf einfache Art, wie man 2 Werte miteinander vergleicht, dies kann man zum Beispiel dafür nutzen, um zu prüfen wieviel Lageraum ein Schiff noch hat. Dazu aber irgendwann später mehr.&lt;br /&gt;
Bleiben wir bei dem Code und schauen ihn uns einmal genauer an:&lt;br /&gt;
In der ersten Zeile wird die Variable '''var1''' definiert, dies sollte aus Kapitel 2 bekannt sein.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;If (var1 = 1)&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier wird der vergleich durgeführt, in diesem Fall wir geschaut ob der Wert von Zahl1 42 ist. &lt;br /&gt;
Man könnte an dieser Stelle genausogut prüfen ob der Wert größer oder kleiner ist, als ein anderer.&lt;br /&gt;
Hierfür nutzt man dann nicht &amp;quot;=&amp;quot; sondern &amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;=&amp;quot;,&amp;quot;&amp;gt;=&amp;quot;&lt;br /&gt;
Innerhalb der { } folgt dann der Code, welcher ausgehührt werden soll, wenn die Bedigung stimmt, also in diesem Fall, wenn '''var1 ''' gleich 42 ist. &lt;br /&gt;
&lt;br /&gt;
Das folgende ''Else'' mit den Klammern gibt, welche Aktionen ausgeführt werden sollen, wenn die Bedingung nicht stimmt.&lt;br /&gt;
&lt;br /&gt;
Zu guter letzt gibt es noch ''Elseif'' dies ist dafür gedacht wenn man mehr als eine Alternative hat.&lt;br /&gt;
Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 &amp;lt; 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
elseif (var1 &amp;gt; 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist größer als 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist weder größer noch kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist nicht auf ein ''elseif'' beschränkt, es können beliebig viele sein.&lt;br /&gt;
&lt;br /&gt;
===Schleifen===&lt;br /&gt;
Die soeben kennen gelernten Strukturen helfen uns Fallunterscheidungen zu machen. Aber was machen wir wenn wir eine ganze Liste (zum Beispiel Schiffe) haben und die abarbeiten wollen? Dafür gibt es ''Schleifen'', hier unterscheid man in drei Arten: Kopf-, Fuss- und Zählergesteuert.&lt;br /&gt;
====while====&lt;br /&gt;
While Schleifen sind Kopfgesteuert, dass heißt, solange die Bedingung zutrifft, wird der Inhalt der Schleife ausgeführt.&lt;br /&gt;
Es gelten die selben Operatoren wie bei Abfragen mit if: =,&amp;lt;,&amp;gt;,&amp;gt;=,&amp;lt;=,&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 0;&lt;br /&gt;
writeline('Ich zähle jetzt bis Zehn');&lt;br /&gt;
while ( i &amp;lt;= 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solange '''i''' kleiner oder gleich 10 ist, wird '''i''' ausgegeben und dann einen hochgezählt. &lt;br /&gt;
Bei Whileschleifen ist zu beachten, dass wenn die Bedingung zu Anfang bereits '''nicht''' erfüllt ist, dass sie dann nicht durchläuft. Soll sie mindestens einmal durchlaufen muss man Fussgesteuerte Schleifen wählen.&lt;br /&gt;
====Do====&lt;br /&gt;
Do-Schleifen sind Fussgesteuert. Sie funktionieren wie While-Schleifen nur das sie mindestens einmal durchlaufen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 10;&lt;br /&gt;
writeline('Ich zähle jetzt bis Null');&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
  i = i -1;&lt;br /&gt;
}&lt;br /&gt;
Do (i &amp;gt;= 0);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Gebe '''i''' solange aus und zähle einen runter, solange '''i''' größer gleich null ist.&lt;br /&gt;
Aus der Beschreibung wird deutlich wo der unterschied zwischen While- und Do-Schleifen liegt.&lt;br /&gt;
&lt;br /&gt;
In beiden Schleifen wird deutlich das ich jedes mal die Variable '''i''' runter bzw. hochzählen muss, um dies zu umgehen gibt es die möglichkeit Zählergesteuerte Schleifen zu verwenden.&lt;br /&gt;
====For====&lt;br /&gt;
For-Schleifen sind genau dies. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
auf diese Weise kann man sich ein wenig Arbeit abnehmen, da die Schleife einem das Zählen abnimmt. So kann man auch Endlosschleifen vermeiden, die auftreten wenn man vergisst, die Schleifenvariable (in diesen Fällen immer '''i''') runter- bzw. hochzuzählen.&lt;br /&gt;
&lt;br /&gt;
For-Schleifen bieten noch eine weitere Möglichkeit: Es kann angegeben werden in welchen Schritten die Schleife zählt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 100 Step 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Code ist der bis auf das ''Step'' identisch. Die Zahl die hinter Step steht kann sowohl positiv als auch negativ sein.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 4 - Der Shipmanager - Einführung==&lt;br /&gt;
Nachdem wir nun über ein paar Grundlagen verfügen, wollen wir uns den wirklich interessanten Dingen zuwenden, der Steuerung von Spielinhalten durch Scripte.&lt;br /&gt;
&lt;br /&gt;
Um mit Schiffen zu interagieren gibt es eine Sammlung von Methoden, welche im Shipmanager zu finden sind.&lt;br /&gt;
Hierzu müssen wir dem Shipmanager als erstes Mitteilen, welches bzw. welche Flotte er verwenden soll.&lt;br /&gt;
&lt;br /&gt;
Hierführ gibt es die Befehle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Shipmanager.BenutzeSchiff(NCC-Nummer des Schiffes);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Shipmanager.BenutzeFlotte(ID der Flotte);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit weiß der Shipmanager schonmal welches Schiff, bzw. welche Flotte die Aktionen ausführen soll.&lt;br /&gt;
&lt;br /&gt;
Mit dem Shipmanager können folgende Aktionen ausgeführt werden:&lt;br /&gt;
*An- und Abdocken&lt;br /&gt;
*Alarm Stufe ändern&lt;br /&gt;
*Aus Flotten austreten&lt;br /&gt;
*Aus Orbit einfliegen austreten &lt;br /&gt;
*Benennen(Name As String)&lt;br /&gt;
*Deuterium sammeln (Nur mit FP)&lt;br /&gt;
*Erz sammeln (Nur mit FP)&lt;br /&gt;
*Fliegen&lt;br /&gt;
*Sensoren aktivieren / deaktivieren&lt;br /&gt;
*Reparieren&lt;br /&gt;
*Batterien entladen&lt;br /&gt;
*Schilde aktivieren/deaktiviere/aufladen&lt;br /&gt;
*Reservebatterie aufladen&lt;br /&gt;
*Traktorstrahl ein- / ausschalten&lt;br /&gt;
*Beamen&lt;br /&gt;
*Verstecken&lt;br /&gt;
*Replikator aktivieren/deaktivieren&lt;br /&gt;
*Waren über Bord werfen&lt;br /&gt;
*Warpkern aktiveren/deaktivieren&lt;br /&gt;
*Wrackextraktoren&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Auflistung aller Funktionen findet sich im [http://game.stne.net/ObjectExplorer.aspx?p=CShipManager Objekt-Explorer].&lt;br /&gt;
&lt;br /&gt;
Im folgenden wollen wir uns einige Funktionen genauer anschauen:&lt;br /&gt;
===Beamen===&lt;br /&gt;
kommt noch&lt;br /&gt;
===Fliege===&lt;br /&gt;
kommt noch&lt;br /&gt;
===Schiffsystem nutzen===&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
(hier dürfen sich diejenigen verewigen die hier min. ein Kapitel geschrieben haben [sonst kommt noch einer daher nur weil er nen Rechtschreibfehler verbessert hat ;)])&lt;br /&gt;
{|&lt;br /&gt;
!Nickname&lt;br /&gt;
!IG-id&lt;br /&gt;
!Kapitel&lt;br /&gt;
|-&lt;br /&gt;
|WiZz4Rd&lt;br /&gt;
|16475&lt;br /&gt;
|Kapitel 1, Kapitel 2&lt;br /&gt;
|-&lt;br /&gt;
|Stryke&lt;br /&gt;
|28885&lt;br /&gt;
|Vorwort, Kapitel 3, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|[[Spieler:Xenon|Xenon]]&lt;br /&gt;
|10127&lt;br /&gt;
|Korrektur &amp;amp; Überarbeitung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Anfängerkurs]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs</id>
		<title>Scripting:Anfängerkurs</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs"/>
				<updated>2006-06-23T12:37:45Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: Es gibt keinen Datentypen &amp;quot;str&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
'''Hier wird in nächster Zeit ein Anfängerkurs für die STNE-Scriptengine entstehen. Wer mithelfen will oder bereits jetzt fragen hat kann sich vertrauensvoll an uns wenden, einfach im irc den channel #scripting joinen!'''&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Dieser Kurs richtet sich vor allem an diejenigen, die zuvor noch nie mit Programmierung zu tun hatten und trotzdem gerne Scripts für STNE schreiben würden. Die sollen hier auf möglichst einfache Weise einen Einstieg finden. &lt;br /&gt;
Aber bitte erwartet keine Wunder, niemand der keine Ahnung vom Programieren hat, kann dies über Nacht lernen. Daher ist insbesondere eine Sache von enormer Wichtigkeit: Geduld – denn nur wer mit Geduld die Sachen angeht wird letzten Endes mit einem funktionieren Script belohnt. Wer die schnellen Erfolge sucht, der sollte es gleich lassen.&lt;br /&gt;
Wir wünschen allen viel Spaß und gutes Gelingen.&lt;br /&gt;
==Kapitel 1 - Strings==&lt;br /&gt;
===String? - Kann man das essen?===&lt;br /&gt;
'''Nein''', ein String (englisch) oder eine Zeichenkette, ist eine Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen, und Steuerzeichen) aus einem definierten Zeichensatz.&lt;br /&gt;
&lt;br /&gt;
Nun wissen wir also, was dieser ominöse String überhaupt ist. Wenden wir uns nun zur Ausgabe von Strings!&lt;br /&gt;
&lt;br /&gt;
=== Ausgabe von Strings ===&lt;br /&gt;
In diesem Kapitel werden wir uns der einfachen Ausgabe von Strings zuwenden. Um einen String auszugeben, müssen wir uns natürlich erst einmal überlegen was wir überhaupt ausgeben wollen. Nehmen wir als Beispiel einfach ''&amp;quot;Hallo!&amp;quot;''. Als Nächstes müssen wir wissen wie wir der Engine sagen, dass sie etwas ausgeben soll! Dies geschieht mit dem Befehl ''writeline();''.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;writeline('Hallo!');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Klammern steht immer der String, der ausgegeben werden soll. Die einfachen Anführungszeichen sagen dem Befehl, dass das Nachfolgende ein String und keine Variable ist (Was eine Variable ist erfahren wir im nächsten Kapitel). Das Semikolon signalisiert der Engine, dass der Befehl hier endet, dies wird nicht bei jedem Befehl benötigt.&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mehrere Strings nach einander ausgeben möchte, ist es natürlich unsinnig, für jedes Wort einen neuen ''writeline();'' Befehl auszuführen. Also kann man Strings an einander reihen. Hierzu setzt man einfach ein ''&amp;amp;''-Zeichen zwischen die Strings. Natürlich kann man auch die jeweiligen Strings einfach, wie wir noch später lernen durch Variablen ersetzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;writeline('Hallo!' &amp;amp; ' Wie geht es?');&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wichtig hierbei ist, dass das ''&amp;amp;''-Zeichen kein Leerzeichen einfügt. Dies muss manuell innerhalb des Strings passieren.&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Strings===&lt;br /&gt;
&lt;br /&gt;
* Ein String ist eine Folge von verschiedenen Zeichen.&lt;br /&gt;
* Zum Ausgeben von Strings wird ''writeline();'' verwendet.&lt;br /&gt;
* Es ist möglich mehrere Strings bzw. Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''writeline();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 2 - Variablen==&lt;br /&gt;
===Variablen? - Schon wieder was zum futtern?===&lt;br /&gt;
'''Nein''', lediglich ein weiterer Fachbegriff der Programmierer. Variablen sind eine Art von Platzhalter, in denen man Informationen, wie zum Beispiel Strings, für eine spätere Verwendung abspeichern kann. Natürlich gibt es für verschiedene Informationen ganz spezielle und verschiedene Variablentypen, die man auch [[Scripting:Datentypen|Datentypen]] nennt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten [[Scripting:Datentypen|Datentypen]] sind:&lt;br /&gt;
* String  - &lt;br /&gt;
* Integer -&lt;br /&gt;
* Boolean -&lt;br /&gt;
&lt;br /&gt;
===Variablen setzen===&lt;br /&gt;
Da das Arbeiten mit statischen Daten auf Dauer, vor allem bei längeren Scripten, ziemlich zeitaufwendig und unflexibel ist, verwendet man Variablen. Diese speichern Daten, geben sie auf Wunsch aus und lassen sich auch belibig oft verändern.&lt;br /&gt;
&lt;br /&gt;
Um eine Variable zu erschaffen verwendet man den Befehl ''var''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach ''var'' kommt dann der Variablen Name, dieser darf Zahlen und Buchstaben enthalten. Zahlen allerdings nur mit einer Ausnahme, sie dürfen nicht an erster Stelle stehen. optional danach kann ein as stehen (as, engl., als) dieses gibt an was für einen Inhalt die Variable hat, zb. str für string also eine Zeichenkette. Hier ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;var i1 as str&amp;lt;/pre&amp;gt;&lt;br /&gt;
Um einer Variable einen Inhalt zuzuordnen setzt man die Variable vor ein Gleichheitszeichen, dahinter kommt dann der Inhalt in unserem nächsten Beispiel ein String.&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as string&lt;br /&gt;
test = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
man kann das ganze auch in eine Zeile packen, das sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as string = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier sehen wir wieder die einfachen Anführungszeichen als Kennzeichen für einen String. Wir können Variablen aber auch andere Werte wie Integer oder Bolean zuweisen. Dazu einfach str durch den jewaligen Typ ersetzten.(Liste der Typen: [[Scripting:Typen|klick mich]])&lt;br /&gt;
&lt;br /&gt;
Auch kann man die Variable &amp;quot;leeren&amp;quot; hirzu gibt man ihr einfach nichts mit, hier auch dazu ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as string = 'Hallo!'&lt;br /&gt;
test = ''&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele mit Variablen===&lt;br /&gt;
 var test as string = 'Hallo!'&lt;br /&gt;
 writeline( test &amp;amp; ' Wie gehts?');&lt;br /&gt;
Auch hier ist weider zu beachten das kein Leerzeiche eingefügt wird! Die Variable kann an jeder Stelle innerhalb der Klammern stehen, zu beachten ist nur das sie nicht innerhalb von Anführungszeichen steht sonst wird die Variable als String gewertet.&lt;br /&gt;
 var test as string = 'Hallo!'&lt;br /&gt;
 writeline(test);&lt;br /&gt;
Hier wird nun zum Beispiel nur eine Variable ausgegeben.&lt;br /&gt;
&lt;br /&gt;
===Umwandlung von Variablen in andere Datentypen===&lt;br /&gt;
Wollen wir eine Integer-Variable ausgeben, so bekommen wir ein Problem. Der Computer verarbeitet Integer intern anders als String. String kann er ausgeben Integer nicht. Daher müssen alle Integervariablen (wie allen anderen auch) in Stringvariablen umgewandelt werden, bevor man diese ausgeben kann.&lt;br /&gt;
Die geschieht über den Befehl &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CStr();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR zahl AS Integer;&lt;br /&gt;
zahl = 5;&lt;br /&gt;
writeline(CStr(Zahl));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umgekehrt müssen Stringvariablen in Integer umgewandelt werden, wenn mit diesen zum Beispiel gerechnet werden soll.&lt;br /&gt;
Dies geschießt über:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CInt();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR einstring AS String;&lt;br /&gt;
VAR einezahl AS Integer;&lt;br /&gt;
einstring = '42';&lt;br /&gt;
einezahl = CInt(einstring);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Regeln bei der Bennenung von Variablen===&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Variablen===&lt;br /&gt;
&lt;br /&gt;
==Kapitel 3 - Kontrollstrukturen==&lt;br /&gt;
Da wir uns in Kapitel 2 mit Variablen beschäftigt haben, können wir uns nun dem eigentlichen Aufwand beim Programmieren zuwenden: den Kontrollstrukturen. Diese Wort klingt ersteinmal sehr hochtrabend, an und für sich ist es jedoch sehr einfach.&lt;br /&gt;
&lt;br /&gt;
===If - then - Else===&lt;br /&gt;
Es werden einfach 2 Variablen miteinander verglichen und dann wird darauf reagiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (varl1 = 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist nicht 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist ersteinmal sehr einfach und wirkt auf den ersten Blick sinnlos, was es auch ist. Aber es zeigt auf einfache Art, wie man 2 Werte miteinander vergleicht, dies kann man zum Beispiel dafür nutzen, um zu prüfen wieviel Lageraum ein Schiff noch hat. Dazu aber irgendwann später mehr.&lt;br /&gt;
Bleiben wir bei dem Code und schauen ihn uns einmal genauer an:&lt;br /&gt;
In der ersten Zeile wird die Variable '''var1''' definiert, dies sollte aus Kapitel 2 bekannt sein.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;If (var1 = 1)&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier wird der vergleich durgeführt, in diesem Fall wir geschaut ob der Wert von Zahl1 42 ist. &lt;br /&gt;
Man könnte an dieser Stelle genausogut prüfen ob der Wert größer oder kleiner ist, als ein anderer.&lt;br /&gt;
Hierfür nutzt man dann nicht &amp;quot;=&amp;quot; sondern &amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;=&amp;quot;,&amp;quot;&amp;gt;=&amp;quot;&lt;br /&gt;
Innerhalb der { } folgt dann der Code, welcher ausgehührt werden soll, wenn die Bedigung stimmt, also in diesem Fall, wenn '''var1 ''' gleich 42 ist. &lt;br /&gt;
&lt;br /&gt;
Das folgende ''Else'' mit den Klammern gibt, welche Aktionen ausgeführt werden sollen, wenn die Bedingung nicht stimmt.&lt;br /&gt;
&lt;br /&gt;
Zu guter letzt gibt es noch ''Elseif'' dies ist dafür gedacht wenn man mehr als eine Alternative hat.&lt;br /&gt;
Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 &amp;lt; 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
elseif (var1 &amp;gt; 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist größer als 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist weder größer noch kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist nicht auf ein ''elseif'' beschränkt, es können beliebig viele sein.&lt;br /&gt;
&lt;br /&gt;
===Schleifen===&lt;br /&gt;
Die soeben kennen gelernten Strukturen helfen uns Fallunterscheidungen zu machen. Aber was machen wir wenn wir eine ganze Liste (zum Beispiel Schiffe) haben und die abarbeiten wollen? Dafür gibt es ''Schleifen'', hier unterscheid man in drei Arten: Kopf-, Fuss- und Zählergesteuert.&lt;br /&gt;
====while====&lt;br /&gt;
While Schleifen sind Kopfgesteuert, dass heißt, solange die Bedingung zutrifft, wird der Inhalt der Schleife ausgeführt.&lt;br /&gt;
Es gelten die selben Operatoren wie bei Abfragen mit if: =,&amp;lt;,&amp;gt;,&amp;gt;=,&amp;lt;=,&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 0;&lt;br /&gt;
writeline('Ich zähle jetzt bis Zehn');&lt;br /&gt;
while ( i &amp;lt;= 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solange '''i''' kleiner oder gleich 10 ist, wird '''i''' ausgegeben und dann einen hochgezählt. &lt;br /&gt;
Bei Whileschleifen ist zu beachten, dass wenn die Bedingung zu Anfang bereits '''nicht''' erfüllt ist, dass sie dann nicht durchläuft. Soll sie mindestens einmal durchlaufen muss man Fussgesteuerte Schleifen wählen.&lt;br /&gt;
====Do====&lt;br /&gt;
Do-Schleifen sind Fussgesteuert. Sie funktionieren wie While-Schleifen nur das sie mindestens einmal durchlaufen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 10;&lt;br /&gt;
writeline('Ich zähle jetzt bis Null');&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
  i = i -1;&lt;br /&gt;
}&lt;br /&gt;
Do (i &amp;gt;= 0);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Gebe '''i''' solange aus und zähle einen runter, solange '''i''' größer gleich null ist.&lt;br /&gt;
Aus der Beschreibung wird deutlich wo der unterschied zwischen While- und Do-Schleifen liegt.&lt;br /&gt;
&lt;br /&gt;
In beiden Schleifen wird deutlich das ich jedes mal die Variable '''i''' runter bzw. hochzählen muss, um dies zu umgehen gibt es die möglichkeit Zählergesteuerte Schleifen zu verwenden.&lt;br /&gt;
====For====&lt;br /&gt;
For-Schleifen sind genau dies. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
auf diese Weise kann man sich ein wenig Arbeit abnehmen, da die Schleife einem das Zählen abnimmt. So kann man auch Endlosschleifen vermeiden, die auftreten wenn man vergisst, die Schleifenvariable (in diesen Fällen immer '''i''') runter- bzw. hochzuzählen.&lt;br /&gt;
&lt;br /&gt;
For-Schleifen bieten noch eine weitere Möglichkeit: Es kann angegeben werden in welchen Schritten die Schleife zählt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 100 Step 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Code ist der bis auf das ''Step'' identisch. Die Zahl die hinter Step steht kann sowohl positiv als auch negativ sein.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 4 - Der Shipmanager - Einführung==&lt;br /&gt;
Nachdem wir nun über ein paar Grundlagen verfügen, wollen wir uns den wirklich interessanten Dingen zuwenden, der Steuerung von Spielinhalten durch Scripte.&lt;br /&gt;
&lt;br /&gt;
Um mit Schiffen zu interagieren gibt es eine Sammlung von Methoden, welche im Shipmanager zu finden sind.&lt;br /&gt;
Hierzu müssen wir dem Shipmanager als erstes Mitteilen, welches bzw. welche Flotte er verwenden soll.&lt;br /&gt;
&lt;br /&gt;
Hierführ gibt es die Befehle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Shipmanager.BenutzeSchiff(NCC-Nummer des Schiffes);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Shipmanager.BenutzeFlotte(ID der Flotte);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit weiß der Shipmanager schonmal welches Schiff, bzw. welche Flotte die Aktionen ausführen soll.&lt;br /&gt;
&lt;br /&gt;
Mit dem Shipmanager können folgende Aktionen ausgeführt werden:&lt;br /&gt;
*An- und Abdocken&lt;br /&gt;
*Alarm Stufe ändern&lt;br /&gt;
*Aus Flotten austreten&lt;br /&gt;
*Aus Orbit einfliegen austreten &lt;br /&gt;
*Benennen(Name As String)&lt;br /&gt;
*Deuterium sammeln (Nur mit FP)&lt;br /&gt;
*Erz sammeln (Nur mit FP)&lt;br /&gt;
*Fliegen&lt;br /&gt;
*Sensoren aktivieren / deaktivieren&lt;br /&gt;
*Reparieren&lt;br /&gt;
*Batterien entladen&lt;br /&gt;
*Schilde aktivieren/deaktiviere/aufladen&lt;br /&gt;
*Reservebatterie aufladen&lt;br /&gt;
*Traktorstrahl ein- / ausschalten&lt;br /&gt;
*Beamen&lt;br /&gt;
*Verstecken&lt;br /&gt;
*Replikator aktivieren/deaktivieren&lt;br /&gt;
*Waren über Bord werfen&lt;br /&gt;
*Warpkern aktiveren/deaktivieren&lt;br /&gt;
*Wrackextraktoren&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Auflistung aller Funktionen findet sich im [http://game.stne.net/ObjectExplorer.aspx?p=CShipManager Objekt-Explorer].&lt;br /&gt;
&lt;br /&gt;
Im folgenden wollen wir uns einige Funktionen genauer anschauen:&lt;br /&gt;
===Beamen===&lt;br /&gt;
kommt noch&lt;br /&gt;
===Fliege===&lt;br /&gt;
kommt noch&lt;br /&gt;
===Schiffsystem nutzen===&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
(hier dürfen sich diejenigen verewigen die hier min. ein Kapitel geschrieben haben [sonst kommt noch einer daher nur weil er nen Rechtschreibfehler verbessert hat ;)])&lt;br /&gt;
{|&lt;br /&gt;
!Nickname&lt;br /&gt;
!IG-id&lt;br /&gt;
!Kapitel&lt;br /&gt;
|-&lt;br /&gt;
|WiZz4Rd&lt;br /&gt;
|16475&lt;br /&gt;
|Kapitel 1, Kapitel 2&lt;br /&gt;
|-&lt;br /&gt;
|Stryke&lt;br /&gt;
|28885&lt;br /&gt;
|Vorwort, Kapitel 3, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|[[Spieler:Xenon|Xenon]]&lt;br /&gt;
|10127&lt;br /&gt;
|Korrektur &amp;amp; Überarbeitung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Anfängerkurs]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs</id>
		<title>Scripting:Anfängerkurs</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs"/>
				<updated>2006-06-23T12:36:46Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: /* Variablen setzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
'''Hier wird in nächster Zeit ein Anfängerkurs für die STNE-Scriptengine entstehen. Wer mithelfen will oder bereits jetzt fragen hat kann sich vertrauensvoll an uns wenden, einfach im irc den channel #scripting joinen!'''&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Dieser Kurs richtet sich vor allem an diejenigen, die zuvor noch nie mit Programmierung zu tun hatten und trotzdem gerne Scripts für STNE schreiben würden. Die sollen hier auf möglichst einfache Weise einen Einstieg finden. &lt;br /&gt;
Aber bitte erwartet keine Wunder, niemand der keine Ahnung vom Programieren hat, kann dies über Nacht lernen. Daher ist insbesondere eine Sache von enormer Wichtigkeit: Geduld – denn nur wer mit Geduld die Sachen angeht wird letzten Endes mit einem funktionieren Script belohnt. Wer die schnellen Erfolge sucht, der sollte es gleich lassen.&lt;br /&gt;
Wir wünschen allen viel Spaß und gutes Gelingen.&lt;br /&gt;
==Kapitel 1 - Strings==&lt;br /&gt;
===String? - Kann man das essen?===&lt;br /&gt;
'''Nein''', ein String (englisch) oder eine Zeichenkette, ist eine Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen, und Steuerzeichen) aus einem definierten Zeichensatz.&lt;br /&gt;
&lt;br /&gt;
Nun wissen wir also, was dieser ominöse String überhaupt ist. Wenden wir uns nun zur Ausgabe von Strings!&lt;br /&gt;
&lt;br /&gt;
=== Ausgabe von Strings ===&lt;br /&gt;
In diesem Kapitel werden wir uns der einfachen Ausgabe von Strings zuwenden. Um einen String auszugeben, müssen wir uns natürlich erst einmal überlegen was wir überhaupt ausgeben wollen. Nehmen wir als Beispiel einfach ''&amp;quot;Hallo!&amp;quot;''. Als Nächstes müssen wir wissen wie wir der Engine sagen, dass sie etwas ausgeben soll! Dies geschieht mit dem Befehl ''writeline();''.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;writeline('Hallo!');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Klammern steht immer der String, der ausgegeben werden soll. Die einfachen Anführungszeichen sagen dem Befehl, dass das Nachfolgende ein String und keine Variable ist (Was eine Variable ist erfahren wir im nächsten Kapitel). Das Semikolon signalisiert der Engine, dass der Befehl hier endet, dies wird nicht bei jedem Befehl benötigt.&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mehrere Strings nach einander ausgeben möchte, ist es natürlich unsinnig, für jedes Wort einen neuen ''writeline();'' Befehl auszuführen. Also kann man Strings an einander reihen. Hierzu setzt man einfach ein ''&amp;amp;''-Zeichen zwischen die Strings. Natürlich kann man auch die jeweiligen Strings einfach, wie wir noch später lernen durch Variablen ersetzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;writeline('Hallo!' &amp;amp; ' Wie geht es?');&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wichtig hierbei ist, dass das ''&amp;amp;''-Zeichen kein Leerzeichen einfügt. Dies muss manuell innerhalb des Strings passieren.&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Strings===&lt;br /&gt;
&lt;br /&gt;
* Ein String ist eine Folge von verschiedenen Zeichen.&lt;br /&gt;
* Zum Ausgeben von Strings wird ''writeline();'' verwendet.&lt;br /&gt;
* Es ist möglich mehrere Strings bzw. Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''writeline();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 2 - Variablen==&lt;br /&gt;
===Variablen? - Schon wieder was zum futtern?===&lt;br /&gt;
'''Nein''', lediglich ein weiterer Fachbegriff der Programmierer. Variablen sind eine Art von Platzhalter, in denen man Informationen, wie zum Beispiel Strings, für eine spätere Verwendung abspeichern kann. Natürlich gibt es für verschiedene Informationen ganz spezielle und verschiedene Variablentypen, die man auch [[Scripting:Datentypen|Datentypen]] nennt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten [[Scripting:Datentypen|Datentypen]] sind:&lt;br /&gt;
* String  - &lt;br /&gt;
* Integer -&lt;br /&gt;
* Boolean -&lt;br /&gt;
&lt;br /&gt;
===Variablen setzen===&lt;br /&gt;
Da das Arbeiten mit statischen Daten auf Dauer, vor allem bei längeren Scripten, ziemlich zeitaufwendig und unflexibel ist, verwendet man Variablen. Diese speichern Daten, geben sie auf Wunsch aus und lassen sich auch belibig oft verändern.&lt;br /&gt;
&lt;br /&gt;
Um eine Variable zu erschaffen verwendet man den Befehl ''var''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach ''var'' kommt dann der Variablen Name, dieser darf Zahlen und Buchstaben enthalten. Zahlen allerdings nur mit einer Ausnahme, sie dürfen nicht an erster Stelle stehen. optional danach kann ein as stehen (as, engl., als) dieses gibt an was für einen Inhalt die Variable hat, zb. str für string also eine Zeichenkette. Hier ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;var i1 as str&amp;lt;/pre&amp;gt;&lt;br /&gt;
Um einer Variable einen Inhalt zuzuordnen setzt man die Variable vor ein Gleichheitszeichen, dahinter kommt dann der Inhalt in unserem nächsten Beispiel ein String.&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as string&lt;br /&gt;
test = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
man kann das ganze auch in eine Zeile packen, das sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as str = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier sehen wir wieder die einfachen Anführungszeichen als Kennzeichen für einen String. Wir können Variablen aber auch andere Werte wie Integer oder Bolean zuweisen. Dazu einfach str durch den jewaligen Typ ersetzten.(Liste der Typen: [[Scripting:Typen|klick mich]])&lt;br /&gt;
&lt;br /&gt;
Auch kann man die Variable &amp;quot;leeren&amp;quot; hirzu gibt man ihr einfach nichts mit, hier auch dazu ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as str = 'Hallo!'&lt;br /&gt;
test = ''&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele mit Variablen===&lt;br /&gt;
 var test as str = 'Hallo!'&lt;br /&gt;
 writeline( test &amp;amp; ' Wie gehts?');&lt;br /&gt;
Auch hier ist weider zu beachten das kein Leerzeiche eingefügt wird! Die Variable kann an jeder Stelle innerhalb der Klammern stehen, zu beachten ist nur das sie nicht innerhalb von Anführungszeichen steht sonst wird die Variable als String gewertet.&lt;br /&gt;
 var test as str = 'Hallo!'&lt;br /&gt;
 writeline(test);&lt;br /&gt;
Hier wird nun zum Beispiel nur eine Variable ausgegeben.&lt;br /&gt;
&lt;br /&gt;
===Umwandlung von Variablen in andere Datentypen===&lt;br /&gt;
Wollen wir eine Integer-Variable ausgeben, so bekommen wir ein Problem. Der Computer verarbeitet Integer intern anders als String. String kann er ausgeben Integer nicht. Daher müssen alle Integervariablen (wie allen anderen auch) in Stringvariablen umgewandelt werden, bevor man diese ausgeben kann.&lt;br /&gt;
Die geschieht über den Befehl &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CStr();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR zahl AS Integer;&lt;br /&gt;
zahl = 5;&lt;br /&gt;
writeline(CStr(Zahl));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umgekehrt müssen Stringvariablen in Integer umgewandelt werden, wenn mit diesen zum Beispiel gerechnet werden soll.&lt;br /&gt;
Dies geschießt über:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CInt();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR einstring AS String;&lt;br /&gt;
VAR einezahl AS Integer;&lt;br /&gt;
einstring = '42';&lt;br /&gt;
einezahl = CInt(einstring);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Regeln bei der Bennenung von Variablen===&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Variablen===&lt;br /&gt;
&lt;br /&gt;
==Kapitel 3 - Kontrollstrukturen==&lt;br /&gt;
Da wir uns in Kapitel 2 mit Variablen beschäftigt haben, können wir uns nun dem eigentlichen Aufwand beim Programmieren zuwenden: den Kontrollstrukturen. Diese Wort klingt ersteinmal sehr hochtrabend, an und für sich ist es jedoch sehr einfach.&lt;br /&gt;
&lt;br /&gt;
===If - then - Else===&lt;br /&gt;
Es werden einfach 2 Variablen miteinander verglichen und dann wird darauf reagiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (varl1 = 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist nicht 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist ersteinmal sehr einfach und wirkt auf den ersten Blick sinnlos, was es auch ist. Aber es zeigt auf einfache Art, wie man 2 Werte miteinander vergleicht, dies kann man zum Beispiel dafür nutzen, um zu prüfen wieviel Lageraum ein Schiff noch hat. Dazu aber irgendwann später mehr.&lt;br /&gt;
Bleiben wir bei dem Code und schauen ihn uns einmal genauer an:&lt;br /&gt;
In der ersten Zeile wird die Variable '''var1''' definiert, dies sollte aus Kapitel 2 bekannt sein.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;If (var1 = 1)&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier wird der vergleich durgeführt, in diesem Fall wir geschaut ob der Wert von Zahl1 42 ist. &lt;br /&gt;
Man könnte an dieser Stelle genausogut prüfen ob der Wert größer oder kleiner ist, als ein anderer.&lt;br /&gt;
Hierfür nutzt man dann nicht &amp;quot;=&amp;quot; sondern &amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;=&amp;quot;,&amp;quot;&amp;gt;=&amp;quot;&lt;br /&gt;
Innerhalb der { } folgt dann der Code, welcher ausgehührt werden soll, wenn die Bedigung stimmt, also in diesem Fall, wenn '''var1 ''' gleich 42 ist. &lt;br /&gt;
&lt;br /&gt;
Das folgende ''Else'' mit den Klammern gibt, welche Aktionen ausgeführt werden sollen, wenn die Bedingung nicht stimmt.&lt;br /&gt;
&lt;br /&gt;
Zu guter letzt gibt es noch ''Elseif'' dies ist dafür gedacht wenn man mehr als eine Alternative hat.&lt;br /&gt;
Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 &amp;lt; 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
elseif (var1 &amp;gt; 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist größer als 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist weder größer noch kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist nicht auf ein ''elseif'' beschränkt, es können beliebig viele sein.&lt;br /&gt;
&lt;br /&gt;
===Schleifen===&lt;br /&gt;
Die soeben kennen gelernten Strukturen helfen uns Fallunterscheidungen zu machen. Aber was machen wir wenn wir eine ganze Liste (zum Beispiel Schiffe) haben und die abarbeiten wollen? Dafür gibt es ''Schleifen'', hier unterscheid man in drei Arten: Kopf-, Fuss- und Zählergesteuert.&lt;br /&gt;
====while====&lt;br /&gt;
While Schleifen sind Kopfgesteuert, dass heißt, solange die Bedingung zutrifft, wird der Inhalt der Schleife ausgeführt.&lt;br /&gt;
Es gelten die selben Operatoren wie bei Abfragen mit if: =,&amp;lt;,&amp;gt;,&amp;gt;=,&amp;lt;=,&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 0;&lt;br /&gt;
writeline('Ich zähle jetzt bis Zehn');&lt;br /&gt;
while ( i &amp;lt;= 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solange '''i''' kleiner oder gleich 10 ist, wird '''i''' ausgegeben und dann einen hochgezählt. &lt;br /&gt;
Bei Whileschleifen ist zu beachten, dass wenn die Bedingung zu Anfang bereits '''nicht''' erfüllt ist, dass sie dann nicht durchläuft. Soll sie mindestens einmal durchlaufen muss man Fussgesteuerte Schleifen wählen.&lt;br /&gt;
====Do====&lt;br /&gt;
Do-Schleifen sind Fussgesteuert. Sie funktionieren wie While-Schleifen nur das sie mindestens einmal durchlaufen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 10;&lt;br /&gt;
writeline('Ich zähle jetzt bis Null');&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
  i = i -1;&lt;br /&gt;
}&lt;br /&gt;
Do (i &amp;gt;= 0);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Gebe '''i''' solange aus und zähle einen runter, solange '''i''' größer gleich null ist.&lt;br /&gt;
Aus der Beschreibung wird deutlich wo der unterschied zwischen While- und Do-Schleifen liegt.&lt;br /&gt;
&lt;br /&gt;
In beiden Schleifen wird deutlich das ich jedes mal die Variable '''i''' runter bzw. hochzählen muss, um dies zu umgehen gibt es die möglichkeit Zählergesteuerte Schleifen zu verwenden.&lt;br /&gt;
====For====&lt;br /&gt;
For-Schleifen sind genau dies. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
auf diese Weise kann man sich ein wenig Arbeit abnehmen, da die Schleife einem das Zählen abnimmt. So kann man auch Endlosschleifen vermeiden, die auftreten wenn man vergisst, die Schleifenvariable (in diesen Fällen immer '''i''') runter- bzw. hochzuzählen.&lt;br /&gt;
&lt;br /&gt;
For-Schleifen bieten noch eine weitere Möglichkeit: Es kann angegeben werden in welchen Schritten die Schleife zählt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 100 Step 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Code ist der bis auf das ''Step'' identisch. Die Zahl die hinter Step steht kann sowohl positiv als auch negativ sein.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 4 - Der Shipmanager - Einführung==&lt;br /&gt;
Nachdem wir nun über ein paar Grundlagen verfügen, wollen wir uns den wirklich interessanten Dingen zuwenden, der Steuerung von Spielinhalten durch Scripte.&lt;br /&gt;
&lt;br /&gt;
Um mit Schiffen zu interagieren gibt es eine Sammlung von Methoden, welche im Shipmanager zu finden sind.&lt;br /&gt;
Hierzu müssen wir dem Shipmanager als erstes Mitteilen, welches bzw. welche Flotte er verwenden soll.&lt;br /&gt;
&lt;br /&gt;
Hierführ gibt es die Befehle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Shipmanager.BenutzeSchiff(NCC-Nummer des Schiffes);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Shipmanager.BenutzeFlotte(ID der Flotte);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit weiß der Shipmanager schonmal welches Schiff, bzw. welche Flotte die Aktionen ausführen soll.&lt;br /&gt;
&lt;br /&gt;
Mit dem Shipmanager können folgende Aktionen ausgeführt werden:&lt;br /&gt;
*An- und Abdocken&lt;br /&gt;
*Alarm Stufe ändern&lt;br /&gt;
*Aus Flotten austreten&lt;br /&gt;
*Aus Orbit einfliegen austreten &lt;br /&gt;
*Benennen(Name As String)&lt;br /&gt;
*Deuterium sammeln (Nur mit FP)&lt;br /&gt;
*Erz sammeln (Nur mit FP)&lt;br /&gt;
*Fliegen&lt;br /&gt;
*Sensoren aktivieren / deaktivieren&lt;br /&gt;
*Reparieren&lt;br /&gt;
*Batterien entladen&lt;br /&gt;
*Schilde aktivieren/deaktiviere/aufladen&lt;br /&gt;
*Reservebatterie aufladen&lt;br /&gt;
*Traktorstrahl ein- / ausschalten&lt;br /&gt;
*Beamen&lt;br /&gt;
*Verstecken&lt;br /&gt;
*Replikator aktivieren/deaktivieren&lt;br /&gt;
*Waren über Bord werfen&lt;br /&gt;
*Warpkern aktiveren/deaktivieren&lt;br /&gt;
*Wrackextraktoren&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Auflistung aller Funktionen findet sich im [http://game.stne.net/ObjectExplorer.aspx?p=CShipManager Objekt-Explorer].&lt;br /&gt;
&lt;br /&gt;
Im folgenden wollen wir uns einige Funktionen genauer anschauen:&lt;br /&gt;
===Beamen===&lt;br /&gt;
kommt noch&lt;br /&gt;
===Fliege===&lt;br /&gt;
kommt noch&lt;br /&gt;
===Schiffsystem nutzen===&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
(hier dürfen sich diejenigen verewigen die hier min. ein Kapitel geschrieben haben [sonst kommt noch einer daher nur weil er nen Rechtschreibfehler verbessert hat ;)])&lt;br /&gt;
{|&lt;br /&gt;
!Nickname&lt;br /&gt;
!IG-id&lt;br /&gt;
!Kapitel&lt;br /&gt;
|-&lt;br /&gt;
|WiZz4Rd&lt;br /&gt;
|16475&lt;br /&gt;
|Kapitel 1, Kapitel 2&lt;br /&gt;
|-&lt;br /&gt;
|Stryke&lt;br /&gt;
|28885&lt;br /&gt;
|Vorwort, Kapitel 3, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|[[Spieler:Xenon|Xenon]]&lt;br /&gt;
|10127&lt;br /&gt;
|Korrektur &amp;amp; Überarbeitung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Anfängerkurs]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs</id>
		<title>Scripting:Anfängerkurs</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Anf%C3%A4ngerkurs"/>
				<updated>2006-06-23T12:35:48Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: /* Variablen setzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
'''Hier wird in nächster Zeit ein Anfängerkurs für die STNE-Scriptengine entstehen. Wer mithelfen will oder bereits jetzt fragen hat kann sich vertrauensvoll an uns wenden, einfach im irc den channel #scripting joinen!'''&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Vorwort==&lt;br /&gt;
Dieser Kurs richtet sich vor allem an diejenigen, die zuvor noch nie mit Programmierung zu tun hatten und trotzdem gerne Scripts für STNE schreiben würden. Die sollen hier auf möglichst einfache Weise einen Einstieg finden. &lt;br /&gt;
Aber bitte erwartet keine Wunder, niemand der keine Ahnung vom Programieren hat, kann dies über Nacht lernen. Daher ist insbesondere eine Sache von enormer Wichtigkeit: Geduld – denn nur wer mit Geduld die Sachen angeht wird letzten Endes mit einem funktionieren Script belohnt. Wer die schnellen Erfolge sucht, der sollte es gleich lassen.&lt;br /&gt;
Wir wünschen allen viel Spaß und gutes Gelingen.&lt;br /&gt;
==Kapitel 1 - Strings==&lt;br /&gt;
===String? - Kann man das essen?===&lt;br /&gt;
'''Nein''', ein String (englisch) oder eine Zeichenkette, ist eine Folge von Zeichen (z.B. Buchstaben, Ziffern, Sonderzeichen, und Steuerzeichen) aus einem definierten Zeichensatz.&lt;br /&gt;
&lt;br /&gt;
Nun wissen wir also, was dieser ominöse String überhaupt ist. Wenden wir uns nun zur Ausgabe von Strings!&lt;br /&gt;
&lt;br /&gt;
=== Ausgabe von Strings ===&lt;br /&gt;
In diesem Kapitel werden wir uns der einfachen Ausgabe von Strings zuwenden. Um einen String auszugeben, müssen wir uns natürlich erst einmal überlegen was wir überhaupt ausgeben wollen. Nehmen wir als Beispiel einfach ''&amp;quot;Hallo!&amp;quot;''. Als Nächstes müssen wir wissen wie wir der Engine sagen, dass sie etwas ausgeben soll! Dies geschieht mit dem Befehl ''writeline();''.&lt;br /&gt;
&lt;br /&gt;
Hier ein kleines Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;writeline('Hallo!');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In den Klammern steht immer der String, der ausgegeben werden soll. Die einfachen Anführungszeichen sagen dem Befehl, dass das Nachfolgende ein String und keine Variable ist (Was eine Variable ist erfahren wir im nächsten Kapitel). Das Semikolon signalisiert der Engine, dass der Befehl hier endet, dies wird nicht bei jedem Befehl benötigt.&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mehrere Strings nach einander ausgeben möchte, ist es natürlich unsinnig, für jedes Wort einen neuen ''writeline();'' Befehl auszuführen. Also kann man Strings an einander reihen. Hierzu setzt man einfach ein ''&amp;amp;''-Zeichen zwischen die Strings. Natürlich kann man auch die jeweiligen Strings einfach, wie wir noch später lernen durch Variablen ersetzen.&lt;br /&gt;
&amp;lt;pre&amp;gt;writeline('Hallo!' &amp;amp; ' Wie geht es?');&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wichtig hierbei ist, dass das ''&amp;amp;''-Zeichen kein Leerzeichen einfügt. Dies muss manuell innerhalb des Strings passieren.&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Strings===&lt;br /&gt;
&lt;br /&gt;
* Ein String ist eine Folge von verschiedenen Zeichen.&lt;br /&gt;
* Zum Ausgeben von Strings wird ''writeline();'' verwendet.&lt;br /&gt;
* Es ist möglich mehrere Strings bzw. Variablen mit Hilfe des ''&amp;amp;''-Zeichens innerhalb des Befehls ''writeline();'' regelrecht anzuhängen.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 2 - Variablen==&lt;br /&gt;
===Variablen? - Schon wieder was zum futtern?===&lt;br /&gt;
'''Nein''', lediglich ein weiterer Fachbegriff der Programmierer. Variablen sind eine Art von Platzhalter, in denen man Informationen, wie zum Beispiel Strings, für eine spätere Verwendung abspeichern kann. Natürlich gibt es für verschiedene Informationen ganz spezielle und verschiedene Variablentypen, die man auch [[Scripting:Datentypen|Datentypen]] nennt.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten [[Scripting:Datentypen|Datentypen]] sind:&lt;br /&gt;
* String  - &lt;br /&gt;
* Integer -&lt;br /&gt;
* Boolean -&lt;br /&gt;
&lt;br /&gt;
===Variablen setzen===&lt;br /&gt;
Da das Arbeiten mit statischen Daten auf Dauer, vor allem bei längeren Scripten, ziemlich zeitaufwendig und unflexibel ist, verwendet man Variablen. Diese speichern Daten, geben sie auf Wunsch aus und lassen sich auch belibig oft verändern.&lt;br /&gt;
&lt;br /&gt;
Um eine Variable zu erschaffen verwendet man den Befehl ''var''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach ''var'' kommt dann der Variablen Name, dieser darf Zahlen und Buchstaben enthalten. Zahlen allerdings nur mit einer Ausnahme, sie dürfen nicht an erster Stelle stehen. optional danach kann ein as stehen (as, engl., als) dieses gibt an was für einen Inhalt die Variable hat, zb. str für string also eine Zeichenkette. Hier ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;var i1 as str&amp;lt;/pre&amp;gt;&lt;br /&gt;
Um einer Variable einen Inhalt zuzuordnen setzt man die Variable vor ein Gleichheitszeichen, dahinter kommt dann der Inhalt in unserem nächsten Beispiel ein String.&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as str&lt;br /&gt;
test = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
man kann das ganze auch in eine Zeile packen, das sieht dann wie folgt aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as str = 'Hallo!'&amp;lt;/pre&amp;gt;&lt;br /&gt;
Auch hier sehen wir wieder die einfachen Anführungszeichen als Kennzeichen für einen String. Wir können Variablen aber auch andere Werte wie Integer oder Bolean zuweisen. Dazu einfach str durch den jewaligen Typ ersetzten.(Liste der Typen: [[Scripting:Typen|klick mich]])&lt;br /&gt;
&lt;br /&gt;
Auch kann man die Variable &amp;quot;leeren&amp;quot; hirzu gibt man ihr einfach nichts mit, hier auch dazu ein Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;var test as str = 'Hallo!'&lt;br /&gt;
test = ''&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele mit Variablen===&lt;br /&gt;
 var test as str = 'Hallo!'&lt;br /&gt;
 writeline( test &amp;amp; ' Wie gehts?');&lt;br /&gt;
Auch hier ist weider zu beachten das kein Leerzeiche eingefügt wird! Die Variable kann an jeder Stelle innerhalb der Klammern stehen, zu beachten ist nur das sie nicht innerhalb von Anführungszeichen steht sonst wird die Variable als String gewertet.&lt;br /&gt;
 var test as str = 'Hallo!'&lt;br /&gt;
 writeline(test);&lt;br /&gt;
Hier wird nun zum Beispiel nur eine Variable ausgegeben.&lt;br /&gt;
&lt;br /&gt;
===Umwandlung von Variablen in andere Datentypen===&lt;br /&gt;
Wollen wir eine Integer-Variable ausgeben, so bekommen wir ein Problem. Der Computer verarbeitet Integer intern anders als String. String kann er ausgeben Integer nicht. Daher müssen alle Integervariablen (wie allen anderen auch) in Stringvariablen umgewandelt werden, bevor man diese ausgeben kann.&lt;br /&gt;
Die geschieht über den Befehl &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CStr();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR zahl AS Integer;&lt;br /&gt;
zahl = 5;&lt;br /&gt;
writeline(CStr(Zahl));&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Umgekehrt müssen Stringvariablen in Integer umgewandelt werden, wenn mit diesen zum Beispiel gerechnet werden soll.&lt;br /&gt;
Dies geschießt über:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;CInt();&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR einstring AS String;&lt;br /&gt;
VAR einezahl AS Integer;&lt;br /&gt;
einstring = '42';&lt;br /&gt;
einezahl = CInt(einstring);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Regeln bei der Bennenung von Variablen===&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
===Zusammenfassung: Variablen===&lt;br /&gt;
&lt;br /&gt;
==Kapitel 3 - Kontrollstrukturen==&lt;br /&gt;
Da wir uns in Kapitel 2 mit Variablen beschäftigt haben, können wir uns nun dem eigentlichen Aufwand beim Programmieren zuwenden: den Kontrollstrukturen. Diese Wort klingt ersteinmal sehr hochtrabend, an und für sich ist es jedoch sehr einfach.&lt;br /&gt;
&lt;br /&gt;
===If - then - Else===&lt;br /&gt;
Es werden einfach 2 Variablen miteinander verglichen und dann wird darauf reagiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (varl1 = 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist nicht 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist ersteinmal sehr einfach und wirkt auf den ersten Blick sinnlos, was es auch ist. Aber es zeigt auf einfache Art, wie man 2 Werte miteinander vergleicht, dies kann man zum Beispiel dafür nutzen, um zu prüfen wieviel Lageraum ein Schiff noch hat. Dazu aber irgendwann später mehr.&lt;br /&gt;
Bleiben wir bei dem Code und schauen ihn uns einmal genauer an:&lt;br /&gt;
In der ersten Zeile wird die Variable '''var1''' definiert, dies sollte aus Kapitel 2 bekannt sein.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;If (var1 = 1)&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier wird der vergleich durgeführt, in diesem Fall wir geschaut ob der Wert von Zahl1 42 ist. &lt;br /&gt;
Man könnte an dieser Stelle genausogut prüfen ob der Wert größer oder kleiner ist, als ein anderer.&lt;br /&gt;
Hierfür nutzt man dann nicht &amp;quot;=&amp;quot; sondern &amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;=&amp;quot;,&amp;quot;&amp;gt;=&amp;quot;&lt;br /&gt;
Innerhalb der { } folgt dann der Code, welcher ausgehührt werden soll, wenn die Bedigung stimmt, also in diesem Fall, wenn '''var1 ''' gleich 42 ist. &lt;br /&gt;
&lt;br /&gt;
Das folgende ''Else'' mit den Klammern gibt, welche Aktionen ausgeführt werden sollen, wenn die Bedingung nicht stimmt.&lt;br /&gt;
&lt;br /&gt;
Zu guter letzt gibt es noch ''Elseif'' dies ist dafür gedacht wenn man mehr als eine Alternative hat.&lt;br /&gt;
Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR var1 AS Integer = 42;&lt;br /&gt;
if (var1 &amp;lt; 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
elseif (var1 &amp;gt; 42)&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist größer als 42');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  writeline('var1 ist weder größer noch kleiner als 42');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dies ist nicht auf ein ''elseif'' beschränkt, es können beliebig viele sein.&lt;br /&gt;
&lt;br /&gt;
===Schleifen===&lt;br /&gt;
Die soeben kennen gelernten Strukturen helfen uns Fallunterscheidungen zu machen. Aber was machen wir wenn wir eine ganze Liste (zum Beispiel Schiffe) haben und die abarbeiten wollen? Dafür gibt es ''Schleifen'', hier unterscheid man in drei Arten: Kopf-, Fuss- und Zählergesteuert.&lt;br /&gt;
====while====&lt;br /&gt;
While Schleifen sind Kopfgesteuert, dass heißt, solange die Bedingung zutrifft, wird der Inhalt der Schleife ausgeführt.&lt;br /&gt;
Es gelten die selben Operatoren wie bei Abfragen mit if: =,&amp;lt;,&amp;gt;,&amp;gt;=,&amp;lt;=,&amp;lt;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 0;&lt;br /&gt;
writeline('Ich zähle jetzt bis Zehn');&lt;br /&gt;
while ( i &amp;lt;= 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solange '''i''' kleiner oder gleich 10 ist, wird '''i''' ausgegeben und dann einen hochgezählt. &lt;br /&gt;
Bei Whileschleifen ist zu beachten, dass wenn die Bedingung zu Anfang bereits '''nicht''' erfüllt ist, dass sie dann nicht durchläuft. Soll sie mindestens einmal durchlaufen muss man Fussgesteuerte Schleifen wählen.&lt;br /&gt;
====Do====&lt;br /&gt;
Do-Schleifen sind Fussgesteuert. Sie funktionieren wie While-Schleifen nur das sie mindestens einmal durchlaufen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
i = 10;&lt;br /&gt;
writeline('Ich zähle jetzt bis Null');&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
  i = i -1;&lt;br /&gt;
}&lt;br /&gt;
Do (i &amp;gt;= 0);&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Gebe '''i''' solange aus und zähle einen runter, solange '''i''' größer gleich null ist.&lt;br /&gt;
Aus der Beschreibung wird deutlich wo der unterschied zwischen While- und Do-Schleifen liegt.&lt;br /&gt;
&lt;br /&gt;
In beiden Schleifen wird deutlich das ich jedes mal die Variable '''i''' runter bzw. hochzählen muss, um dies zu umgehen gibt es die möglichkeit Zählergesteuerte Schleifen zu verwenden.&lt;br /&gt;
====For====&lt;br /&gt;
For-Schleifen sind genau dies. &lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
auf diese Weise kann man sich ein wenig Arbeit abnehmen, da die Schleife einem das Zählen abnimmt. So kann man auch Endlosschleifen vermeiden, die auftreten wenn man vergisst, die Schleifenvariable (in diesen Fällen immer '''i''') runter- bzw. hochzuzählen.&lt;br /&gt;
&lt;br /&gt;
For-Schleifen bieten noch eine weitere Möglichkeit: Es kann angegeben werden in welchen Schritten die Schleife zählt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
VAR i AS Integer;&lt;br /&gt;
For ( i = 0 To 100 Step 10)&lt;br /&gt;
{&lt;br /&gt;
  writeline(CStr(i));&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Code ist der bis auf das ''Step'' identisch. Die Zahl die hinter Step steht kann sowohl positiv als auch negativ sein.&lt;br /&gt;
&lt;br /&gt;
==Kapitel 4 - Der Shipmanager - Einführung==&lt;br /&gt;
Nachdem wir nun über ein paar Grundlagen verfügen, wollen wir uns den wirklich interessanten Dingen zuwenden, der Steuerung von Spielinhalten durch Scripte.&lt;br /&gt;
&lt;br /&gt;
Um mit Schiffen zu interagieren gibt es eine Sammlung von Methoden, welche im Shipmanager zu finden sind.&lt;br /&gt;
Hierzu müssen wir dem Shipmanager als erstes Mitteilen, welches bzw. welche Flotte er verwenden soll.&lt;br /&gt;
&lt;br /&gt;
Hierführ gibt es die Befehle:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Shipmanager.BenutzeSchiff(NCC-Nummer des Schiffes);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;Shipmanager.BenutzeFlotte(ID der Flotte);&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit weiß der Shipmanager schonmal welches Schiff, bzw. welche Flotte die Aktionen ausführen soll.&lt;br /&gt;
&lt;br /&gt;
Mit dem Shipmanager können folgende Aktionen ausgeführt werden:&lt;br /&gt;
*An- und Abdocken&lt;br /&gt;
*Alarm Stufe ändern&lt;br /&gt;
*Aus Flotten austreten&lt;br /&gt;
*Aus Orbit einfliegen austreten &lt;br /&gt;
*Benennen(Name As String)&lt;br /&gt;
*Deuterium sammeln (Nur mit FP)&lt;br /&gt;
*Erz sammeln (Nur mit FP)&lt;br /&gt;
*Fliegen&lt;br /&gt;
*Sensoren aktivieren / deaktivieren&lt;br /&gt;
*Reparieren&lt;br /&gt;
*Batterien entladen&lt;br /&gt;
*Schilde aktivieren/deaktiviere/aufladen&lt;br /&gt;
*Reservebatterie aufladen&lt;br /&gt;
*Traktorstrahl ein- / ausschalten&lt;br /&gt;
*Beamen&lt;br /&gt;
*Verstecken&lt;br /&gt;
*Replikator aktivieren/deaktivieren&lt;br /&gt;
*Waren über Bord werfen&lt;br /&gt;
*Warpkern aktiveren/deaktivieren&lt;br /&gt;
*Wrackextraktoren&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Auflistung aller Funktionen findet sich im [http://game.stne.net/ObjectExplorer.aspx?p=CShipManager Objekt-Explorer].&lt;br /&gt;
&lt;br /&gt;
Im folgenden wollen wir uns einige Funktionen genauer anschauen:&lt;br /&gt;
===Beamen===&lt;br /&gt;
kommt noch&lt;br /&gt;
===Fliege===&lt;br /&gt;
kommt noch&lt;br /&gt;
===Schiffsystem nutzen===&lt;br /&gt;
kommt noch&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
(hier dürfen sich diejenigen verewigen die hier min. ein Kapitel geschrieben haben [sonst kommt noch einer daher nur weil er nen Rechtschreibfehler verbessert hat ;)])&lt;br /&gt;
{|&lt;br /&gt;
!Nickname&lt;br /&gt;
!IG-id&lt;br /&gt;
!Kapitel&lt;br /&gt;
|-&lt;br /&gt;
|WiZz4Rd&lt;br /&gt;
|16475&lt;br /&gt;
|Kapitel 1, Kapitel 2&lt;br /&gt;
|-&lt;br /&gt;
|Stryke&lt;br /&gt;
|28885&lt;br /&gt;
|Vorwort, Kapitel 3, Kapitel 4&lt;br /&gt;
|-&lt;br /&gt;
|[[Spieler:Xenon|Xenon]]&lt;br /&gt;
|10127&lt;br /&gt;
|Korrektur &amp;amp; Überarbeitung&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Anfängerkurs]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Datentypen</id>
		<title>Scripting:Datentypen</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Datentypen"/>
				<updated>2006-06-23T12:32:57Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: Konvertierungen hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
Dieser Artikel beinhaltet eine Auflistung sämtlicher Typen die eine Variable haben kann. (in Arbeit)&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Name&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Umwandlung durch&lt;br /&gt;
|-&lt;br /&gt;
| Char&lt;br /&gt;
| Zeichen&lt;br /&gt;
| CChar()&lt;br /&gt;
|-&lt;br /&gt;
| String &lt;br /&gt;
| Zeichenkette&lt;br /&gt;
| CStr()&lt;br /&gt;
|-&lt;br /&gt;
| Integer&lt;br /&gt;
| Ganze Zahl(32 Bit)&lt;br /&gt;
| CInt()&lt;br /&gt;
|-&lt;br /&gt;
| Long&lt;br /&gt;
| &lt;br /&gt;
| CLng()&lt;br /&gt;
|-&lt;br /&gt;
| Double&lt;br /&gt;
|&lt;br /&gt;
| CDbl()&lt;br /&gt;
|-&lt;br /&gt;
| Short&lt;br /&gt;
|&lt;br /&gt;
| CShort()&lt;br /&gt;
|-&lt;br /&gt;
| Date&lt;br /&gt;
|&lt;br /&gt;
| CDate()&lt;br /&gt;
|-&lt;br /&gt;
| Boolean&lt;br /&gt;
| &lt;br /&gt;
| CBool()&lt;br /&gt;
|-&lt;br /&gt;
| Byte&lt;br /&gt;
|&lt;br /&gt;
| CByte()&lt;br /&gt;
|-&lt;br /&gt;
| (Array)&lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Syntax</id>
		<title>Scripting:Syntax</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Syntax"/>
				<updated>2006-06-04T16:16:22Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=Allgemeines=&lt;br /&gt;
* Bei Variablennamen wird grundsätzlich auf Groß- und Kleinschreibung geachtet.&lt;br /&gt;
* Jeder Befehl muss durch ein ; abgeschlossen werden. Du kannst im Prinzip auch alle Befehle in eine Zeile schreiben. Das ; fungiert als Trenner.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=Deklarieren von Variabeln=&lt;br /&gt;
Variablen sind ähnlich wie Platzhalter. Variabeln können je nach Typ bestimmte Werte oder Zustände aufnehmen und wieder abgeben.&lt;br /&gt;
&lt;br /&gt;
'''var''' ''Variabelname'' '''As''' ''Typ''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var str as string;&lt;br /&gt;
var num as integer = 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zeichenketten: Werden in ' ODER &amp;quot; eingeschlossen. Wenn das Quote-Zeichen in String verwendet werden soll, einfach zwei mal schreiben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var str as string = 'Schönes Wetter heute';&lt;br /&gt;
var str2 as string = 'Karl''s Wurst';&lt;br /&gt;
var str3 as string = &amp;quot;Karl's Wurst&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Bedingungen=&lt;br /&gt;
If-Bedingung: IF (Bedingung) {Wahr-Block} ELSE {Falsch-Block}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var IstSchön as boolean = true;&lt;br /&gt;
if (IstSchön)&lt;br /&gt;
{&lt;br /&gt;
 WriteLine('Das Wetter ist schön');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
 WriteLine('Heute mal nicht');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Else + Block kann auch weggelassen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if (IstSchön)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('Das Wetter ist schön');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist auch möglich, im das Else mit Hilfe von &amp;quot;ELSEIF&amp;quot; direkt als neue Bedingung zu definieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var i as integer = 3;&lt;br /&gt;
&lt;br /&gt;
if (i=1)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(i);&lt;br /&gt;
}&lt;br /&gt;
elseif (i=2)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(i);&lt;br /&gt;
}&lt;br /&gt;
elseif (i=3)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(i);&lt;br /&gt;
}&lt;br /&gt;
elseif (i=4)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(i);&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(&amp;quot;Keine Übereinstimmung gefunden.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Schleifen=&lt;br /&gt;
&lt;br /&gt;
==While-Schleife==&lt;br /&gt;
&lt;br /&gt;
Mit While wird ein Codeblock so lange ausgeführt, wie eine Bedingung wahr ist. Die While-Schleife nennt sich auch auch Kopf-gesteuerte Schleife.&lt;br /&gt;
&lt;br /&gt;
Syntax: WHILE (Bedingung) {Auszuführender Code}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var i as integer=0;&lt;br /&gt;
&lt;br /&gt;
While (i &amp;lt; 3)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(i);&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Do-Schleife==&lt;br /&gt;
&lt;br /&gt;
Die Do-Schleife ist ähnlich der While-Schleife, mit dem Unterschied, dass die Bedingung erst am Ende des Codeblocks ausgewertet wird, das heißt, dass der Codeblock also mindestens ausgeführt wird. Die Do-Schleife nennt sich auch Fuß-gesteuerte Schleife.&lt;br /&gt;
&lt;br /&gt;
Syntax: {Auszuführender Code} DO (Bedingung);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var i as integer=0;&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(i);&lt;br /&gt;
  i = i + 1;&lt;br /&gt;
}&lt;br /&gt;
Do (i &amp;lt; 3);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==For-Schleife==&lt;br /&gt;
&lt;br /&gt;
Die For-Schleife führt eine Codeblock so lange aus, bis eine bestimmte Anzahl von Durchläufen erreicht wurde. Die For-Schleife nennt sich auch Zähler-gesteuerte Schleife.&lt;br /&gt;
&lt;br /&gt;
Syntax:&amp;lt;br&amp;gt;&lt;br /&gt;
FOR (Zählervariable = Startwert TO Endwert) {Auszuführender Code}&amp;lt;br&amp;gt;&lt;br /&gt;
FOR (Zählervariable = Startwert TO Endwert STEP Schrittweite) {Auszuführender Code}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var i as integer;&lt;br /&gt;
&lt;br /&gt;
For (i = 0 To 9);&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(i);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
For (i = 90 To 0 Step -10);&lt;br /&gt;
{&lt;br /&gt;
  WriteLine(i);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Syntax]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Syntax</id>
		<title>Scripting:Syntax</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Syntax"/>
				<updated>2006-06-04T15:34:05Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Allgemeines==&lt;br /&gt;
* Bei Variablennamen wird grundsätzlich auf Groß- und Kleinschreibung geachtet.&lt;br /&gt;
* Jeder Befehl muss durch ein ; abgeschlossen werden. Du kannst im Prinzip auch alle Befehle in eine Zeile schreiben. Das ; fungiert als Trenner.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==Deklarieren von Variabeln==&lt;br /&gt;
'''var''' ''Variabelname'' '''As''' ''Typ''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;var str as string;&lt;br /&gt;
var num as integer = 5;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zeichenketten: Werden in ' ODER &amp;quot; eingeschlossen. Wenn das Quote-Zeichen in String verwendet werden soll, einfach zwei mal schreiben.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;var str as string = 'Schönes Wetter heute';&lt;br /&gt;
var str2 as string = 'Karl''s Wurst';&lt;br /&gt;
var str3 as string = &amp;quot;Karl's Wurst&amp;quot;;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bedingungen==&lt;br /&gt;
If-Bedingung: IF (Bedingung) {Wahr-Block} ELSE {Falsch-Block}&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;var IstSchön as boolean = true;&lt;br /&gt;
if (IstSchön)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('Das Wetter ist schön');&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('Heute mal nicht');&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Else + Block kann auch weggelassen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;if (IstSchön)&lt;br /&gt;
{&lt;br /&gt;
  WriteLine('Das Wetter ist schön');&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Kategorie:Scripting-Hilfe|Syntax]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:Deutsammeln(flotte)</id>
		<title>Scripting:Deutsammeln(flotte)</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:Deutsammeln(flotte)"/>
				<updated>2006-05-21T12:51:04Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Scriptingmenue}}&lt;br /&gt;
&lt;br /&gt;
=Deutsammeln per Flotte=&lt;br /&gt;
==Das Skript==&lt;br /&gt;
 ShipManager.BenutzeFlotte(flottenid);&lt;br /&gt;
 VAR Cargoship AS NEW CMyShip(Lagerschiff)&lt;br /&gt;
 VAR Tankship AS NEW CMyShip(Tankschiff)&lt;br /&gt;
 VAR freeCargo AS int32&lt;br /&gt;
 VAR Energi AS int32&lt;br /&gt;
 VAR Ticks AS int32&lt;br /&gt;
 freeCargo = Cargoship.Lager.FreieKapazität&lt;br /&gt;
 Energi = Tankship.Energie&lt;br /&gt;
 writeline(freeCargo);&lt;br /&gt;
 writeline(Energi);&lt;br /&gt;
 IF(freeCargo&amp;lt;900)&lt;br /&gt;
 {&lt;br /&gt;
   writeline('Bitte etwas Lager auf Lager 1 Schaffen, das Deuterium kann nicht Transportiert werden!');&lt;br /&gt;
 }&lt;br /&gt;
 ELSE&lt;br /&gt;
 {&lt;br /&gt;
   IF(Energi=30)&lt;br /&gt;
   {&lt;br /&gt;
     ShipManager.Abdocken();&lt;br /&gt;
     ShipManager.DeuteriumSammeln(30);&lt;br /&gt;
     ShipManager.AndockenAn(264979);&lt;br /&gt;
     ShipManager.TransferiereZuSchiff(275244, 150, EBeamRessource.Deuterium);&lt;br /&gt;
   }&lt;br /&gt;
   ELSE&lt;br /&gt;
   {&lt;br /&gt;
     Ticks = ((30 - Energi) / 6)&lt;br /&gt;
     writeline('Leider ist noch nicht genügen Energie da, benötigt werden 30 vorhanden ist ' &amp;amp; Energi &amp;amp; ' Energie, du musst noch ' &amp;amp; Ticks &amp;amp; ' Ticks warten.');&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
==Komentar==&lt;br /&gt;
Das ganze Skript ist auf Sammeln mit 6 [[Indus]] in einem [[Deuterium-Nebel|dichten Deuteriumnebel]] und das Lagern auf einer [[Antares B]] zugeschnitten,außerdem sollte eine Basisvorhanden sein, über welche die Waren transferiert werden könnnen. Wenn z.B. mit Sunhawks gesammelt wird muss man&lt;br /&gt;
 IF(Energi=30)&lt;br /&gt;
durch&lt;br /&gt;
 IF(Energi=40)&lt;br /&gt;
ersetzten, außerdem muss der Wert beim Beamen erhöt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auch muss der Beam-Wert gesenkt werden wenn man nur in einem [[Deuterium-Nebel|dünnen Deuteriumnebel]] sammelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripte]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting_Diskussion:Deutsammeln(flotte)</id>
		<title>Scripting Diskussion:Deutsammeln(flotte)</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting_Diskussion:Deutsammeln(flotte)"/>
				<updated>2006-05-21T12:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bitte in Zukunft die &amp;quot;Du&amp;quot;-Form verwenden und Quelltext einrücken. [[Spieler:Arakis|Arakis]] 14:49, 21. Mai 2006 (W. Europe Daylight Time)&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting_Diskussion:Deutsammeln(flotte)</id>
		<title>Scripting Diskussion:Deutsammeln(flotte)</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting_Diskussion:Deutsammeln(flotte)"/>
				<updated>2006-05-21T12:48:45Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bitte die &amp;quot;Du&amp;quot;-Form verwenden.&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	<entry>
		<id>https://wiki.stne.net/index.php?title=Scripting:BinarySearch</id>
		<title>Scripting:BinarySearch</title>
		<link rel="alternate" type="text/html" href="https://wiki.stne.net/index.php?title=Scripting:BinarySearch"/>
				<updated>2006-05-18T06:52:56Z</updated>
		
		<summary type="html">&lt;p&gt;Arakis: /* Der ultimative Test */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Der BinarySearch=&lt;br /&gt;
&lt;br /&gt;
Er wird verwendet um sortierte Arrays (z.B. mit [[Scripting:BubbleSort|BubbleSort]] vorsortiert) nach einer Zahl zu durchsuchen.&lt;br /&gt;
BinarySearch ist erheblich schneller wie ein Linearer Search, spart Ressourcen sowie Rechen- und Ausführungszeit.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;ACHTUNG!!!&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt; Diese Funktion ist mit &amp;lt;u&amp;gt;&amp;lt;b&amp;gt;array.binarysearch()&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt; unnötig geworden! Bitte den Algorythmus wegen Performancegründen &amp;lt;b&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;NICHT&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt; auf Dauer nutzen und &amp;lt;b&amp;gt;&amp;lt;u&amp;gt;nur für Lehrzwecke&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt; einsetzten!&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Der Search ist so programmiert, dass der Array nicht kopiert werden muß, sondern lediglich ein Speicherverweis dazu hergestellt wird. Das Array, welches als Quelle dient, wird dabei nicht verändert.&lt;br /&gt;
&lt;br /&gt;
==Die Syntax==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;BinarySearch&amp;lt;/b&amp;gt; wird ganz einfach als &amp;lt;b&amp;gt;Methode&amp;lt;/b&amp;gt; aufgerufen:&lt;br /&gt;
&lt;br /&gt;
   BinarySearch(Verwendetes-Array,Länge-des-Array,Gesuchte-Zahl,SpeicherVariable);&lt;br /&gt;
&lt;br /&gt;
Die Methode ist &amp;lt;b&amp;gt;VOID&amp;lt;/b&amp;gt; da eine andere Umsetzung zum Entwicklungszeitpunkt (Version 0.1 Pre Alpha) nocht nicht zur Verfügung stand!&lt;br /&gt;
&lt;br /&gt;
In der Variablen &amp;lt;b&amp;gt;SpeicherVariable&amp;lt;/b&amp;gt; wird das Ergebnis, ein Wert &amp;lt;b&amp;gt;zwischen 0 und Länge-des-Array&amp;lt;/b&amp;gt;, gespeichert.&amp;lt;br&amp;gt;&lt;br /&gt;
Sollte die gesuchte Zahl &amp;lt;b&amp;gt;nicht gefunden&amp;lt;/b&amp;gt; werden, ist &amp;lt;b&amp;gt;SpeicherVariable&amp;lt;/b&amp;gt; nach der Verarbeitung &amp;lt;b&amp;gt;-1&amp;lt;/b&amp;gt;!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Hinweiß:&amp;lt;/b&amp;gt; Es wurde ein Workarround benötigt, da das Vergleichen der Ausdrücke zum Entwicklungszeitpunkt nur einzeln und mit &amp;lt;b&amp;gt;&amp;quot;&amp;lt;&amp;quot;&amp;lt;/b&amp;gt; sowie &amp;lt;b&amp;gt;&amp;quot;&amp;gt;&amp;quot;&amp;lt;/b&amp;gt; möglich war!&lt;br /&gt;
&lt;br /&gt;
==Der Algorythmus==&lt;br /&gt;
&lt;br /&gt;
Der ganze Algorythmus ist als Methode verwirklicht worden. Dies ermöglicht die unveränderte übernahme des Quellcodes, siehe unten.&lt;br /&gt;
&lt;br /&gt;
 function BinarySearch(ByRef a as array, aSe as integer) as integer {&lt;br /&gt;
   var aG as integer;&lt;br /&gt;
   var aL as integer = a.Length;&lt;br /&gt;
   var p1 as integer=0;&lt;br /&gt;
   var p2 as integer=aL;&lt;br /&gt;
   var c as integer=0;&lt;br /&gt;
 &lt;br /&gt;
   While(true){&lt;br /&gt;
     aG=(p1+p2)/2;&lt;br /&gt;
     if(a[aG]&amp;lt;aSe){p1=aG;}&lt;br /&gt;
     if(a[aG]&amp;gt;aSe){p2=aG;}&lt;br /&gt;
     if(a[aG]=aSe){return aG}&lt;br /&gt;
    &lt;br /&gt;
     if(c&amp;gt;aL){return -1}&lt;br /&gt;
     c++;&lt;br /&gt;
   }&lt;br /&gt;
  &lt;br /&gt;
   return -1;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Der ultimative Test==&lt;br /&gt;
&lt;br /&gt;
Um den Suchalgorythmus zu testen, könnt ihr beispielsweise folgendes schreiben:&lt;br /&gt;
&lt;br /&gt;
 var arr[] as integer = { 2, 9, 14, 16, 39, 48, 52, 70, 89, 94 };&lt;br /&gt;
 var aSearch as integer = 29;&lt;br /&gt;
 var aGoal as integer = 0;&lt;br /&gt;
 &lt;br /&gt;
 WriteLine(' ');&lt;br /&gt;
 &lt;br /&gt;
 WriteLine('Suche nach Zahl ' &amp;amp; aSearch &amp;amp; '...');&lt;br /&gt;
 aGoal = BinarySearch(arr, aSearch);&lt;br /&gt;
 &lt;br /&gt;
 if(aGoal&amp;lt;0){&lt;br /&gt;
   WriteLine('Die gesuchte Zahl ' &amp;amp; aSearch &amp;amp; ' befindet sich nicht im angegebenen Array!');&lt;br /&gt;
 }&lt;br /&gt;
 else {&lt;br /&gt;
   WriteLine('Die gesuchte Zahl ' &amp;amp; aSearch &amp;amp; ' befindet sich an Position ' &amp;amp; aGoal &amp;amp; '!');&lt;br /&gt;
 }&lt;br /&gt;
 WriteLine(' ');   &lt;br /&gt;
 &lt;br /&gt;
 aSearch = 39&lt;br /&gt;
 &lt;br /&gt;
 WriteLine('Suche nach Zahl ' &amp;amp; aSearch &amp;amp; '...');&lt;br /&gt;
 aGoal = BinarySearch(arr, aSearch);&lt;br /&gt;
 &lt;br /&gt;
 if(aGoal&amp;lt;0){&lt;br /&gt;
   WriteLine('Die gesuchte Zahl befindet sich nicht im angegebenen Array!');&lt;br /&gt;
 }&lt;br /&gt;
 else {&lt;br /&gt;
   WriteLine('Die gesuchte Zahl ' &amp;amp; aSearch &amp;amp; ' befindet sich an Position ' &amp;amp; aGoal &amp;amp; '!');&lt;br /&gt;
 }&lt;br /&gt;
 WriteLine(' ');&lt;br /&gt;
&lt;br /&gt;
==Der Erfolg==&lt;br /&gt;
&lt;br /&gt;
   Script gestartet.&lt;br /&gt;
   &lt;br /&gt;
   Suche nach Zahl 29...&lt;br /&gt;
   Die gesuchte Zahl 29 befindet sich nicht im angegebenen Array!&lt;br /&gt;
   &lt;br /&gt;
   Suche nach Zahl 39...&lt;br /&gt;
   Die gesuchte Zahl 39 befindet sich an Position 4!&lt;br /&gt;
   &lt;br /&gt;
   Script beendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Anmerkung:&amp;lt;/b&amp;gt; &amp;quot;Position 4&amp;quot; bedeutet natürlich Zahl 5, da für ein Array die Zahl 0 auch relevant ist. Es wird also ab 0 und nicht von 1 weg gezählt!&lt;br /&gt;
&lt;br /&gt;
Viel Spaß mit BinarySearch!&lt;br /&gt;
&lt;br /&gt;
MFG Proximo&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Scripting|BinarySearch]]&lt;/div&gt;</summary>
		<author><name>Arakis</name></author>	</entry>

	</feed>