2009-06-22 2 views

Répondre

2
string message = "Hello World!"; 
// save the old name of the object for later use 
string oldname = llGetObjectName(); 
// get the words (split by spaces) in the message 
list messageParts = llParseString2List(message, [" "], []); 
// make the objects name the first word of the message. 
llSetObjectName(llList2String(messageParts,0)); 
// delete the first word. 
messageParts = llDeleteSubList(messageParts,0,0); 
// use an emote to remove the : from the said text 
llSay(0, "/me "+llDumpList2String(messageParts, " "); 
// set our objects name back to its old text. 
llSetObjectName(oldname); 
0

nombre entier ListenHandle;

par défaut {

state_entry() 
    { 
    ListenHandle = llListen(1234,"",llGetOwner(),"");  
    } 

listen(integer channel, string name, key id, string message) 
    { 
    list mess = llParseString2List(message,[" "],[]); 
    llSetObjectName(llList2String(mess,0)); 
    mess = llDeleteSubList(mess,0,0); 
    message = llDumpList2String(mess," "); 
    llSay(0,"/me " + message); 
    } 
} 

Le tchat sur le canal 1234 (pour cet exemple) sera affiché dans le chat (canal 0) sans le préfixe du nom de l'objet contenant le script.

utilisation:

/1234 message à afficher

texte affiché dans le canal le chat 0:

message à afficher

+0

Vous êtes sur la bonne voie, mais l'exemple laisse l'objet nommé comme premier mot du message. – btubbs

+0

Sauvegardez simplement le nom de l'objet et renommez-le par la suite. – Domchi

2

L'utilisation du premier mot de la chaîne comme nom de l'objet peut entraîner une certaine étrangeté avec la coloration du chat. Un nettoyeur (et plus maigres sur la RAM limitée LSL) façon est de nommer l'objet « » au lieu, comme ceci:

// Your message in a string 
string message = "Waves crash on the beach"; 

// Store the current object name to restore it afterwards 
string oldName = llGetObjectName(); 

// Rename the object with a blank string 
llSetObjectName(""); 

// Say the message 
llSay(0, "/me " + message); 

// Restore the object name 
llSetObjectName(oldName); 
Questions connexes