kantou.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 88 行
C
88 行
// kantou.c
#include <ansi.h>
inherit F_CLEAN_UP;
int do_kan(object me, object ob, object weapon);
void create() { seteuid(getuid()); }
int main(object me, string arg)
{
object obj, *inv, weapon;
if( !arg ) return notify_fail("你要砍谁的头?\n");
if( me->is_busy() )
return notify_fail("你上一个动作还没有完成!\n");
if (!objectp(weapon = me->query_temp("weapon")) ||
((string)weapon->query("skill_type") != "sword" &&
(string)weapon->query("skill_type") != "blade"))
return notify_fail("你不用刀剑哪里砍得动!\n");
if(!objectp(obj = present(arg, environment(me))))
return notify_fail("你只能砍尸体的头。\n");
if(userp(obj) || living(obj) )
return notify_fail("那还是活的!先杀了才能砍头!\n");
if( me->is_fighting() ) return notify_fail("你还在战斗中!还想砍人家的头?\n");
return do_kan(me, obj, weapon);
}
int do_kan(object me, object obj, object weapon)
{
object newob;
string newname;
if( !obj ) return 0;
if (obj->query("kantou") == 1)
{
message_vision( "$N是个无头尸。\n", obj );
return 1;
}
newname = obj->query("name");
if(strsrch(newname, "腐烂的尸体") >= 0)
{
message_vision( "腐尸还砍个啥劲呀。\n", obj );
return 1;
}
if(strsrch(newname, "尸体") >= 0)
newname = replace_string(newname, "尸体", "头颅");
else
{
message_vision(obj->query("name")+"有什么头可砍的。\n", obj );
return 1;
}
newob = new("/clone/misc/head");
newob ->set("name", HIR+newname+NOR);
newob ->move(me);
if(obj->query("userp")){
newob ->set("userp", 1);
}
if( me->is_fighting() ) me->start_busy(1);
message_vision( "$N挥起"+weapon->query("name")+"将$n的脑袋砍了下来。\n", me, obj );
obj->set("kantou", 1);
newname = obj->query("name");
if(strsrch(newname, "尸体") >= 0)
newname = replace_string(newname, "尸体", "无头尸体");
obj->set("name", newname);
return 1;
}
int help(object me)
{
write(@HELP
指令格式 : kantou <尸体名称>
这个指令可以让你砍下地上死者的头颅.
HELP
);
return 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?