Scripting:Funktionen
Aus STNE-Wiki
Funktionen
Ich möchte hier, speziell für Anfänger, einige Basisfunktionen zeigen. Diese dürfen natürlich gerne auch für eigene Scripte verwendet werden. Manche Dinge braucht man fast immer, daher wäre es doch Zeitverschwendung, alles jedes Mal neu zu schreiben. Ich hoffe, dass aus diesem Artikel eine kleine Sammlung von Basisfunktionen wird.
Function GetDistance(id1 As Integer, id2 As Integer) As Integer { Var iDistance As Integer = 0; Var iDistanceX As Integer = 0; Var iDistanceY As Integer = 0; Var iX1 As Integer = 0; Var iX2 As Integer = 0; Var iY1 As Integer = 0; Var iY2 As Integer = 0; Var Ship1 As New CMyShip (id1); Var Ship2 As New CMyShip (id2); iX1 = Ship1.MapPosition.X; iY1 = Ship1.MapPosition.Y; iX2 = Ship2.MapPosition.X; iY2 = Ship2.MapPosition.Y; iDistanceX = Math.Abs(iX1 - iX2); iDistanceY = Math.Abs(iY1 - iY2); iDistance = iDistanceX + iDistanceX Return iDistance; }
Diese Funktion berechnet die Distanz zwischen zwei Schiffen. Aufgerufen wird sie mit GetDistance(123456,654321), wobei zwei Schiffs-IDs eingegeben werden müssen. Die Funktion liefert dann den absoluten Abstandswert als Ganzzahl. Mit abstand = GetDistance.... erhält die Variable "abstand" den Wert der Entfernung, z.B. "14".
Function GetPosition(id As Integer) As String { Var sPos As String = ''; Var iX As Integer = 0; Var iY As Integer = 0; Var bOrbit As Boolean = 0; Var Ship As New CMyShip (id); iX = Ship.MapPosition.X; iY = Ship.MapPosition.Y; If(Ship.MapPosition.InOrbit) {sPos = '@';} sPos = sPos & CStr(iX) & '|' & CStr(iY); Return sPos; }
Diese Funktion gibt die Position eines Schiffes als String aus. Aufgerufen wird sie mit GetPosition(123456), wobei eine Schiffs-ID eingegeben werden muss. Die Funktion liefert dann einen String mit den Koordinaten, also z.B. 187|433. Ist das Schiff im Orbit, wird ein @ vor den String gesetzt. Mit dieser Funktion kann dan z.B. myShip.Aktion.FliegeZu(GetPosition(123456)) ausgeführt werden.
Weitere Funktionen folgen.