bandage.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 92 行
C
92 行
// bandage.cinherit ITEM;inherit F_EQUIP;void create(){ set_name("布条", ({ "cloth piece", "cloth", "piece" }) ); set_weight(200); if( clonep() ) set_default_object(__FILE__); else { set("unit", "条"); set("material", "cloth"); set("armor_type", "bandage"); set("armor_prop/attack", -10); set("armor_prop/defense", -10); set("armor_prop/unarmed", -10); }}void init(){ add_action("do_bandage", "bandage");}int wear() { return 0; }int do_bandage(string arg){ object ob; if( (int)query("blood_soaked") >= 2 ) return notify_fail( name() + "已经被鲜血浸透,不能再用了。\n"); if( query("equipped") ) return notify_fail( name() + "已经裹在你的伤口上了,如果你要用来包扎别人,请你先把它除下来。\n"); if( !arg ) ob = this_player(); else { ob = present(arg, environment(this_player())); if( !ob || !userp(ob)) return notify_fail("你要替谁裹伤?\n"); } if( this_player()->is_fighting() || ob->is_fighting() ) return notify_fail("战斗中不能裹伤。\n"); if( (int)ob->query("eff_qi") == (int)ob->query("max_qi") ) return notify_fail( (ob==this_player()? "你" : ob->name()) + "并没有受到任何外伤。\n"); if( ob->query_temp("armor/bandage") ) return notify_fail( ob->name() + "身上的伤已经裹著其他东西了。\n"); if( !move(ob) ) return 0; if( ob==this_player() ) message_vision("$N用" + name() + "替自己裹伤。\n", this_player()); else message_vision("$N用" + name() + "替$n裹伤。\n", this_player(), ob); ::wear(); ob->apply_condition("bandaged", 40); add("blood_soaked", 1); return 1;}void remove(string euid){ ::remove(euid); if( query("equipped") && environment() ) environment()->apply_condition("bandaged", 0);}string query_autoload(){ if( query("equipped") ) return query("name");}void autoload(string arg){ int i; set("name", arg); set("blood_soaked", 3); ::wear();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?