• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Skript verändert nach einiger Zeit sein Verhalten

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)
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
 

Users who are viewing this thread

Zurück
Oben Unten