PDA

View Full Version : Position eines Schiffes



Eleasar
14-05-2012, 19:37
Hallo, als Scriptanfänger eine verschämte Frage? Wie mach ich das? Ich möchte die Map Position eine Schiffes abfragen um dann eine Aktion zu setzen.

Wie zum Beispiel, wenn das Schiff bei Position im Orbit ist dann mach das und dass.

Danke wenn sich einer der Scriptmächtigen dazu herab lässt, mir das klar zu machen.

Elchi
15-05-2012, 16:11
wenn du ein CMyShip (z. B. MyShip) hast erkennst du die Koords mit

x = schiff.sector.coordinates.x
und
y = schiff.sector.coordinates.y

lg
Elchi

Eleasar
16-05-2012, 08:42
Danke für die Antwort, irgendwie bring ich aber da was durcheinander. Zum besseren Verstehen, kurz wie ich mir das vorstelle und bitte dann um Berichtigung.

Var Oscoen As New CMyShip (0002000);
//MapPosition definieren
If ( Oscoen.sector.coordinates.360,80)
WriteLine('Oscoen steht bei Bullio');
}
Else
{
WriteLine('Oscoen steht nicht bei Bullio');
}

Es kommt immer eine Fehlermeldung.

steinadler1989
16-05-2012, 09:02
schiff.sector.coordinates.x ist ein funktionsaufruf

müsste also heißen


Var Oscoen As New CMyShip (0002000);
//MapPosition definieren
If ( Oscoen.sector.coordinates.x == 360 & Oscoen.sector.coordinates.y == 80){
WriteLine('Oscoen steht bei Bullio');
}
Else
{
WriteLine('Oscoen steht nicht bei Bullio');
}

und mit


if(Oscoen.MapPosition.InOrbit){

}

fragst du ab, ob das Schiff im Orbit ist

Eleasar
16-05-2012, 09:49
Danke steinadler1989, das hat geholfen. Jetzt kommt wenn ich die x Postion alleine abfrage keine Fehlermeldung, wenn ich es so mache wie du vorgeschlagen, dann kommt die Meldung dass das Schiff nicht dort steht, obwohl es dort steht.

Noch eine Frage, wie kann ich ein Script abbrechen wenn eine Bedingung nicht erfüllt ist?

Elchi
16-05-2012, 17:46
reicht nicht ein "=" in der Abfrage?
Zu der 2. Frage:
geht nicht, aber du kannst den Code in eine Funktion packen und am Ende aufrufen. Mit return beendest du die Funktion:


function tuwas()
{
Response.Add("Hallo");
If(bedingung)
{
return; // hier wird Script angebrochen
}
Response.Add("abc");
}

tuwas();

HerrKoch
17-05-2012, 07:05
Es dürfte eigentlich auch nur ein '=' sein. Früher hatte STNE meine ich sogar geschimpft, wenn du zwei gemacht hast, meine ich mich zu erinnern.
Das Return solltest du sogar ohne Funktion nutzen können, dann würde das gesamte Skript abbrechen.