Snakebite Ewing
Nutzer
Hallo,
Ich habe ein script das den Prim in der z-Achse dehnt.. ihn also zusammenschiebt (Gardine öffnet sich) und aufdehnt (Gardine schließt sich).
da ich aber horizontal öffnen und schliessen will, habe ich die z-Achse im script auf y-Achse geändert, was auch soweit funktioniert.
Der Prim schiebt sich von rechts nach links auf und umgekehrt wieder zusammen. Ich hätte jetzt gerne eine 2. Gardinenhälfte, die sich entgegengesetzt öffnet und schließt. Also auf von links nach rechts und zu umgehehrt, so daß die beiden quasi von der Mitte des Fensters nach aussen hin öffnen - entgegengesetzt eben.
Ein drehen des Prims bringt nichts.. die Richtung der Dehnung bleibt immer gleich. Also muss ich offensichtlich irgendetwas im script umstellen, aber was?
Meine Versuche haben die abenteuerlichsten Ergebnisse gebracht, nur nicht das gewünschte
geht das überhaupt, oder bruch ich evtl ein anderes script?
Vielleicht habt Ihr Rat für mich
Hier das script:
Gruß
Snake
Ich habe ein script das den Prim in der z-Achse dehnt.. ihn also zusammenschiebt (Gardine öffnet sich) und aufdehnt (Gardine schließt sich).
da ich aber horizontal öffnen und schliessen will, habe ich die z-Achse im script auf y-Achse geändert, was auch soweit funktioniert.
Der Prim schiebt sich von rechts nach links auf und umgekehrt wieder zusammen. Ich hätte jetzt gerne eine 2. Gardinenhälfte, die sich entgegengesetzt öffnet und schließt. Also auf von links nach rechts und zu umgehehrt, so daß die beiden quasi von der Mitte des Fensters nach aussen hin öffnen - entgegengesetzt eben.
Ein drehen des Prims bringt nichts.. die Richtung der Dehnung bleibt immer gleich. Also muss ich offensichtlich irgendetwas im script umstellen, aber was?
Meine Versuche haben die abenteuerlichsten Ergebnisse gebracht, nur nicht das gewünschte
geht das überhaupt, oder bruch ich evtl ein anderes script?
Vielleicht habt Ihr Rat für mich
Hier das script:
Code:
integer steps = 25;
vector storedPos;
vector storedSize;
integer Closed = TRUE;
OpenBlinds()
{
if (!Closed)
{
return;
}
llWhisper(0,"Opening blinds");
storedPos = llGetPos();
storedSize = llGetScale();
float stepsize = (storedSize.y - 0.2) /steps;
vector currentSize = storedSize;
vector currentPos = storedPos;
while(currentSize.y > 0.2)
{
currentSize.y -= stepsize;
if (currentSize.y < 0.2)
{
currentSize.y = 0.2;
}
currentPos.y = storedPos.y + ((storedSize.y - currentSize.y)/2);
llSetScale(currentSize);
llSetPos(currentPos);
}
Closed = FALSE;
}
CloseBlinds()
{
if (Closed)
{
return;
}
llWhisper(0,"Closing blinds");
float stepsize = (storedSize.y - 0.2) / steps;
vector currentSize = llGetScale();
vector currentPos = llGetPos();
while (currentSize.y < storedSize.y)
{
currentSize.y += stepsize;
if (currentSize.y > storedPos.y)
{
currentSize.y = storedPos.y;
}
currentPos.y = storedPos.y + ((storedSize.y - currentSize.y)/2);
llSetScale(currentSize);
llSetPos(currentPos);
}
llSetScale(storedSize);
llSetPos(storedPos);
Closed = TRUE;
}
default
{
touch_start(integer total_number)
{
OpenBlinds() ;
state closed;
}
}
state closed
{
touch_start(integer total_number)
{
{
CloseBlinds();
state default;
}
}
}
Gruß
Snake