expell.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 66 行
C
66 行
// expell.c
#include <skill.h>
inherit F_CLEAN_UP;
void create() { seteuid(getuid()); }
int main(object me, string arg)
{
object ob;
string *skname;
mapping skills;
int i;
if( !arg || !ob = present(arg, environment(me)) )
return notify_fail("你要将谁逐出师门?\n");
if( !ob->is_character() )
return notify_fail("你逐不动他。\n");
if( !userp(ob) )
return notify_fail("你只能开除玩家所扮演的人物。\n");
if( me->query("family/privs")==-1
&& (string)me->query("family/family_name")==(string)ob->query("family/family_name") ) {
message_vision("\n$N对着$n说道:从今天起,你再也不是我"
+ me->query("family/family_name") + "的弟子了,你走吧!\n\n",
me, ob);
tell_object(ob, "\n你被" + me->query("family/title") + "开革出师门了!\n\n");
} else if( ob->is_apprentice_of(me) ) {
message_vision("\n$N对着$n说道:从今天起,你我师徒恩断情绝,你走吧!\n\n",
me, ob);
tell_object(ob, "\n你被师父开革出师门了!\n\n");
} else
return notify_fail("这个人不是你的弟子。\n");
ob->delete("family");
// ob->delete("title");
ob->set("title", "普通百姓");
ob->set("score", 0);
skills = ob->query_skills();
if( mapp(skills) ) {
skname = keys(skills);
for(i=0; i<sizeof(skname); i++)
skills[skname[i]] -= 2;
}
return 1;
}
int help(object me)
{
write(@HELP
指令格式 : expell|kaichu <某人>
这个指令可以让你开除不成才的弟子,被开除的弟子所有技能都会降低不少
,而且综合评价一项会变成零,这对于一个人物而言是一个「比死还严重」
的打击,请你在开除一名弟子之前务必审慎考虑。
HELP
);
return 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?