Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Text Emoters - Can you tell who is typing the emotes

Samantha Chandler
Registered User
Join date: 20 Jun 2006
Posts: 4
10-08-2006 06:30
At a club I help out at a new way of griefing is for idiots to use text emoters to try to put words in other people's mouths by emoting with a resident's name then a ":" then a line of text (so it looks like the target being griefed is saying it).

Is there a way in game to tell who is typing these emotes?
Eloise Pasteur
Curious Individual
Join date: 14 Jul 2004
Posts: 1,952
10-08-2006 07:05
Not entirely sure what you're trying to describe here...

If you emote (type /me Anshe Chung: hahaha) it will come out as Eloise Pasteur Anshe Chung: hahaha.

If you mean they're using something scripted with a name change, so you get object speech (which is green by default) saying Anshe Chung: hahaha then there probably isn't a good solution.

An open listener that filters on if(id!=llGetOwnerKey(id)) will let you grab objects talking AND get the owner's name but how much it will kill your club I don't know. Open listeners on channel 0 with reporting... not pretty, especially in a club situation where you just know there's going to be tons of chat.
_____________________
Eloise's MiniMall
Visit Eloise's Minimall
New, smaller footprint, same great materials.

Check out the new blog
Kyrah Abattoir
cruelty delight
Join date: 4 Jun 2004
Posts: 2,786
10-08-2006 10:35
sound like a pretty funny game to me

you find it annoying?
_____________________

tired of XStreetSL? try those!
apez http://tinyurl.com/yfm9d5b
metalife http://tinyurl.com/yzm3yvw
metaverse exchange http://tinyurl.com/yzh7j4a
slapt http://tinyurl.com/yfqah9u
Angel Fluffy
Very Helpful
Join date: 3 Mar 2006
Posts: 810
10-08-2006 11:18
Two possible solutions :

1) teach people to ignore lines that look like they are said by an avatar, but which show up in green text.

2) script something that, when given the name of an object, reports back its owner. You can use this to find out who owns the object, then ban them and return their objects on the parcel.
Not sure if scan-foo has this object name -> object owner lookup function.
_____________________
Volunteer Portal (FAQs!) : https://wiki.secondlife.com/wiki/Volunteer_Portal

JIRA / Issue Tracker : http://jira.secondlife.com (& http://tinyurl.com/2jropp)
Winter Ventura
Eclectic Randomness
Join date: 18 Jul 2006
Posts: 2,579
10-08-2006 11:24
They create an object.. with a "talker" script. These talkers, we see ALL the time.. in fact every time you create a new script in a new prim you see it in action.

Object: Hello, Avatar!

Most talkers are worn as attachments, so many prim detectors simply can't SEE them to detect the owner. These talkers are fairly advanced little machines, and can accept a name to "talk as" with just a single command. Since Kyyrah seems to think this is cute, we'll use her name. The Greifers have a grudge against her, and they type in the name "Kyrah Abattoir". Now their attachment listens on Channel 3 let's say... So if they type "/3 Hello", we get:

Kyrah Abattoir: Hello


And if they type "/3/me says hello" we get:

Kyrah Abattoir says hello

Now the only blessing here, is that "object" text shows up as green instead of white. BUt here's an example of where this might be a problem.. let's say that Kyrah Abattoir has been in a club, and some greifers show up and start nuking the place.

Land Owner: You guys really need to stop, or you'll be reported.
Ima Greifer: F u
LordAl Mighty: Kiss my A...
Kyrah Abattoir: Make me.

Now.. in the heat of the struggle.. the landowner may not notice that it was actually an OBJECT that said that. It's further complicated if ALL the greifers are speaking in green using talkers. So, Kyrah gets banned and reported to SL.. odds are, since she's an upstanding businesswoman.. she'll be able to iron this issue out.

