LlGetAnimation/nl
Jump to navigation
Jump to search
LSL Portal | Functies | Events | Types | Operators | Constanten | Flow Control | Script Bibliotheek | Tutorials |
Functie: string llGetAnimation( key id );
162 | Functie ID |
0.0 | Vertraging |
10.0 | Energie |
Levert een a string op met de naam van de huidige bewegingsanimatie van avatar id. Zie de tabel hieronder.
• key | id | – | UUID van een avatar in dezelfde sim. |
llGetAgentInfo geeft informatie over sommige animatie-statussen (typen, afwezig, bezig), die niet door deze functie worden gedekt. llGetAnimationList geeft meer details over de lopende animaties, maar is niet zo precies als llGetAnimation over de status van de avatar.
|
|
|
Kanttekeningen
- Deze functie kan een lege string opleveren als de avayar net aan het uitloggen is.
- Er kunnen nieuwe waarden worden toegevoegd, waardoor deze lijst niet langer compleet is. Scripts moeten er rekening mee houden, dat ze een onbekende waarde kunnen terugkrijgen.
Voorbeelden
// Een simpel voorbeeld van het overschrijven van een animatie
// Laat de avatar door de lucht rennen tijdens het springen
key eigenaar; // de ID van de eigenaar
string vorige; // vorige waarde van llGetAnimation
opstarten(key id) {
if (id) {
// wordt aangetrokken of gedragen tijdens reset
llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
eigenaar = id;
} else {
llSetTimerEvent(0.0); // stop de timer
}
}
default {
state_entry() {
// als het script wordt gereset tijdens het dragen
if (llGetAttached()) {
opstarten(llGetOwner());
}
}
attach(key id) {
opstarten(id);
}
run_time_permissions(integer perm) {
if (perm & PERMISSION_TRIGGER_ANIMATION) {
llSetTimerEvent(0.25); // start de timer
}
}
timer() {
string anim = llGetAnimation(gOwner);
if (vorige != anim) {
// alleen als de animatie is veranderd
if (anim == "Jumping") {
// Je kunt de ingebouwde animatie stoppen als je wilt, maar
// dit kan een nadelig effect hebben: de avatar kan vast
// komen te zitten en het resultaat van llGetAgentInfo kan
// onbetrouwbaar worden. Test het altijd even.
// llStopAnimation("jump");
llStartAnimation("run");
}
else if (vorige == "Jumping") { // net klaar met springen
// "run" is een doorlopende animatie
// We moeten hem dus handmatig stoppen
llStopAnimation("run");
}
vorige = anim; // onthouden voor de volgende vergelijking
}
}
}
Zie ook
Functies
• | llGetAgentInfo | |||
• | llGetAnimationList |