atell.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 79 行
C
79 行
// tell.c
#include <ansi.h>
#include <net/dns.h>
inherit F_DBASE;
inherit F_CLEAN_UP;
int help(object me);
void create() {seteuid(getuid());}
int main(object me, string arg)
{
string target, msg, mud;
object obj;
if( !arg || sscanf(arg, "%s %s", target, msg)!=2 ) return help(me);
// if( sscanf(target, "%s@%s", target, mud)==2 ) {
// GTELL->send_gtell(mud, target, me, msg);
// write("网路讯息已送出,可能要稍候才能得到回应。\n");
// return 1;
// }
obj = find_player(target);
if(!obj || !me->visible(obj)) return notify_fail("没有这个人....。\n");
if(!living(obj) || obj->query_temp("netdead"))
return notify_fail(obj->name(1)+"现在听不见你说的话。\n");
if (!wizardp(me) && obj->query("env/no_tell")=="all")
return notify_fail("这个人不想听你罗嗦啦。\n");
if (!wizardp(me) && obj->query("env/no_tell")=="ALL")
return notify_fail("这个人不想听你罗嗦啦。\n");
if (!wizardp(me) && obj->query("env/no_tell")==me->query("id"))
return notify_fail("这个人不想听你罗嗦啦。\n");
if (!wizardp(me) && obj->query_temp("pigging_seat"))
return notify_fail("正在拱猪的人听不到悄悄话……。\n");
write(HIG "你告诉" + obj->name(1) + ":" + msg + "\n" NOR);
tell_object(obj, sprintf( HIG "%s告诉你:%s\n" NOR,
me->name(1)+"("+me->query("id")+")", msg));
// CHANNEL_D->do_channel( this_object(), "sys",
// sprintf("%s告诉%s:%s。",me->name(1),obj->name(1),msg) );
message("channel:snp", HIB"【窃听】"+me->query("name")+"告诉"+obj->query("name")+":"+msg+"\n"NOR, users());
obj->set_temp("reply", me->query("id"));
return 1;
}
int remote_tell(string cname, string from, string mud, string to, string msg)
{
object ob;
if( ob = find_player(to) ) {
if( cname )
tell_object(ob, sprintf(HIG "%s(%s@%s)告诉你:%s\n" NOR,
cname, capitalize(from), mud, msg ));
else
tell_object(ob, sprintf(HIG "%s@%s 告诉你:%s\n" NOR,
capitalize(from), mud, msg ));
ob->set_temp("reply", from + "@" + mud);
return 1;
} else
return 0;
}
int help(object me)
{
write(@HELP
指令格式:tell <某人> <讯息>
你可以用这个指令和其他地方的使用者说话。
其他相关指令:reply
HELP
);
return 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?