How to detect this? normally a "swirly" appears around objects that are talking.. I know that my talker (which does have legitimate uses, let me assure you) does have swirlies. Unfortunately, I think the greifers have found a way to hide this swirly. If not.. look for the person who swirlies every time "you" appear to speak.

It's all fun and games, until someone loses an eye.. or a customer.

Imagine someone sitting out of sight at your shop Kyrah... and every time someone voiced a question about one of your products, the greifer, posing as you.. began to spout misinformation, do social engineering, and generall screw with your clients. SUddenly you're losing business.. and it wouldn't take all that much creativity to explain where the magic voice" was coming from.

Kyrah Abattoir: Sorry I'm not actually on SL at the moment, I'm using an experimental desktop chat client on my computer at work. But I am here to answer any questions you might have... Is there something I can assist you with?

Kyrah Abattoir: Tell you what, I'm having a sale right now, and closing out some items I got as returns. I've checked them and they are identical to the products in the store.. but you have to go through an alt account I set up for this.. I can let you have that item for Half the price if you want it.. Just send $300 to "KyrahCloseouts Altman". The system keeps a log file, and I'll send you the products the SECOND I get home and log on to SL.


12 hours of that... with no products delivered yet.. And the social engineer has amassed let's say.. $100US worth of your money. Now he's already shunted it into SLexchange, paid it over onto a "prepaid VISA" or some other portable system... and is now loading that cash into a disposable paypal account to buy something on Ebay.

Meanwhile.. Kyrah is now stuck with 20 or so, soon-to-be-angry customers.. And simply has no idea it's coming.

Of course, the REAL Social Engineer would make sure that those angry calls never came.. and with the application of a little texture stealing, and some careful preparation.. they might actually HAVE knock-offs of your products, visually identical to the real thing, ready and packaged up, to hand to the customers.. So now.. THEY aren't angry, they think they've gotten a deal (and.. they have!)... and you simply have missed 15,000$L in sales. INstead of a mob of angry customers, the Social Engineer has actually IMPROVED your satisfaction rating with these people, by making it appear that you're not only giving great 'on the spot' support even when you're not on SL.. but you're also giving people bargains. The Engineer walks off with your money, and the customers go home happy with their products.. and you're none the wiser.

Fun game, Eh Kyrah?
_____________________

● Inworld Store: http://slurl.eclectic-randomness.com
● Website: http://www.eclectic-randomness.com
● Twitter: @WinterVentura
Jami Sin
i r noob
Join date: 3 Sep 2006
Posts: 109
10-08-2006 16:32
Hmm..why is Real Life is less complicated?

Oh...I know...we have POLICE AND REAL GUNS AND JAILS to keep people in check.
_____________________
Dr Tardis
Registered User
Join date: 3 Nov 2005
Posts: 426
10-08-2006 18:49
near my old place (2 houses ago) was what could only be described as a griefer store: weapons, toys, and things like the "chat script", which did exactly that: it renamed itself to the same name as an avatar and would let you put words in that avatar's mouth. It's a very easy thing to build.

If you'll look, you'll notice that the text for objects talking is a different color than what people are saying. You could, if you wanted to, use your own listen object to get the name and other information of the object saying this stuff, but that's a lot of work to do. However, if someone's using it to be rude or grief, then it may be worth it.

In fact, I may take that on as a personal project. If you want something like that, IM me the next time you're in world. I'll see what I can come up with.
Kyrah Abattoir
cruelty delight
Join date: 4 Jun 2004
Posts: 2,786
10-08-2006 19:44
nice example but i prefere this one:
John Doe's penis: i am getting lightly aroused
or even better
Jessica Doe's belly: you feel a need of strawberries


but your example do raise a valid point i will probably take the needed measures ^_^
_____________________

