?? ban.c
字號(hào):
//ban.c 打狗棒法「絆」字訣// fear 12/99#include <ansi.h>inherit F_DBASE;inherit F_SSERVER;int perform(object me, object target){ string* msgsuccess; string* msgfail; string* msgloop, msg; int random_text; int duration; int dodge; int speed; string weapon; int skill, att; int nskill; int ndamage; int hits; int i; int ban_count=0; if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("絆字訣只能對戰(zhàn)斗中的對手使用。\n"); if( target->is_busy() ) { return notify_fail(target->name() + "目前正自顧不暇,放膽攻擊吧ⅵ\n"); } if( me->query_temp("ban",1) ) return notify_fail("你已在使用絆字訣!\n"); if( me->query_skill_mapped("force") != "huntian-qigong" ) return notify_fail("你所用的并非混天氣功,無法施展絆字訣!\n"); if( me->query_skill("force") < 199 ) return notify_fail("你的混天氣功火候未到,無法施展絆字訣!\n"); if( (int)me->query("neili") < 400 ) return notify_fail("你的內(nèi)力不夠。\n"); if (me->query_skill("huntian-qigong", 1)<70) return notify_fail("你的本門內(nèi)功火候未到,!\n"); if (!objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "staff") return notify_fail("你使用的武器不對。\n"); if( me->query_skill("staff") < 199 ) return notify_fail("你的打狗棒法修為不足,還不會(huì)使用絆字訣!\n"); skill = ( me->query_skill("dagou-bang") + me->query_skill("force") ) / 5; nskill = ( me->query_skill("dagou-bang") ) /4; me->set_temp("apply/speed", me->query_temp("apply/speed",1)+skill*3/2); speed = target->query_temp("apply/speed",1); dodge = target->query_temp("apply/dodge",1); if( me->query("neili") <= skill*3 ) return notify_fail("你的內(nèi)力不夠使用絆字訣!\n"); weapon = me->query_temp("weapon"); if( me->query_skill("dagou-bang") < 300 ) { hits=3; } else if( me->query_skill("dagou-bang") < 400 ) { hits=4; } else if( me->query_skill("dagou-bang") < 500 ) { hits=5; } else { hits=6; } if( random(2)) { message_vision(HIG "突然$N"+ weapon->name()+HIG"揮出,以打狗棒的「絆」字訣著地掃去,有如長江大河,綿綿而至。\n\n" NOR, me, target); } else { message_vision(HIG "$N"+ weapon->name()+HIG"伸出,施展打狗棒法的「絆」字訣,連環(huán)鉤盤,雖只一個(gè)「絆」字,中間卻蘊(yùn)藏著千變?nèi)f化。\n\n" NOR, me, target);} for(i=0;i<=hits;i++) { if (random(me->query("combat_exp")) > random((int)target->query("combat_exp")) ) { msgsuccess = ({ "$n縱身稍慢,被"+ weapon->name()+HIY"在左脛上一撥,右踝上一鉤,撲地倒了。", "$n立足不住,被"+ weapon->name()+HIY"絆了一交,仰天摔倒。", weapon->name()+HIY"騰的一下,$n登時(shí)措手不及,被絆得一交摔倒。", weapon->name()+HIY"猛然翻轉(zhuǎn),擊中$n的腳脛。$p立足不穩(wěn),一個(gè)踉蹌,撲地跌倒。" }); msg = HIY"\n"+ msgsuccess[random(sizeof(msgsuccess))] +"\n" NOR; message_vision(msg, me, target); if(nskill > 100) { ndamage=100;} else { ndamage = nskill; } ban_count++; me->start_busy(2); target->start_busy(1 + random(3)); target->add("qi",-ban_count * ndamage); target->add("qi",-me->query_skill("dagou-bang")/2+random(300)); target->add("eff_qi",-me->query_skill("dagou-bang")/2+random(300)); target->add_temp("apply/dodge", -skill/10 ); target->add_temp("apply/attack", -skill/10 ); } else { msgfail = ({ "$n微感勁風(fēng)襲向下盤,急忙涌身躍起,總算躲過了一招。", "$n輕躍相避,立時(shí)躲開了這一招。" , "$n縱身躍起,避過了這驚險(xiǎn)的一棒。", "$n凌空竄起,將跌勢變?yōu)檐S勢,再穩(wěn)穩(wěn)落下。" }); msg = CYN"\n"+ msgfail[random(sizeof(msgfail))] +"\n" NOR; message_vision(msg, me, target); me->start_busy(2); } if (i < hits) { msgloop = ({ "$n剛躍起,尚未落地,那"+ weapon->name()+HIG"又是一挑一打。", "$p越躍越快,但見地下一片綠竹化成的碧光盤旋飛舞。", "那「絆」字訣乃是一棒快似一棒,$N一絆不中,二絆續(xù)至,決不容$n有絲毫喘息時(shí)機(jī)。", "$n縱身上躍,但覺得腳下猶如陷入了泥沼,又似纏在無數(shù)藤枝之中。" }); msg = HIG"\n"+ msgloop[random(sizeof(msgloop))] +"\n" NOR; message_vision(msg, me, target); } me->add("neili", -150 ); me->add("qi", -55 ); } me->set_temp("ban",1); duration = 15 - me->query_skill("dagou-bang") / 50; if (duration < 5) { duration = 5; } call_out("remove_effect",duration,me,target,speed , dodge); return 1;}void remove_effect(object me, object victim, int speed, int dodge){ if (objectp(victim)) { victim->set_temp("apply/attack", speed); victim->set_temp("apply/dodge", dodge); } if (objectp(me)) { me->set_temp("apply/speed",0); me->delete_temp("ban"); } if( objectp(me) && objectp(victim) && victim->is_fighting(me) ) message_vision(HIG "\n$N吸了一口氣,將內(nèi)力收回丹田,棒招也恢復(fù)正常!\n\n" NOR, me); return 0;}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -