Scriptfehler? Denkfehler? oder Bug? (Script-Inside) -> geklärt

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

daye
Posts: 263
Joined: Mon, 2. Feb 04, 03:21
x3tc

Scriptfehler? Denkfehler? oder Bug? (Script-Inside) -> geklärt

Post by daye »

Hallo,

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
Was ich mich frage, ob ich einen Denkfehler mache oder aber einen Skriptfehler habe oder es eben ein Bug im Spiel ist?

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 :wink:
Last edited by daye on Sat, 15. Aug 09, 14:03, edited 2 times in total.
X3R/X3TC/X3AP Automatisierte EndProdukt-Preiskalkulation V1.024
X3AP Startszenario Eigenes HQ
X3TC/X3AP Verbesserte Schildeffekte
An d. Tag, wo X-Rebirth eingestampft u. ein echtes X4 angekündigt wird, geb ich ne Party in Omikron Lyrae!
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

Sonnen und Planneten (also Sektorhintergrundobjekte) haben von der gespeicherten Position an noch einen gewissen Koordinatenmultiplikator, mit denen die erfassten / im Spiel verwendeten Koordinaten multipliziert werden um die tatsächlichen Anzeigekoordinaten zu ermitteln.. sprich: sonnen und Planeten sind immer viel weiter vom Sektorzentrum entfernt als die Koordinaten anzeigen.. (und noch ein Tipp wenn du Planeten erstellst: die werden immer in nem Abstand von 800 km zur Sektormitte erstellt, aber immer in der korrekten Richtung.. notfalls mit set position nachhelfen ;) )

EDIT: PS die Lichtquelle der Sonne ist aber interresanter weise an den ermittelbaren Koordinaten, nur die sichtbare Sonne wird weg verschoben...
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)
daye
Posts: 263
Joined: Mon, 2. Feb 04, 03:21
x3tc

Post by daye »

Mensch Klasse, danke für die Aufklärung!

Das wusste ich natürlich nicht, dass da noch ein Koordinatenmultiplikator eine Rolle spielt.
Nur zu dumm, dass es mit "set position" bei der Sonne auch nicht geht.
Anscheinend wird der Koordinatenmultiplikator immer gesetzt.

Das ist natürlich ein herber Rückschlag, wenn sich das so nicht umsetzen lässt.

Aber gut zu wissen, auch das mit den Planeten. Wäre nämlich auch ein Bestandteil der Idee gewesen.

So aber, werde ich das Ganze noch einmal überdenken müssen.

Jedenfalls vielen Dank.

grüße
daye ;-)
X3R/X3TC/X3AP Automatisierte EndProdukt-Preiskalkulation V1.024
X3AP Startszenario Eigenes HQ
X3TC/X3AP Verbesserte Schildeffekte
An d. Tag, wo X-Rebirth eingestampft u. ein echtes X4 angekündigt wird, geb ich ne Party in Omikron Lyrae!

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”