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

📄 shendao.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// jixue.c  血刀经 [祭血神刀]// coded by emnil@sj	2/5/2000#include <ansi.h>#include <skill.h>#include <combat.h>#include <weapon.h>inherit F_SSERVER;void jixue(object me,object target,int times,int now); int perform(object me, object target){	object ob,weapon;	string msg;	int lvl,times,extra;extra = me->query_skill("xue-dao",1);    if (!target ) target = offensive_target(me);    if (!objectp(weapon = me->query_temp("weapon"))        || (string)weapon->query("skill_type") != "blade")        return notify_fail(RED"装备刀才能使用「祭血神刀」?\n"NOR);    if (!target || !target->is_character() || !me->is_fighting(target) )        return notify_fail("「祭血神刀」只能对战斗中的对手使用。\n");    if ((int)me->query_skill("xue-dao", 1) < 100 )        return notify_fail(WHT"你血刀刀法不够娴熟,使不出「祭血神刀」。\n"NOR);    if ((int)me->query_skill("longxiang", 1) < 60 )        return notify_fail(RED"你龙象般若功火候不够,使不出「祭血神刀」。\n"NOR);    if ((int)me->query("max_neili") < 600)        return notify_fail(RED"你内力修为不足,无法运足内力。\n"NOR);    if ((int)me->query("neili") < 600)    {        return notify_fail(HIC"你现在内力不够,没能将「祭血神刀」使完!\n"NOR);    }    	if( !me->is_fighting() )		return notify_fail("「祭血神刀」只能在战斗中使用。\n");	if (!objectp(weapon = me->query_temp("weapon"))	|| (string)weapon->query("skill_type") != "blade")		return notify_fail("你使用的武器不对。\n"); 	if((int)me->query_skill("xue-dao",1) < 120)		return notify_fail("你的刀法修为不够, 目前不能使用「祭血神刀」! \n");	if(me->query_temp("xs/jixue"))		return notify_fail("你正在使用「祭血神刀」! \n");	if((int)me->query_skill("longxiang",1) < 120)		return notify_fail("你的龙象般若功修为不够, 目前不能使用「祭血神刀」! \n");	if( me->query_skill_mapped("force") != "longxiang")		return notify_fail("你现在所使用的内功同「龙象般若功」向抵触,不能使出「祭血神刀」的绝技!\n");	if( (int)me->query("max_neili") < 2000 )		return notify_fail("你的内力修为不够!\n");	if((int)me->query("neili")<500)		return notify_fail("你的真气不够!\n"); 	ob = me->select_opponent();	lvl = me->query_skill("xue-dao",1);	me->set_temp("xs/jixue",1);	times = me->query("env/jixue");	if(times < 1) times = 1;	if(times > lvl/40) times = lvl/40;	if(times > 6) times = 6;    me->add_temp("apply/attack", 80);		me->add_temp("apply/damage", extra*3);msg = YEL "$N右手持刀向左肩一勒,一阵血珠溅满刀面,紧接着右臂抡出,一片血光裹住刀影向$n当头劈落,\n"NOR;if (!target->is_busy()) target->start_busy(3);COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);	me->add_temp("apply/attack", -80);		me->add_temp("apply/damage", -extra*3);		msg = HIR"\n$N脸色陡然一变,口中念念有词,同时倒转兵刃,不知道要做什么!\n\n"NOR;	message_vision(msg, me);	me->add("neili", -100);me->start_busy(2);//	me->start_perform(10,"祭血神刀");	call_out("jixue",0,me,ob,times,0);	return 1;}void jixue(object me,object target,int times,int now){	string msg,weaname;	object weapon;	int lvl,force,damage,attack,qi;	if( !objectp(me) ) return;	if( !objectp(target) || !me->is_fighting(target) || (now >= times) || (me->query("neili")<200) || 	  (!objectp(weapon = me->query_temp("weapon"))) || ((string)weapon->query("skill_type")!="blade") ) {		me->set_temp("xs/jixue",0);                me->start_busy(1);		if(living(me))			message_vision(HIC"\n$N慢慢收回内劲,脸上也似乎有了血色。\n"NOR, me);		return;	}	weapon = me->query_temp("weapon");	weaname = weapon->query("name");	lvl = me->query_skill("xue-dao",1);	force = me->query_skill("longxiang",1);	now++;	if(now <= 1)		msg = HIR"\n$N狂啸一声,以兵刃自砍手臂,顿时一飙鲜血飞溅在"NOR+weaname+HIR"之上,"NOR+weaname+HIR"隐隐泛出一层血色。";	else	if(now <= 3)		msg = HIR"\n$N狂啸一声,以兵刃自砍胸膛,顿时一腔鲜血飞溅在"+weaname+HIR"之上,"NOR+weaname+HIR"泛出一层血色!";	else		msg = RED"\n$N狂啸一声,当头砍了自己一刀,顿时一股鲜血飞溅在"+weaname+RED"之上,"NOR+weaname+RED"整个变的通红!!!";		attack = 7-now;	damage = 8-now;	if(me->query_temp("xs/longxiang")) {		damage--;		if(damage<2) damage=2;		msg += "$N更把龙象内劲附于兵刃之上!";	}	msg += "\n"NOR;	message_vision(msg, me);	if(wizardp(me) ) tell_object(me,sprintf("damage:%d , attack:%d , qi:%d \n",force/damage,lvl/attack,-50*now));	me->add_temp("apply/damage", (force/damage+300));	me->add_temp("apply/attack", lvl/attack);if (!target->is_busy()) target->start_busy(3);	COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 0);	COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 0);	COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 0);	me->add_temp("apply/damage", -(force/damage+300));	me->add_temp("apply/attack", -lvl/attack);	if(me->query("qi") < (60*now)) 		qi = me->query("qi")-10;	else		qi = 60*now;	if(qi<0) qi = 0;	me->receive_damage("qi", qi/2);	me->receive_wound("qi", qi/3);	me->add("neili", -30*now);	if(me->query("neili") < 0)	me->set("neili",0);	call_out("jixue",2+random(3),me,target,times,now);}

⌨️ 快捷键说明

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