|
|
int t = uptime();
if (!semote && strlen(arg) > 5)
if (arg[0] >= ' ' && stringp(me->query_temp("last_channel_msg"))
&& strlen(me->query_temp("last_channel_msg")) > 5 //不能太短
&& (me->query_temp("last_channel_msg")[0..2] == arg[0..2] //2次chat的内容,前面几个字相同
|| me->query_temp("last_channel_msg")[<3..<1] == arg[<3..<1])) //2次chat的内容,后面几个字相同
me->add_temp("channel_repeat", 1); //增加重复chat1
else if (me->add_temp("channel_repeat", -1) < 0) {
if (me->query_temp("robottest") < t-1200)
me->add_temp("robottest", 20);
me->delete_temp("channel_repeat");
}
if (me->query_temp("channel_repeat") > 3) { //3次重复,就噎死了。
me->delete_temp("channel_repeat");
me->set("chblk_"+verb, 1);
me->add_condition("vote_chblk", 30); // 10 min
switch (verb) {
case "chat": verb = "闲聊"; break;
case "rumor": verb = "谣言"; break;
case "party": verb = "门派"; break;
case "sj": verb = "书剑"; break;
case "irc": verb = "聊天室"; break;
case "group": verb = "帮派"; break;
default: verb = "交谈";
}
do_channel(this_object(), "rumor",
"由于讲话太罗嗦," + me->query("name")
+"("+capitalize(me->query("id"))+")的" + verb + "频道被噎死了。");
} else if (me->add_temp("channel_count", 1) > 1) {
me->delete_temp("channel_count");
if (me->query_temp("last_channel_time") == t) { //1秒之内2次chat,也被噎死了。
me->set("chblk_"+verb, 1);
me->add_condition("vote_chblk", 30); // 10 min
switch (verb) {
case "chat": verb = "闲聊"; break;
case "rumor": verb = "谣言"; break;
case "party": verb = "门派"; break;
case "sj": verb = "书剑"; break;
case "irc": verb = "聊天室"; break;
case "group": verb = "帮派"; break;
default: verb = "交谈";
}
do_channel(this_object(), "rumor",
"由于讲话太多太快," + me->query("name")
+"("+capitalize(me->query("id"))+")的" + verb + "频道被噎死了。");
}
me->set_temp("last_channel_time", t);
}
me->set_temp("last_channel_msg", arg);
|
|
|