Sophie Reiter
Aktiver Nutzer
Hallo zusammen,
habe ein Skript geschrieben, welches u.a. eine eigene Sitzanimation auf einem Objekt darstellt, sobald der AV sich auf das Objekt setzt.
Funktioniert soweit auch wunderbar.
Wenn nun das Objekt eine Weile gerezzt ist (die Dauer weiss ich nicht genau, aber über einen längeren Zeitraum sagen wir > 1 Tag), funktioniert die Sitzanimation nicht mehr und der Avatar wird mit der Standardsitzanimation dargestellt.
Kennt jemand dieses Verhalten?
Eigentlich sollte es hier entsprechend gesetzt werden:
(zumindest so wie ich es mit meinen bescheidenen Skriptkenntnissen denke)
Hier das komplette Skript:
Wie gesagt, an für sich funktioniert alles, nur dass nach einer Weile??? es nicht mehr tut. :shock:
Danke & Gruß,
Sophie
habe ein Skript geschrieben, welches u.a. eine eigene Sitzanimation auf einem Objekt darstellt, sobald der AV sich auf das Objekt setzt.
Funktioniert soweit auch wunderbar.
Wenn nun das Objekt eine Weile gerezzt ist (die Dauer weiss ich nicht genau, aber über einen längeren Zeitraum sagen wir > 1 Tag), funktioniert die Sitzanimation nicht mehr und der Avatar wird mit der Standardsitzanimation dargestellt.
Kennt jemand dieses Verhalten?
Eigentlich sollte es hier entsprechend gesetzt werden:
(zumindest so wie ich es mit meinen bescheidenen Skriptkenntnissen denke)
Code:
changed(integer change)
{
if (change & CHANGED_LINK)
{
uuid = (string)llAvatarOnSitTarget();
llSitTarget(<-2.12, 0.0, -0.4>, <0, -0.707, 0, 0.707>);
if(uuid != "00000000-0000-0000-0000-000000000000")
{
llRequestPermissions(uuid, PERMISSION_TRIGGER_ANIMATION);
llStartAnimation("SADDLE");
}
}
}// End of changed()
Hier das komplette Skript:
Code:
integer channel;
string uuid;
string theAnimation;
key theUser;
float volume = 3;
list buttons4menu = ["SADDLE_low", "SADDLE_med"];
// Sortiert die Buttons des Dialogmenüs
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4)
+ llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
// Zeigt die Dialogbox an
show_dialog()
{
channel = (integer)(llFrand(-1000000000.0) - 1000000000.0);
llListen(channel,"", "","");
llDialog(theUser,"
Please choose an option:
", order_buttons(buttons4menu),channel);
}
default
{
state_entry()
{
// set sit target, otherwise this will not work
// llSitTarget(<-2.12, 0.0, -0.4>, <0, -0.707, 0, 0.707>);
}// End of state_entry()
// Erzeugt das Dialogmenü
touch_start(integer total_number)
{
theUser = llDetectedKey(0);
show_dialog();
}// End of touch_start
listen(integer _chan, string _name, key _id, string _option)
{
theAnimation = _option;
llAvatarOnSitTarget();
if( theAnimation == "SADDLE_low" )
llPlaySound("ZAPlow", volume);
else if( theAnimation == "SADDLE_med" )
llPlaySound("ZAPhigh", volume);
llStartAnimation(theAnimation);
show_dialog();
llSetTimerEvent(3.0);
}// End of listen
// stopt die Animation
timer()
{
llSetTimerEvent(0.0);
llStopAnimation(theAnimation);
}// End of timer()
changed(integer change)
{
if (change & CHANGED_LINK)
{
uuid = (string)llAvatarOnSitTarget();
llSitTarget(<-2.12, 0.0, -0.4>, <0, -0.707, 0, 0.707>);
if(uuid != "00000000-0000-0000-0000-000000000000")
{
llRequestPermissions(uuid, PERMISSION_TRIGGER_ANIMATION);
llStartAnimation("SADDLE");
}
}
}// End of changed()
}// End of script
Wie gesagt, an für sich funktioniert alles, nur dass nach einer Weile??? es nicht mehr tut. :shock:
Danke & Gruß,
Sophie