⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yinzhen.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// sz,obj:yinzhen.c                // 97.10.1  by Aug#include <weapon.h>#include <ansi.h>inherit THROWING;void create(){	set_name(HIW"银针"NOR, ({ "yinzhen" , "yin zhen", "zhen"  }) );	set_weight(200);	if( clonep() )		set_default_object(__FILE__);	else 	{		set("unit", "枚");		set("long",HIW"这是一枚三寸长的银针,细而柔韧,多为医家刺穴疗伤之用。能运用这种银针的医者多为旷世神医,并有深厚的内功。你可以试着用它来针灸疗伤(zhenjiu)(heal)。\n"NOR);		set("value", 100);				set("yingdu", 50);		set("base_unit", "枚");		set("base_weight", 10);		set("base_value", 1000);		set("no_drop",1);		set("no_give",1);		set("no_sell",1);		set("no_get",1);		set("material","crimsonsteel");		set("wield_msg", HIW"$N从皮囊中拿出一根$n"+HIW"捏在手里。\n"NOR);		set("unwield_msg", HIW"$N将手中的$n"+HIW"放回皮囊。\n"NOR);	}	set_amount(1);	init_throwing(30);	setup();}void init(){	add_action("do_heal","zhenjiu"); 	add_action("do_heal","heal"); }int do_heal(string arg){	object me,ob;	int damage,heals,i;	string msg,s;	me=this_player();	if( living(me) ==0 ) return 0;	if( ! this_object()->query("equipped"))		return notify_fail("你银针都没拿出来,怎么施行针灸术啊?\n");      if( me->query_skill("miaoshouhuichun", 1)<1 )		return notify_fail("你连妙手回春中最基本的功夫都没学会,就想使用针灸术啊?\n");	if( !arg || !objectp(ob = present(arg, environment(me)) ))		return notify_fail("你想对谁施行针灸术?\n");	//这一段是为了防止 妙手回春 成为超级 perform	if(!userp(ob))	{		if( me->query_skill("miaoshouhuichun", 1)<60 )		{			message_vision("$N想给$n疗伤,但$n看了看$N颤抖的手,脸上露出害怕的神色。$n不想让$N给他刺穴疗伤。\n",me,ob);			return 1;		}	}	else	{		if( ob!=me && ob->query("env/agree_heal")!=1 )				{			message_vision(YEL"$N想给$n施行针灸疗伤。\n"NOR,me,ob);			tell_object(me,YEL"因为"+ob->name()+"是玩家控制的人物,请等待对方的答复。\n"NOR);			tell_object(ob,YEL"如果你同意的话,请设置环境参数agree_heal为1(set agree_heal 1);如不同意就不要设置这个参数,或把这个参数设置成任意不为一的数。\n"NOR);						return 1;		}	}				if (me->is_busy())		return notify_fail("你现在正忙着呢。\n");	if( me->is_fighting() || ob->is_fighting() )		return notify_fail("战斗中还想疗伤,你找死啊?\n");// 5% 以下不疗,防止pl 无修止的用robot 练功	if( (ob->query("max_kee")*10/ob->query("eff_kee")) > 200 )		return notify_fail(ob->name()+"受的伤太重了,现在就施行针灸太危险了!\n");		if(ob->query("max_kee") == ob->query("eff_kee"))	{		if(me!=ob)			return notify_fail("你要治的这个人,并没有伤啊!\n");		else			message_vision("$N决定用自己来做试验,来提高自己妙手回春的水平。\n",me);	}	if( me->query("force") < 50 )		return notify_fail("你的内力不足,无法使用妙手回春术!\n");	if( me->query("gin") < 30 )		return notify_fail("你的精不足,无法集中精力!\n");	me->add("force",-50);	me->add("gin",-30);               	me->improve_skill("miaoshouhuichun", random(me->query_int())/2);	tell_object(me,"在实践中你的妙手回春水平上升了。\n");	if(me==ob) s="$N"; else s="$n";	msg= CYN"$N手捏银针,小心翼翼地向"+s+"的穴道刺去,\n"NOR;	if( random(60)>(int)me->query_skill("miaoshouhuichun",1))	{		damage=random(ob->query("max_kee")/2);				i=ob->query("max_kee")*10/damage;		if(i>100)			msg+= CYN"可是$N用力稍偏,没有正好刺中穴道,"+s+"脸上露出一丝难过的神情。"NOR;		else		{			if(i>40)				msg+= HIR"但是$N用力过猛,竟然刺出了血,这可是针灸中的大忌!"NOR;			else				msg+= RED"$N刺了下去才发现刺错了穴道,"+s+"「哇」的喷出了一口鲜血,看来有生命危险!!!"NOR;		}		ob->receive_wound("kee",damage);								damage=i;	}	else	{		msg+= CYN"$N的银针准确无误的刺入穴道,随着银针的缓缓转动,"+s+"长长的出了一口气,脸色好看多了。"NOR;		damage=-1;		heals= me->query_skill("miaoshouhuichun", 1)+ random(me->query_skill("miaoshouhuichun", 1)) ;		if((ob->query("eff_kee")+heals) > ob->query("max_kee"))			ob->set("eff_kee",ob->query("max_kee"));		else			ob->add("eff_kee",heals);	}	msg+= "\n";		if(me==ob)		message_vision(msg,me);	else		message_vision(msg,me,ob);	if(damage>0)	{		if(ob->query("kee")<0)		{			ob->set("eff_kee",1);			ob->set("kee",1);			if( userp(ob) )			{				if(me==ob)										message_vision("好险啊!$N差一点把自己扎死。\n",me);				else					message_vision("好险啊!$N差一点把$n扎死。\n", me,ob);			}		}		else		{			if (me!=ob)			{				if(random(damage)<40)				{					message_vision("$N「啊」大叫一声,怒道:你想杀我啊!\n",ob);					ob->kill_ob(me);					me->fight_ob(ob);				}				else				{					message_vision("$N「啊」大叫一声:好痛啊!下次你可千万当心点!\n",ob);				}			}		}			}	return 1;}

⌨️ 快捷键说明

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