corpse.c

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

C
69
字号
// corpse.cinherit ITEM;int decayed;void create(){	set_name("无名尸体", ({ "corpse" }) );	set("long", "这是一具无名尸体。\n");	set("unit", "具" );        set("no_steal", 1);	decayed = 0;	if( clonep(this_object()) ) call_out("decay", 120, 1);}int is_corpse() { return decayed < 2; }int is_character() { return decayed < 1; }int is_container() { return 1; }string short() { return name() + "(" + capitalize(query("id")) + ")"; }void decay(int phase){	decayed = phase;	switch(phase) {		case 1:			say( query("name") + "开始腐烂了,发出一股难闻的恶臭。\n" );			switch(query("gender")) {				case "男性":					set_name("腐烂的男尸", ({ "corpse", "尸体" }) );				case "女性":					set_name("腐烂的女尸", ({ "corpse", "尸体" }) );				default:					set_name("腐烂的尸体", ({ "corpse", "尸体" }) );			}			set("long",	"这具尸体显然已经躺在这里有一段时间了,正散发著一股腐尸的味道。\n");			call_out("decay", 120, phase + 1);			break;		case 2:			say( query("name") + "被风吹乾了,变成一具骸骨。\n" );                        set_name("一具枯乾的骸骨", ({ "skeleton", "骸骨" }) );			set("long", "这副骸骨已经躺在这里很久了。\n");			call_out("decay", 60, phase + 1);			break;		case 3:			say( "一阵风吹过,把" + query("name") + "化成骨灰吹散了。\n" );			if( environment() ) {				object *inv;				int i;								inv = all_inventory(this_object());				for(i=0; i<sizeof(inv); i++) {					if (!inv[i]->query("no_drop")					&& !inv[i]->query("no_get")	                                && !inv[i]->query("ownmake"))						inv[i]->move(environment());				}//				for(i=0; i<sizeof(inv); i++) //				inv[i]->move(environment());			}			destruct(this_object());			break;	}}

⌨️ 快捷键说明

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