21.06.2018, 15:55
Das ist einer der kleinen Unterschiede zwischen SL und Opensim.
Sowas funktioniert in SL aber nicht in Opensim.
Da ein undefinierter Vektor aber ein ZERO_VECTOR ist müsste folgendes in Opensim zum gleichen Resultat führen:
Irgendwie ist Opensim aber konsequenter, denn interessanterweise geht if(!topos) im SL auch nicht.
Wenn ich das Script richtig verstanden habe, so geht es darum, dass eine von einem anderen Script gesendete Message mit der Position (topos) empfangen wird und damit die Variable topos gesetzt wird. Setzt sich nun ein Avatar auf das Objekt, dann wird geprüft ob topos gesetzt ist und falls ja, wird das Objekt mit dem darauf sitzenden Avatar in der Prozedur go() mit llSetPos(topos) an die Stelle von topos bewegt.
Kompliziert genug ausgedrückt? Dann lass ich die Erklärung des Rests mal lieber bleiben ... es hat aber nur noch mit der visuellen Darstellung zu tun.
Sowas funktioniert in SL aber nicht in Opensim.
Code:
vector topos;
go() {
if(topos) {
// ...
}
}
Da ein undefinierter Vektor aber ein ZERO_VECTOR ist müsste folgendes in Opensim zum gleichen Resultat führen:
Code:
vector topos;
go() {
if(topos != ZERO_VECTOR) {
// ...
}
}
Irgendwie ist Opensim aber konsequenter, denn interessanterweise geht if(!topos) im SL auch nicht.
Wenn ich das Script richtig verstanden habe, so geht es darum, dass eine von einem anderen Script gesendete Message mit der Position (topos) empfangen wird und damit die Variable topos gesetzt wird. Setzt sich nun ein Avatar auf das Objekt, dann wird geprüft ob topos gesetzt ist und falls ja, wird das Objekt mit dem darauf sitzenden Avatar in der Prozedur go() mit llSetPos(topos) an die Stelle von topos bewegt.
Kompliziert genug ausgedrückt? Dann lass ich die Erklärung des Rests mal lieber bleiben ... es hat aber nur noch mit der visuellen Darstellung zu tun.