friend.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 94 行
C
94 行
// make friend with sb
#include <ansi.h>
inherit F_CLEAN_UP;
int main(object me,string arg)
{
object ob;
string* f_ids;
mapping friends;
string str,s1,s2;
int i;
string wiz_status;
friends = me->query("friends");
if(!arg)
{
if(!friends
|| !mapp(friends)
|| (sizeof(friends) == 0))
return notify_fail("你还没有朋友呢!\n");
f_ids = keys(friends);
write("你现在的朋友有:\n");
str = "";
for(i=0;i<sizeof(f_ids);i++)
{
wiz_status = SECURITY_D->get_status(f_ids[i]);
str += " "+friends[f_ids[i]]+"("+f_ids[i]+") ";
if( wiz_status != "(admin)")
{
str += "状态:" + (find_player(f_ids[i])? "在线\n":"离线\n");
} else str += "状态:" + (find_player(f_ids[i])? "离线\n":"离线\n");
}
write(str);
return 1;
}
if(sscanf(arg,"%s %s",s1,s2) ==2)
{
if(s1 == "-a")
{
if(!objectp(ob = find_player(s2)))
return notify_fail("没这个人!\n");
wiz_status = SECURITY_D->get_status(s2);
if( wiz_status == "(admin)")
return notify_fail("没这个人!\n");
if(me->query("id") == s2)
return notify_fail("没这个必要吧!\n");
if(me->query("friends/"+s2))
return notify_fail(ob->query("name")+"已经是你的朋友了!\n");
me->set("friends/"+s2,ob->query("name"));
write("你将"+ob->query("name")+"加入好友名单!\n");
if(living(ob))
tell_object(ob,me->query("name")+"把你加入他的好友名单!\n");
return 1;
}
else if(s1 == "-d")
{
if(!objectp(ob = find_player(s2)))
return notify_fail("没这个人!\n");
wiz_status = SECURITY_D->get_status(s2);
if( wiz_status == "(admin)")
return notify_fail("没这个人!\n");
if(!me->query("friends/"+s2))
return notify_fail("你没这个朋友!\n");
me->delete("friends/"+s2);
write("你把"+ob->query("name")+"从好友名单中去掉了!\n");
return 1;
}
else if(s1 == "-delall")
{
me->delete("friends");
write("你把所有的好友从名单中去掉了!\n");
return 1;
}
}
write("用法:friend [-a|-d|-delall] name\n");
return 1;
}
int help(object me)
{
string desc_dx, desc_fali, desc_exp;
write(@HELP
指令格式 : friend [-a|-d] [<某人>]
用这个命令可以让你查看或加,减好友。
HELP
);
return 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?