int exert(object me, object target) { int sp, dp, jl; if( !target ) target = offensive_target(me); if( !objectp(target) || target == me) return notify_fail("你要吸取谁的精力?\n"); if (environment(me)->query("no_fight")) return notify_fail("这里不能战斗,你不可以使用化功大法吸人的精力。\n"); if ( me->query_temp("sucked") ) return notify_fail("你刚刚吸取过精力!\n"); if( objectp(me->query_temp("weapon")) ) return notify_fail("必须空手才能够吸取别人的精力!\n"); if( !me->is_fighting() || !target->is_fighting() || !living(target) ) return notify_fail("你必须在战斗中才能吸取对方的精力!\n"); if( (int)me->query_skill("huagong-dafa",1) < 90 ) return notify_fail("你的化功大法功力不够,不能吸取对方的内力!\n"); if( (int)me->query("neili") < 300 ) return notify_fail("你的内力不够,不能使用化功大法。\n"); if( (int)me->query("jingli") < 100 ) return notify_fail("你的精力不够,不能使用化功大法。\n"); if( (int)me->query("jingli") >= (int)me->query("max_jingli") * 5/2 ) return notify_fail("你吸取的精力充塞全身,无法再吸取精力!\n"); if( (int)target->query("max_jingli") <= 0 ) return notify_fail( target->name() + "没有任何精力!\n"); if( (int)target->query("jingli") < (int)target->query("max_jingli") / 10 ) return notify_fail( target->name() + "已经精力涣散,你已经无法从他体内吸取任何精力了!\n"); message_vision(HIR "$N朝$n微微一笑,突然翻掌变爪,扣向$n的手腕!\n\n" NOR, me, target ); if( !target->is_killing(me) ) target->kill_ob(me); sp = me->query_skill("force") + me->query_skill("dodge") + me->query("kar")*50; dp = target->query_skill("force") + target->query_skill("dodge") + target->query("kar")*50; sp *= me->query("combat_exp")/1000; dp *= target->query("combat_exp")/1000; me->set_temp("sucked", 1); if( random(sp+dp) > dp ) { tell_object(target, HIR "你腕内会宗穴被" + me->name() + "突然扣住,动弹不得,只觉精力如洪水般自会宗穴奔腾而出!\n" NOR); tell_object(me, HIG "你觉得" + target->name() + "的精力自手掌源源不绝地流了进来。\n" NOR); jl = (1+random(3)) * (int)me->query_skill("huagong-dafa", 1)/2; if ((int)target->query("jingli") > jl) { target->add("jingli", -1 * jl ); me->add("jingli", jl); }else{ me->add("jingli", jl/2); target->add("jingli", -jl/2 ); } if( target->query("combat_exp") >= me->query("combat_exp")/2 ) { me->add("potential", 1); me->add("combat_exp", 1); if (me->query("potential") > me->query_potential_limit()) me->set("potential", me->query_potential_limit()); } me->start_busy(1+random(3)); target->start_busy(1+random(3)); me->add("neili", -(int)me->query_skill("huagong-dafa", 1)/6); me->add("jingli", -5); call_out("del_sucked", 2, me); } else { message_vision(HIY "可是$p看破了$P的企图,没让$P扣住手腕。\n" NOR, me, target); me->add("jingli", -20); me->start_busy(2+random(2)); call_out("del_sucked", 5, me); } return 1; }
int perform(object me, object target) { string msg; int level,extra,kee,i; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("[棉里藏针]只能对战斗中的对手使用。\n"); level = (int)me->query_skill("unarmed"); extra = (int)me->query("wudang/level"); extra = (extra >=2000)? 2000:extra; if(!me->query("wudang/zhen")){ me->add_temp("apply/attack",extra/20); COMBAT_D->do_attack(me,target,TYPE_PERFORM, 0); me->add_temp("apply/attack",-extra/20); me->start_busy(1); if (me->query("wudang/level") < 3000){ me->add("wudang/level",1); if ((int)me->query("wudang/level")%100==0) tell_object(me, HIW "由於你勤习棉里藏针,你的熟练度提高了。\n" NOR); } else if (me->query("family/master_id") == "master shi"){ me->set("wudang/zhen",1); tell_object(me, HIW "由於你勤习棉里藏针,你悟出了新的变化!\n" NOR); me->set("wudang/level",0); } return 1; }else { if ( me->query_skill_mapped("force") != "taijiforce") return notify_fail("棉里藏针必须和太极心法配和!\n"); me->add_temp("apply/damage",level/10); me->add_temp("apply/attack",level/20); kee = target->query("kee"); msg = HIR "\n$N"+HIR"双手猛然一抖一拢,一股气劲向$n"+HIR"撞到!" NOR; COMBAT_D->do_attack(me,target,TYPE_PERFORM,msg); me->add_temp("apply/damage",- level/10); me->add_temp("apply/attack",- level/20); msg = HIW "气劲呼的一声,散开消失...\n" NOR; message_vision(msg, me, target); for (i=0; i< (int)level/50 ;i++){ if( (int)target->query("kee") < kee ) { if (level>300){ msg = HIY"$N"+HIY"一击命中,双手顺势向外一拨,引开了$n"+HIY"的守势!\n"NOR; message_vision(msg, me, target); target->start_busy(1); me->start_busy(1); call_out("nextattack",1,me,target); break; }else{ msg = HIY"$N"+HIY"一击命中,但$n"+HIY"立刻将自己护住!\n"NOR; message_vision(msg, me, target); me->start_busy(2); break; } }else { kee = target->query("kee"); msg = HIY"$N"+HIY"双手一翻一抖,一股气劲又向$n"+HIY"撞到!" NOR; me->add_temp("apply/damage",level/10); me->add_temp("apply/attack",level/20); COMBAT_D->do_attack(me,target,TYPE_PERFORM,msg); me->add_temp("apply/damage",- level/10); me->add_temp("apply/attack",- level/20); msg = HIW "气劲呼的一声,散开消失...\n" NOR; message_vision(msg, me, target); } } if (i == (int)level/50 ){ message_vision(HIY"$N"+HIY"一招"+chinese_number(i)+"式居然全部未中,立刻露出破绽。\n"NOR,me); me->start_busy(5); } return 1; } }
int curse(object me, object target) { string msg,id_enemy; int damage, ap, dp; int extradam, my_exp; if(me->query("class")!="yinshi") return notify_fail("只有帝王谷弟子才能下降头。\n"); if((int)me->query_skill("celecurse", 1) < 150 && userp(me)) return notify_fail("你的降头术不够高!\n"); if( !target ) target = offensive_target(me); if( !target ||!target->is_character() ||target->is_corpse() ||target==me) return notify_fail("你要对谁施展这个降头?\n"); if((int)me->query("kee") < 100 && userp(me)) return notify_fail("你的气血不够!\n"); me->receive_wound("kee", 10); msg = RED "$N"+RED"的眼中红光一闪,一条细如发丝的血线射向$n!\n\n" NOR; ap = me->query_skill("cursism"); my_exp=me->query("combat_exp"); dp = target->query("combat_exp"); if (userp(me)) { extradam = me->query("kee"); extradam = extradam/5; } else extradam = 1000; // message_vision("extradam is"+(string)(extradam)+".\n",me); // =10000/5 damage = ap*4 + random(ap*5) + extradam/4; // 400x4+ random(400x5) + 2000/4 // lowest 2100, highest 4100, average 3100 // message_vision("damage is"+(string)(damage)+".\n",me); if(damage >me->query("max_kee")) damage = me->query("max_kee"); if (userp(me)) ap=random(my_exp/80*ap); else ap=random(8*my_exp); if( ap>dp) { if (!me->is_fighting(target)) { if (!userp(target)||!userp(me)) { target->kill_ob(me); me->kill_ob(target); }else { id_enemy=target->get_id(); me->ccommand("kill "+id_enemy); target->kill_ob(me); } } message_vision(msg, me, target); target->receive_wound("kee", damage/2, me); target->receive_damage("kee", damage/2, me); COMBAT_D->report_status(target); COMBAT_D->win_lose_check(me,target,1); } else { msg += WHT"但是被$n"NOR+WHT"发现了!!\n"NOR; message_vision(msg, me, target); if (!me->is_fighting(target)) { if (!userp(target)||!userp(me)) { target->kill_ob(me); me->kill_ob(target); }else { id_enemy=target->get_id(); me->ccommand("kill "+id_enemy); target->kill_ob(me); } } } me->start_busy(3) ; return 1; }
int perform(object me, object target) { string msg; int extra, hammer; object weapon; int busy, super; if( !target ) target = offensive_target(me); if( !target ||!target->is_character() ||!me->is_fighting(target) ) return notify_fail("『天雷一击』只能对战斗中的对手使用。\n"); weapon = me->query_temp("weapon"); extra = me->query_skill("thunderwhip",1); // 200 *1.6 if( extra <50) return notify_fail("『天雷一击』至少需要50级的天雷破!\n"); if( extra < 200 || me->query("class")!= "yinshi") { me->add_temp("apply/attack", extra); me->add_temp("apply/damage", extra); msg = HIR"\n$N"+HIR"力灌鞭梢,手中的"+weapon->query("name")+ HIR""叭"的一声,象条毒龙般向$n"NOR+HIR"钻去!\n" NOR; message_vision(msg,me,target); COMBAT_D->do_attack(me,target, TYPE_PERFORM,""); me->add_temp("apply/attack", -extra); me->add_temp("apply/damage", -extra); me->perform_busy(2); } else { me->add_temp("apply/attack", extra); me->add_temp("apply/damage", extra); msg = HIR"\n$N"+HIR"力灌鞭梢,手中的"+weapon->query("name")+ HIR""叭"的一声,象条毒龙般向$n"NOR+HIR"钻去!\n" NOR; message_vision(msg,me,target); COMBAT_D->do_attack(me,target, TYPE_PERFORM,""); msg = HIR"\n$N"+HIR"急运真气,大喝一声,手中的"+weapon->query("name")+ HIR"夹着惊雷之势向$n"NOR+HIR"反卷而去!\n" NOR; message_vision(msg,me,target); COMBAT_D->do_attack(me,target, TYPE_PERFORM,""); me->add_temp("apply/attack", -extra); me->add_temp("apply/damage", -extra); busy = 2; super = me->query_skill("flying-dragon",1); if (super >=100) { super = (super-100)/10; if (random(100)<super && me->query_temp("yl9x_times") < 2 ) { me->add_temp("yl9x_times",1); message_vision(WHT"$N一口真气吐出,身法竟然丝毫不显迟滞。\n"NOR, me); busy = 0; } else { me->set_temp("yl9x_times",0); } } me->perform_busy(busy); } return 1; }
int perform(object me, object target) { int damage,l_temp; string msg; int busy_time,busy_time1,pfm_time,pfm_time1; busy_time=3; //perform的忙时间基数 busy_time1=2; //成功对手的忙时间基数 if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("神功伤敌只能对战斗中的对手使用。\n"); if( objectp(me->query_temp("weapon")) ) return notify_fail("你必须空手才能使用「九阴绝户手」!\n"); if( (int)me->query_skill("lanhua-shou", 1) < 100 ) return notify_fail("你的兰花手不够娴熟,不会使用「九阴绝户手」。\n"); if( (int)me->query_skill("jiuyin-xinjing", 1) < 100 ) return notify_fail("你的九阴心经不够高,不能用「九阴绝户手」伤敌。\n"); if( (int)me->query("force") < 500 ) return notify_fail("你现在内力太弱,不能使出「九阴绝户手」招式。\n"); if( (int)me->query_condition("juehu_busy")) return notify_fail("你元气大伤,现在没有能力使出「九阴绝户手」招式。\n"); msg = HIB "$N默运神功,脸色白得吓人,突然使出兰花手的一记阴招「九阴绝户手」,企图当场把$n废于掌下。\n\n"NOR; pfm_time=(int)busy_time-(me->query("lanhua-shou",1)+me->query("jiuyin-xinjing",1))*(1+busy_time)/200*busy_time; pfm_time1=busy_time1+(int)(me->query("lanhua-shou",1)+me->query("jiuyin-xinjing",1))*(1+busy_time)/200*busy_time; if (random(me->query_skill("force")) > target->query_skill("force")/2 ) { me->start_busy(pfm_time); target->start_busy(random(pfm_time1)); damage = (int)me->query_skill("lanhua-shou", 1); damage = damage + random(damage)/2; target->receive_damage("kee", damage); target->receive_wound("sen", damage/2); target->receive_damage("kee", damage/2); target->receive_wound("sen", damage/3); me->add("force", -damage/6); msg += RED"结果$N一击命中,$n只感到下体一阵刺痛,体内精元不断外泄,顿时觉的四肢无力,两腿不停颤抖。\n"NOR; } else { me->start_busy(random(pfm_time)); l_temp=80-(int)me->query_skill("jiuyin-xinjing", 1)/10; me->add("force", -l_temp); msg += CYN"可是$p看破了$P的狠毒企图,向旁跳开数步,躲开了$P的凌厉一击!\n"NOR; } message_vision(msg, me, target); if (damage>200 ) { me->add("sen", -damage); // target->apply_condition("juehu_hurt",(int)(500*target->query("age"))); me->apply_condition("juehu_busy",(int)(100*me->query("age"))); me->add("max_force", - (20 + random(20))); if (target->query("gender")== "男性") { message_vision(HIW"$N突然觉的丹田内的精元已流失迨尽,心里一阵难过,知道自己有一段时间不能行欢做乐了!\n"NOR,target); } else {if (target->query("gender")== "女性") message_vision(HIW"$N被你一击命中,,不禁既羞又怒,见$n竟对一女流之辈也用此阴毒招数!\n"NOR,target,me); else message_vision(HIW"$N虽然击中$n的私处,但感觉受力甚轻,似乎已无要害可言!\n"NOR,me,target); } target->kill_ob(me); } return 1; }
int cast(object me, object target) { string msg; 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 (!me->query("cast_juanbi")) return notify_fail("「扭转乾坤」是白象小王的绝活,没有他的亲传谁也用不了!\n"); if (!target->is_fighting(me)) return notify_fail("只有在战斗中才能使用扭转乾坤!\n"); if ((int)me->query("kee") < 100) return notify_fail("你体力不足,用不了扭转乾坤!\n"); if ((int)me->query("force") < 100) return notify_fail("你须运足内力才能使用扭转乾坤!\n"); if ((int)me->query_skill("dengxian-dafa", 1) < 40) return notify_fail("你的登仙大法还不够纯熟。\n"); if ((int)me->query("mana") < 300) return notify_fail("你的法力不足以变作神象伤敌!\n"); if (me->query("cast_juanbi") > 0) msg = HIW"\n$N趁$n不备,怒吼一声,转瞬间化作一只黄牙老象," +"伸出蛟龙般的鼻子向$n卷去!\n" NOR; else // cast_juanbi == -1, it's baixiang-xiaow himself msg = HIW"\n$N趁$n不备,怒吼一声,现出白色巨象的原形," +"伸出蛟龙般的鼻子向$n卷去!\n" NOR; ap = (int)me->query_skill("spells"); dp = target->query_skill("spells"); dg = target->query_skill("dodge"); 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; damage = me->query("max_mana")/20+1; damage = (me->query("mana_factor")+me->query("str")+random(damage))*2; if (dp < 30) { msg += HIW"不料$n早有准备,扭转身形轻舒猿臂一把抓住了$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", -30); me->add("mana", -30); target->kill_ob(me); return 1; }
int perform(object me, object target) { string msg; int extra,adjust; int count; object weapon,targetweapon; extra = me->query_skill("ittouryu",1); if ( extra < 150) return notify_fail("你的[一刀流剑术]还不够纯熟!\n"); if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("[百鬼夜狂]只能对战斗中的对手使用。\n"); // if(me->query_temp("timer/hyakki")+60>time()) // return notify_fail("你的杀气已尽,无法在短时间内再出这一招。\n"); msg = HIR "\n\n$N突然仰天长嚎,头发如钢针般根根直竖,$n依稀看到$N的瞳仁正在变成红色。 $N猛地扑向$n,发动了一刀流的最强一招-「百鬼夜狂」,将$n笼罩在一片刀光中。 " NOR; count=0; adjust = 440-me->query_skill("blade")>0?0:440-me->query_skill("blade"); // message_vision("adjust is "+(string)adjust+"\n",me); // me->set_temp("timer/hyakki",time()); me->add_temp("apply/attack",adjust); me->add_temp("apply/damage",extra); msg += HIC "百鬼袭!!" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); if(target->query_temp("damaged_during_attack")) count++; msg = HIG "百鬼冲!!" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); if(target->query_temp("damaged_during_attack")) count++; msg = HIB "百鬼碎!!" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); if(target->query_temp("damaged_during_attack")) count++; msg = HIY "百鬼突!!" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); if(target->query_temp("damaged_during_attack")) count++; msg = HIM "百鬼坠!!" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); if(target->query_temp("damaged_during_attack")) count++; msg = HIW "百鬼斩!!" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); if(target->query_temp("damaged_during_attack")) count++; msg = HIR "灭!!!!" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); if(target->query_temp("damaged_during_attack")) count++; msg="\n\n"; me->add_temp("apply/damage",-extra); me->add_temp("apply/attack",-adjust); if(!count) msg+=HIB"$n好整以暇地闪过$N所有的攻击,冷冷地说: “该轮到我了!”。\n"NOR; else if(count<4) msg+=HIY"突然,一蓬鲜血激射,随之$n破出刀光,捂着殷红的衣襟, 退向一侧。\n"NOR; else if(count<7) msg+=HIM"突然,一蓬鲜血激射,随之$n破出刀光,捂着殷红的衣襟, 口中撕吼着:“魑魅魍魉...”, $N接道:“百鬼夜狂”。\n"NOR; else msg+=HIR"突然,一蓬鲜血激射,随之$N破出刀光,背对着血泊中的$n 傲慢地说道:“笑止千万!”\n"NOR; message_vision(msg,me,target); if (count>3) target->start_busy(3); else target->start_busy(count); if (count>5) me->start_busy(3); else me->start_busy(8-count); return 1; }
int exert(object me, object target) { int sp, dp; if ( target == me ) target = offensive_target(me); if( !objectp(target) || target->query("id") == "mu ren" ) return notify_fail("你要吸取谁的真气?\n"); if ( me->query_temp("sucked") ) return notify_fail("你刚刚吸取过真气!\n"); if( objectp(me->query_temp("weapon")) ) return notify_fail("你必须空手才能施用化功大法吸人真气!\n"); // if( !me->is_fighting() || !target->is_fighting()) if( (int)me->query_skill("huagong-dafa",1) < 30 ) return notify_fail("你的化功大法功力不够,不能吸取对方的真气。\n"); if( (int)me->query("neili",1) < 10 ) return notify_fail("你的内力不够,不能使用化功大法。\n"); if( (int)target->query("qi") < 30 ) return notify_fail( target->name() + "已经真气涣散,你已经无法从他体内吸取真气了!\n"); message_vision( HIR "$N突然诡异的一笑,双手一扬,拇指对准$n的掌心按了过来!\n\n" NOR, me, target ); if ( living(target) ) { if( !target->is_killing(me) ) target->kill_ob(me); } sp = me->query_skill("force") + me->query_skill("dodge") + me->query_skill("zhaixinggong",1)/2; dp = target->query_skill("force") + target->query_skill("dodge"); me->set_temp("sucked", 1); if (( random(sp) > random(dp) ) || !living(target) ) { tell_object(target, HIR "你突然觉得全身真气自手掌奔涌而出,四肢无力,再也使不出劲来!\n" NOR); tell_object(me, HIG "你觉得" + target->name() + "的真气自手掌源源不绝地流了进来。\n" NOR); target->receive_damage("qi", (int)me->query_skill("huagong-dafa", 1) ); me->add("qi", (int)me->query_skill("huagong-dafa", 1) ); me->add("eff_qi", (int)(me->query_skill("huagong-dafa", 1)*2/3) ); if ( me->query("eff_qi") > me->query("max_qi") ) me->set("eff_qi", me->query("max_qi")); if( target->query("combat_exp") >= me->query("combat_exp") ) me->add("combat_exp",1); me->start_busy(2); target->start_busy(random(2)); me->add("neili", -5); call_out("del_sucked", 2, me); } else { message_vision(HIY "可是$p看破了$P的企图,机灵地闪了开去。\n" NOR, me, target); me->start_busy(2); call_out("del_sucked", 4, me); } return 1; }
int perform(object me, object target) { int ap,dp,damage,chance; string msg; object weapon; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || target->is_corpse() || target==me) return notify_fail("你要对谁施展「断水无痕」?\n"); if(!me->is_fighting()) return notify_fail("「断水无痕」只能在战斗中使用!\n"); if(me->query("family/family_name")!="蜀山剑派") return notify_fail("不是蜀山的不能用「断水无痕」!\n"); if(me->query("shushan/duanshui_master")!=1) 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") < 300 ) return notify_fail("你的精神不足,没法子施用外功!\n"); if((int)me->query_skill("shushan-jianfa", 1) < 100) return notify_fail("你的蜀山剑法修为还不够,使用这一招会有困难!\n"); msg = CYN"\n$N手腕晃动如疾风,以砍断三千尺飞流的速度,直逼$n!\n"NOR; ap = me->query_skill("sword"); ap = ap*ap*ap / 20; dp = target->query("combat_exp"); chance = (int)(random( ap + dp ) / dp * 100); if (target->is_busy()) chance *= 3; if( chance > 40 ) { damage = me->query_skill("sword") * 2 + me->query("force_factor"); if (damage > 800) damage = 750+random(75); target->receive_damage("kee",damage); target->receive_wound("kee",damage/3); target->start_busy(random(1)+1); msg += CYN"结果$n被$N的「断水无痕」拦腰而过!\n"NOR; } else msg += "但是被$n躲开了。\n"NOR; message_vision(msg, me, target); if( damage > 0 ) COMBAT_D->report_status(target); if( !target->is_fighting(me) ) { if( living(target) ) { if( userp(target) ) target->fight_ob(me); else target->kill_ob(me); } } me->add("force",-200-me->query("force_factor")); me->start_busy(3); return 1; }
int perform(object me, object target) { int damage; string msg, wn; object weapon; int ap, dp; me = this_player(); if (userp(me) && ! me->query("can_perform/tianlei-dao/zha")) return notify_fail("你所使用的外功中没有这种功能。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(ZHA "只能在战斗中对对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "blade") return notify_fail("你所使用的武器不对,难以施展" ZHA "。\n"); if ((int)me->query_skill("tianlei-dao", 1) < 150) return notify_fail("你天雷绝刀不够娴熟,难以施展" ZHA "。\n"); if (me->query_skill_mapped("blade") != "tianlei-dao") return notify_fail("你没有激发天雷绝刀,难以施展" ZHA "。\n"); if ((int)me->query_skill("force") < 180) return notify_fail("你的内功火候不够,难以施展" ZHA "。\n"); if ((int)me->query("neili") < 300) return notify_fail("你现在的真气不够,难以施展" ZHA "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); wn = weapon->name(); msg = HIW "\n$N" HIW "一声怒喝,内劲瀑涨,施展出绝招「" HIY "春雷炸空" HIW "」手中" + wn + HIW "出神般的挥舞而出,威力惊人,有如神助一般。" NOR; message_sort(msg, me, target); ap = me->query_skill("blade"); dp = target->query_skill("parry"); if (ap / 2 + random(ap) > dp) { damage = ap + random(ap / 2); msg = COMBAT_D->do_damage(me, target, WEAPON_ATTACK, damage, 65, HIR "$n" HIR "见$N" HIR "来势凶猛,刀" "光闪烁,惊骇间肩膀已中一刀,一股鲜血" "喷涌而出。\n" NOR); me->start_busy(2 + random(4)); me->add("neili", -240); } else { msg = CYN "然而$n" CYN "以快制快,侧身" "一跳,躲过这招。\n" NOR; me->start_busy(2); me->add("neili", -180); } message_combatd(msg, me, target); return 1; }
int perform(object me, object target) { mapping prepare; string msg; int skill; int delta; int i; if (! target) target = offensive_target(me); if (userp(me) && ! me->query("can_perform/liumai-shenjian/six")) return notify_fail("你所使用的外功中没有这种功能。\n"); if (! target || ! me->is_fighting(target)) return notify_fail(SIX "只能对战斗中的对手使用。\n"); if (me->query_skill_prepared("finger") != "liumai-shenjian") return notify_fail("你没有准备使用六脉神剑,无法施展" SIX "。\n"); skill = me->query_skill("liumai-shenjian", 1); if (skill < 220) return notify_fail("你的六脉神剑修为有限,无法使用" SIX "!\n"); if (me->query_skill("force") < 400) return notify_fail("你的内功火候不够,难以施展" SIX "!\n"); if (me->query("max_neili") < 7000) return notify_fail("你的内力修为没有达到那个境界,无法运转内" "力形成" SIX "!\n"); if (me->query("neili") < 500) return notify_fail("你的真气不够,现在无法施展" SIX "!\n"); if (me->query_temp("weapon")) return notify_fail("你必须是空手才能施展" SIX "!\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIW "$N" HIW "摊开双手,手指连弹,霎时间空气炙热,几" "欲沸腾,六道剑气分自六穴,一起冲向$n" HIW "!\n" NOR; if (random(me->query("combat_exp")) > target->query("combat_exp") / 3 * 2) { msg += HIR "$n" HIR "只感剑气纵横,微一愣神,不禁心萌退意。\n" NOR; delta = skill / 6; } else delta = 0; message_combatd(msg, me, target); me->add("neili", -400); target->add_temp("apply/parry", delta); target->add_temp("apply/dodge", delta); for (i = 0; i < 6; i++) { if (! me->is_fighting(target)) break; if (random(2) == 1 && ! target->is_busy()) target->start_busy(1); me->set_temp("liumai-shenjian/hit_msg", i); COMBAT_D->do_attack(me, target, 0, i * 3); } target->add_temp("apply/parry", -delta); target->add_temp("apply/dodge", -delta); me->delete_temp("liumai-shenjian/hit_msg"); me->start_busy(1 + random(5)); return 1; }
int perform(object me, object target) { string msg, tparryskill; int myskill, myskill1, tparryb, tparryh, myforce, tforce, myexp, texp, damage; object weapon,tweapon; weapon = me->query_temp("weapon"); myskill= (int)me->query_skill("sword",1); myskill1= (int)me->query_skill("sanqing-jian",1); myforce = (int)me->query("force"); myexp = (int)me->query("combat_exp"); msg = ""; if(!objectp(weapon)||(string)weapon->query("skill_type")!="sword") return notify_fail("不拿剑怎使剑走奇门?"); if ( myskill1 < 100) return notify_fail("你的三清剑法还不够火候!\n"); if(me->query("family/family_name") != "五庄观" ) return notify_fail("你是哪儿偷学来的武功,也想用『剑走奇门』?\n"); if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("『剑走奇门』只能在战斗中使用。\n"); if ((int)me->query("force")<300) return notify_fail("你的内力不够。\n"); tweapon = target->query_temp("weapon"); tparryb= (int)target->query_skill("parry",1); tforce = (int)target->query("force"); texp = (int)target->query("combat_exp"); tparryskill = target->query_skill_mapped("parry"); tparryh=target->query_skill(tparryskill,1); me->add("force",-300); me->receive_damage("sen", 20); message_vision(HIW"$N招式一缓,手中"+weapon->name()+HIW"仿佛挽了千斤似的,使出了三清剑的绝学--『剑走奇门』!\n\n" NOR,me,target); message_vision(HIW"$N气运丹田,平平刺出一剑。\n"NOR,me); message_vision(HIW"这一招『剑走奇门』挟着内力,却象密云乍现,惊雷含劲欲发!\n\n"NOR,me); if (random(myexp)>(int)(texp/10) && random(myforce) > (int)(tforce/3)) { msg = HIW"$n只觉得一股劲气象闪电一般,穿体而过!\n" "“哇”的一声,$n喷出一大口鲜血,看来是受了内伤!\n\n"NOR; damage= (int)(((int)me->query("max_force")/2+myforce - (int)target->query("max_force")/2 - tforce)/3); if(damage<1)damage = 1; target->receive_damage("kee", me->query("eff_kee")*damage/80, me); target->receive_wound("kee", me->query("eff_sen")*damage/100, me); message_vision(msg, me, target); COMBAT_D->report_status(target); } else { msg = HIW"$n忙运功向抗,深厚的内力将$N的攻势都激散了。\n\n"NOR; message_vision(msg, me, target); } message_vision(HIW"$N由静转动,一动便急如风,脚踏奇门,剑走奇招,剑剑从$n意想不到的方位无声无息地刺出!\n" NOR,me,target); message_vision(HIW"这一招『脚踏奇门』好似天公作怒,要把天下妖孽尽数劈死,使得个痛快淋漓\n\n" NOR,me,target); if(random(myexp)>(int)(texp/10)&& random((int)(myskill + myskill1*3/2))>(int)((tparryb+tparryh)/2)) {msg = HIW"$n马上手忙脚乱,不知该如何去招架这静若水、快如电的剑法!\n" "果不然,$N的"+weapon->name()+HIW"招招命中,$n浑身上下被刺的遍体鳞伤!\n\n"NOR; damage=random(100)+me->query("force_factor"); if(damage<1)damage = 1; target->receive_damage("kee", me->query("eff_kee")*damage/80, me); target->receive_wound("kee", me->query("eff_sen")*damage/100, me); message_vision(msg, me, target); COMBAT_D->report_status(target); } else{ msg = HIW"$n却心静如水,丝毫不显慌乱,见招拆招,瓦解了$N这无声的攻势。\n\n"NOR; message_vision(msg, me, target); } message_vision(HIW"$N突然收住身形,回步而立,撤剑于背后,无招胜有招,无形胜有形。\n"NOR,me); message_vision(HIW"这一招『无招胜有招』把三清剑法的精髓要旨发挥地酣畅爽快!\n\n"NOR,me); if(random(myexp)>(int)(texp/2)) {msg = HIW"$n果然上当,以为$N露出破绽,大喜之下,急忙上前想抢攻。\n" "$N微微一笑,待$n靠近,长袖一抖,袖尽剑出,直探$n的胸口。\n" "$n连剑影还没看到,就差点儿被穿的透心凉!\n\n"NOR; damage=(int)(random((int)(myskill1/2))+me->query("force_factor")*3/2); if(damage<1)damage = 1; target->receive_damage("kee", me->query("eff_kee")*damage/80, me); target->receive_wound("kee", me->query("eff_sen")*damage/100, me); message_vision(msg, me, target); COMBAT_D->report_status(target); } else{ msg = HIW"$n看破了这招的虚实,将计就计,假装冲上前,却在$N出剑的一瞬间腾空跃开,回手竟反攻一招!\n\n"NOR; message_vision(msg, me, target); COMBAT_D->do_attack(target, me, tweapon); } me->start_busy(3); return 1; }
int perform(object me, object target) { object weapon; string msg; int ap, dp; int damage; if (playerp(me) && ! me->query("can_perform/yinlong-bian/zhu")) return notify_fail("你还不会这种功能。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(DUO "只能在战斗中对对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || weapon->query("skill_type") != "whip") return notify_fail("你使用的武器不对。\n"); if (me->query_skill("force", 1) < 130) return notify_fail("你的内功火候不够,使不了" DUO "。\n"); if (me->query_skill("yinlong-bian", 1) < 100) return notify_fail("你的银龙鞭法功力太浅,使不了" DUO "。\n"); if (me->query("neili") < 300) return notify_fail("你的真气不够,无法使用" DUO "。\n"); if (me->query_skill_mapped("whip") != "yinlong-bian") return notify_fail("你没有激发银龙鞭法,使不了" DUO "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIW "$N" HIW "诡异的一笑,手中" + weapon->name() + HIW "犹如一条银龙猛然飞向$n" HIW ",正是九阴真经中的" "绝招「" HIC "天诛龙蛟诀" HIW "」!\n" NOR; ap = me->query_skill("whip") + me->query_skill("force"); dp = target->query_skill("force") + target->query_skill("parry"); if (ap * 11 / 20 + random(ap) > dp) { damage = ap + random(ap / 2); me->add("neili", -200); me->start_busy(2); msg += COMBAT_D->do_damage(me, target, WEAPON_ATTACK, damage, 85, HIR "结果$n" HIR "一声惨叫,未能看破$N" HIR "的企图,被这一鞭硬击在胸口,鲜血飞" "溅,皮肉绽开!\n" NOR); message_combatd(msg, me, target); } else { me->add("neili", -100); me->start_busy(3); msg += CYN "可是$p" CYN "飞身一跃而起,躲避开了" CYN "$P" CYN "的攻击!\n" NOR; message_combatd(msg, me, target); } return 1; }
int perform(object me, object target) { string msg; int damage, ap, dp; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || target->is_corpse() || target==me) return notify_fail("你要对谁施展「暴风骤雨」?\n"); if((int)me->query("force") < 25+(int)me->query("force_factor") ) return notify_fail("你的内力不够!\n"); if((int)me->query("kee") < 100 ) return notify_fail("你的气血不足,没法子施用外功!\n"); if((int)me->query_skill("jienan-zhi", 1) <100) return notify_fail("你的劫难指级别还不够!\n"); me->add("force", -25-(int)me->query("force_factor")); me->receive_damage("kee", 100); if( random(me->query("max_force")) < 50 ) { write("糟糕,没成功!\n"); return 1; } msg = HIC "\n$N口中大喝了一声,施展出「暴风骤雨」,双手十指上下翻飞,身形前后左右移动,\n" "$n只觉得到处是$N的影子,根本不知如何招架,更不用说躲闪了!\n\n" NOR; ap = me->query_skill("jienan-zhi", 1); // + me->query_skill("parry"); ap = ( ap * ap * ap / (4 * 400) ) + (int)me->query("kee"); ap = ap*250 + (int)me->query("combat_exp"); dp = target->query_skill("parry"); dp = ( dp * dp * dp / (4 * 400) ) + (int)target->query("kee"); dp = dp*250 + target->query("combat_exp"); if( random(ap + dp) > dp ) { damage = (int)me->query("max_force") / 10 + random((int)me->query("eff_kee") /50); damage -= (int)target->query("max_force") / 10 + random((int)target->query("eff_kee") / 5); damage+=(int)me->query("force_factor")-random((int)target->query("force_factor")); //here we can see if 2 players are at same status, the attacker has higher chance. if( damage > 0 ) { msg += HIC "结果十指结结实实全部击中了$n,差点没把$n戳了个透心凉!\n" NOR; //finally damage also depends on enabled unarmed level. damage +=random((damage*(int)me->query_skill("unarmed"))/80); target->receive_damage("sen", damage, me); target->receive_wound("sen", damage/4, me); target->receive_damage("kee", damage, me); target->receive_wound("kee", damage/3, me); me->improve_skill("jienan-zhi", 1, 1); } else { //here, cast failed and the target's force_factor will be added to the previous //damage to hurt yourself:(...note damage<0. msg += HIC "结果被$n以内力反激,$N反而自受其苦,双手受伤不轻!\n" NOR; damage -= (int)target->query("force_factor"); damage -=random((-damage*(int)target->query_skill("unarmed"))/100); me->receive_damage("sen", -damage, target); me->receive_wound("sen", -damage/4, target); me->receive_damage("kee", -damage, target); me->receive_wound("kee", -damage/3, target); me->improve_skill("jienan-zhi", 1, 1); } } else msg += "但是被$n躲开了。\n"; message_vision(msg, me, target); if( damage > 0 ) COMBAT_D->report_status(target); else if( damage < 0 ) COMBAT_D->report_status(me); //damage=0 corresponding to "但是被$n躲开了。\n"--no report. if( !target->is_fighting(me) ) { if( living(target) ) { if( userp(target) ) target->fight_ob(me); else target->kill_ob(me); } } me->start_busy(3); return 1; }
int perform(object me, object target) { int damage; string msg, wp; object weapon; int ap, dp; if (userp(me) && ! me->query("can_perform/yiyang-zhi/die")) return notify_fail("你还没有受过高人指点,无法施展" DIE "。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(DIE "只能对战斗中的对手使用。\n"); if (me->query_temp("weapon") || me->query_temp("secondary_weapon")) return notify_fail(DIE "只能空手施展。\n"); if ((int)me->query_skill("yiyang-zhi", 1) < 200) return notify_fail("你一阳指诀不够娴熟,难以施展" DIE "。\n"); if (me->query_skill_mapped("finger") != "yiyang-zhi") return notify_fail("你没有激发一阳指诀,难以施展" DIE "。\n"); if (me->query_skill_prepared("finger") != "yiyang-zhi") return notify_fail("你没有准备一阳指诀,难以施展" DIE "。\n"); if ((int)me->query_skill("force") < 300) return notify_fail("你的内功火候不够,难以施展" DIE "。\n"); if (me->query("max_neili") < 5000) return notify_fail("你的内力修为不足,难以施展" DIE "。\n"); if ((int)me->query("neili") < 1000) return notify_fail("你现在的真气不够,难以施展" DIE "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); damage = da_power(me, "finger"); ap = ap_power(me, "finger"); dp = dp_power(target, "parry"); msg = HIW "突然间"; if (objectp(weapon = target->query_temp("weapon"))) { wp = weapon->name(); msg += "$N" HIW "单指一扬,径点$n" HIW "持着" + wp + NOR + HIW "的手腕上「" HIY "腕骨" HIW "」、「" HIY "阳谷" HIW "」" "、「" HIY "养老" HIW "」三穴。\n" NOR; ap = ap_power(me, "finger"); dp = dp_power(target, "force"); if (ap / 2 + random(ap) > dp) { msg += HIR "霎时间$n" HIR "只觉得手腕一麻,手中" + wp + HIR "再也拿持不住,脱手掉在地上。\n\n" HIW "紧" "接着"; me->add("neili", -150); weapon->move(environment(target)); } else { msg += CYN "可是$n" CYN "将手中" + wp + NOR + CYN "转" "动如轮,终于化解了这一招。\n\n" HIW "紧接着"; me->add("neili", -100); } } msg += "$N" HIW "凝气于指,一式「" HIR "阳关三叠" HIW "」点出,顿时一股" "纯阳的内力直袭$n" HIW "胸口!\n" NOR; if (ap / 2 + random(ap) > dp) { msg += COMBAT_D->do_damage(me, target, UNARMED_ATTACK, damage, 20, HIR "结果$n" HIR "被$N" HIR "一指点中" HIY + xue_name[random(sizeof(xue_name))] + HIR ",全身真气逆流而上,登时呕出一大" "口鲜血。\n" NOR); target->add_temp("yiyang-zhi/die", 1); } else { msg += CYN "可是$p" CYN "镇定自如,全力化解了$P" CYN "这精妙的一指。\n" NOR; } ap = ap_power(me, "finger"); dp = dp_power(target, "dodge"); msg += "\n" HIW "接着$N" HIW "踏前一步,体内真气迸发,隔空一指劲点$n" HIW "而去,指气纵横,嗤然作响!\n" NOR; if (ap / 2 + random(ap) > dp) { msg += COMBAT_D->do_damage(me, target, UNARMED_ATTACK, damage, 20, HIR "结果$n" HIR "被$N" HIR "一指点中" HIY + xue_name[random(sizeof(xue_name))] + HIR ",全身真气逆流而上,登时呕出一大" "口鲜血。\n" NOR); target->add_temp("yiyang-zhi/die", 1); } else { msg += CYN "可是$p" CYN "镇定自如,全力化解了$P" CYN "这精妙的一指。\n" NOR; } ap = ap_power(me, "finger"); dp = dp_power(target, "force"); msg += "\n" HIW "最后$N" HIW "一声猛喝,单指“嗤”的一声点出,纯阳指力同" "时笼罩$n" HIW "全身诸多要穴!\n" NOR; if (ap / 2 + random(ap) > dp) { msg += COMBAT_D->do_damage(me, target, UNARMED_ATTACK, damage, 20, HIR "结果$n" HIR "被$N" HIR "一指点中" HIY + xue_name[random(sizeof(xue_name))] + HIR ",全身真气逆流而上,登时呕出一大" "口鲜血。\n" NOR); target->add_temp("yiyang-zhi/die", 1); } else { msg += CYN "可是$p" CYN "镇定自如,全力化解了$P" CYN "这精妙的一指。\n" NOR; } if (target->query_temp("yiyang-zhi/die", 1) == 3 && target->query("neili")) { msg += HIY "\n$n" HIY "被$N" HIY "三指连中,全身真气涣" "散,宛如黄河决堤,内力登时狂泻而出。\n\n" NOR; target->set("neili", 0); } me->start_busy(4 + random(4)); me->add("neili", -800); target->delete_temp("yiyang-zhi/die"); message_combatd(msg, me, target); if (! target->query("neili")) tell_object(target, HIC "你只觉丹田内竟似空空如也,一时" "说不出的难受。\n" NOR); return 1; }
int perform(object me, object target) { object weapon; string msg; int ap, dp, count; int i, attack_time; if (userp(me) && ! me->query("can_perform/dagou-bang/tian")) return notify_fail("你还没有受过高人指点,无法施展" TIAN "。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(TIAN "只能对战斗中的对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "staff") return notify_fail("你使用的武器不对,难以施展" TIAN "。\n"); if (me->query_skill("dagou-bang", 1) < 220) return notify_fail("你打狗棒法不够娴熟,难以施展" TIAN "。\n"); if (me->query_skill_mapped("staff") != "dagou-bang") return notify_fail("你没有激发打狗棒法,难以施展" TIAN "。\n"); if ((int)me->query_skill("force") < 300) return notify_fail("你的内功火候不足,难以施展" TIAN "。\n"); if (me->query("neili") < 500) return notify_fail("你现在的真气不够,难以施展" TIAN "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIW "$N" HIW "手中" + weapon->name() + HIW "一卷,带" "起阵阵风声,犹若千百根相似,层层叠叠将$n" HIW "笼罩" "其中。\n" NOR; ap = ap_power(me, "staff"); dp = dp_power(target, "parry"); attack_time = 5; if (ap / 2 + random(ap) > dp) { msg += HIR "$n" HIR "只觉眼花缭乱,发现四面八方皆是杖" "影,心底寒意顿生,招架散乱。\n" NOR; count = ap / 8; me->add_temp("apply/attack", count); me->add_temp("apply/damage", count); attack_time += random(ap / 90); } else { msg += HIY "$n" HIY "只觉眼前一花,发现四面八方皆是杖" "影,急忙收敛心神,仔细招架。\n" NOR; count = 0; } message_combatd(msg, me, target); if (attack_time > 9) attack_time = 9; me->add("neili", -attack_time * 30); for (i = 0; i < attack_time; i++) { if (! me->is_fighting(target)) break; COMBAT_D->do_attack(me, target, weapon, 0); } me->add_temp("apply/attack", -count); me->add_temp("apply/damage", -count); me->start_busy(1 + random(attack_time)); return 1; }
int cast(object me, object target) { string msg; int success, ap, dp; if( (string)me->query("class") != "yaomo" ) return notify_fail("只有妖魔才能施展天魔解体大法。\n"); if( !target ) target = offensive_target(me); if( !target || !target->is_character() || target->is_corpse() || target==me) return notify_fail("你要对谁施展天魔解体大法?\n"); if((int)me->query("mana") < 100 || (int)me->query("max_mana") < 100 ) return notify_fail("你的法力不够,不能有效施展天魔解体大法!\n"); if((int)me->query("force") < 50 || (int)me->query("max_force") < 50 ) return notify_fail("你的内力不够,不能有效施展天魔解体大法!\n"); if((int)me->query("sen") < 100 || (int)me->query("sen") < (int)me->query("max_sen")/2 ) return notify_fail("你无法集中精力施展天魔解体大法!\n"); if( (int)me->query("combat_exp") < (int)target->query("combat_exp")/10 ) return notify_fail("对方比你强太多了,还是别送死吧!\n"); //here, we do not allow that a too weak player trys this on //a much stronger player. this is to prevent statistically possible //but unreasonable results from happenning. if( random(me->query("max_mana")) < 50 ) { write("你失败了!\n"); return 1; } msg = HIC "$N口中念了几句咒文,双手捧住脑袋,仰天发出一声悲嘶!\n\n忽然间$N将自己舌头狠命一咬,一道血雾向$n喷了过去!\n" NOR; success = 1; ap = me->query_skill("spells"); ap = ap * ap * ap /10 ; ap += (int)me->query("combat_exp"); ap = 4*ap; //this is for 拼命 so easier. dp = target->query("combat_exp"); if( random(ap + dp) < dp ) success = 0; //here we compared exp and spells level. //note: has nothing to do with target's spells level. ap = (int)me->query("max_mana"); dp = (int)target->query("max_mana"); if( ap < random(dp) ) success = 0; //here we compared max_mana. //if the attacher has half of the max_mana of the target, //he has 50% chance to kill his target, which is reasonable. if(success == 1 ){//now both die. msg += HIR "结果$n被血雾罩住,顿时发出一声惨叫!\n而$N也身子一瘫,倒在地上。\n" NOR; message_vision(msg, me, target); target->kill_ob(me); me->kill_ob(target); //to produce killing messages. me->add("max_mana", -100); me->add("max_force", -50); me->save(); //successed, attacker lost 100 max_fali and 50 max_neili. target->receive_wound("sen", (int)target->query("max_sen")+1, me); target->receive_wound("kee", (int)target->query("max_kee")+1, me); COMBAT_D->report_status(target); //target die here. me->receive_wound("sen", (int)me->query("max_sen")+1, target); me->receive_wound("kee", (int)me->query("max_kee")+1, target); COMBAT_D->report_status(me); //attacker die here. } else { msg += HIR "结果血雾被$n法力反激,反而罩住了$N!\n$N长叹一声,身子一瘫,倒在地上。\n" NOR; message_vision(msg, me, target); target->kill_ob(me); me->kill_ob(target); //to produce killing messages. me->add("max_mana", -50); me->add("max_force", -25); me->save(); //failed, attacker lost 50 max_fali and 25 max_neili. me->receive_wound("sen", (int)me->query("max_sen")+1, target); me->receive_wound("kee", (int)me->query("max_kee")+1, target); COMBAT_D->report_status(me); //attacker die here. } return 3+random(5); }
int perform(object me, object target) { object weapon; string wn, msg; object sroom, room; int ap, dp, damage; if (userp(me) && ! me->query("can_perform/lunhui-jian/hui")) return notify_fail("你所使用的外功中没有这种功能。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(HUI "只能对战斗中的对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "sword") return notify_fail("你使用的武器不对,难以施展" HUI "。\n"); if ((int)me->query_skill("force") < 750) return notify_fail("你的内功修为不够,难以施展" HUI "。\n"); if ((int)me->query("max_neili") < 10000) return notify_fail("你的内力修为不够,难以施展" HUI "。\n"); if ((int)me->query_skill("buddhism", 1) < 500) return notify_fail("你对禅宗心法参悟不够,难以施展" HUI "。\n"); if ((int)me->query_skill("lunhui-jian", 1) < 500) return notify_fail("你释迦轮回剑火候不够,难以施展" HUI "。\n"); if (me->query_skill_mapped("sword") != "lunhui-jian") return notify_fail("你没有激发释迦轮回剑,难以施展" HUI "。\n"); if ((int)me->query("neili") < 1000) return notify_fail("你现在真气不够,难以施展" HUI "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); wn = weapon->name(); message_combatd(HIW "$N" HIW "面露拈花之意,祭起手中" + wn + HIW ",霎时碧波流转,华光万丈,说不尽的祥和。" "\n" NOR, me, target); // 记录下最初的房间 if (! objectp(sroom = environment(me))) return 1; ap = me->query_skill("sword") + me->query_skill("buddhism", 1); dp = target->query_skill("parry") + target->query_skill("buddhism", 1); damage = ap + random(ap); // 六道轮回之人间道 room = find_object("/d/special/liudaolunhui/rendao"); if (! room) room = load_object("/d/special/liudaolunhui/rendao"); me->move(room); target->move(room); message_vision(HIY "\n$N" HIY "左手轻轻一拨,右手所持的" + wn + HIY "叮呤做响,剑姿说不出的潇洒妙曼。\n" NOR, me, target); if (ap / 2 + random(ap) > dp) { msg = COMBAT_D->do_damage(me, target, WEAPON_ATTACK, damage, 300, (: attack1, me, target, damage :)); } else
int perform(object me, object target) { int damage; string msg; int ap, dp; if (userp(me) && ! me->query("can_perform/henshan-quan/lan")) return notify_fail("你所使用的外功中没有这种功能。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(LAN "只能对战斗中的对手使用。\n"); if (me->query_temp("weapon") || me->query_temp("secondary_weapon")) return notify_fail(LAN "只能空手施展。\n"); if ((int)me->query_skill("henshan-quan", 1) < 60) return notify_fail("你衡山拳法不够娴熟,难以施展" LAN "。\n"); if (me->query_skill_mapped("cuff") != "henshan-quan") return notify_fail("你没有激发衡山拳法,难以施展" LAN "。\n"); if (me->query_skill_prepared("cuff") != "henshan-quan") return notify_fail("你没有准备衡山拳法,难以施展" LAN "。\n"); if (me->query_skill("force") < 80) return notify_fail("你的内功修为不够,难以施展" LAN "。\n"); if ((int)me->query("neili") < 200) return notify_fail("你现在的真气不够,难以施展" LAN "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); ap = me->query_skill("cuff"); dp = target->query_skill("parry"); msg = HIC "\n$N" HIC "双拳挥出,施一招「" HIG "青天揽日月" HIC "」,拳速极快,部位极准," HIC "分袭$n" HIC "面" "门和胸口。" NOR; message_sort(msg, me, target); if (ap / 2 + random(ap) > dp) { damage = (int)me->query_skill("henshan-quan", 1); damage += random(damage / 2); msg = COMBAT_D->do_damage(me, target, UNARMED_ATTACK, damage, 40, HIR "$N" HIR "出手既快,方位又奇,$n" HIR "闪避不及,闷哼一声,已然中拳。\n" NOR); me->add("neili", -100); me->start_busy(2 + random(2)); } else { msg = CYN "$n" CYN "不慌不忙,以快打快,将$N" CYN "这招化去。\n" NOR; me->add("neili", -30); me->start_busy(2 + random(3)); } message_combatd(msg, me, target); return 1; }
int perform(object me, object target) { object weapon; string msg; int ap, dp; int damage; if (userp(me) && ! me->query("can_perform/miaojia-jian/zhu")) return notify_fail("你还没有受过高人指点,无法施展" ZHU "。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(ZHU "只能对战斗中的对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "sword") return notify_fail("你使用的武器不对,难以施展" ZHU "。\n"); if ((int)me->query_skill("miaojia-jian", 1) < 120) return notify_fail("你苗家剑法不够娴熟,难以施展" ZHU "。\n"); if ((int)me->query_skill("force") < 150 ) return notify_fail("你的内功火候不够,难以施展" ZHU "。\n"); if ((int)me->query("max_neili") < 1200) return notify_fail("你的内力修为不够,难以施展" ZHU "。\n"); if ((int)me->query("neili") < 200) return notify_fail("你现在真气不够,难以施展" ZHU "。\n"); if (me->query_skill_mapped("sword") != "miaojia-jian") return notify_fail("你没有激发苗家剑法,难以施展" ZHU "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIY "$N" HIY "回圈手中" + weapon->name() + HIY "施「黄龙吐珠」斜" "贯而出,剑尖顿时吐出一道黄芒,闪电般射向$n" + HIY "!\n" NOR; ap = ap_power(me, "sword"); dp = dp_power(target, "parry"); if (ap / 2 + random(ap) > dp) { damage = da_power(me, "sword"); me->add("neili", -150); me->start_busy(2); msg += COMBAT_D->do_damage(me, target, WEAPON_ATTACK, damage, 60, HIR "$n" HIR "见状连忙格挡,可哪里来得" "及,登时只觉全身一麻,剑气已透胸而过。\n" NOR); } else { me->add("neili", -50); me->start_busy(3); msg += CYN "可是" CYN "$n" CYN "一声冷" "笑,飞身一跃而起,避开了" CYN "$N" CYN "发出的剑气。\n"NOR; } message_combatd(msg, me, target); return 1; }
int cast(object me, object target) { string msg; int damage, ap, dp; if (!target) target = offensive_target(me); if (!target || !target->is_character() || target->is_corpse() || target==me) return notify_fail(HIR "你要对谁使用黑雾?\n" NOR); if ((int)me->query_skill("necromancy", 1) < 30) return notify_fail("你的勾魂术火候不够,哪里用得出这招!\n"); if ((int)me->query("mana") < 40 + (int)me->query("mana_factor")) return notify_fail("你的法力不够!\n"); if ((int)me->query("force") < 200) return notify_fail("你的内力不够,无法喷出黑雾。\n"); if ((int)me->query("sen") < 40) return notify_fail("你现在神智不清,别把自己迷倒了!\n"); me->add("mana", -50-(int)me->query("mana_factor")); me->add("force", -150); me->receive_damage("sen", 50); if (random(me->query("max_mana")) < 150) { write("这一次好象不灵。\n"); return 1; } msg = HIG "$N突然腾空而起,口中高呼念念有词,张口喷出黑雾将$n团团围住!\n" NOR; ap = me->query_skill("spells"); ap = (ap * ap * ap / (4 * 400)) * (int)me->query("sen"); ap += (int)me->query("combat_exp"); dp = target->query("combat_exp"); if (random(ap + dp) > dp) { damage = (int)me->query("max_mana") / 10 + random((int)me->query("eff_sen") / 10); damage -= (int)target->query("max_mana") / 10 + random((int)me->query("eff_sen") / 5); damage += (int)me->query("mana_factor") - random((int)target->query("mana_factor")); //here we can see if 2 players are at same status, the attacker has higher chance. if (damage > 0) { //finally damage also depends on enabled spells level. damage += damage+random((damage*(int)me->query_skill("spells"))/240); msg += HIM "结果$n分不清东西了!\n" NOR; target->receive_damage("sen", damage, me); target->receive_wound("sen", damage*2, me); target->receive_damage("kee", damage*2, me); target->receive_wound("kee", damage*3, me); target->start_busy(1); me->improve_skill("necromancy", 1, 1); me->start_busy(2); } else { //here, cast failed and the target's mana_factor will be added to the previous //damage to hurt yourself:(...note, damage<0. msg += HIC "结果黑雾$n以法力一逼,反向$N回卷而去!\n" NOR; damage -= (int)target->query("mana_factor"); damage -= random((-damage*(int)target->query_skill("spells"))/100); me->receive_damage("sen", -damage, target); me->receive_wound("sen", -damage*2, target); me->receive_damage("kee", -damage, target); me->receive_wound("kee", -damage*3, target); // me->improve_skill("necromancy", 1, 1); } } else msg += "但是被$n躲开了。\n"; message_vision(msg, me, target); if (damage > 0) COMBAT_D->report_status(target); else if (damage < 0) COMBAT_D->report_status(me); //damage=0 corresponding to "但是被$n躲开了。\n"--no report. if (!target->is_fighting(me)) { if (living(target)) { if (userp(target)) target->fight_ob(me); else target->kill_ob(me); } me->kill_ob(target); } me->start_busy(1+random(2)); return 3+random(5); }
int perform(object me, object target) { string msg; int myexp,yourexp,lvl,extra, mod, x; if (userp(me)) if (me->query("class")!= "shaolin" && me->query("class")!="bonze") return notify_fail("『千手千变』是佛门武功。\n"); extra=me->query_skill("dabei-strike",1); if(extra<20) return notify_fail("『千手千变』需要20级的大慈大悲千叶式。\n"); if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("『千手千变』只能对战斗中的对手使用。\n"); if ((target->query("boss") || target->query("big_boss"))&& me->query("class")!="shaolin") return notify_fail(HIW"此人功力深湛,不会被此手法迷惑的。\n"NOR); mod = COMBAT_D->can_busy(me, target, "dabei-strike"); if (!mod) return notify_fail(HIW"此人功力深湛,不会被此手法迷惑的。\n"NOR); if(target->is_busy()) return notify_fail(target->name()+"已经手忙脚乱了!\n"); myexp = (int) me->query("combat_exp"); yourexp = (int) target->query("combat_exp")* mod/10; // (180/2+1.2x180) = 306/40+1 = 8 lvl = (int) me->query_skill("unarmed") / 40 + 1; // 兴国的BUSY效率不高 if (lvl > 5 && me->query("class")=="bonze") lvl = 5; msg = HBRED+HIW "$N"HIW"使出大悲千叶掌法中的『千手千变』,幻出无数掌影击向$n!" NOR; if (COMBAT_D->do_busy_attack(me, target, "dabei-strike", "unarmed", lvl* 100, mod)) { message_vision(msg + "\n", me, target); msg = YEL"结果$n被$N攻了个手忙脚乱!\n"NOR; message_vision(msg, me, target); target->force_busy(2); target->set_temp("busy_timer/dabei-strike",time()); me->perform_busy(1); } else { me->add_temp("apply/attack",extra/2); COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); me->add_temp("apply/attack",-extra/2); me->perform_busy(2); } // INherently, Every busy has 4*level hate, unarmed makes it 10x you/target level every 2 turn. if (target && !userp(target)){ x = me->query("combat_exp")> target->query("combat_exp") ? target->query("combat_exp"): me->query("combat_exp"); target->add_hate(me, F_LEVEL->get_level(x)*6); } return 1; }
int perform(object me, object target) { object armor; int damage; string *limb, type, result, str; type = "内伤"; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("你不在战斗中。\n"); if ( objectp(me->query_temp("weapon")) ) return notify_fail("你不是空手。\n"); /* if( target->is_busy() ) return notify_fail(target->name() + "目前正自顾不暇,放胆攻击吧。\n"); */ if( (int)me->query_skill("huoyan-dao", 1) < 120 ) return notify_fail("你的火焰刀修为不够。\n"); if ( me->query_skill_mapped("force") != "xiaowuxiang" && me->query_skill_mapped("force") != "longxiang-banruo") return notify_fail("你所用内功不对!\n"); if( me->query("neili") <= 500 ) return notify_fail("你的内力不够!\n"); if( me->query("jingli") <= 150 ) return notify_fail("你的精力不够!\n"); message_vision(HIR "$N长吸一口气,身上衣衫缓缓涨起,两掌变得通红,射出一股灼人热气。$n的身影被笼罩在一团火焰之中。\n\n" NOR, me,target); //tell_object(target, BLU "你只觉一股热浪扑面,霍的胸口一阵剧痛。\n"NOR); me->add("neili", -100); me->add("jingli", -100); if( random(me->query("combat_exp")) > (int)target->query("combat_exp")/2){ if( target->query_temp("armor/cloth")){ armor = target->query_temp("armor/cloth"); if( armor->query("armor_prop/armor") < 150){ message_vision(HIY"只见$N身上的$n"+HIY+"已被震得粉碎,变成一块块破布掉在地上。\n"NOR, target, armor); armor->unequip(); armor->move(environment(target)); armor->set("name", "破碎的" + armor->query("name")); armor->set("value", 0); armor->set("armor_prop/armor", 0); target->reset_action(); } } damage = random((int)me->query_skill("strike"))*5; target->receive_damage("qi", damage, me); target->receive_wound("qi", (int)me->query_skill("huoyan-dao", 1), me); target->start_busy(1+random(3)); limb = target->query("limbs"); result = COMBAT_D->damage_msg(damage, type); result = replace_string( result, "$l", limb[random(sizeof(limb))]); result = replace_string( result, "$p", target->name() ); message_vision(result, me, target); str = COMBAT_D->status_msg((int)target->query("qi") * 100 /(int)target->query("max_qi")); message_vision("($N"+str+")\n", target); } else { message_vision(HIY "$p赶紧向後跃开数丈,躲开$P的攻击。\n" NOR, me, target); } me->start_busy(1+random(3)); return 1; }
int perform(object me, object target) { object weapon; string msg; if (userp(me) && ! me->query("can_perform/huoyan-dao/yan")) return notify_fail("你还没有受过高人指点,无法施展" YAN "。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail(YAN "只能在战斗中对对手使用。\n"); if (me->query_temp("weapon") || me->query_temp("secondary_weapon")) return notify_fail("你必须空手才能施展" YAN "。\n"); if (me->query_skill("force") < 200) return notify_fail("你的内功的修为不够,无法施展" YAN "。\n"); if (me->query_skill("huoyan-dao", 1) < 150) return notify_fail("你的火焰刀修为不够,无法施展" YAN "。\n"); if (me->query("neili") < 600 || me->query("max_neili") < 2000) return notify_fail("你的真气不够,无法施展" YAN "。\n"); if (me->query_skill_mapped("strike") != "huoyan-dao") return notify_fail("你没有激发火焰刀,无法施展" YAN "。\n"); if (me->query_skill_prepared("strike") != "huoyan-dao") return notify_fail("你没有准备火焰刀,无法施展" YAN "。\n"); if (me->query_skill_prepared("hand") == "dashou-yin") return notify_fail("施展" YAN "时火焰刀不宜和密宗大手印互背!\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIR "$N" HIR "一声怒嚎,狂催真气注入单掌,掌缘顿时腾起一道烈炎,接二连三朝$n" HIR "劈去。\n" NOR; message_combatd(msg, me, target); me->add("neili", -500); me->add_temp("apply/attack", 50); COMBAT_D->do_attack(me, target, weapon, 0); me->add_temp("apply/attack", 50); COMBAT_D->do_attack(me, target, weapon, 0); me->add_temp("apply/attack", 50); COMBAT_D->do_attack(me, target, weapon, 0); me->add_temp("apply/attack", 50); COMBAT_D->do_attack(me, target, weapon, 0); me->add_temp("apply/attack", 50); COMBAT_D->do_attack(me, target, weapon, 0); // 消除攻击修正 me->add_temp("apply/attack", -250); me->start_busy(3 + random(2)); return 1; }
int perform(object me, object target) { object weapon; string msg; int ap, dp; int damage; if (! target) target = offensive_target(me); /* if (userp(me) && ! me->query("can_perform/wudang-jian/sheng")) return notify_fail("你所使用的外功中没有这种功能。\n"); */ if (! target || ! me->is_fighting(target)) return notify_fail(SHENG "只能在战斗中对对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "sword") return notify_fail("你使用的武器不对,难以施展" SHENG "。\n"); if (me->query_skill("force") < 80) return notify_fail("你的内功的修为不够,难以施展" SHENG "。\n"); if (me->query_skill("wudang-jian", 1) < 60) return notify_fail("你的武当剑法修为不够,难以施展" SHENG "。\n"); if (me->query_skill_mapped("sword") != "wudang-jian") return notify_fail("你没有激发武当剑法,难以施展" SHENG "。\n"); if (me->query("neili") < 50) return notify_fail("你现在真气不够,难以施展" SHENG "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIW "$N" HIW "凝神聚气,手中" + weapon->name() + HIW "回转,划出一个闪亮的剑圈,套向$n" HIW "而去。\n" NOR; ap = me->query_skill("sword"); dp = target->query_skill("parry"); if (ap / 2 + random(ap) > dp) { damage = ap / 3 + random(ap / 2); me->add("neili", -30); me->start_busy(2); msg += COMBAT_D->do_damage(me, target, WEAPON_ATTACK, damage, 10, HIR "$n" HIR "不明剑理,一个不慎,登时被$N" HIR "划中,鲜血直流!\n" NOR); } else { me->add("neili", -20); me->start_busy(3); msg += CYN "可是$p" CYN "微微一笑,轻轻格挡开了$P" CYN "的剑招。\n"NOR; } message_combatd(msg, me, target); return 1; }
int perform(object me, object target) { object ob; string msg; int skill; if (! wizardp(me)) return notify_fail("目前这功能还不开放!\n"); if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("花开并蒂只能带动战斗中的对手。\n"); if( me->query_temp("yield") ) return notify_fail("你不出掌,怎么能出「花开并蒂」?\n"); if( objectp(ob = me->query_temp("double_huakai")) ) { if( ob->is_fighting(me) ) return notify_fail("你已经在出「花开并蒂」了。\n"); } if( (int)me->query_temp("huakai")) return notify_fail("你已经在出「花开并蒂」了。\n"); if( (int)me->query_skill("mian-zhang", 1) < 99) return notify_fail("你的绵掌不够纯熟,尚未能出此绝招。\n"); if( (int)me->query_skill("taiji-shengong", 1) < 79) return notify_fail("你的太极神功修为不够,不能出「花开并蒂」。\n"); if( (int)me->query("jiali") > 2 || (int)me->query("jiajin") > 2) return notify_fail("你发现加力后无法把绵掌中若有若无,借力打力的要决发挥出来。\n"); msg = HIM "\n$N深深吸了一口气,一招「花开并蒂」左手挥掌猛击$n的右颊,右手出指疾点$n的“缺盆穴”。\n"NOR; me->add("neili", -30 +random(-20)); me->add("jingli", -15 +random(-15)); if( random(me->query("combat_exp") * me->query_int() / 100) > (int)target->query("combat_exp") * target->query_int() / 300 ) { me->start_busy(2); me->set_temp("huakai", 1); call_out("huakai", 1, me, target); } else { msg += YEL"可是$p已看破此招,不慌不忙的避开了。\n"NOR; me->start_busy(1+random(3)); } message_vision(msg, me, target); return 1; }
int perform(object me, object target) { object weapon; int i, a, ap, dp, power; if (!target) target=offensive_target(me); if (!target || !target->is_character() || !me->is_fighting(target)) return notify_fail("你不在战斗中!\n"); weapon=me->query_temp("weapon"); if (!objectp(weapon) || weapon->query("skill_type") != "sword") return notify_fail("你手中无剑,如何使得出哀牢山剑意?\n"); if (me->query_skill("kurong-changong", 1)<70) return notify_fail("你的内功火候未到,无法架御哀牢山剑意!\n"); if (me->query_skill("sword", 1) < 100) return notify_fail("你剑法修为不够,无法施展哀牢山剑意!\n"); if (me->query_skill("duanjia-jian",1)<60) return notify_fail("你段家剑修为不够,无法施展哀牢山剑意!\n"); if( me->query_skill_mapped("force") != "kurong-changong") return notify_fail("你所用的内功与哀牢山剑意气路相悖!\n"); if (me->query("neili") <= 500) return notify_fail("你的内力不够使用哀牢山剑意!\n"); message_vision(HIR "\n突然间$N剑法突变,剑气纵横,上六剑,下六剑,前六剑,后六剑,\n\n"NOR, me, target); message_vision(HIR "\n左六剑,右六剑,施展哀牢山剑意对$n虚虚实实连刺了三十六剑!\n\n" NOR, me, target); if (me->query("combat_exp")*100/target->query("combat_exp")<120) a=3; else { if (me->query("combat_exp")*100/target->query("combat_exp")<150) a=4; else { if (me->query("combat_exp")*100/target->query("combat_exp")<180) a=5; else a=6; } } for (i=1; i<=a; i++) COMBAT_D->do_attack(me, target, weapon); ap = me->query_skill("force")+me->query_skill("sword")/3; dp = target->query_skill("force")+target->query_skill("dodge")/3; power = me->query_skill("yiyang-zhi",1) + me->query_skill("duanjia-jian",1); // 增加攻击力 消耗极大之内力 if(random(2) == 1 && random(ap+dp)*100 > dp*50 && (int)me->query_skill("yiyang-zhi", 1) > 200 && me->query("neili") >= 2000 && me->query("family/family_name")=="大理段家") { message_vision(HIY "\n只见$N剑交左手,右手急运内功将一阳指力贯注在"NOR+weapon->query("name")+NOR HIY",对着$n补了一剑!\n" NOR, me, target); me->add_temp("apply/speed", power/3); me->add_temp("apply/damage", power/2); me->add_temp("apply/attack", power/2); target->add_temp("apply/defense", -power/5); target->add_temp("apply/dodge", -power/5); target->add_temp("apply/parry", -power/5); COMBAT_D->do_attack(me, target, weapon); target->add_temp("apply/defense", power/5); target->add_temp("apply/dodge", power/5); target->add_temp("apply/parry", power/5); me->add_temp("apply/speed", -power/3); me->add_temp("apply/damage", -power/2); me->add_temp("apply/attack", -power/2); me->add("neili", -500); } me->start_busy(a-random(4)); me->add("neili", -200); me->add("jingli", -50); return 1; }
int perform(object me, object target) { object weapon; int speed, damage, hand; weapon = me->query_temp("weapon"); if( !target && me->is_fighting() ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("落英神剑掌和兰花拂穴手的搭配攻击只能对战斗中的对手使用。\n"); if( me->query("gender") != "女性") return notify_fail("你不是女儿身,跟这一招的优雅姿态有点格格不入。\n"); if( objectp(weapon)) return notify_fail("你必需先放下武器。\n"); if( me->query_temp("luoying_lanhua") ) return notify_fail("你已经使出了落英神剑掌和兰花拂穴手的搭配攻击!\n"); if( me->query_skill("lanhua-fuxue",1) < 90 ) return notify_fail("你的兰花拂穴手修为不足。\n"); if( me->query_skill("luoying-shenjian",1) < 90 ) return notify_fail("你的落英神剑掌修为不足。\n"); if( me->query_skill("bitao-xuangong", 1) < 100 ) return notify_fail("你的碧涛玄功修为不足,无法同时施展落英神剑掌和兰花拂穴手!\n"); if( me->query_skill_mapped("force") != "bitao-xuangong") return notify_fail("你必需先运使碧涛玄功!\n"); if( me->query_skill_mapped("strike") != "luoying-shenjian") return notify_fail("你所施展的掌法并非落英神剑掌,如何能与兰花拂穴手搭配?\n"); if( me->query("max_neili") <= 1000 ) return notify_fail("你的内力修为不足!\n"); if( me->query("neili") <= 400 ) return notify_fail("你的内力不够!\n"); if( me->query("jingli") <= 400 ) return notify_fail("你的精力不够!\n"); damage = (me->query_skill("lanhua-fuxue",1) + me->query_skill("luoying-shenjian",1))/6; hand = (me->query_skill("hand",1)+me->query_skill("strike",1) )/6; speed = (me->query_skill("hand",1)+me->query_skill("strike",1) )/200; me->add("neili", -80); me->add("jingli", -80); //命中率增加 me->add_temp("apply/speed", speed); me->add_temp("apply/attack", damage); me->add_temp("apply/damage", damage/2); me->set_temp("luoying_lanhua", 1); message_vision(HIY"\n$N突然变招,使出「落英神剑掌」来,掌影飘忽於四方八面,或五虚一实,或八虚一实,真如桃林中狂风忽起、万花齐落一般,妙在姿态飘逸,宛若翩翩起舞。\n"NOR, me,target); if(me->is_fighting(target) ){ COMBAT_D->do_attack(me, target, me->query_temp("weapon")); } message_vision(HIC"\n但见$N指化为掌,掌化为指,「落英神剑掌」与「兰花拂穴手」交互为用,当真是掌来时如落英缤纷,指拂处若春兰葳蕤,不但招招凌厉,而且丰姿端丽。\n"NOR, me,target); if(me->is_fighting(target) ){ COMBAT_D->do_attack(me, target, me->query_temp("weapon")); } me->set_temp("fuxue", 1); me->start_busy(1); call_out("checking", 1, me, weapon,speed,damage); return 1; }
int cast(object me, object target) { string msg; int damage, ap, dp; int extradam; if( !target ) target = offensive_target(me); if((int)me->query_skill("spells") < 20 ) return notify_fail("你的法术不够高!\n"); if( !target || !target->is_character() || target->is_corpse() || target==me) return notify_fail("你要对谁施展氤氲紫气?\n"); if((int)me->query("mana") < 100 ) return notify_fail("你的法力不够!\n"); if((int)me->query("sen") < 100 ) return notify_fail("你的精神没有办法有效集中!\n"); me->add("mana", -25); me->receive_damage("sen", 20); if( random(me->query("max_mana")) < 20 ) { write("你失败了。\n"); return 1; } msg = HIM "$N口中喃喃地念著咒文,左手一挥,手中聚起一团紫气射向$n!\n\n" NOR; ap = me->query_skill("spells"); extradam = ap/2; ap = ( ap * ap /100 * ap / 4 ) * (int)me->query("sen") ; dp = target->query("combat_exp"); if( random(ap + dp) > dp ) { damage = (int)me->query("max_mana") / 10 + random((int)me->query("eff_sen") / 20) + random(extradam); damage -= (int)target->query("max_mana") / 30 + random((int)me->query("eff_sen") / 15); if( damage > 0 ) { msg += MAG "结果「嗤」地一声,紫气从$p身上透体而过,拖出一条长长的七彩光气,光气绕了\n" "回转过来又从$N顶门注入$P的体内!\n" NOR; me->receive_heal("sen", target->receive_damage("sen", damage, me)); target->receive_wound("sen", damage/3, me); me->improve_skill("pansi-dafa", 1, 1); } else msg += HIB"结果「嗤」地一声,紫气从$p身上透体而过,无声无息地钻入地下!\n"NOR; } else msg += "但是被$n躲开了。\n"; message_vision(msg, me, target); if( damage > 0 ) COMBAT_D->report_status(target); if( !target->is_fighting(me) ) { if( living(target) ) { if( userp(target) ) target->fight_ob(me); else target->kill_ob(me); } me->kill_ob(target); } me->start_busy(2); return 1; }
int perform(object me, object target) { string msg, str; int mydf; int ap, dp, pp; int youcps, mycor, 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"); if(me->query("family/family_name")!="东海龙宫") return notify_fail("你非龙族,不能用此招!\n"); mydf=(int)me->query_skill("dragonforce",1); if(mydf<100) return notify_fail("你的修为不够深,还不能领悟舍身技的精髓。\n"); if(environment(me)!=environment(target)) notify_fail("你要攻击的人不在这里。\n"); if((int)me->query("force")<500) return notify_fail("你的内力不够了。\n"); msg = CYN "$N右掌挥出,斩向$n的左肩,\n"; mycor=me->query_cor(); youcps=target->query_cps(); 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); pp/=2; if(objectp(ob)) pp/=2; mystr=me->query_str(); youstr=me->query_str(); damage_bonus=mystr*(100+me->query("force_factor"))/100; if( random(youcps) < 15 || 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(6)+2; me->start_busy(delay); me->add("force", -300); return 1; }