Listen/de

From Second Life Wiki
Jump to navigation Jump to search

Beschreibung

Events: listen( integer channel, string name, key id, string message ){ ; }

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