tired of XStreetSL? try those!
apez http://tinyurl.com/yfm9d5b
metalife http://tinyurl.com/yzm3yvw
metaverse exchange http://tinyurl.com/yzh7j4a
slapt http://tinyurl.com/yfqah9u
Samantha Chandler
Registered User
Join date: 20 Jun 2006
Posts: 4
10-08-2006 20:47
Winter described the issue well. At a sex club I help out at the griefers use the emote object to do fake xcite spam (which is green) usually with homosexual references designed to seem like a male xcite penis talking. Its very juvenille and becoming all too common. If anyone comes up with a tool to easily see who is doing the spamming I would love a copy.
Eloise Pasteur
Curious Individual
Join date: 14 Jul 2004
Posts: 1,952
10-09-2006 01:06
The trouble with spamming as if you're an xcite penis is you've got an object pretending to be an object... which of course it is.

I can generate a huge list of every object and it's owner, maybe without lagging the sim to hell and making your club totally unusable. Finding the specific one that's doing the griefing you'd still have to do by hand. If you're in a club where there's enough such chat to make spam viable it will take you a lot of sifting through I'm sure.
_____________________
Eloise's MiniMall
Visit Eloise's Minimall
New, smaller footprint, same great materials.

Check out the new blog
Burke Prefect
Cafe Owner, Superhero
Join date: 29 Oct 2004
Posts: 2,785
10-09-2006 05:41
Putting words in their mouth? Its green text.
You can make a script to detect scripted speech and pull the name of the talker's owner from that.
Then use that name in your Psitech, InstPwn, or Yorick Multifool Orbitter 2.0!.
*cough*
_____________________
Kyrah Abattoir
cruelty delight
Join date: 4 Jun 2004
Posts: 2,786
10-09-2006 07:06
wow so juvenile use of a chat script is enough for you guys to turn to mad?

my my i don't want to be at your home when a friend make a joke about you or mùake you sit on a farting pillow

(i talk about the funny uses i precise)
_____________________

tired of XStreetSL? try those!
apez http://tinyurl.com/yfm9d5b
metalife http://tinyurl.com/yzm3yvw
metaverse exchange http://tinyurl.com/yzh7j4a
slapt http://tinyurl.com/yfqah9u
Joannah Cramer
Registered User
Join date: 12 Apr 2006
Posts: 1,539
10-09-2006 07:14
From: Kyrah Abattoir
wow so juvenile use of a chat script is enough for you guys to turn to mad?

my my i don't want to be at your home when a friend make a joke about you

(i talk about the funny uses i precise)

Suspect the problem is, "funny" is eye of the joker but at expense of someone else who can have quite different idea of what "funny" is. If it turns out the target didin't appreciate the humour, how many would stand up, admit it was their doing and apologize for putting another person in potentially embarassing situation, and how many would just shrug, say to themselves "what a stuck up sourpuss" and continue to have their "fun" with them? It's a thin line to walk on.

edit: joking about someone or making them deal with some kind of silly object is also quite different kind of humour than making it appear like they're doing something out of own will. The former makes it obvious from the start to all this is just a joke, the latter not necessarily so.
Dr Tardis
Registered User
Join date: 3 Nov 2005
Posts: 426
10-09-2006 09:49
Here's a first stab at such a script:


just drop this in to any object you own and wear it as an attachment. It currently listens to all chat in the room, but I'll work on it to try to get it to filter a little better. If you are looking for specific names, you can put the name in to the llListen line to filter on just that item.


CODE
 
default
{
state_entry()
{
llListen(0,"","","");
}

listen(integer channel, string name, key id, string message)
{
llOwnerSay("Name: " + name);
llOwnerSay("Key: " + (string) id);
llOwnerSay("Message: " + message);
llOwnerSay("Owner: " + llKey2Name(llGetOwnerKey(id)));
}
}


Hewee Zetkin
Registered User
Join date: 20 Jul 2006
Posts: 2,702
10-09-2006 10:10
Here's one to TRY. It SHOULD work for attachments as long as they are in the same sim as this script. Note that this script chould definitely be made more robust in terms of the number of missed chats and the agent name lookup.

