ich habe zur Zeit wieder eine Script-Idee. Dazu möchte ich aber temporär eine Sonne an festgelegten x, y, z-Koordinaten erstellen.
Bitte aber jetzt nicht über Sinn oder Unsinn dieses Unterfanges diskutieren!
Was aber bei Asteroiden, Schiffen, Specials etc. einwandfrei klappt, ist mit Sonnen anscheinend nicht möglich?!
Ich habe dazu einmal ein einfaches Testscript geschrieben, dass für sich gesehen keinen Sinn ergibt und nur die Problematik verdeutlichen soll.
Code: Select all
001 $sector = [PLAYERSHIP] -> get sector
002 skip if get player tracking aim
003 |goto label ende
004
005 * Nachfolgend wird das vom Player erfasste Objekt in einer Variable gespeichert
006 $tracking = get player tracking aim
007
008 * x, y, z Koordinaten des vom Spieler erfassten Objektes
009 $x.tracking = $tracking -> get x position
010 $y.tracking = $tracking -> get y position
011 $z.tracking = $tracking -> get z position
012
013 * Eine Sonne soll genau an den Koordinaten des erfassten Objektes erstellt werden
014 * Leider funktioniert das nicht?! Ich weiß nicht warum...
015 $dummy = create sun: subtype=5 r=200 g=150 b=230 addto=$sector x=$x.tracking y=$y.tracking z=$z.tracking
016 $dummy -> ignore collisions: 1
017
018 * Hier werden die x, y, z - Koordinaten der erstellten Sonne erfasst.
019 $dummy.x = $dummy -> get x position
020 $dummy.y = $dummy -> get y position
021 $dummy.z = $dummy -> get z position
022
023 * Hier werden jeweils die x, y, z - Koordinaten des erfassten Objektes und
024 * der erstellten Sonne nacheinander im Logbuch erfasst.
025 write to player logbook $x.tracking
026 write to player logbook $y.tracking
027 write to player logbook $z.tracking
028 write to player logbook $dummy.x
029 write to player logbook $dummy.y
030 write to player logbook $dummy.z
031
032 @ = wait 10000 ms
033 $dummy -> destruct: show no explosion=[TRUE]
034
035 * ...weil es bei anderen Objekten einwandfrei funktioniert!
036 * Hier am Beispiel eines Asteroiden.
037 $dummy = create asteroid: type=2 addto=$sector resource=0 yield=0 x=$x.tracking y=$y.tracking z=$z.tracking
038 $dummy -> ignore collisions: 1
039 @ = wait 10000 ms
040 $dummy -> destruct: show no explosion=[TRUE]
041
042 * Wenn man nach dem Durchlauf des Scripts im Logbuch nachsieht,
043 * so erhällt man jeweils identische x, y, z Koordinatenwerte!
044
045 * Also für das vom Spieler erfasste Objekt und die erstellte Sonne
046 * identische x, y, z - Werte.
047
048 * Dennoch wird die Sonne an völlig anderen Koordinaten erstellt.
049 * Die Abfrage der erstellten Sonne von x, y, z stimmt aber!
050
051 * Ist das ein Bug oder ein Denkfehler oder Scriptfehler???
052 ende:
053 return null
Jedenfalls ergibt es für mich keinen Sinn, warum man Sonnen nicht genau an bestimmten Koordinaten positionieren können sollte,
während es mit allen anderen Objekten geht.
Am besten sieht man es, wenn man ein Objekt ca. 2 bis 3 km entfernt anvisiert und das Script ausführt.
Meist wird die Sonne irgendwo hinter einem erstellt oder eben extrem verschoben vor einem.
Während der nachfolgend als Beispiel erstellte Asteroid korrekt auf dem anvisierten Objekt landet, also den x, y, z - Koordinaten.
Wäre nett, wenn sich hierzu eine Antwort finden liesse und sich evtl. jemand erbarmt es zu testen bzw. etwas hierzu sagen könnte?!
Vielen Dank schon mal.
grüße
daye
