box.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 107 行

C
107
字号
//Cracked by Kafei// box.c 铁盒#include <ansi.h>inherit ITEM;void create() {    set_name("铁箱", ({"box"}));    set_weight(100);    if( clonep() )        set_default_object(__FILE__);    else {        set("unit", "只");        set("long", "此盒高约一尺见方,不知道里面装着什么东西。\n");        set("material", "steel");        set("value", 100);        set("no_get", 1);   }}void init() {    object ob = this_object();	 //if (!ob->query("flag"))	 ob->set("flag", 0);	 if( random(8)==1 )		ob->set("bomb", 1+ random(2) );	 else if( random(16)==1 )		 ob->set("hunterbow", 1+ random(2) );	 else if( random(16)==1 )		 ob->set("shortbow", 1+ random(2) );	 else if( random(5)!=1 )		 ob->set("arrow", 1+ random(5) );    add_action("do_open", "open");}int do_open(string arg) {    object ob = this_object(), flag, npc, me=this_player();    if ( !arg || arg != "box" )        return notify_fail("你要将什么打开?\n");	if( me->is_busy() )return notify_fail("还在忙着呢!\n") ;    if ( me->query_skill("dodge") > 200 && me->query("jingli") > me->query("max_jingli")/2 ) {        if (ob->query("flag") == 1) {            message_vision("$N打开铁箱,发现箱中有一面旗帜。\n", me);            message_vision(HIR"$N“哗啦”一下展开了武林大旗!\n"NOR, me);            me->start_busy(7 + random(5));            flag = new(__DIR__"flag");            flag->move(me);            ob->set("flag", 0);            return 1;        }        else if (ob->query("bomb") > 0 ) {            message_vision(HIY"$N打开铁箱,发现箱中有一枚霹雳弹。\n"NOR, me);            message_vision(HIW"$N“赶紧把霹雳弹包到怀里!\n"NOR, me);            me->start_busy(16 + random(10));            flag = new(__DIR__"bomb");            flag->move(me);            ob->add("bomb", -1);            return 1;        }        else if (ob->query("hunterbow") > 0 ) {            flag = new(__DIR__"hunterbow");            flag->move(me);            message_vision(HIY"$N打开铁箱,发现箱中有一$n。\n"NOR, me,flag);            message_vision(HIW"$N“赶紧把$n包到怀里!\n"NOR, me,flag);            me->start_busy(8 + random(10));            ob->add("hunterbow", -1);            return 1;		}        else if (ob->query("shortbow") > 0 ) {            flag = new(__DIR__"shortbow");            flag->move(me);            message_vision(HIY"$N打开铁箱,发现箱中有一$n。\n"NOR, me,flag);            message_vision(HIW"$N“赶紧把$n包到怀里!\n"NOR, me,flag);            me->start_busy(8 + random(5));            ob->add("shortbow", -1);            return 1;		}        else if (ob->query("arrow") > 0 ) {            flag = new(__DIR__"arrow");            flag->move(me);			flag->set_amount(10);            message_vision(HIY"$N打开铁箱,发现箱中有一$n。\n"NOR, me,flag);            message_vision(HIW"$N“赶紧把$n包到怀里!\n"NOR, me,flag);            me->start_busy(4 + random(6));            ob->add("arrow", -1);            return 1;		}        else {            message_vision("$N打开铁箱,发现里面是空的。\n", me);            me->start_busy(8 + random(8));            return 1;        }    }    else {        message_vision(HIR"$N打开铁箱,突然铁箱中射出三支硬努,全部射在了$N身上!\n"NOR, me);        me->receive_wound("qi", me->query("max_qi")+ 1);        return 1;    }        return notify_fail("你要打开什么?\n");}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?