WARNING: This fires a sensor every time a user chats. It may contribute SIGNIFICANTLY to lag. Use ONLY WHEN NEEDED!!!

It seems logins are restricted again. This has not been compiled or tested. If someone wants to do so and post any corrections that'd be swell.
CODE
float SENSOR_PERIOD = 0.1;
integer SENSOR_REPEAT_ATTEMPTS = 10;

key speakerKey;
string speakerName;

integer nSensorRepeats;

default
{
state_entry()
{
// Usually BAD, but we're going to filter for only objects
// at least...
llListen(0, "", NULL_KEY, "");
}

listen(integer channel, string name, key id, string message)
{
key owner = llGetOwnerKey(id);

if (owner != id)
{
// Object in sim (note: owner NAME might appear blank).
llOwnerSay("'"+name+"' ("+(string)id+") owned by '"+
llKey2Name(owner)+"' ("+owner+")");
} else
{
// Either an object in another sim or an agent. We'll try
// to find out with a sensor.

speakerKey = id;
speakerName = name;

state searchingForAgent;
}
}
}

state searchingForAgent
{
state_entry()
{
nSensorRepeats = 0;

// Repeat on the chance of detecting object/avatar in
// neighboring sim.
llSensorRepeat(
"",
speakerKey,
AGENT | PASSIVE | ACTIVE,
96.0,
PI,
SENSOR_PERIOD);
}

state_exit()
{
llSensorRemove();
}

no_sensor()
{
if (++nSensorRepeats >= SENSOR_REPEAT_ATTEMPTS)
{
llOwnerSay(
"Couldn't find '"+spearkerName+"' ("+(string)speakerKey+
"). either in neighboring sim or agent that "+
"disappeared.");

state default;
}
}

sensor(integer numDetected)
{
integer type = llDetectedType(0);

if (type & AGENT)
{
state default;
}

key owner = llDetectedOwner(0);

// Object in sim (note: again, owner NAME might appear blank).
llOwnerSay("'"+speakerName+"' ("+(string)speakerKey+") owned by '"+
llKey2Name(owner)+"' ("+owner+")");

state default;
}
}
Joannah Cramer
Registered User
Join date: 12 Apr 2006
Posts: 1,539
10-09-2006 11:41
Meh...
CODE

list agent_names;
integer agent_names_limit = 50;

default {

state_entry() {

llListen( 0, "", "", "" );
llSensorRepeat( "", NULL_KEY, AGENT, 50.0, PI, 5.0 );
}

sensor( integer ContactsTotal ) {

integer idx;
for( idx = 0; idx < ContactsTotal; ++idx ) {

string name = llDetectedName( idx );
if( llListFindList( agent_names, [ name ] ) == -1 ) { agent_names = (agent_names=[]) + agent_names + name; }
}

if( llGetListLength( agent_names ) > agent_names_limit ) {
// keep the list lean
agent_names = llList2List( agent_names, agent_names_limit * -1, -1 );
}
}

listen( integer Channel, string Name, key Id, string Message ) {

key owner = llGetOwnerKey( Id );
if( owner == Id ) { return; } // av talk

string name = llDumpList2String( llList2List( llParseString2List( Name, [" "], [] ), 0, 1 ), " " );
// trim the 's etc
if( llGetSubString( name, -2, -1 ) == "'s" ) { name = llDeleteSubString( name, -2, -1 ); }
if( llGetSubString( name, -1, -1 ) == ":" ) { name = llDeleteSubString( name, -1, -1 ); }

if( llListFindList( agent_names, [ name ] ) == -1 ) { return; } // no av name in the item name

string owner_name = llKey2Name( owner );
if( owner_name != name ) { llOwnerSay( "Object belonging to " + owner_name + " is spoofing " + name + " or their belongings." ); }
}

}

this will handle just the most primitive spoofers that rename themselves to "John Doe" or "John Doe's penis", but good for starters i guess o.O;