bomb.c

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

C
104
字号
//Cracked by Kafei//// sdong, 3/18/2000#include <ansi.h>#include <armor.h>//inherit F_SSERVER;inherit ITEM;void create(){	set_name( HIR "霹雳弹" NOR, ({ "bomb", "zha yao"}) );	set_weight(10);	if( clonep() )		set_default_object(__FILE__);	else {		set("unit", "枚");                set("long", "这看起来似乎是一枚出自明教烈火旗的霹雳弹,上面还有导火索(fire)。\n");                set("value", 1000000);			        set("material", "iron");        }        setup();}void init(){	add_action( "do_fire", "fire" );	add_action( "do_fire", "throw" );}int do_fire(string arg){	object ob = this_object();	object me = this_player();	int exp_time;	/*	if ( !arg || arg!="bomb" )	   return notify_fail( "你想要引燃什么?\n");	*/	if ( !ob->query_temp("fired") ) {	   message_vision("$N掏出一枚$n,伸手用力一拉,拉开了导火索。\n", me,ob);	   ob->set_temp("fired", 1);	   ob->set_temp("owner",me);	   call_out("explode", 1+ random(5), me, ob);	}	else return notify_fail("你一拉才发现此霹雳弹已被引燃了,就快爆炸了!\n");	return 1;}int explode(object me, object ob){	object *victims, env, owner;	int i,damage;	string str;	message_vision("只听的一声惊天动地的爆响,四周一切已被炸得灰飞烟灭!\n", ob);	owner = query_temp("owner");	if( !owner || !objectp(owner) )	{		if(me && objectp(me) )			owner=me;		else owner=ob;	}	env = environment(ob);	if(!env || !objectp(env) )	{		destruct(ob);		return 0;	}	if( !userp(env) && env->query("no_fight") )return 0;		if( userp(env) ){		env->set("eff_qi",-1);		message_vision(HIR"$N被炸得粉身碎骨!\n"NOR,env);        env->receive_damage("qi", env->query("max_qi"),  owner);        env->receive_wound("qi", env->query("max_qi"), owner);		env=environment(env);	}	victims = all_inventory(env);	for (i=0; i<sizeof(victims); i++) {	   	if (!living(victims[i]) || victims[i]==me ) continue;		message_vision(HIR"$N被炸得人仰马翻!\n"NOR,victims[i]);		damage= 2000+random(8000);        victims[i]->receive_damage("qi", damage,  owner);        victims[i]->receive_wound("qi", random(damage), owner);        str = COMBAT_D->status_msg((int)victims[i]->query("qi") * 100 /(int)victims[i]->query("max_qi"));        message_vision("($N"+str+")\n", victims[i]);	}		destruct(ob);	return 1;}

⌨️ 快捷键说明

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