Listen/de
Jump to navigation
Jump to search
LSL Portal | Funktionen | Ereignisse | Typen | Konstanten | Datenflusskontrolle | Script Sammlung | Tutorien |
Beschreibung
Events: listen( integer channel, string name, key id, string message ){ ; }12 | Ereignis ID |
Ausgelöst durch Chat, nutzt llListen zum aktivieren und filtern
• integer | channel | |||
• string | name | |||
• key | id | |||
• string | message |
Channel Konstante | Beschreibung | |
---|---|---|
DEBUG_CHANNEL | 0x7FFFFFFF | Chat Channel der für Debug und Error Nachrichten von Scripten reserviert ist. |
PUBLIC_CHANNEL | 0x0 | Chat Channel der an alle nahestehende User sendet. |
Warnungen
- Bei State Änderungen oder Script Reset werden alle listen automatisch entfernt.
- Wenn ein Objekt seinen Besitzer wechselt werden die mit llGetOwner registrierten listens sich nicht automatisch updaten. Scripter können dieses Szenario wie im unten beschriebenen Beispiel angehen.
- Wenn eine Nachricht auf Filter von mehreren llListens im Script zutrifft, wird lediglich ein Ereignis ausgelöst.
- Ein Prim kann nicht auf den Chat hören den er erzeugt.
Beispiele
Einfaches Beispiel um auf jeglichen Chat des Objektbesitzers zu hören und einmalig zu antworten. Um Lag zu reduzieren und umherstehende User nicht zu spammen, ist es weitgehend bevorzugt andere Channel als Channel 0 und das listen Ereignis mit alternativen Channels wie zum Beispiel '/5 hallo' auszulösen. <lsl>// sag beep zum Besitzer, falls dieser etwas zum ersten mal im offenen Chat sagt; integer listen_handle;
default {
state_entry() { // Registers the listen to the owner of the object at the moment of the call. // This does not automatically update when the owner changes. // Change 0 to another positive number to listen for '/5 hello' style of chat. listen_handle = llListen(0, "", llGetOwner(), ""); } listen( integer channel, string name, key id, string message ) { llOwnerSay("beep"); // Stop listening until script is reset llListenRemove(listen_handle); } on_rez(integer param) { // Triggered when the object is rezed, like after the object had been sold from a vendor llResetScript();//By resetting the script on rez it forces the listen to re-register. } changed(integer mask) { // Triggered when the object containing this script changes owner. if(mask & CHANGED_OWNER) { llResetScript(); } }
}</lsl>
Siehe Auch
Funktionen
• | llListen | |||
• | llListenControl | |||
• | llListenRemove | |||
• | llDialog | |||
• | llOwnerSay | – | Sendet Chat lediglich zum Owner um Spam auf dem PUBLIC_CHANNEL zu vermeiden | |
• | llWhisper | – | Sendet Chat in einem 10 Meter Radius | |
• | llSay | – | Sendet Chat in einem 20 Meter Radius | |
• | llShout | – | Sendet Chat in einem 100 Meter Radius | |
• | llRegionSay | – | Sendet Chat in der gesamten Region |
00000]]