04.12.2016, 18:43
So, hier die Variante mit Timer ![Smile Smile](https://www.gridtalk.de/images/smilies/smile.gif)
Der Timerintervall liegt scheinbar wirklich bei 0.5. Wenn man ihn tiefer setzt bringt es nichts.
Aber ein halber Meter Schrittweite ist ein recht guter Wert. Größer wird ruckelig, kleiner, dauert zu lange.
![Smile Smile](https://www.gridtalk.de/images/smilies/smile.gif)
Der Timerintervall liegt scheinbar wirklich bei 0.5. Wenn man ihn tiefer setzt bringt es nichts.
Aber ein halber Meter Schrittweite ist ein recht guter Wert. Größer wird ruckelig, kleiner, dauert zu lange.
Code:
// Moni Till 11.16 Public Domain
// Aufzug /Elevator mit Timer
vector sitrot = <00,00,-90>; // Blickrichtung im Fahrstuhl
vector sitpos = <0.00000, 0.00000, 0.9>; // Position u. Standhöhe im Fahrstuhl
integer kanal=45680; // Jeder Aufzug ein eigener Kanal.
vector etage;
float intervall= 0.4;
float schrittweite = 0.5;
// Wichtig! Vor Betriebnahme erst gegen eigene Positionen tauschen
list etagenliste=[<109.66835, 123.50688, 74.33848>,<109.66835, 123.50688, 78.51722>,<109.66835, 123.50688, 81.92284>];
default
{
state_entry()
{
llListen( kanal, "", NULL_KEY, "" );
vector rot=sitrot*DEG_TO_RAD;
rotation finalrot=llEuler2Rot(rot);
llSitTarget(sitpos,finalrot);
}
listen( integer channel, string name, key id, string msg)
{
llSetTimerEvent(intervall);
etage=llList2Vector(etagenliste,((integer)msg)-1 );
}
changed(integer change)
{
if (llAvatarOnSitTarget() != NULL_KEY)
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
}
run_time_permissions(integer perm)
{
llStopAnimation("sit");
}
timer()
{
vector jetztPos = llGetPos();
vector zielPos =jetztPos;
if (llFabs(jetztPos.z - etage.z) < 1)
{
llSetTimerEvent(0.0);
// Fahrstuhl ist angekommen, Timer aus.
llSetPos(etage);
}
else
{
if (jetztPos.z > etage.z)
{
zielPos.z =jetztPos.z-schrittweite;
llSetPos(zielPos);
}
else
{
zielPos.z =jetztPos.z+schrittweite;
llSetPos(zielPos);
}
}
}
}
Degolburg:
24h online und ca. 10 % fertig
Taxi: 85.214.150.139:9000:Degolburg
24h online und ca. 10 % fertig
Taxi: 85.214.150.139:9000:Degolburg