int exert(object me, object target) { string force; if (userp(me) && ! me->query("can_exert/yijin-duangu/heal")) return notify_fail("你所学的内功中没有这种功能。\n"); if (! target) return notify_fail("你要用真气为谁疗伤?\n"); if (target == me) return notify_fail(HEAL "只能对别人施展。\n"); if (me->is_fighting() || target->is_fighting()) return notify_fail("战斗中无法运功疗伤。\n"); if (target->query("not_living")) return notify_fail("你无法给" + target->name() + "疗伤。\n"); if ((int)me->query_skill("yijin-duangu", 1) < 100) return notify_fail("你的易筋锻骨不够娴熟,难以施展" HEAL "。\n"); if (me->query_skill_mapped("force") != "yijin-duangu") return notify_fail("你没有激发易筋锻骨,难以施展" HEAL "。\n"); if ((int)me->query("max_neili") < 1500) return notify_fail("你的内力修为太浅,难以施展" HEAL "。\n"); if ((int)me->query("neili") < 1000) return notify_fail("你现在的真气不足,难以施展" HEAL "。\n"); if ((int)me->query("jing") < 100) return notify_fail("你现在的状态不佳,难以施展" HEAL "。\n"); if (target->query("eff_qi") >= target->query("max_qi") && target->query("eff_jing") >= target->query("max_jing")) return notify_fail("对方没有受伤,不需要接受治疗。\n"); message_sort(HIY "\n只见$N" HIY "默默运转" + to_chinese(force) + HIY ",深深吸进一口气,头上隐隐冒出白雾,陡然施展开" "易筋锻骨,以纯阴内力瞬时点遍了$n" HIY "全身七十二" "处大穴。过得一会,便见得$n" HIY "“哇”的一下吐出" "几口瘀血,脸色登时看起来红润多了。\n" NOR, me, target); me->add("neili", -800); me->receive_damage("qi", 100); me->receive_damage("jing", 50); target->receive_curing("qi", 100 + (int)me->query_skill("force") + (int)me->query_skill("yijin-duangu", 1) * 3); if (target->query("qi") <= 0) target->set("qi", 1); target->receive_curing("jing", 100 + (int)me->query_skill("force") / 3 + (int)me->query_skill("yijin-duangu", 1)); if (target->query("jing") <= 0) target->set("jing", 1); if ((int)target->query_condition("hamagong_poison")) { target->clear_condition("hamagong_poison"); tell_object(target, HIC "\n你只觉体内残存的蛤蟆功伤慢慢" "消退,感觉好多了。\n" NOR); } if (! living(target)) target->revive(); if (! target->is_busy()) target->stary_busy(2); message_vision("\n$N闭目冥坐,开始运功调息。\n", me); me->start_busy(10); return 1; }
int kee_out(object me,object target) { int mkilluse,cor,maxskee; int magic_lv,makee_lv; int sha_lv,rain_lv; int mix_power; int ext_power=0; if (me->query("quest/worldpill") == 1) ext_power=120; //吃下绝世丹药后的威力增幅 cor=me->query("cor"); maxskee =me->query("max_s_kee"); magic_lv =me->query_skill("magic",1); sha_lv =me->query_skill("shadow-kill",1)*2; //max lv 90 rain_lv =me->query_skill("rain-throwing",1); //max lv 100 makee_lv =me->query("/functions/manakee/level")*2; //max lv 150 mix_power=sha_lv+rain_lv+makee_lv+ext_power; //如果magic lv 80的话,最多可以使用10单位的杀气 //加1是避免出现零次的机会 //用于控制持续回数 if (magic_lv > 80) magic_lv=80; mkilluse=random(magic_lv /8)+1; if(me->query("class") != "killer") { tell_object(me,"自从你离开杀手后,就发现心中的魔气逐渐消失...\n"); return 1; } if(me->query("quest/head-kill") != 1) { tell_object(me,"ㄟ......你想用什么气呀?要用?自己放屁会快一点\n"); return 1; } if(me->query("s_kee")< 20) { tell_object(me,"你的杀意魔气修练不够精深,多练一下再用吧!\n"); return 1; } if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("‘杀意魔气’只能对战斗中的对手使用。\n"); if(target->query_temp("mkill")==1) { tell_object(me,"敌人目前被杀意魔气纠缠着,先攻击等会再放杀气\n"); return 1; } if (me->query("bellup") != 1) { tell_object(me, "感觉起来你还不够想杀人嘛!怎么不用杀意升这一招\n"); return 1; } if (me->query("bellicosity") < 500) { tell_object(me, "杀气不够啦!那要怎么用杀气来威吓对手呢?\n"); return 1; } if (me->query_skill("magic") < 10) { tell_object(me, "连点法术也不学,那怎么会有足够的灵力来控制杀气\n"); return 1; } if (me->query("atman") < 30) { tell_object(me, "灵力不够啦,这样你会自灭哦!?\n"); return 1; } //以下是花费 me->add("bellicosity",-(mkilluse*5)); //因为使用杀气恫吓对方 me->add("atman",-30); //使用灵力来结合杀气与灵气 me->add("s_kee",-20); //所需花去的灵气量 //持续回数最高mkilluse可能到10,威力以最大灵气量来分等级 //这根本是变态,把灵气练到lv 250以上,由lv200->lv 250最少需要230000的atman值 //所以给予一击必杀的威力,但把灵气等级降30,使玩家不能练比lv 250更高 if (maxskee > 250) { me->add("max_s_kee",-30); //所需花去的灵气等级 message_vision(HIM" 杀 意 魔 气\n\n"NOR,me); message_vision(HIM"超顶级威力 **紫**级**魔**气** \n\n"NOR,me); message_vision(HIM"超精纯的杀意魔气化成真元由$N体内射出,这是具有无比威力的魔气\n"NOR,me); message_vision(HIM"$N的魔气真元在瞬间射入$n体内,无比的威力在其体内爆发!\n"NOR,me,target); target->start_busy(2); target->receive_damage("gin",random(mix_power*2)); target->receive_damage("sen",random(cor*40)); //胆识30*40=1200 一般是一击必杀,重要NPC不会有问题 //且杀手的胆识大约在20-25之间, 20*20=400,也就是只要胆识低一些,威力就降很多 } else if (maxskee > 200) { message_vision(HIM" 杀 意 魔 气\n\n"NOR,me); message_vision(HIG"顶级威力 *绿*级*魔*气* \n\n"NOR,me); message_vision(HIG"$N由自身爆出强烈的杀气,这是一种带有魔力的杀气\n"NOR,me); message_vision(HIG"$N地狱般的魔气瞬间笼罩$n,令其感到剧烈的恐惧感!\n"NOR,me,target); target->start_busy(2); target->receive_damage("gin",random(mix_power)); target->receive_damage("sen",random(cor*20)); //胆识30*20=600 } else if (maxskee > 150) { message_vision(HIM" 杀 意 魔 气\n\n"NOR,me); message_vision(HIR"超上级威力 *红*级*魔*气* \n\n"NOR,me); message_vision(HIR"$N由自身爆出强烈的杀气,这是一种带有魔力的杀气\n"NOR,me); message_vision(HIR"$N地狱般的魔气瞬间笼罩$n,令其感到剧烈的恐惧感!\n"NOR,me,target); target->start_busy(2); target->receive_damage("gin",random(mix_power)); target->receive_damage("sen",random(cor*10)); //胆识30*10=300 } else if (maxskee > 100) { message_vision(HIM" 杀 意 魔 气\n\n"NOR,me); message_vision(HIY"上级威力 *黄*级*魔*气* \n\n"NOR,me); message_vision(HIY"$N由自身爆出强烈的杀气,这是一种带有魔力的杀气\n"NOR,me); message_vision(HIY"$N地狱般的魔气瞬间笼罩$n,令其感到剧烈的恐惧感!\n"NOR,me,target); target->start_busy(2); target->receive_damage("gin",random(mix_power*0.9)); //max 249 target->receive_damage("sen",random(cor*8)); //胆识30*8=240 } else if (maxskee > 70) { message_vision(HIM" 杀 意 魔 气\n\n"NOR,me); message_vision(HIB"中级威力 *蓝*级*魔*气* \n\n"NOR,me); message_vision(HIB"$N由自身爆出强烈的杀气,这是一种带有魔力的杀气\n"NOR,me); message_vision(HIB"$N地狱般的魔气瞬间笼罩$n,令其感到剧烈的恐惧感!\n"NOR,me,target); target->start_busy(1); //busy 1 target->receive_damage("gin",random(mix_power*0.8)); //max 249 target->receive_damage("sen",random(cor*7)); //胆识30*6=180 } else if (maxskee > 40) { message_vision(HIM" 杀 意 魔 气\n\n"NOR,me); message_vision(RED" *泛*级*魔*气* \n\n"NOR,me); message_vision(RED"$N由自身爆出强烈的杀气,这是一种带有魔力的杀气\n"NOR,me); message_vision(RED"$N地狱般的魔气瞬间笼罩$n,令其感到剧烈的恐惧感!\n"NOR,me,target); target->start_busy(1); //busy 1 target->receive_damage("gin",random(mix_power*0.7)); //max 150 target->receive_damage("sen",random(cor*6)); //胆识30*6=180 } else if (maxskee > 10) { message_vision(HIM" 杀 意 魔 气\n\n"NOR,me); message_vision(MAG" *初*级*魔*气* \n\n"NOR,me); message_vision(MAG"$N由自身爆出强烈的杀气,这是一种带有魔力的杀气\n"NOR,me); message_vision(MAG"$N地狱般的魔气瞬间笼罩$n,令其感到剧烈的恐惧感!\n"NOR,me,target); target->start_busy(1); //busy 1 target->receive_damage("gin",random(mix_power*0.5)); //max 120 target->receive_damage("sen",random(cor*4)); //胆识30*5=120 } target->set_temp("mkill",1); target->apply_condition("mkill_out",mkilluse); return 1; }
void ningxie_result(object me, object target) { int afp,vfp,mod_val; object weapon; string str; weapon=me->query_temp("weapon"); message_vision(HIB"\n随着$N手中"+weapon->name()+HIB"的舞动,周围的空气越来越冷了。\n"NOR,me); afp = COMBAT_D->skill_power(me, "force", SKILL_USAGE_DEFENSE); if( afp < 1) afp = 1; vfp = COMBAT_D->skill_power(target, "force", SKILL_USAGE_ATTACK); if( vfp < 1 ) vfp = 1; if( me->query("force_factor") && (me->query("force") > me->query("force_factor")) ) mod_val = (100+me->query("force_factor")/10); else mod_val=100; if( afp > 1000000 ) mod_val = afp / 100 * (100 + mod_val); else mod_val = (100 + mod_val) * afp / 100; if( mod_val < 1 ) mod_val = 1; if( random(mod_val + vfp) < vfp ) {message_vision(YEL"$N运气一转,全不把寒冷放在心上!\n"NOR,target); target->add_temp("ningxie_effect",-1); if ( target->query_temp("ningxie_effect") < 0 ) target->set_temp("ningxie_effect",0); } else{ if( me->query("force_factor") && (me->query("force") > me->query("force_factor")) ) me->add("force",-me->query("force_factor")); switch (target->query_temp("ningxie_effect")) { case 0: {message_vision(WHT"$N打了一个寒颤。\n"NOR,target); me->set_temp("ex_ningxie",7); COMBAT_D->do_attack_damage(me, target, me->query_temp("weapon")); COMBAT_D->report_status(target); target->receive_damage("sen",random(me->query_skill("force"))); COMBAT_D->report_sen_status(target); target->add_temp("ningxie_effect",1); me->delete_temp("ex_ningxie"); break; } case 1: { message_vision(WHT"$N冷的浑身颤抖!\n"NOR,target); me->set_temp("ex_ningxie",8); COMBAT_D->do_attack_damage(me, target, me->query_temp("weapon")); COMBAT_D->report_status(target); target->receive_damage("sen",random(me->query_skill("force"))); COMBAT_D->report_sen_status(target); target->add_temp("ningxie_effect",1); me->delete_temp("ex_ningxie"); break; } case 2: {message_vision(WHT"$N冷得脸色惨白!\n"NOR,target); me->set_temp("ex_ningxie",9); COMBAT_D->do_attack_damage(me, target, me->query_temp("weapon")); COMBAT_D->report_status(target); target->receive_wound("sen",random(me->query_skill("force"))); COMBAT_D->report_sen_status(target); target->add_temp("ningxie_effect",1); me->delete_temp("ex_ningxie"); break; } case 3: {message_vision(WHT"$N冷得像一条冰棍了!\n"NOR,target); me->set_temp("ex_ningxie",10); COMBAT_D->do_attack_damage(me, target, me->query_temp("weapon")); COMBAT_D->report_status(target); target->receive_wound("sen",random(me->query_skill("force"))); COMBAT_D->report_sen_status(target); me->delete_temp("ex_ningxie"); } } if (target->query("eff_kee")<0 || target->query("eff_sen")<0 || (!living(target) && ((target->query("sen")<0) || target->query("kee")<0)) ) {str=target->name()+"被"+me->name()+"手中"+weapon->name()+HIM"所带出的寒气活活冻死了,听说连尸体也青一块紫一快的!"NOR; CHANNEL_D->do_channel(me, "rumor",str); target->die(); me->delete_temp("last_channel_msg"); } } if ( me->query_temp("ningxie") ) call_out("ningxie_result",3+random(6),me,target); }
int perform(object me, object target) { object weapon; string msg; int ap, dp; int i, attack_time; if (userp(me) && ! me->query("can_perform/guxing-jian/lian")) return notify_fail("你所使用的外功中没有这种功能。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(LIAN "只能对战斗中的对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "sword") return notify_fail("你所使用的武器不对,难以施展" LIAN "。\n"); if ((int)me->query_skill("guxing-jian", 1) < 100) return notify_fail("你的孤星剑法不够娴熟,难以施展" LIAN "。\n"); if (me->query_skill_mapped("sword") != "guxing-jian") return notify_fail("你没有激发孤星剑法,难以施展" LIAN "。\n"); if (me->query("neili") < 300) return notify_fail("你目前的真气不够,难以施展" LIAN "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIW "\n$N" HIW "蓦的一声清啸,施出绝学「" HIM "九星连珠" HIW "」,手中" + weapon->name() + HIW "呼呼作响。霎时间" "孤星剑法剑招连绵涌出,此起彼伏,剑气笼罩$n" HIW "全身。" NOR; message_sort(msg, me, target); attack_time = 4; ap = me->query_skill("sword"); dp = target->query_skill("dodge"); attack_time += random(ap / 40); if (attack_time > 8) attack_time = 8; me->add("neili", -attack_time * 20); if (ap / 2 + random(ap) > dp) { msg = HIY "$n" HIY "见$P" HIY "剑势汹涌,寒意顿生,竟" "被逼得连连后退,狼狈不已。\n" NOR; } else { msg = HIC "$n" HIC "见$N" HIC "这几剑来势迅猛无比,毫" "无破绽,只得小心应付。\n" NOR; } message_combatd(msg, me, target); for (i = 0; i < attack_time; i++) { if (! me->is_fighting(target)) break; COMBAT_D->do_attack(me, target, weapon, 0); } me->start_busy(1 + random(attack_time)); return 1; }
int valid_leave(object me, string dir) { me->add("mana", -10); return ::valid_leave(me, dir); }
int perform(object me, object target) { object weapon; int damage; string msg; int ap, dp; if (userp(me) && ! me->query("can_perform/hujia-daofa/zhui")) return notify_fail("你还没有受过高人指点,无法施展" ZHUI "。\n"); if (! target) { me->clean_up_enemy(); target = me->select_opponent(); } if (! target || ! me->is_fighting(target)) return notify_fail(ZHUI "只能对战斗中的对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "blade") return notify_fail("你使用的武器不对,难以施展" ZHUI "。\n"); if ((int)me->query_skill("force") < 200) return notify_fail("你的内功火候不够,难以施展" ZHUI "。\n"); if ((int)me->query_skill("hujia-daofa", 1) < 140) return notify_fail("你的胡家刀法还不到家,难以施展" ZHUI "。\n"); if (me->query_skill_mapped("blade") != "hujia-daofa") return notify_fail("你没有激发胡家刀法,难以施展" ZHUI "。\n"); if ((int)me->query("neili") < 200) return notify_fail("你的真气不够,难以施展" ZHUI "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIR "$N" HIR "手中的" + weapon->name() + HIR "一振,施出「卸" "甲锥心势」,顿时一股凌厉无比的无形刀气破空袭向$n" HIR "!\n"NOR; ap = ap_power(me, "blade"); dp = dp_power(target, "parry"); if (ap / 2 + random(ap) > dp) { damage = da_power(me, "blade"); me->add("neili", -150); msg += COMBAT_D->do_damage(me, target, WEAPON_ATTACK, damage, 65, HIR "只见$n" HIR "一声惨叫,整个人如遭" "电击,刀气穿心,口中鲜血狂喷而出!\n" NOR); me->start_busy(2); } else { msg += CYN "可是$p" CYN "默运内力,硬是抵挡了$P" CYN "的这记无形刀气。\n"NOR; me->add("neili", -50); me->start_busy(3); } message_combatd(msg, me, target); return 1; }
int perform(object me, object target) { object weapon, weapon1 ; string msg; int extra, dodge, speed, parry ,damage; if (!target) target = offensive_target(me); if (me->query_skill_mapped("force") != "kurong-changong" && me->query_skill_mapped("force") != "duanshi-xinfa") return notify_fail(HIW"你所用得内功心法不对,无法跃起身形。\n" NOR); if (!target || !target->is_character() || !me->is_fighting(target)) return notify_fail( HIW "「凤舞九天」只能在战斗中使用。\n" NOR); if (me->query("gender") !="女性") return notify_fail( HIW "「凤舞九天」只有女性能舞!\n" NOR); if (me->query_temp("jiutian")) return notify_fail( HIW "你正在舞「凤舞九天」!\n" NOR); if (!objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "whip") return notify_fail("你使用的武器不对。\n"); if ((int)me->query_skill("kurong-changong", 1) < 130 && (int)me->query_skill("duanshi-xinfa",1) < 130) return notify_fail( HIW "你的内功修为未到,无法施展「凤舞九天」。\n" NOR); if ((int)me->query_skill("feifeng-whip", 1) < 150) return notify_fail( HIW "你的飞凤鞭法修为还不够,尚未领悟到「凤舞九天」。\n" NOR); if (me->query("max_neili") <= 1000) return notify_fail( HIW "你的内力修为不足,劲力不足以施展「凤舞九天」!\n" NOR); if ((int)me->query("neili", 1) < 500) return notify_fail( HIW "你现在内力不够,劲力不足以施展「凤舞九天」!\n" NOR); if (me->query("jingli") <= 300) return notify_fail( HIW "你的精力不足,无法施展「凤舞九天」!\n" NOR); if (me->query("combat_exp")*3 > target->query("combat_exp")*4) return notify_fail( HIW "想用「凤舞九天」欺负弱小?不太好吧!\n" NOR); if (! living(target)) return notify_fail( HIW "对方都已经这样了,还舞给谁看啊!\n" NOR); message_vision(MAG"$N向后纵身一跃,翩翩起舞,手中的"NOR+weapon->name()+NOR MAG"响起阵阵凤鸣,舞姿奇诡莫测,变化无端,宛如凤凰一般刹是好看。\n\n" NOR, me); if (random(me->query("per"))+8 > 20) { message_vision(HIR"突然$n一个失神,被$N的动作所吸引,顿感心旷神怡,心猿意马,被$N的舞姿迷的神魂颠倒!\n\n"NOR, me, target); target->start_busy(random(5)+5); if (target->query_temp("weapon")) { weapon1 = target->query_temp("weapon"); if (me->query("combat_exp") < random(target->query("combat_exp")*8/5)) { message_vision(HIW"$n手指一松,"NOR+weapon1->name()+NOR HIW"险些脱手!\n" NOR, me, target); } else { message_vision(HIW"$n手上一松,不由自主的丢下了"NOR+weapon1->name()+NOR HIW"!\n" NOR, me, target); weapon1->unequip(); weapon1->move(environment(target)); target->reset_action(); } } extra = (int)me->query_skill("feifeng-whip",1); dodge = extra*3/4 + random(extra/2); damage = extra/3 + random(extra/2); parry = extra*3/4 + random(extra/5); me->add_temp("apply/dodge", dodge); me->add_temp("apply/damage", damage); target->add_temp("apply/parry", -parry); me->set_temp("jiutian", 25+extra/6); call_out("checking", 1, me, target, weapon, dodge, damage, parry); me->start_busy(1+random(2)); me->add("neili", -250); me->add("jing", -50); } else { message_vision(RED"就看$n收敛心神,心如明镜,全神贯注,并未被$N的舞姿所迷。\n"NOR, me, target); me->start_busy(random(5)+2); } return 1; }
int perform(object me, object target) { object weapon; int damage =0, dragon; int myhammer; string msg; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("天狼斩只能对战斗中的对手使用。\n"); if (!objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "blade") return notify_fail("你使用的武器不对。\n"); if(me->query("family/family_name") != "天空界") return notify_fail("不是天界弟子的也想用天狼斩?\n"); if( (int)me->query_skill("tianlang-blade", 1) < 150 ) return notify_fail("你的天狼夜摩刀不够娴熟,不能发出「天狼斩」。\n"); if( (int)me->query_skill("shouya-force", 1) < 150 ) return notify_fail("你的兽牙魔经不够高,不能够运起那股劲气。\n"); if( (int)me->query("force", 1) < 600 ) return notify_fail("你现在内力太弱,不能发出「雷霆三击」。\n"); msg = HIG "$N撮嘴尖啸,猛吸一口气,快速运转兽牙魔经,浑圆霸气散布四周五丈范围 随后将浑圆内力灌注于刀上, 一连三刀带起三道劲风,从上,中,下三路带着撕晋烈帛般的声音扫向$n。 这正是黑幕凯的绝学"HIR"「天狼斩」\n"NOR; if( !target->is_killing(me) ) target->kill_ob(me); if (random(me->query_skill("shouya-force", 1)) > target->query_skill("force", 1)/4) { target->start_busy(1); damage += (int)me->query_skill("tianlang-blade", 1); damage = damage + (int)me->query_skill("shouya-force", 1); damage = damage + (int)me->query_skill("shanbishu", 1); if (damage < 600) { dragon = 1; } else if (damage < 900) { damage = damage/3*4; dragon = 2; } else { damage = damage/5*8; dragon = 3; } if (damage >= target->query("max_kee")) damage = target->query("max_kee")-1; target->receive_damage("kee", damage); target->receive_wound("kee", damage/3); me->add("force", -300); msg += HIC"$n被$N的兽牙魔经的劲力牵制动弹不得,身中"+chinese_number(dragon)+"刀!\n$n只觉兵刃对身体造成的疼痛似乎已经不算什么,强大的霸气,只震的$n的五脏六腑都在颤抖!\n"NOR; me->start_busy(1+random(2)); } else { msg += MAG"$p识得这招的厉害,向后几个纵身跳出了$P浑圆霸气散布的范围。\n"NOR; me->add("force", -350); me->start_busy(1+random(2)); } message_vision(msg, me, target); if (damage > 0) COMBAT_D->report_status(target); return 1; }
int perform(object me) { int force, sword; object weapon = me->query_temp("weapon"); string shape = weapon->query("id"); if( !me->is_fighting() ) return notify_fail("「绕指柔剑」只能在战斗中使用。\n"); if( !me->query("wudang/raozhi") ) return notify_fail("你未得高人指点,不知该如何施展「绕指柔剑」。\n"); if( !objectp(weapon) || weapon->query("skill_type") != "sword" ) return notify_fail("你手中无剑,怎能使出「绕指柔剑」?!\n"); if( me->query_temp("yield") ) return notify_fail("你不出剑,如何使出「绕指柔剑」?\n"); if( me->query_temp("wudang/raozhi") ) return notify_fail("你已经将内力贯注入剑中了!!\n"); if( me->query_skill_mapped("force") != "wudang-jiuyang" ) return notify_fail("你所用的内功与「绕指柔剑」心法相悖!\n"); if( me->query_skill("sword") < 200 ) return notify_fail("你的剑法修为还不够,难以施展「绕指柔剑」!\n"); if( me->query_skill("force") < 200 ) return notify_fail("你的内功修为火候未足,无法以内力逼弯剑刃!\n"); if( me->query("max_neili") <= 1500 ) return notify_fail("你的内力不够浑厚,劲力不足以逼弯剑刃!\n"); if( me->query("neili") <= 500 ) return notify_fail("你的内力不够,劲力不足以逼弯剑刃!\n"); if( me->query("jingli") <= 200 ) return notify_fail("你的体力有限,难以施展「绕指柔剑」!\n"); if( shape == "xuantie jian" ) return notify_fail("你所持之剑质地过於坚硬,难以用内力将其逼弯!\n"); if( shape == "tie di" || shape == "tie xiao" || shape == "zhu xiao" || shape == "yu xiao") return notify_fail("箫笛形状不适合施展「绕指柔剑」!\n"); if( shape == "xiuhua zhen" || shape == "qijue zhen" || shape == "emei ci" || shape == "duanjian" || shape == "bishou" ) return notify_fail("你所持之剑太短,不适合施展「绕指柔剑」!\n"); me->add("neili", -100); me->add("jingli", -150); if( (string)weapon->query("material") != "steel" ) { message_vision(HIW "\n猛地里$N一声清啸,剑法忽变。可是手中"+ weapon->name() +HIW"却已经不住内力冲击,裂成碎片!!\n"NOR, me); destruct(weapon); me->set_temp("apply/damage", 0); me->reset_action(); me->start_busy(1); return 1; } force = me->query_skill("force")/2; sword = me->query_skill("sword")/3; weapon->add("rigidity", force); me->add_temp("apply/attack", sword); me->set_temp("wudang/raozhi", sword); message_vision(HIG "\n猛地里$N一声清啸,剑法忽变,那柄"+ weapon->name() +HIG"竟似成了一条软带,轻柔曲折,飘忽不定。\n正是武当派绝技"+ HIW +"「绕指柔剑」"+ HIG +"!\n"NOR, me); call_out("checking", 1, me, weapon, sword, force); return 1; }
int cast(object me, object target) { string msg; int success, ap, dp, ap2, ap3, dp2, dp3, damage; if( !target ) target = offensive_target(me); if((int)me->query_skill("spells") < 100 || (int)me->query_skill("pingtian-dafa",1) < 60) return notify_fail("你还没学会妖火。。。\n"); if( !target || !target->is_character() || target->is_corpse() || target==me) return notify_fail("你想对谁喷火?\n"); if( target->is_busy() ) return notify_fail(target->name()+"已经够忙了。\n"); if(target->query_temp("no_move")) return notify_fail(target->query("name")+"已经动弹不得了!\n"); if((int)me->query("mana") < 200 ) return notify_fail("你的法力不够!\n"); if((int)me->query("sen") < 10 ) return notify_fail("你无法集中精力!\n"); me->add("mana", -100); me->receive_damage("sen", 20); msg = HIG "$N凸腹鼓腮,咬破舌尖,张口一喷,一团碧磷磷的妖火直朝$n喷去!\n\n" NOR; success = 1; ap = me->query_skill("spells"); ap = ap * ap * ap /12 ; ap += (int)me->query("daoxing"); dp = target->query("daoxing"); //呵呵,看你怕不怕,比胆识 ap2 = (int)me->query_cor(); dp2 = (int)target->query_cor(); ap3 = (int)me->query("mana"); dp3 = (int)target->query("mana"); if( random(ap + dp + 2500*(ap2+dp2)+200*(ap3+dp3)) < (dp+2500*dp2+200*dp3) ) success = 0; // 哈哈,中招了,没这么简单,我pingtian-dafa高低,你惨的程度不一样 if(success == 1 && (int)me->query_skill("pingtian-dafa",1) < 100){ msg += HIR "$n看着$N那鄙陋相正想抢攻,不料一团碧火袭来,顿时手忙脚乱。\n" NOR; target->start_busy(2+random(2)); if( living(target) ) target->kill_ob(me); } else if(success == 1 && (int)me->query_skill("pingtian-dafa",1) > 100){ // 难道就这么结束了,没呢!还有更厉害要你致命的! // 不过得看我运气,就是福缘了 if(random(me->query("kar"))>18){ msg += HIR "$n被妖火袭中,一股火毒直冲入脑髓、骨髓、血髓、脉髓。。。。\n" NOR; target->apply_condition("yaohuo_poison",((int)me->query_skill("pingtian-dafa",1)/5)); target->start_busy(3+random(2)); damage = (int)me->query_skill("force", 1); damage = damage + (int)me->query_skill("pingtian-dafa",1); target->receive_damage("sen", damage); target->receive_wound("sen", damage/3); } msg += HIR "$n一个不防,被妖火笼罩了全身。只听见$n在碧磷般的妖火中惨叫连连!\n" NOR; target->start_busy(1+random(2)); damage = (int)me->query_skill("force", 1); damage = damage + (int)me->query_skill("pingtian-dafa",1); target->receive_damage("sen", damage); target->receive_wound("sen", damage/3); if((int)me->query("mana") > 100 ) me->add("mana", -100); if( living(target) ) target->kill_ob(me); me->start_busy(2+random(2)); } else { msg += HIR "$n显然觑出$N这招的厉害,后掠三步,躲过了妖火!\n" NOR; me->start_busy(2+random(2)); if((int)me->query("mana") > 100 ) me->add("mana", -100); if( living(target) ) target->kill_ob(me); } message_vision(msg, me, target); return 1; }
int perform(object me, object target) { string msg; int count; int lvl; int i; if (userp(me) && ! me->query("can_perform/lianhuan-mizongtui/lian")) return notify_fail("你所使用的外功中没有这种功能。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(LIAN "只能对战斗中的对手使用。\n"); if ((lvl = (int)me->query_skill("lianhuan-mizongtui", 1)) < 120) return notify_fail("你的连环迷踪腿不够娴熟,难以施展" LIAN "。\n"); if (me->query_temp("weapon") || me->query_temp("secondary_weapon")) return notify_fail(LIAN "只能空手施展。\n"); if (me->query("max_neili") < 1800) return notify_fail("你的内力的修为不够,现在无法使用" LIAN "。\n"); if ((int)me->query_skill("force") < 150) return notify_fail("你的内功火候不够,难以施展" LIAN "。\n"); if ((int)me->query_skill("dodge") < 150) return notify_fail("你的轻功火候不够,难以施展" LIAN "。\n"); if (me->query_skill_prepared("unarmed") != "lianhuan-mizongtui") return notify_fail("你现在没有准备使用连环迷踪腿,难以施展" LIAN "。\n"); if ((int)me->query("neili", 1) < 200) return notify_fail("你现在真气太弱,难以施展" LIAN "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIW "陡见$N" HIW "全身飞速旋转,双腿忽前忽后,接连贯出数腿,流星般疾射$n" HIW "胸口。\n" NOR; me->add("neili", -150); if (random(me->query_skill("dodge") + me->query_skill("unarmed")) > target->query_skill("parry")) { msg += HIR "$n" HIR "顿时觉得眼花缭乱,无数条腿" "向自己奔来,只得拼命运动抵挡。\n" NOR; count = lvl / 5; me->add_temp("apply/attack", count); } else { msg += HIC "可是$n" HIC "凝神顿气,奋力抵挡,丝" "毫不受腿影的干扰,。\n" NOR; count = 0; } message_combatd(msg, me, target); for (i = 0; i < 5; i++) { if (! me->is_fighting(target)) break; COMBAT_D->do_attack(me, target, 0, 0); } me->start_busy(random(5)); me->add_temp("apply/attack", -count); return 1; }
int perform(object me, object target) { string msg,*limbs; int i,size,damage; object my_w,target_w; my_w = me->query_temp("weapon"); target_w = target->query_temp("weapon"); if( !target ) target = offensive_target(me); if( target->is_busy() ) return notify_fail(target->name() + "Ŀǰ��ãȻ��֪���룬�ӽ������ɡ�\n" ); if( (int)me->query_skill("duanyun-fu",1) < 50) return notify_fail("��Ŀǰ������ʹ�����������ҡ���\n"); if( (int)me->query("neili") < 100 ) return notify_fail("�������������\n"); me->add("neili", -60); msg = CYN"$NͻȻ����һ���������ң����ң��������ң��������о���Ȼ����$p���б��У�\n"NOR; me->start_busy(1); if (target->query_temp("weapon") || target->query_temp("secondary_weapon")) { if( random(me->query("combat_exp")) > (int)target->query("combat_exp")/3 ) { if( target_w->weight() > 2 * random(my_w->weight()) ) { msg += "���$p���е�"+target_w->query("name")+"��$P�ĺ������Ҹ����ţ���Ҳ���ղ�� ס���������ַɳ���\n" NOR; target_w->unequip(); target_w->move(environment(target)); target->reset_action(); target->start_busy( (int)me->query_skill("duanyun-fu") / 20 ); } msg += HIC "ֻ��$n���е�"+target_w->query("name")+"��Ȼ���Ҷ������Σ����� �ܵ�$N�ľ����ļ�������$nѸ����ȥ��\n"NOR; message_combatd(msg,me,target); target_w->unequip(); target_w->move(environment(target)); target_w->set("name", target_w->query("name") + "����Ƭ"); target_w->set("value", target_w->query("value")/10); target_w->set("weapon_prop", 0); target->reset_action(); target->start_busy( (int)me->query_skill("duanyun-fu") / 20 ); limbs=target->query("limbs"); me->start_busy(1); msg += "���$p���������������˸����ֲ�����\n" NOR; size=(int)(me->query_skill("duanyun-fu")/10); damage=random(size)+size; damage=damage+me->query_str()/3+random(me->query_temp("apply/damage")); for(i=0;i<=random(size);i++) { msg =HIB"���͡�����Ƭ����$p"+limbs[random(sizeof(limbs))]+"��\n"NOR; message_combatd(msg,me,target); target->receive_damage("qi",damage,me); target->receive_wound("qi",damage/3,me); } COMBAT_D->report_status(target); } else { msg += "����$p��æ���Լ��ı�����������û����$P�ļ�ı�óѡ�\n" NOR; } return 1; } return notify_fail(target->name() + "Ŀǰ�ǿ��֣�������ʲô��\n"); }
int cast(object me, object target) { int success_adj, damage_adj; success_adj = 180; damage_adj = 170; if (!target) target = offensive_target(me); if (me->query("family/family_name")!="火云洞") return notify_fail("“三味真火”只有火云洞门人才可以用!\n"); if (!target || !target->is_character() || target->is_corpse() || target==me) return notify_fail("你要对谁喷三味真火?\n"); if ((int)me->query_skill("pingtian-dafa", 1) < 30) return notify_fail("你的平天大法火候不够,哪里喷得出真火!\n"); if ((int)me->query("mana") < 25+(int)me->query("mana_factor")) return notify_fail("你的法力不够,喷出的真火恐怕没有什么用!\n"); if ((int)me->query("force") < 100) return notify_fail("你的内力不够,无法将真火喷出。\n"); if ((int)me->query("sen") < 10) return notify_fail("你现在神智不清,别把自己烧伤了!\n"); me->add("mana", -25-2*(int)me->query("mana_factor")); me->receive_damage("sen", 50); if (random(me->query("max_mana")) < 50) { message_vision(HIM"$N口中念念有词。。。但什么也没有发生!\n"NOR,me); return 1; } me->receive_wound("kee", 10); msg = HIC "$N伸手在鼻子上砸了两,顿时鲜血直冒,突然红橙黄三道火焰呼!地一声向$n卷去!\n" NOR; message_vision(msg, me, target); ap = (int)me->query_skill("spells"); ap = ap * ap / 1000 * ap; ap = ap * (1 + (int)me->query("combat_exp")/5000000); ap = ap + (int)me->query("combat_exp"); ap = ap/100*180; dp = (int)target->query("combat_exp"); if (random(ap+dp) < dp) { msg = HIC"\n结果被$n躲开了。\n"NOR; message_vision(msg, me, target); } else { a_damage = me->query("mana")/40; d_damage = target->query("mana")/40; a_damage += random(me->query("eff_sen")/20); d_damage += random(target->query("eff_sen")/20); a_damage += me->query("mana_factor")*170/100; d_damage += random(target->query("mana_factor")*170/100); if (a_damage > d_damage) { damage = a_damage - d_damage; damage += me->query("mana_factor")*170/100; damage = damage*170/100; damage_bonus = (int)me->query_skill("spells")/200; if (damage_bonus > 3) damage_bonus = 3; damage += damage*damage_bonus; if (damage > 3000) damage = 3000; msg = HIC "结果$n被烧得焦头烂额!\n" NOR; message_vision(msg, me, target); target->receive_damage("kee", damage*3/5, me); target->receive_wound("kee", damage/2, me); COMBAT_D->report_status(target); } else if (a_damage < d_damage) { msg = HIC "结果火焰被$n以法力一逼,反向$N回卷而去!\n" NOR; message_vision(msg, me, target); damage = d_damage; if (damage > 400) damage = 400; damage -= target->query("mana_factor"); damage = damage*170/100; damage_bonus = (int)me->query_skill("spells")/200; if (damage_bonus < 1) damage_bonus = 1; if (damage_bonus > 10) damage_bonus = 10; damage += damage/damage_bonus; msg = HIR "\n结果$n躲避不及,被烧得焦头烂额!\n" NOR; message_vision(msg, me, target); me->receive_damage("kee", damage*3/5, target); me->receive_wound("kee", damage/2, target); COMBAT_D->report_status(me); } else message_vision(HIB "结果正好被$N以法力逼住,谁也没有吃亏。\n" NOR, target); } me->start_busy(1+random(2)); target->kill_ob(me); return 3+random(5); }
//inherit F_YAO; int main(object me, string arg) { object ob; object ob1, ob2,ob3,ob4,ob5,ob6; int lv; lv=me->query_skill("medical",1); seteuid(getuid()); if( me->is_busy() ) return notify_fail("你正忙着呢。\n"); if( !arg ) return notify_fail("你要制什么药?\n"); if( me->is_fighting() ) return notify_fail("你正在战斗,制什么药啊?\n"); if(me->query("sen")<=50) return notify_fail("你现在太累了,休息休息吧!\n"); if(me->query("force")<50) return notify_fail("你的真气不够,不能做什么了。\n"); if( me->is_busy() || me->query_temp("pending/exercising")) return notify_fail("你正忙着呢,没时间制药。\n"); //制作的药品 switch (arg) { case "jinchuang": ob1 = present("hong hua", me) ; ob2 = present("tian qi", me) ; if (!ob1 || !ob2) return notify_fail("你的药材不齐全。\n"); if( lv < 20 ) return notify_fail("你的医术不足制出金疮药。\n"); ob1->set("done", 1); ob2->set("done", 1); done(me); ob=new("/obj/jineng/obj2/jinchuang.c"); ob->move(me); me->add("sen",-20); me->add("force",-50); me->start_busy(1); break; case "hunyuandan": ob1 = present("hu gu", me) ; ob2 = present("du huo", me) ; if (!ob1 || !ob2) return notify_fail("你的药材不齐全。\n"); if( lv < 25 ) return notify_fail("你的医术不足制出混元丹。\n"); ob1->set("done", 1); ob2->set("done", 1); done(me); ob=new("/obj/jineng/obj2/hunyuandan.c"); ob->move(me); me->add("sen",-20); me->add("force",-50); me->start_busy(1); break; default: notify_fail("你没有能力制这种药。\n"); } return 1; }
int main(object me, string arg) { string skill, teacher, master; object ob; int master_skill, my_skill, sen_cost; int time, upper, sen1; int amount, qskill, qlearned, i; if(!arg) return notify_fail ("指令格式:learn <技能> from <某人> for <次数>\n"); if(sscanf(arg, "%s for %d", arg, time)!=2 ) time=1; if(time<1) time=1; if(time>50) time=50; if(!arg || sscanf(arg, "%s from %s", skill, teacher)!=2 ) return notify_fail ("指令格式:learn <技能> from <某人> for <次数>\n"); if( me->is_fighting() ) return notify_fail("临阵磨枪?来不及啦。\n"); if(me->is_busy()) return notify_fail("你正忙着呢。\n"); if( !(ob = present(teacher, environment(me))) || !ob->is_character()) return notify_fail("你要向谁求教?\n"); if( !living(ob) ) return notify_fail("嗯...你得先把" + ob->name() + "弄醒再说。\n"); if( !me->is_apprentice_of(ob) && getuid(ob)!=me->query("couple/id") ) { // && getuid(ob)!=me->query("bonze/dadangid") ) { notify_fail( ob ->name() + reject_msg[random(sizeof(reject_msg))] ); if( (string)me->query("family/family_name") != (string)ob->query("family/family_name") || (int)ob->query("family/privs") != -1 ) { if( !(ob->recognize_apprentice(me)) ) return 0; } else return 0; // mon add this return 0. 5/6/98 } if (getuid(ob) == me->query("couple/id") && !userp(ob) ) return notify_fail("你这个家伙,想干什么?\n"); if( ob->is_fighting()) return notify_fail("你的师傅暂时没空指点你武功。\n"); if( !master_skill = ob->query_skill(skill, 1) ) return notify_fail("这项技能你恐怕必须找别人学了。\n"); notify_fail(ob->name() + "不愿意教你这项技能。\n"); if( ob->prevent_learn(me, skill) ) return 0; my_skill = me->query_skill(skill, 1); if( my_skill < 1&& userp(ob) ) return notify_fail("你还是先把基础打好再说吧!\n");// xintai 2/5/01 notify_fail("依你目前的能力,没有办法学习这种技能。\n"); if( !SKILL_D(skill)->valid_learn(me) ) return 0; sen_cost = 300 / (int)me->query_int(); if( !my_skill ) { sen_cost *= 2; me->set_skill(skill,0); } upper= (int)me->query("potential")-(int)me->query("learned_points"); if(time>upper) time=upper; if(upper<=0) return notify_fail("你的潜能已经发挥到极限了,没有办法再成长了。\n"); qskill=me->query_skills()[skill]+1; qskill*=qskill; qlearned=me->query_learned()[skill]; amount = qlearned; // for those level higher than master's if( amount > qskill ) { for(i=0; i<time; i++) amount += random(me->query_int())+1; } else { for(i=0; i<time; i++) { amount += random(me->query_int())+1; if( amount > qskill ) {i++;break;} } } amount -= qlearned; time = i; sen_cost *= time; printf("你向%s请教有关「%s」的疑问。\n", ob->name(), to_chinese(skill)); if( ob->query("env/no_teach") ) return notify_fail("但是" + ob->name() + "现在并不准备回答你的问题。\n"); // can't learn from another player if oneself // don't have the skill. /* if(userp(ob) && (int)my_skill<1) { return notify_fail("可是你怎么也弄不明白。\n"); }*/ // can't learn above 100 level from a player. // mon 3/7/98 if(userp(ob) && my_skill>=100) return notify_fail("可是"+ ob->name()+"已经无力指导你进一步提高了。\n"); tell_object(ob, sprintf("%s向你请教有关「%s」的问题。\n", me->name(), to_chinese(skill))); sen1=(int)ob->query("sen"); if(userp(ob) || sen1<50) if(sen1 > sen_cost + 1 ) { if( userp(ob) ) ob->receive_damage("sen", sen_cost+1); } else { write("但是" + ob->name() + "显然太累了,没有办法教你什么。\n"); tell_object(ob, "但是你太累了,没有办法教" + me->name() + "。\n"); return 1; } if( (int)me->query("sen") > sen_cost ) { if( (string)SKILL_D(skill)->type()=="martial" && my_skill * my_skill * my_skill / 10 > (int)me->query("combat_exp") ) { printf("也许是实战经验不够,你对%s的回答总是无法领会。\n", ob->name() ); } else if( (string)SKILL_D(skill)->type()=="magic" && my_skill * my_skill * my_skill / 10 > (int)me->query("daoxing") ) { printf("也许是道行不够,你对%s的回答总是无法领会。\n", ob->name() ); } else { //added by mon. 7/24/97 //to learn beyond NPC master's skill with an added cost. me->add("learned_points", time); if( my_skill < master_skill ) { printf("你听了%s的指导,似乎有些心得。\n", ob->name()); me->improve_skill(skill, amount); } else { if(qlearned<me->query_int()) message_vision("$N对$n说道:"+ "你的「"+to_chinese(skill)+ "」已经不输为师了,咱们一起切磋切磋吧!" +"\n",ob,me); printf("%s和你切磋了一会儿%s,你似乎有所领悟。\n", ob->name(),to_chinese(skill)); me->improve_skill(skill, amount, (qlearned>4*qskill && !userp(ob)) ?0:1); //can't learn beyond a player master's level. } } } else { // sen_cost = me->query("sen"); // if(sen_cost<0) sen_cost=0; write("你今天太累了,结果什么也没有学到。\n"); me->start_busy(1); return 1; } me->receive_damage("sen", sen_cost ); // me->start_busy(1); return 1; }
void remove_effect(object me, object weapon, int sword, int force) { me->delete_temp("wudang/raozhi"); me->add_temp("apply/attack", -sword); weapon->add("rigidity", -force); }
int perform(object me, object target) { int damage, p, ap, dp; string msg, dodge_skill; if (userp(me) && ! me->query("can_perform/hamagong/hama")) return notify_fail("你还没有受过高人指点,无法施展「蟾震九天」。\n"); if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) || !living(target) ) return notify_fail("蟾震九天绝招只能对战斗中的对手使用。\n"); if( (int)me->query_skill("hamagong", 1) < 100 ) return notify_fail("你的蛤蟆功还不够熟练,不能使用蟾震九天对敌!\n"); if( me->query_temp("weapon") ) return notify_fail("你必须空手才能使用「蟾震九天」!\n"); if (me->query_skill_mapped("force") != "hamagong") return notify_fail("你的内功中无此功夫。\n"); if (me->query_skill_prepared("strike") != "hamagong" || me->query_skill_mapped("strike") != "hamagong") return notify_fail("你必须先将蛤蟆功运用于掌法之中才行。\n"); if( (int)me->query("max_neili") < 1500 ) return notify_fail("你现在内力不足,使不出蛤蟆功的绝招蟾震九天!\n"); if( (int)me->query("neili") < 400 ) return notify_fail("你现在内力不足,使不出蛤蟆功的绝招蟾震九天!\n"); if( (int)me->query_skill("strike", 1) < 100 ) return notify_fail("你的掌法不够娴熟,使不出蛤蟆功的绝招蟾震九天!\n"); if (me->query_str() < 30 ) return notify_fail("你的力量太小,使不出用蛤蟆绝招蟾震九天!\n"); /* if( me->query_temp("hmg_hama") ) return notify_fail("你刚使完「蛤蟆功」绝招,目前气血翻涌,无法再次运用!\n"); */ msg = BLU "\n$N身子蹲下,左掌平推而出,使的正是$N生平最得意的「蟾震九天」绝招,掌风直逼$n而去!\n"NOR; me->set_temp("hmg_hama", 1); ap = ap_power(me, "force"); dp = dp_power(target, "force"); if (ap / 2 + random(ap) > dp) { me->start_busy(1); if (! target->is_busy()) target->start_busy(1); me->add("neili", -200); damage = da_power(me, "force"); if(me->query("neili") > target->query("neili")*2 ) damage += random(damage); target->receive_damage("qi", damage, me); target->receive_wound("qi", damage/2, me); msg += COMBAT_D->damage_msg(damage, "内伤"); call_out("perform2", 0, me, target, p); } else { me->start_busy(2); if (! target->is_busy()) target->start_busy(1); me->add("neili", -100); tell_object(target, HIY"你但觉一股微风扑面而来,风势虽然不劲,然已逼得自己呼吸不畅,知道不妙,连忙跃开数尺。\n" NOR); dodge_skill = target->query_skill_mapped("dodge"); if( !dodge_skill ) dodge_skill = "dodge"; msg += SKILL_D(dodge_skill)->query_dodge_msg(target, 1); call_out("remove_effect", me->query_con()/6, me); } message_combatd(msg, me, target); return 1; }
int perform(object me, object target) { string msg; object weapon; int skill, ap, dp, damage; if (! target) { me->clean_up_enemy(); target = me->select_opponent(); } if (userp(me) && ! me->query("can_perform/pili-shou/hun")) return notify_fail("你还没有受过高人指点,无法施展" WU "。\n"); if (! me->is_fighting(target)) return notify_fail(WU "只能对战斗中的对手使用。\n"); skill = me->query_skill("pili-shou", 1); if (skill < 140) return notify_fail("你的混元霹雳手等级不够, 不能施展" WU "!\n"); if (me->query_skill("force", 1) < 160) return notify_fail("你内功修为不够,无法施展" WU "!\n"); if (me->query("max_neili") < 2400) return notify_fail("你内力修为不足,无法施展" WU "!\n"); if (me->query("neili") < 340) return notify_fail("你的内力不够,无法施展" WU "!\n"); if (me->query_skill_prepared("hand") != "pili-shou") return notify_fail("你没有准备使用混元霹雳手,无法施展" WU "!\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIC "$N" HIC "怒喝一声,施出绝招「" HIW "天地混元" HIC "」,双掌交错" "袭向$n" HIC ",掌风凌厉,隐隐带有风雷之势。\n" NOR; ap = ap_power(me, "hand") + me->query_skill("force"); dp = dp_power(target, "parry") + target->query_skill("force"); if (ap / 2 + random(ap) > dp) { me->add("neili", -300); damage = da_power(me, "hand"); msg += COMBAT_D->do_damage(me, target, UNARMED_ATTACK, damage, 70, HIR "$n" HIR "只觉得胸前一阵剧痛,“哇”的一" "声喷出一口鲜血!\n" NOR); me->start_busy(1 + random(2)); } else { me->add("neili", -200); msg += CYN "只见$n" CYN "不慌不忙,轻轻一闪,躲过" "了$N" CYN "的必杀一击!\n" NOR; me->start_busy(3); } message_combatd(msg, me, target); return 1; }
int perform(object me, object target) { int sp, dp, time; if( !me->is_fighting() ) return notify_fail("你必须在战斗中才能使用惊魔一指!\n"); if( !target && me->is_fighting() ) target = offensive_target(me); if( !target || !target->is_character() || target->query("race") != "人类" ) return notify_fail("你要点谁的穴?\n"); if( environment(target)->query("no_fight") ) return notify_fail("在这里你不能偷袭点穴!\n"); if( me->query_str() < 30 ) return notify_fail("你在臂力上先天禀赋不足,点穴反受其害!\n"); if( me->query_skill("yizhi-chan", 1) < 90 ) return notify_fail("你在一指禅上下的功夫还不够,不会惊魔一指!\n"); if( me->query_skill("hunyuan-yiqi", 1) < 60 ) return notify_fail("你的内功修为火候未到,无法点穴!\n"); if( me->query("max_neili") <= 500 ) return notify_fail("你的内力修为不足,劲力不能贯透,无法使惊魔一指!\n"); sp = me->query_skill("dodge") + me->query_skill("parry") ; dp = target->query_skill("dodge") + target->query_skill("parry") ; time = (me->query_skill("force") - target->query_skill("force") + me->query_skill("finger"))/10; if (time > 10) time = 10; if( me->query("neili") <= time ) return notify_fail("你的内力不够,劲力不能贯穿穴道!\n"); if( random(sp) > dp/2 && time > 0 ) { if( me->query_skill("finger") >= 90 && me->query_skill("finger") < 115) message_vision(HIR "\n$N五指并拢,身形闪动间,已点中了$n的" + xuedao1[random(5)] + "!\n\n" NOR, me, target); if( me->query_skill("finger") >= 115 && me->query_skill("finger") < 140) message_vision(HIR "\n$N伸出三根手指,一挥手点中了$n的" + xuedao2[random(6)] + "!\n\n" NOR, me, target); if( me->query_skill("finger") >= 140 && me->query_skill("finger") < 165) message_vision(HIR "\n$N双指如刀如戟,着着进逼,唰地一声,已戳在了$n的" + xuedao3[random(6)] + "上!\n\n" NOR, me, target); if( me->query_skill("finger") >= 165 && me->query_skill("finger") < 190) message_vision(HIR "\n$N伸出一根中指,一道青气破空而出,嗤地射中了$n的" + xuedao4[random(5)] + "!\n\n" NOR, me, target); if( me->query_skill("finger") >= 190 ) message_vision(HIR "\n$N指端微伸,劲力无影无踪地发出,$n顿时全身酸麻,已被点中了" + xuedao5[random(7)] + "!\n\n" NOR, me, target); me->add("neili", (-50)*time); target->start_busy(time); } else { message_vision(HIW "\n$N一指点去,可是$n早已料敌机先,一闪身避了开去! \n\n$N身前顿时空门大露,狼狈地招架着 .... \n" NOR, me, target); // if( !target->is_killing(me) ) target->kill_ob(me); me->start_busy(time/5); } return 1; }
int perform(object me, object target) { string msg; int count, ap, dp; int lvl; int i; if (userp(me) && ! me->query("can_perform/wuluo-zhang/bian")) return notify_fail("你还没有受过高人指点,无法施展" BIAN "。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(BIAN "只能对战斗中的对手使用。\n"); if (objectp(me->query_temp("weapon"))) return notify_fail(BIAN "只能空手施展。\n"); if ((lvl = (int)me->query_skill("wuluo-zhang", 1)) < 100) return notify_fail("你五罗轻烟掌不够娴熟,难以施展" BIAN "。\n"); if (me->query_skill_mapped("strike") != "wuluo-zhang") return notify_fail("你没有激发五罗轻烟掌,难以施展" BIAN "。\n"); if (me->query_skill_prepared("strike") != "wuluo-zhang") return notify_fail("你没有准备五罗轻烟掌,难以施展" BIAN "。\n"); if ((int)me->query("neili") < 100) return notify_fail("你现在真气不足,难以施展" BIAN "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIC "$N" HIC "施出五罗轻烟掌绝技,单掌轻轻一抖,登时化出五道掌" "影,轻飘飘向$n" HIC "拍去。\n" NOR; me->add("neili", -50); ap = ap_power(me, "strike"); dp = dp_power(target, "force"); if (ap / 2 + random(ap) > dp) { msg += HIR "$n" HIR "顿时觉得眼花缭乱,全然分辨" "不清真伪,只得拼命运动抵挡。\n" NOR; count = lvl / 10; me->add_temp("apply/attack", count); } else { msg += HIC "可是$n" HIC "凝神顿气,奋力抵挡,丝" "毫不受掌影的干扰,。\n" NOR; count = 0; } message_combatd(msg, me, target); for (i = 0; i < 5; i++) { if (! me->is_fighting(target)) break; COMBAT_D->do_attack(me, target, 0, 0); } me->start_busy(1 + random(5)); me->add_temp("apply/attack", -count); return 1; }
int perform(object me, object target) { object anqi; int damage; string msg; int ap, dp; if (! target) target = offensive_target(me); if (userp(me) && ! me->query("can_perform/bagua-biao/xian")) return notify_fail("你所使用的外功中没有这种功能。\n"); if (! target || ! me->is_fighting(target)) return notify_fail(XIAN "只能在战斗中对对手使用。\n"); if (objectp(me->query_temp("weapon"))) return notify_fail(XIAN "只能空手施展。\n"); if (! objectp(anqi = me->query_temp("handing")) || (string)anqi->query("skill_type") != "throwing") return notify_fail("你现在手中并没有拿着暗器。\n"); if (me->query_skill_mapped("strike") != "bagua-zhang") return notify_fail("你没有激发八卦掌,难以施展" XIAN "。\n"); if (me->query_skill_prepared("strike") != "bagua-zhang") return notify_fail("你没有准备八卦掌,难以施展" XIAN "。\n"); if (me->query_skill_mapped("throwing") != "bagua-biao") return notify_fail("你没有激发八卦镖诀,难以施展" XIAN "。\n"); if ((int)me->query_skill("bagua-zhang", 1) < 120) return notify_fail("你的八卦掌不够娴熟,难以施展" XIAN "。\n"); if ((int)me->query_skill("bagua-biao", 1) < 120) return notify_fail("你的八卦镖诀不够娴熟,难以施展" XIAN "。\n"); if ((int)me->query_skill("force") < 150) return notify_fail("你的内功火候不够,难以施展" XIAN "。\n"); if ((int)me->query("neili") < 150) return notify_fail("你现在真气不足,难以施展" XIAN "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIY "突然只听$N" HIY "喝道:“$n" HIY "看招!”" "说完单手一扬,袖底顿时窜出一道金光,直射$n" HIY "而去!\n" NOR; ap = me->query_skill("strike", 1) + me->query_skill("throwing"); dp = target->query_skill("dodge", 1) + target->query_skill("parry", 1); me->start_busy(3); if (anqi->query_amount() > 0)anqi->add_amount(-1); if (ap / 2 + random(ap) > dp) { damage = ap / 3 + random(ap / 2); me->add("neili", -100); msg += COMBAT_D->do_damage(me, target, UNARMED_ATTACK, damage, 30, HIY "可只见$n" HIY "哈哈一笑,身子一矮" ",躲了过去。\n" NOR + HIR "哪知方才的" "暗器竟是虚招,等$p" HIR "反应时$N" HIR "已至跟前,双掌齐施,重重的印在$n" HIR "胸前。\n" NOR); } else { msg += HIY "可是$p" HIY "看破了$P" HIY "的企图,没" "有受到迷惑,招手将暗器全部揽了下来。\n" NOR; } message_combatd(msg, me, target); return 1; }
int exert(object me, object target) { string msg; int success, ap, dp; if ( userp(me) && !wizardp(me) && !me->query("perform/bx_arrow") && !me->query("can_perform/wudu-shengong/bx_arrow") && !me->query_temp("murong/xingyi")) return notify_fail("你所使用的外功中没有这种功能。"); if( !objectp(target) ) target = offensive_target(me); if( !target || !target->is_character() || target == me || !me->is_fighting(target) || !living(target) || target->query_temp("noliving") ) return notify_fail("碧血箭只能在战斗中使用。\n"); if( !userp(me)) return notify_fail("只有玩家才能玩命。\n"); if((int)me->query("max_neili") < 400 ) return notify_fail("你的内力不够,不能有效施展碧血箭!\n"); if((int)me->query_skill("force",1) < 50 || (int)me->query_skill("wudu-shengong",1) < 50 ) return notify_fail("你的内功修为不够,不能有效施展碧血箭!\n"); if((int)me->query("combat_exp") < (int)target->query("combat_exp")/10) return notify_fail("对方武功强你十倍,不会有用的,还是快跑吧!\n"); message_combatd( HIC "$N双目血红,披头散发,仰天发出一声悲啸!\n\n$N把心一横,在自己舌尖狠命一咬,将毕生功力化做一道奇毒血箭向$n喷了过去!\n" NOR,me,target); success = 1; ap = me->query_skill("force",1)+me->query_skill("wudu-shengong",1); ap = ap /2 ; ap = ap * ap * ap/10; ap = ap+(int)me->query("combat_exp"); // ap = ap * ap; dp = target->query("combat_exp"); // dp = dp * dp; if( random(ap+dp) < random(dp) ) success = 0; ap = (int)me->query("max_neili"); dp = (int)target->query("max_neili"); if( ap < random(dp) ) success = 0; if(success == 1 ) { message_combatd(HIR"结果$n促不及防被血箭射个正着,顿时发出一声惨叫!$N见状哈哈大笑一声,眼前一黑倒在地上。\n" NOR,me,target); target->kill_ob(me); me->kill_ob(target); me->add("max_neili", -50); me->save(); target->receive_wound("qi", (int)target->query("max_qi")+1, me); target->receive_wound("jing", (int)target->query("max_jing")+1,me); COMBAT_D->report_status(target); me->receive_wound("qi", (int)me->query("max_qi")+1, target); me->receive_wound("jing", (int)me->query("max_jing")+1, target); COMBAT_D->report_status(me); } else { message_combatd(HIR"但是血箭被$n内力反震,化做一蓬血雾四散飘去!\n$N一声惨笑,长叹一声,眼前一黑倒在地上。\n" NOR,me,target); target->kill_ob(me); me->kill_ob(target); me->add("max_neili", -30); me->save(); me->receive_wound("qi", (int)me->query("max_qi")+1, target); me->receive_wound("jing", (int)me->query("max_jing")+1, target); COMBAT_D->report_status(me); } return 1; }
int perform(object me, object target) { object weapon; int damage; string msg,str; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || target->is_corpse() || target==me) return notify_fail("你要对谁施展这一招「暴雪天威」?\n"); if(!wizardp(me)&&(string)me->query("family/family_name") != "大雪山" ) return notify_fail("你的冰魄寒刀是从哪里偷学来的?\n"); if(!me->is_fighting()) return notify_fail("「暴雪天威」只能在战斗中使用!\n"); if((int)me->query("max_force") < 500 ) return notify_fail("你的内力不够!\n"); if((int)me->query("force") < 500 ) return notify_fail("你的内力不足!\n"); if((int)me->query("sen") < 500 ) return notify_fail("你的精神不足,没法子施用外功!\n"); if((int)me->query_skill("bingpo-blade", 1) < 100) return notify_fail("你的冰魄寒刀级别还不够,使用这一招会有困难!\n"); if (me->query_temp("xs_pfm_busy")) return notify_fail("绝招用的太多太滥就不灵了。\n"); message_vision(HIW"\n$N运起寒气,身形一转,四周顿时冰冻数尺,空气中寒气逼人$n只冻的忘记的抵抗!\n"NOR,me,target); me->set_temp("noauto",1); target->start_busy(random(2)); damage=random(((int)me->query_skill("blade"))); // target->receive_wound("kee",damage); //没有判断不应该有这样的直接伤害 message_vision(HIW"\n$N嘿嘿一声冷笑,竟然隐入雪花之中。$n大急,四下找寻$N,忽然背后一阵寒气随着\n"NOR,me,target); message_vision(HIW"\n刀光狂袭过来!!!\n"NOR,me,target); COMBAT_D->do_attack(me, target, me->query_temp("weapon")); COMBAT_D->do_attack(me, target, me->query_temp("weapon")); COMBAT_D->do_attack(me, target, me->query_temp("weapon")); if(random(me->query("combat_exp"))>random(target->query("combat_exp"))/4) { message_vision(HIY"\n打斗中,一只金色大鹏鸟远远飞来!$N和$n都看呆了!\n"NOR,me,target); message_vision(HIY"\n突然大鹏鸟用翅膀一扇,顿时狂风大作!\n"NOR,me,target); if(random(me->query("force_factor"))>target->query("force_factor")/4) { message_vision(HIR"\n$N见机不可失,连忙攻出一招!\n"NOR,me,target); target->receive_damage("kee",damage*2); target->receive_damage("sen",damage*2); message_vision(HIR"\n狂风夹杂着碎石漫天飞舞,把$n砸得遍体鳞伤!\n"NOR,me,target); target->receive_wound("kee",damage); target->receive_wound("sen",damage); COMBAT_D->report_status(target); } else if(random(me->query("force_factor"))>target->query("force_factor")/2) { message_vision(HIR"\n狂风夹杂着碎石漫天飞舞,把$n砸得遍体鳞伤!\n"NOR,me,target); target->receive_wound("kee",damage); COMBAT_D->report_status(target); } else { message_vision(HIR"\n狂风夹杂着碎石漫天飞舞,把$N和$n砸得遍体鳞伤!\n"NOR,me,target); target->receive_wound("kee",damage); target->receive_wound("sen",damage); COMBAT_D->report_status(target); me->receive_wound("kee",damage/10); COMBAT_D->report_status(me); } } me->delete_temp("noauto"); me->receive_damage("sen", 100); me->add("force", -300); /* if( !target->is_fighting(me) ) { if( living(target) ) { if( userp(target) ) target->fight_ob(me); else target->kill_ob(me); } } */ if (target->query("eff_kee")<0 || (!living(target) && target->query("kee")<0)) {str=target->name()+HIM"被"+me->name()+"用雪山秘传"NOR+HIW"「暴雪天威」"+HIM"杀死了,据说"+target->name()+"的尸体被封印在一个巨大的"NOR+HIW"冰棺"+HIM"里面!"; message("channel:rumor",HIM"【空穴来风】某人:"+str+"\n"NOR,users()); } me->start_busy(2); me->set_temp("xs_pfm_busy",1); // me->set_temp("no_move",1); // call_out("remove_no_move",5,me); call_out("remove_effect",2+random(3),me); return 1; }
int perform(object me, object target) { string weapon; object weapon1; int lvl1, lvl2, amount; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("剑掌五连环只能对战斗中的对手使用。\n"); weapon1 = me->query_temp("weapon"); if( !objectp(weapon1) || weapon1->query("skill_type") != "sword" ) return notify_fail("你手中无剑,如何使得剑掌五连环?\n"); if( me->query_skill_mapped("strike") != "hunyuan-zhang" ) return notify_fail("你所用的并非混元掌,不能与华山剑法配合施展剑掌五连环!\n"); if( me->query_skill_prepared("strike") != "hunyuan-zhang" ) return notify_fail("你所备的并非混元掌,不能与华山剑法配合施展剑掌五连环!\n"); if( me->query_skill_mapped("force") != "zixia-gong" ) return notify_fail("你所用的并非紫霞功,无法施展剑掌五连环!\n"); if( me->query_skill("zixia-gong", 1) < 60 ) return notify_fail("你的紫霞功火候未到,无法施展剑掌五连环!\n"); if( (lvl1=me->query_skill("strike")) < 100 ) return notify_fail("剑掌五连环需要精湛的混元掌配合,方能有效施展!\n"); if( (lvl2=me->query_skill("sword")) < 100 ) return notify_fail("你华山剑法修为不足,还不会使用剑掌五连环!\n"); amount = (lvl1+lvl2) / 15; if ( amount < 40 ) amount = 40; if ( amount > 80 ) amount = 80; if( me->query("neili") <= amount*4 ) return notify_fail("你的内力不够使用剑掌五连环!\n"); if( me->query("jingli") <= amount*2 ) return notify_fail("你的精力不够使用剑掌五连环!\n"); if( me->query_skill_prepared("cuff") == "pishi-poyu" ) { me->set_temp("restore", 1); me->prepare_skill("cuff"); } weapon = me->query_temp("weapon"); me->add_temp("apply/damage", amount); me->add_temp("apply/attack", amount*2); me->add_temp("apply/dodge", amount*2); message_vision(HIR "\n突然间$N身形电闪,瞬间逼近$n,剑掌交替中向$n奋力击出三剑两掌!\n\n" NOR, me, target); COMBAT_D->do_attack(me, target, me->query_temp("weapon")); weapon->unequip(); COMBAT_D->do_attack(me, target, me->query_temp("weapon")); weapon->wield(); COMBAT_D->do_attack(me, target, me->query_temp("weapon")); weapon->unequip(); COMBAT_D->do_attack(me, target, me->query_temp("weapon")); weapon->wield(); COMBAT_D->do_attack(me, target, me->query_temp("weapon")); me->start_busy(1+random(3)); me->add_temp("apply/damage", -amount); me->add_temp("apply/attack", -amount*2); me->add_temp("apply/dodge", -amount*2); me->add("neili", -amount*3); me->add("jingli", -amount*2); if( me->query_temp("restore") ) me->prepare_skill("cuff", "pishi-poyu"); return 1; }
int perform(object me) { string msg; object weapon, weapon2, target; int skill, ap, dp, wound, damage; if(me->query("family/master_id") != "feng qingyang") return notify_fail("你不是风清扬的弟子,不能使用绝招!\n"); me->clean_up_enemy(); target = me->select_opponent(); skill = me->query_skill("lonely-sword",1); if( !(me->is_fighting() )) return notify_fail("「破索式」只能对战斗中的对手使用。\n"); if (!objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "sword") return notify_fail("你使用的武器不对。\n"); if (!objectp(weapon2 = target->query_temp("weapon")) || (string)weapon2->query("skill_type") != "whip") return notify_fail("对方没有使索,你用不了「破索式」。\n"); if( skill < 60) return notify_fail("你的独孤九剑等级不够, 不能使用「破索式」!\n"); if( me->query("neili") < 50 ) return notify_fail("你的内力不够,无法运用「破索式」!\n"); msg = HIC "$N使出独孤九剑之「破索式」,剑化流星,迅急无比地点向$n的手腕。\n"; message_combatd(msg, me, target); damage = 10 + random(skill / 2); ap = me->query_skill("sword") + skill; dp = target->query_skill("whip") / 2; if( dp < 1 ) dp = 1; if( random(ap) > dp ) { if(userp(me)) me->add("neili",-50); msg = "结果$n被$p攻了个措手不及,手腕一麻,手中"; msg += weapon2->name(); msg += "脱手而出!\n" NOR; me->start_busy(random(2)); target->receive_damage("qi", damage); target->start_busy(2); weapon2->move(environment(me)); /* if (weapon2->query("ownmake")==1) { weapon2->move(target); msg += "那可是$n的随身家伙!$n手一伸将它捡回来。\n" NOR; } */ } else { if(userp(me)) me->add("neili",-30); msg ="可是$n看破了$N的企图,迅即退开,使$N的「破索式」没有起到作用。\n"NOR; me->start_busy(4); } message_combatd(msg, me, target); return 1; }
int cast(object me, object target) { object *member, victim = offensive_target(me); string msg; int a_fali, d_fali, damage, ap, dp, i, j; member = me->query_team(); if( !victim || !victim->is_character() || victim->is_corpse() || victim==me ) return notify_fail("你想对谁使用「雷电怒涛」?\n"); if( sizeof(member) != 2 ) return notify_fail("「雷电怒涛」必须两个人使用!\n"); j=sizeof (member); if( j > 2 ) j = 2; for (i=0;i<j;i++) { target=member[i]; if( !target||!living(target)||!target->is_character()) return notify_fail("你想与谁进行「雷电怒涛」?\n"); if( victim->query("id") == target->query("id") ) return notify_fail("不能与你的对手进行「雷电怒涛」。\n"); if( !victim->is_character() || !target->is_fighting(victim) ) return notify_fail("只能对你们正在战斗中的对手使用「雷电怒涛」。\n"); if( target->is_busy() || target->query_temp("pending/meditating") || target->query_temp("qingwang")|| (int)target->query_temp("no_cast")==1 ) return notify_fail("你们现在不能用魔法!\n"); if( !target->is_fighting(victim) ) return notify_fail("你的同伴不在与对手战斗中。\n"); if(target->query_skill("dao", 1) < 120 || target->query_skill_mapped("spells") !="dao" ) return notify_fail("你们的道家仙法等级不够!\n"); if((int)target->query("mana") < 800+(int)target->query("mana_factor") ) return notify_fail("你们的魔力不够!\n"); if((int)target->query("sen") < 200 ) return notify_fail("你们的精神不足,没法子施用法术!\n"); } me->add("mana", -150-(int)me->query("mana_factor")); me->receive_damage("sen", 150); target->add("mana", -50-(int)target->query("mana_factor")); target->receive_damage("sen", 100); msg = HIC "$N和$n口中同时念了几句咒文,半空中现出真武大帝,只见他十指箕张,一道惊雷带着数道闪电对着"+victim->query("name")+"当头击下!\n" NOR; ap = me->query_skill("spells"); ap = ap / 10 * ap * ap ; ap = ap/500000*(1+me->query("daoxing")); ap += target->query("daoxing")/2; dp = victim->query("daoxing"); if( random(ap + dp) > dp ) { a_fali = (int)me->query("max_mana") / 20 + random((int)me->query("eff_sen") / 10); d_fali = (int)victim->query("max_mana") / 20 + random((int)victim->query("eff_sen") / 10); a_fali+= (me->query("mana_factor")+ target->query("mana_factor")/2)/100*150; d_fali+= random((int)victim->query("mana_factor")); damage = a_fali - d_fali; if( damage > 0 ) { msg += HIC "结果击个正着,"+victim->query("name")+"被雷电打的浑身焦黑,神智不清!\n" NOR; damage += damage*(int)me->query_skill("spells")/120; victim->receive_damage("sen", damage, me); victim->receive_wound("sen", damage/2, me); victim->receive_damage("kee", damage, me); victim->receive_wound("kee", damage/2, me); me->improve_skill("dao", 1, 1); target->improve_skill("dao", 1, 1); } else { msg += HIC "结果雷电被"+victim->query("name")+"以法力反激,反而击中了$N和$n!\n" NOR; damage -= (int)victim->query("mana_factor"); damage -= -damage*(int)target->query_skill("spells")/180; me->receive_damage("sen", -damage, target); me->receive_wound("sen", -damage/2, target); me->receive_damage("kee", -damage, target); me->receive_wound("kee", -damage/2, target); target->receive_damage("sen", -damage, target); target->receive_wound("sen", -damage/2, target); target->receive_damage("kee", -damage, target); target->receive_wound("kee", -damage/2, target); me->improve_skill("dao", 1, 1); target->improve_skill("dao", 1, 1); } } else msg += "但是被"+victim->query("name")+"躲开了。\n"; message_vision(msg, me, target, victim); if( damage > 0 ){ COMBAT_D->report_status(victim); COMBAT_D->report_sen_status(victim); } else if( damage < 0 ) { COMBAT_D->report_status(me); COMBAT_D->report_sen_status(me); COMBAT_D->report_status(target); COMBAT_D->report_sen_status(target); } me->start_busy(2+random(2)); target->start_busy(2+random(2)); return 3+random(5); }
int perform(object me, object target) { object weapon; int level, ap, dp; string msg; if (! target) target = offensive_target(me); if (userp(me) && ! me->query("can_perform/huashan-jianfa/jie")) return notify_fail("你还没有受过高人指点,无法施展" JIE "。\n"); if (! target || ! me->is_fighting(target)) return notify_fail(JIE "只能对战斗中的对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "sword") return notify_fail("你使用的武器不对。\n"); if (target->is_busy()) return notify_fail(target->name() + "目前正自顾不暇,放胆攻击吧!\n"); if ((level = me->query_skill("huashan-jianfa", 1)) < 30) return notify_fail("你的华山剑法不够娴熟,无法施展" JIE " 。\n"); if (me->query_skill_mapped("sword") != "huashan-jianfa") return notify_fail("你没有激发华山剑法,无法施展" JIE "。\n"); if (me->query("neili") < 60) return notify_fail("你现在真气不够,无法使用「截手式」。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIW "\n但见$N" HIW "长剑一勒,使出华山剑法绝技之" "「" HIG "截手式" HIW "」,转折之际天衣无缝,一" "剑既出,后着源源倾泻,如大浪跃滩,层层叠叠,迅" "然扑向$n" HIW "!\n" NOR; me->add("neili", -50); ap = ap_power(me, "sword"); dp = dp_power(target, "parry"); if (ap / 2 + random(ap) > dp) { msg += HIR "结果$p" HIR "瘁不及防,连连倒退" "几步,一时间无法回手!\n" NOR; target->start_busy(level / 80 + 3); // target->start_busy(level / 30 + 2);^M } else { if (objectp(weapon = target->query_temp("weapon"))) msg += CYN "但是$p" CYN "识破了$P" CYN "的用意," "自顾将手中的" + weapon->name() + CYN "舞成一团光花,$P" CYN "一怔之下再也攻不进去。\n" NOR; else msg += CYN "但是$p" CYN "双手戳点刺拍,将$P" CYN "的来招一一架开。\n" NOR; me->start_busy(1); } message_sort(msg, me, target); return 1; }
void skill_improved(object me) { tell_object(me, HIR "���Ȼ���ĵ�����һ�ɶ��ɱ��ɱ��ɱ����Ҫɱ�������ˣ�\n" NOR ); me->add("shen", -200); }
int perform(object me, object target) { string msg, str; int mydf; int ap, dp, pp; int yourint, myint, mystr, youstr; int damage_bonus, damage, wound; int delay; object ob; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("不在战斗中,舍什么身?\n"); mydf=(int)me->query_skill("dragonfight",1); if(mydf<100) return notify_fail("你的修为不够深,还不能领悟舍身技的精髓。\n"); mydf=(int)me->query_skill("dragonforce",1); if(mydf<100) return notify_fail("你的修为不够深,还不能领悟舍身技的精髓。\n"); if((int)me->query("force")<500) return notify_fail("你的内力不够了。\n"); msg = CYN "$N右掌挥出,斩向$n的左肩,\n"; ob=target->query_temp("weapon"); str="右手"; if(objectp(ob)) str="手中的"+ob->query("name"); ap=COMBAT_D->skill_power(me, "unarmed", SKILL_USAGE_ATTACK); dp=COMBAT_D->skill_power(target,"dodge", SKILL_USAGE_DEFENSE); dp/=2; pp=COMBAT_D->skill_power(target,"unarmed", SKILL_USAGE_DEFENSE); if(objectp(ob)) pp/=2; damage_bonus=me->query_str()/2; if( random(ap+dp)>dp) { msg += "$n想用"+str+"挡开,不料却被$N一把抓住。\n"; msg += "$N顺势上步,使出了「舍身技」!\n\n" NOR; msg += CYN "$N左脚铲向$n右腿膝盖,"; if(random(ap+pp)>pp) { msg += "结果正铲在$n的小腿上。\n" NOR; damage=calculate_damage(me, target, 100, damage_bonus); wound=random(damage-(int)target->query_temp("apply/armor")); if(damage>0) { target->receive_damage("kee", damage, me); if(wound>0) target->receive_wound("kee", wound, me); msg+=COMBAT_D->damage_msg(damage, "内伤"); } } else msg+="结果被$n提腿挡开了。\n" NOR; msg += CYN "\n紧跟着$N收左脚,提左膝撞向$n的软肋,\n"; msg += "同时右手曲肘撞向$n的面门,"; if(random(ap+pp)>pp) { msg += "结果正中$n。\n" NOR; damage=calculate_damage(me, target, 120, damage_bonus); wound=random(damage-(int)target->query_temp("apply/armor")); if(damage>0) { target->receive_damage("kee", damage, me); if(wound>0) target->receive_wound("kee", wound, me); msg+=COMBAT_D->damage_msg(damage, "内伤"); } } else msg+="结果被$n挡开了。\n" NOR; msg += CYN "\n$N接着顺势用右手抓住$n右臂,半转身将$n摔了出去,"; if(random(ap+pp)>pp) { msg += "结果$n一跟头摔在地上。\n" NOR; damage=calculate_damage(me, target, 150, damage_bonus); wound=random(damage-(int)target->query_temp("apply/armor")); if(damage>0) { target->receive_damage("kee", damage, me); if(wound>0) target->receive_wound("kee", wound, me); msg+=COMBAT_D->damage_msg(damage, "内伤"); } } else msg+="结果被$n一个踉跄,却没摔倒。\n" NOR; message_vision(msg, me, target); msg+=COMBAT_D->report_status(target, 0); } else { msg += "可是$p看破了$P的企图,向后越开。\n" NOR; message_vision(msg, me, target); } delay = random(3)+2; me->start_busy(delay); me->add("force", -300); return 1; }
int cast(object me, object target) { string msg; string tar_spells,tar_dodge; int ap,dp,dg,damage; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || target->is_corpse() || target==me) return notify_fail("你要对谁用御剑伤敌?\n"); if (!target->is_fighting(me)) return notify_fail("只有在战斗中才能使用御剑伤敌!\n"); if((int)me->query("kee") < 200 ) return notify_fail("你体力不足,用不了御剑伤敌!\n"); if((int)me->query("force") < 200 ) return notify_fail("你须运足内力才能使用御剑伤敌!\n"); if((int)me->query_skill("yujian-xianfa", 60) < 40 ) return notify_fail("你的御剑大法还不够纯熟。\n"); if((int)me->query("mana") < 500 ) return notify_fail("你的法力不足以御剑伤敌!\n"); msg = HIW"\n$N趁$n不备,怒吼一声,转瞬间你已站在武器上," +"飞过去向$n刺去!\n" NOR; ap=(int)me->query_skill("yujian-xianfa", 60) +(int)me->query_skill("spells", 1)/2; tar_spells=target->query_skill_mapped("spells"); if (! tar_spells) dp=(int)target->query_skill("spells", 1)/2; else dp=(int)target->query_skill("spells", 1)/2 +(int)target->query_skill(tar_spells, 1); tar_dodge=target->query_skill_mapped("dodge"); if (! tar_dodge) dg=(int)target->query_skill("dodge", 1)/2; else dg=(int)target->query_skill("dodge", 1)/2 +(int)target->query_skill(tar_dodge, 1); if (dp!=0) dp=100*ap/dp/3+random(100*ap/dp)/2; else dp=100; if (dg!=0) dg=100*ap/dg/3+random(100*ap/dg)/2; else dg=100; //printf("dp=%5d dg=%5d",dp,dg); damage=me->query("max_mana")/100+1; damage=(me->query("mana_factor")+me->query("str")+random(damage))*2; if (dp<30) { msg += HIW "不料$n早有准备,用手抓住$N的武器!\n" +"$N失去重心,跌倒在地!\n"NOR; message_vision(msg, me, target); me->add("kee", me->query("str")*2); me->start_busy(30-dp+random(10)); } else if (dp<60 && dp>30) { msg += HIW "$n连忙扭转身形运转神功将$N的武器打开。\n"NOR; message_vision(msg, me, target); me->start_busy(1+random(2)); } else if (dg<50) { msg += HIW "$n纵身向后一跃,闪过了这一击。\n"NOR; message_vision(msg, me, target); me->start_busy(1+random(2)); target->start_busy(random(3)); } else { msg += HIW "$n促不击防,被$N的武器刺中,$N再用力一脚," +"$n如断了线的风筝般飞了出去!\n"NOR; message_vision(msg, me, target); target->receive_damage("kee",damage,me); me->start_busy(random(2)); target->start_busy(1+random(3)); COMBAT_D->report_status(target); } me->add("force", -100); me->add("mana", -100); target->kill_ob(me); // message_vision(msg, me, target); return 1; }