Как я могу скрыть имя объекта в чате в LSL? - PullRequest
2 голосов
/ 22 июня 2009

Учитывая объект с именем MyObject, llSay(0, "Hello World"); из скрипта внутри объекта будет выглядеть так в чате:

MyObject: Hello World

Как мне заставить его выглядеть так?

Hello World

Ответы [ 3 ]

2 голосов
/ 05 августа 2009
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);
2 голосов
/ 14 августа 2009

Использование первого слова строки в качестве имени объекта может привести к некоторой странности с окраской чата. Более понятный (и более узкий способ использования ОЗУ в LSL) - вместо этого назвать объект "", например:

// 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);
0 голосов
/ 23 июня 2009

целое число ListenHandle;

по умолчанию {

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

Чат на канале 1234 (для этого примера) будет отображаться в чате (канал 0) без префикса имени объекта, содержащего скрипт.

использование:

/ 1234 сообщение для отображения

текст отображается в канале чата 0:

сообщение для отображения

...