Re-Spanker
Dieses Skript gibt eine Antwort zurück, wenn bestimmte Worte wie "spank" oder "schlägt" fallen. Dazu muss es in ein Objekt und dieses dann angezogen werden.
list WORD1 = ["spank", "spanks", "spanked", "kneift", "haut", "schlägt", "klatscht", "zwickt", "patscht"];
list WORD2 = ["rebekka", "rebekkas", "rebekka's"];
integer Listener;
string Name = "Rebekka";
list Text = ["/me na warte! %1 verdrischt %2 fürchterlich!",
"/me !!! %1 piekst %2 direkt ins Auge!",
"/me ! %1 tritt %2 mit Anlauf in den Hintern!",
"/me !! %1 tritt %2 mal kr?ftig gegen das Schienbein!",
"/me !!! %1 wirft einen Schuh nach %2!",
"/me !! %1 beisst %2 in den Finger!",
"/me !!! %1 reisst %2 die Hand ab und wirft sie den Hunden zum Frass vor!",
"/me !! %1 bohrt ihren Absatz %2 tief in den Fuss!",
"/me !! %1 wirft verschiedene schwere Gegenstände nach %2!"
];
integer Check(string msg)
{
integer i;
integer x = 0;
msg = llToLower(msg);
list l = llParseString2List(msg, [" ", ",",";","."],[]);
for(i = 0; i < llGetListLength(l); i++) if(llListFindList(WORD1, [llList2String(l, i)]) != -1) x++;
if(x == 0) return FALSE;
x = 0;
for(i = 0; i < llGetListLength(l); i++) if(llListFindList(WORD2, [llList2String(l, i)]) != -1) x++;
if(x == 0) return FALSE;
return TRUE;
}
string Answer(string s1, string s2)
{
string s = llList2String(Text, (integer)llFrand(llGetListLength(Text)));
list l = llParseString2List(s, ["%1"], []);
s = llList2String(l, 0) + s1 + llList2String(l, 1);
l = llParseString2List(s, ["%2"], []);
s = llList2String(l, 0) + s2 + llList2String(l, 1);
return s;
}
default
{
on_rez(integer start_param)
{
list l = llParseString2List(llKey2Name(llGetOwner()), [" "], []);
Name = llList2String(l, 0);
string s = llToLower(Name);;
WORD2 = [s, s + "s", s + "'s"];
llSetAlpha(1, ALL_SIDES);
llListenRemove(Listener);
Listener = llListen(0, "", NULL_KEY, "");
}
attach(key attached)
{
if(attached != NULL_KEY) llSetAlpha(0, ALL_SIDES);
}
listen(integer channel, string name, key id, string message)
{
if(llGetOwner() == llGetOwnerKey(id)) return;
list l = llParseString2List(message, [" "], []);
if(Check(message))
{
string s = llGetObjectName();
string s1 = llList2String(l, 0);
if(llToLower(s1) == "/me")
{
key k = llGetOwnerKey(id);
s1 = llKey2Name(k);
l = llParseString2List(s1, [" "], []);
s1 = llList2String(l, 0);
}
llSetObjectName("Auaa");
llSay(0, Answer(Name, s1));
llSetObjectName(s);
}
}
}