int main(object me, string arg) { object ob; string old_status, new_status; int my_level, ob_level, level; if( me!=this_player(1) ) return 0; if( !arg || sscanf(arg, "%s %s", arg, new_status)!=2 ) return notify_fail("指令格式:promote <使用者> <等级>\n"); if( wiz_level(new_status) < 0 ) return notify_fail("没有这种等级。\n"); if( !objectp(ob = present(arg, environment(me))) || !userp(ob) ) return notify_fail("你只能改变使用者的权限。\n"); if( wiz_level(me) < wiz_level(new_status) ) return notify_fail("你没有这个权力。"); old_status = wizhood(ob); seteuid(getuid()); if( !(SECURITY_D->set_status(ob, new_status)) ) return notify_fail("修改失败。\n"); message_vision("$N将$n的权限从 " + old_status + " 改为 " + new_status + " 。\n", me, ob); seteuid(getuid()); ob->setup(); return 1; }
int valid_leave(object obj, string dir){ if (userp(obj) && random(20)) { obj->move(this_object()); return notify_fail(""); } return 1; }
void init() { if( !previous_object() || !userp(previous_object()) ) return; call_out( "fire_wound", 6,previous_object()); }
int perform(object me, object target) { string msg; int extra; object weapon; if(me->is_busy()) return notify_fail("你现在没空!!\n"); extra = me->query_skill("springrain-blade",1); if ( extra < 120 && userp(me)) return notify_fail("你的春雨刀法不够纯熟。\n"); if( !target ) target = offensive_target(me); if( !target || !target->is_character() || !me->is_fighting(target) ) return notify_fail("[当时明月]只能对战斗中的对手使用。\n"); me->add_temp("apply/attack",extra*2); me->add_temp("apply/damage",extra); weapon = me->query_temp("weapon"); msg = HIC "$N轻叹一声,随手挽了个刀花,"+ weapon->name()+"斜斜挥出,却是『春雨刀法』中的精髓之式「当时-明-月-」!\n" NOR; message_vision(msg,me,target); msg = HIC" 当 "HIY" 曾\n" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); msg = HIC" 时 "HIY" 照\n" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); msg = HIC" 明 "HIY" 彩\n" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); msg = HIC" 月 "HIY" 云\n" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); msg = HIC" 在 "HIY" 归\n" NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); me->start_busy(3); me->add_temp("apply/attack",-extra*2); me->add_temp("apply/damage",-extra); return 1; }
int cast(object me, object target) { object soldier; int spells,lvl,i; if(userp(me)) return notify_fail("你所选用的武功中没有这种必杀技。。\n"); if(me->query("class")!="taoist") return notify_fail("只有三清宫的弟子才能够使用三清道术。\n"); spells = me->query_skill("spells"); if( !me->is_fighting() ) return notify_fail("只有战斗中才能召唤天将!\n"); if( me->query_temp("max_guard") > MAX_GUARD ) return notify_fail("你已经召唤太多天兵鬼卒了!\n"); lvl=me->query_skill("necromancy",1); message_vision("$N喃喃地念了几句咒语。\n", me); seteuid(getuid()); if(random(spells) > (spells/2)) soldier = new("/obj/npc/heaven_soldier"); else
int target_perform(object me, object target) { string msg; int extra,i,j,lmt,damages,bell; object weapon; object *enemy; extra = me->query_skill("sharen-sword",1); weapon = me->query_temp("weapon"); if(extra <= 162) { damages = extra/4; msg = HIY"$N"+HIY"凶性大发,手中的"+ weapon->name()+ HIY"狂风暴雨般地向$n"+HIY"卷来! " NOR; message_vision(msg,me,target); me->add_temp("apply/attack",damages); me->add_temp("apply/damage",damages*2); } else { if (me->query("class")=="assassin") damages = extra/3; else {damages = extra/4;} msg = HIY"$N"+HIY"杀气大盛,只见"NOR+ weapon->name()+ HIY"疾风骤雨般地向$n"+HIY"全身各大要穴刺到! " NOR; message_vision(msg,me,target); me->add_temp("apply/attack",damages); me->add_temp("apply/damage",damages*2); } lmt = random(5)+3; if (extra>160 && lmt<5) lmt=5; for(i=1;i<=lmt;i++) { msg = HIR "第"+chinese_number(i)+"剑!" NOR; COMBAT_D->do_attack(me,target,TYPE_PERFORM,msg); } me->add_temp("apply/attack",-damages); me->add_temp("apply/damage",-damages*2); bell = lmt*5-5; if (userp(me)) me->add("bellicosity",-bell); if (userp(me)) me->add("bellicosity",-bell); if (me->query_busy()<4) me->start_busy(4); return 1; }
int cast(object me, object target) { int extra,my_exp; extra=me->query_skill("kwan-yin-spells",1); my_exp=me->query("combat_exp"); if(userp(me)) return notify_fail("你所选用的武功中没有这种必杀技。。\n"); if(me->query("class")!="lama") return notify_fail("只有大昭寺的弟子才能使用真言。\n"); if(extra<60) 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==target) return notify_fail("真言法术不能用在自己身上。\n"); if( (int)me->query("mana") < 400 ) return notify_fail("你的法力不够。\n"); message_vision( HIR "$N身、口、意与佛成为一体,面色庄重,沉声念道“唵”! \n"NOR, me, target ); extra=extra*extra*100; if(my_exp/2+random(my_exp)*3/2+random(extra)>target->query("combat_exp")) { message_vision(RED"$n只觉得心头好象被重锤一击,灵魂似乎要离窍而去。 \n\n"NOR,me,target); target->receive_wound("gin", 10 + (int)me->query_skill("spells")*3 + random(2)*75,me); COMBAT_D->report_status(target); COMBAT_D->win_lose_check(me,target,1); } else message_vision(RED"$n只觉得心头一紧,急忙凝气护心。 \n"NOR,me,target); if (userp(me)) me->add("mana", -400); me->set("mana_factor", 0); me->start_busy(3); 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/hanwang-qingdao/ying")) return notify_fail("你所使用的外功中没有这种功能。\n"); if (! target || ! me->is_fighting(target)) return notify_fail(YING "只能在战斗中对对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "blade") return notify_fail("你使用的武器不对,难以施展" YING "。\n"); if (me->query_skill("force") < 120) return notify_fail("你的内功的修为不够,难以施展" YING "。\n"); if (me->query_skill("hanwang-qingdao", 1) < 80) return notify_fail("你的韩王青刀修为不够,难以施展" YING "。\n"); if (me->query("neili") < 100) return notify_fail("你目前的内力不足,难以施展" YING "。\n"); if (me->query_skill_mapped("blade") != "hanwang-qingdao") return notify_fail("你没有激发韩王青刀,难以施展" YING "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIC "霎时只见$N" HIC "手中" + weapon->name() + HIC "一振,顿时幻出重重刀影,将$n" HIC "团团裹住!\n" NOR; ap = me->query_skill("blade"); dp = target->query_skill("parry"); if (ap / 2 + random(ap) > dp) { damage = ap / 3 + random(ap / 3); me->start_busy(1); me->add("neili", -80); msg += COMBAT_D->do_damage(me, target, WEAPON_ATTACK, damage, 20, HIR "只听$p" HIR "一声惨嚎,一股血柱自" HIR "血色刀影中激射而出!\n" NOR); } else { me->add("neili", -40); me->start_busy(3); msg += CYN "可是$n" CYN "淡淡一笑,浑然不将$N" CYN "重重刀影放在眼中,随意将之架开。\n" NOR; } message_combatd(msg, me, target); return 1; }
int perform(object me) { string msg; object target; int skill, ap, dp, damage; if (userp(me) && ! me->query("can_perform/yingzhua-gong/chumo")) return notify_fail("你还没有受过高人指点,无法施展「荡妖除魔」。\n"); if (! target) { me->clean_up_enemy(); target = me->select_opponent(); } if (! target || ! me->is_fighting(target)) return notify_fail("「荡妖除魔」只能在战斗中对对手使用。\n"); skill = me->query_skill("yingzhua-gong", 1); if (skill < 135) return notify_fail("你的鹰爪功等级不够,不会使用「荡妖除魔」!\n"); if (me->query("neili") < 250) return notify_fail("你的真气不够,无法运用「荡妖除魔」!\n"); if (me->query_skill_mapped("claw") != "yingzhua-gong") return notify_fail("你没有激发鹰爪功,无法使用「荡妖除魔」!\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIY "$N" HIY "微微一笑,双掌缓缓的向$n" HIY "抓出,此招" "看上去也平平无奇,并无多少精妙变化!\n" NOR; ap = ap_power(me, "claw") + me->query_skill("force"); dp = dp_power(target, "dodge") + me->query_skill("parry"); if (ap / 2 + random(ap) > dp) { me->add("neili", -200); damage = da_power(me, "claw"); msg += COMBAT_D->do_damage(me, target, UNARMED_ATTACK, damage, 45, HIR "不知怎么的,$p" HIR "却偏偏躲不开$P" HIR "这一抓,结果被抓了个正中,不由得闷" "哼一声,退了几步。\n" NOR); me->start_busy(2); } else { msg += CYN "可是$p" CYN "没有轻视$P" CYN "这一抓,连忙招架,顺势跃开,没有被$P" CYN "得手。\n" NOR; me->add("neili",-40); me->start_busy(3); } message_combatd(msg, me, target); return 1; }
int main(object me, string arg) { int gin_cost=30, atman_gain; string magic_skill; seteuid(getuid()); if (userp(me)) return notify_fail("��ָ���ѱ�exerciseȡ������help exercise \n"); if(environment(me)->query("no_fight")) return notify_fail("�㲻�������������С�\n"); if( me->is_fighting() ) return notify_fail("ս��Ҳ��һ�����У������ܺ�����������ͬʱ���С�\n"); if( me->is_busy() ) return notify_fail("����һ��������û����ɣ��������С�\n"); if( arg && !sscanf(arg, "%d", gin_cost) ) return notify_fail("��Ҫ�����پ������У�\n"); if( gin_cost < 10 ) return notify_fail("������Ҫ�� 10 �㾫�����ܽ������С�\n"); if( (int)me->query("gin") < gin_cost ) return notify_fail("�����ھ������㣬������������\n"); if( (int)me->query("kee") * 100 / (int)me->query("max_kee") < 70 ) return notify_fail("����������״��̫���ˣ������о�����Ѫֵ������70%���ϣ�\n"); if( (int)me->query("sen") * 100 / (int)me->query("max_sen") < 70 ) return notify_fail("�����ھ���״��̫���ˣ��������Լ������飡������ֵ������70%���ϣ�\n"); write("����ϥ�����������۾���ʼ����˼����\n"); me->start_busy(1); me->add("gin", -gin_cost); // This function ranged from 1 to 15 when gin_cost = 30 atman_gain = gin_cost * ((int)me->query_skill("magic")/10 + (int)me->query_int() ) / 30; atman_gain = (atman_gain + random(atman_gain))/5; if( atman_gain < 1 ) { write("������һ��С��ȴ˯���ˡ�\n"); return 1; } me->add("atman", atman_gain ); if( (int)me->query("atman") > (int)me->query("max_atman") * 2) { if( (int)me->query("max_atman") >= ((int)me->query_skill("magic", 1) + me->query_skill("magic")/5) * 5 ) { write("�����һ��������ת��ͷ�ǵ���Ҫ�ѿ�һ�����ƺ������������Ѿ�������ƿ����\n"); me->set("atman", 2*me->query("max_atman")); } else { write("�����������ˣ�\n"); me->add("max_atman", 1); me->set("atman", me->query("max_atman")); } } return 1; }
int perform(object me, object target) { object weapon; string msg; int ap, dp; int damage; if (userp(me) && ! me->query("can_perform/wuxiang-zhi/wuse")) return notify_fail("你还没有受过高人指点,无法施展「无色无相」。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail("「无色无相」只能在战斗中对对手使用。\n"); if (me->query_temp("weapon") || me->query_temp("secondary_weapon")) return notify_fail("你必须空手才能使用「无色无相」!\n"); if (me->query_skill("force") < 100) return notify_fail("你的内功的修为不够,不能使用这一绝技!\n"); if (me->query_skill("wuxiang-zhi", 1) < 150) return notify_fail("你的无相指修为不够,目前不能使用「无色无相」!\n"); if (me->query("neili") < 400) return notify_fail("你的真气不够,无法使用「无色无相」!\n"); if (me->query_skill_mapped("finger") != "wuxiang-zhi") return notify_fail("你没有激发大力无相指,不能使用「无色无相」!\n"); msg = HIY "$N" HIY "聚起全身功力,汇聚于右指,纵身而上," HIY "向$n扑去,同时一指划出,如同流星一般击向$n" + HIY "!\n" NOR; ap = ap_power(me, "finger") + me->query_skill("force"); dp = dp_power(target, "parry") + target->query_skill("dodge"); if (ap / 2 + random(ap) > dp) { damage = da_power(me, "finger"); me->add("neili", -200); msg += HIR "只见$p" HIR "一声惨叫,已被点中胸口要穴," "$p" HIR "只觉得胸口气血汹涌,全身气血" "倒流,哇的一声吐出一口鲜血,苦不堪言!\n" NOR; msg += COMBAT_D->do_damage(me, target, REMOTE_ATTACK, damage, 70); me->start_busy(2); } else { me->add("neili", -100); me->start_busy(3); msg += CYN "可是$p" CYN "看破了$N" CYN "的企图,轻轻" CYN "向后飘出数丈,躲过了这一致命的一击!\n"NOR; me->start_busy(3); } message_combatd(msg, me, target); return 1; }
int perform(object me, object target) { object weapon; string msg; if (userp(me) && ! me->query("can_perform/damo-jian/sanjue")) return notify_fail("你还没有受过高人指点,无法施展「达摩三绝剑」。\n"); if (! target) target = offensive_target(me); if (! target || ! me->is_fighting(target)) return notify_fail("「达摩三绝剑」只能在战斗中对对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "sword") return notify_fail("你使用的武器不对。\n"); if (me->query_dex() < 30) return notify_fail("你的身法不够,目前还不能使用这项绝技!\n"); if (me->query_skill("force") < 200) return notify_fail("你的内功的修为不够,不能使用这一绝技!\n"); if (me->query_skill("dodge") < 200) return notify_fail("你的轻功修为不够,不能使用达摩三绝剑!\n"); if (me->query_skill("sword") < 200) return notify_fail("你的剑法修为不够,目前不能使用达摩三绝剑!\n"); if (me->query("neili") < 150) return notify_fail("你的真气不够,不能使用达摩三绝剑!\n"); if (me->query_skill_mapped("sword") != "damo-jian") return notify_fail("你没有激发达摩剑,不能使用达摩三绝剑!\n"); msg = HIC "$N" HIC "使出达摩剑的绝技「达摩三绝剑」,身法陡然加快!\n" NOR; message_combatd(msg, me); me->add("neili", -75); // The first attack me->add_temp("apply/attack", 100); COMBAT_D->do_attack(me, target, weapon, 0); // The second attack me->add_temp("apply/attack", 200); COMBAT_D->do_attack(me, target, weapon, 0); // The third attack me->add_temp("apply/attack", 300); COMBAT_D->do_attack(me, target, weapon, 0); // Back me->add_temp("apply/attack", -600); me->start_busy(1 + random(3)); return 1; }
int check_damage(object me, object target, int time) { int ap,dp,damage,success; if (!target || !me || environment(me) != environment(target)) { remove_call_out("check_damage"); return 1; } ap = (int)me->query_skill("spells"); ap = ap*ap*ap/10; ap = ap+(int)me->query("combat_exp"); dp = (int)target->query_skill("spells"); dp = dp*dp*dp/10; dp = dp+(int)target->query("combat_exp"); damage = (int)me->query("max_mana")/10 - random((int)target->query("max_mana")/10); success=1; if (damage < 0) success = 0; if (random(ap+dp) < dp) success = 0; if ((int)me->query("mana") < 30) success = 0; if ((int)me->query("kee") < 30) success = 0; if (environment(me)->query("no_fight") || environment(me)->query("no_magic")) success = 0; if (success) { message_vision(HIB"\n「啪」地一团蓝色火焰在$N脚下燃起,如鬼魅缠身,将$N拢在中央。\n"NOR, target); target->receive_damage("kee", random(damage)); target->receive_wound("kee", damage/3); COMBAT_D->report_status(target); me->receive_damage("kee", 25); me->add("mana", -25); me->start_busy(2); } else { tell_room(environment(target), "\n四周点点磷火飘荡着………\n"); } time--; if (time) { call_out("generate_msg", 4, me); call_out("check_damage", 8, me, target, time); } if (!target->is_fighting(me)) { if (living(target)) { if (userp(target)) target->fight_ob(me); else target->kill_ob(me); } me->kill_ob(target); } return 1; }
void init() { if(userp(this_player())) { // remove_call_out("attack"); call_out("attack",1,this_player()); } }
void init () { remove_call_out ("initing"); if(userp(this_player())) { call_out ("initing",2+random(60)); } }
int valid_leave(object me, string dir) { if(!userp(me)&&dir=="eastdown"&&me->query("home")==1) { tell_room(__DIR__"guandao2",RED"\n只听得土匪大声叫骂:下次再敢来,老子把你给剁成肉泥!!\n"NOR); return 0; } return 1; }
int main(object me, string arg) { object obj, old_target; if( me->is_busy()) return notify_fail("你上一个动作还没有完成!\n"); if( environment(me)->query("no_ansuan") ) return notify_fail("这里禁止战斗。\n"); if( environment(me)->query("no_fight") ) return notify_fail("这里禁止战斗。\n"); if( !arg || !objectp(obj = present(arg, environment(me)))) return notify_fail("你想攻击谁?\n"); if( !obj->is_character() ) return notify_fail("看清楚一点,那并不是生物。\n"); if( obj->is_fighting(me) ) return notify_fail("加油!加油!加油!\n"); if( !living(obj) || obj->query_temp("noliving") ) return notify_fail(obj->name() + "已经无法战斗了。\n"); if(obj==me) return notify_fail("你不能攻击自己。\n"); if( userp(obj) && (object)obj->query_temp("pending/fight")!=me ) { message_vision("\n$N对着$n说道:" + RANK_D->query_self(me) + me->name() + ",领教" + RANK_D->query_respect(obj) + "的高招!\n", me, obj); if( objectp(old_target = me->query_temp("pending/fight")) ) tell_object(old_target, YEL + me->name() + "取消了和你比试的念头。\n" NOR); me->set_temp("pending/fight", obj); tell_object(obj, YEL"如果你愿意和对方进行比试,请你也对" + me->name() + "("+(string)me->query("id")+")"+ "下一次 fight 指令。\n" NOR); write(YEL"由于对方是由玩家控制的人物,你必须等对方同意才能进行比试。\n" NOR); return 1; } if( obj->query("can_speak") ) { message_vision("\n$N对着$n说道:" + RANK_D->query_self(me) + me->name() + ",领教" + RANK_D->query_respect(obj) + "的高招!\n", me, obj); notify_fail("看起来" + obj->name() + "并不想跟你较量。\n"); if( !userp(obj) && !obj->accept_fight(me) ) return 0; me->fight_ob(obj); obj->fight_ob(me); } else { message_vision("\n$N大喝一声,开始对$n发动攻击!\n\n", me, obj); me->fight_ob(obj); obj->kill_ob(me); } return 1; }
int valid_leave(object who,string dir) { if(userp(who) && random(5)) { who->move(this_object()); return notify_fail(""); } return 1; }
void init(){ object me; if (userp(me=this_player())) me->apply_condition("underwater",10); add_action("do_dive", "dive"); add_action("do_smile","smile"); }
void init() { object me=this_player(); if (userp(me)) call_out("letgo",15,this_player()); // remove_call_out("letgo"); }
void init() { ::init(); if( !previous_object() || !userp(previous_object()) || wizardp(previous_object()) ) return; call_out( "death_stage", 3, previous_object(), 0 ); }
int valid_leave(object obj, string dir){ if (userp(obj) && dir=="south") { obj->delete_temp("block_msg/all",1); tell_object(obj,HIG"你终于走出了那漆黑的尽头,可以依稀辨认出周围的情况。\n"NOR); return 1; } return 1; }
int main(object me, string arg) { string targetname, fabaoname; object obj, *inv, target, obj2,old_env, fabao; int i, amount; mixed no_get; if( !wizardp(me) && environment(me)->query("no_magic") ) return notify_fail("这里禁止祭法宝。\n"); if( !arg ) return notify_fail("你要祭哪样法宝?\n"); // Check if correct format is followed if( sscanf(arg, "%s on %s", fabaoname, targetname)>2 ) return notify_fail("指令格式 : ji <法宝名称> [on <目标>]\n"); // Check if both a fabao and a target is specified. // if so, then check 1. whether the player own's the fabao, // and 2. check whether the target is in the same environment. if( sscanf(arg, "%s on %s", fabaoname, targetname)==2 ) { fabao=present(fabaoname, me); if(!fabao) return notify_fail("你没有 "+fabaoname+" 这样法宝。\n"); target = present(targetname, environment(me)); if (me->is_busy() && !fabao->query("no_busy")) return notify_fail("你上一个动作还没有完成,无暇分身祭法宝。\n"); if(!target) return notify_fail("这里没有 " + targetname + "。\n"); if(target==me) return notify_fail("对自己祭法宝?\n"); // forbid to kill a player whose mudage <16 .here is added by vikee :P if(me->query("combat_exp")<50000 && userp(target)) return notify_fail("自己功夫没练好,就想杀人?\n"); //here is modified by vikee if(me->query("daoxing")<10000 && userp(target)) return notify_fail("自己功夫没练好,就想杀人?\n");//here is modified by vikee return fabao->ji(targetname); } fabao=present(arg, me); if(!fabao) return notify_fail("你没有" + arg +"这样法宝。\n"); if (me->is_busy() && !fabao->query("no_busy")) return notify_fail("你上一个动作还没有完成,无暇分身祭法宝。\n"); return fabao->ji(); }
int perform(object me, object target) { object weapon; string msg; int ap, dp; int damage; if (userp(me) && ! me->query("can_perform/baisheng-daofa/heng")) return notify_fail("你还没有受过高人指点,无法施展" HENG "。\n"); if (! target) { me->clean_up_enemy(); target = me->select_opponent(); } if (! target || ! me->is_fighting(target)) return notify_fail(HENG "只能对战斗中的对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || (string)weapon->query("skill_type") != "blade") return notify_fail("你所使用的武器不对,难以施展" HENG "。\n"); if ((int)me->query_skill("baisheng-daofa", 1) < 150) return notify_fail("你百胜刀法还不到家,难以施展" HENG "。\n"); if (me->query_skill_mapped("blade") != "baisheng-daofa") return notify_fail("你没有激发百胜刀法,难以施展" HENG "。\n"); if ((int)me->query_skill("force") < 200) return notify_fail("你的内功火候不够,难以施展" HENG "。\n"); if ((int)me->query("neili") < 500) return notify_fail("你现在的真气不够,难以施展" HENG "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); ap = ap_power(me, "blade") + me->query_str() * 5; if (me->query("character") == "光明磊落" || me->query("character")=="国土无双") { msg = HIR "$N" HIR "嗔目大喝,杀气凛然而起,手持" + weapon->name() + HIR "义无反顾的猛然横扫$n" HIR ",全然不顾生死,浩气怅然!\n" NOR; ap += ap * 1 / 4; } else msg = HIR "$N" HIR "狂提内劲,将全身力道灌注于" + weapon->name() + HIR "之上疾斩劈出,“唰”的一声扫向$n" HIR "而去!\n" NOR; dp = dp_power(target, "force") + target->query_str() * 5; damage = 0; if (ap / 2 + random(ap) > dp) { damage = da_power(me, "blade"); me->add("neili", -350); msg += COMBAT_D->do_damage(me, target, WEAPON_ATTACK, damage, 50, (: final, me, target, ap, dp :)); me->start_busy(2); } else
int perform(object me, object target) { object weapon; string msg, skill; int i; if (userp(me) && ! me->query("can_perform/duanjia-jian/lian")) return notify_fail("你还没有受过高人指点,无法施展" LIAN "。\n"); if (! target) { me->clean_up_enemy(); target = me->select_opponent(); } if (! target || ! me->is_fighting(target)) return notify_fail(LIAN "只能对战斗中的对手使用。\n"); if (! objectp(weapon = me->query_temp("weapon")) || ((string)weapon->query("skill_type") != "staff" && (string)weapon->query("skill_type") != "sword")) return notify_fail("你使用的武器不对,难以施展" LIAN "。\n"); if ((int)me->query_skill("duanjia-jian", 1) < 120) return notify_fail("你的段家剑法不够娴熟,难以施展" LIAN "。\n"); skill = weapon->query("skill_type"); if (me->query_skill_mapped(skill) != "duanjia-jian") return notify_fail("你现在没有激发段家剑,难以施展" LIAN "。\n"); if ((int)me->query_skill("force") < 150) return notify_fail("你的内功修为不够,难以施展" LIAN "。\n"); if ((int)me->query("neili") < 300) return notify_fail("你现在的真气不够,难以施展" LIAN "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIY "$N" HIY "深吸一口气,脚下步步进击,稳重之极,手中的" + weapon->name() + HIY "使得犹如飞龙一般,缠绕向$n" HIY "!\n" NOR; message_combatd(msg, me, target); me->add("neili", -100); for (i = 0; i < 5; i++) { if (! me->is_fighting(target)) break; if (random(5) == 0 && ! target->is_busy()) target->start_busy(1); COMBAT_D->do_attack(me, target, weapon, 0); } me->start_busy(1 + random(5)); return 1; }
int main(object me, string arg) { int sen_cost=30, mana_gain; seteuid(getuid()); if (userp(me)) return notify_fail("��ָ���ѱ�exerciseȡ������help exercise \n"); if(environment(me)->query("no_fight")) return notify_fail("�㲻����������ڤ˼��\n"); if( me->is_fighting() ) return notify_fail("ս����ڤ˼����������\n"); if( me->is_busy() ) return notify_fail("����һ��������û����ɣ�����ڤ˼��\n"); if( arg && !sscanf(arg, "%d", sen_cost) ) return notify_fail("��Ҫ�����پ���ڤ˼��\n"); if( sen_cost < 10 ) return notify_fail("������Ҫ�� 10 �㡸����ڤ˼��\n"); if( (int)me->query("sen") < sen_cost ) return notify_fail("�����ھ���̫���ˣ�����ڤ˼������ʧ����Զ�Ѳ�������\n"); if( (int)me->query("kee") * 100 / (int)me->query("max_kee") < 70 ) return notify_fail("����������״��̫���ˣ������о�����Ѫֵ������70%���ϣ�\n"); if( (int)me->query("gin") * 100 / (int)me->query("max_gin") < 70 ) return notify_fail("����������״��̫�����ˣ�������ڤ˼��״̬��������ֵ������70%���ϣ�\n"); write("����ϥ����������ڤ˼��һ�����\n"); me->add("sen", -sen_cost); me->start_busy(1); // This function ranged from 1 to 15 when sen_cost = 30 mana_gain = sen_cost * ((int)me->query_skill("spells")/10 + (int)me->query_spi() ) / 30; mana_gain = (mana_gain + random(mana_gain))/5; if( mana_gain < 1 ) { write("���ǵ��������۾���ֻ��������һƬ�հס�\n"); return 1; } me->add("mana", mana_gain ); if( (int)me->query("mana") > (int)me->query("max_mana") * 2) { if( (int)me->query("max_mana") >= ((int)me->query_skill("spells", 1) + me->query_skill("spells")/5) * 5 ) { write("���Ȼ��������һƬ���ң��ƺ������������Ѿ�����ƿ����\n"); me->set("mana", 2*me->query("max_mana")); } else { write("��ķ�������ˣ�\n"); me->add("max_mana", 1); me->set("mana", me->query("max_mana")); } } return 1; }
int perform(object me, object target) { int damage; string msg; int ap, dp; if (! target) target = offensive_target(me); if (userp(me) && ! me->query("can_perform/canhe-zhi/jin")) return notify_fail("你还没有受过高人指点,无法施展" JIN "。\n"); if (! target || ! me->is_fighting(target)) return notify_fail(JIN "只能对战斗中的对手使用。\n"); if (objectp(me->query_temp("weapon"))) return notify_fail("你必须空手才能使用" JIN "。\n"); if ((int)me->query_skill("canhe-zhi", 1) < 160) return notify_fail("你的参合指修为有限,难以施展" JIN "。\n"); if (me->query_skill_prepared("finger") != "canhe-zhi") return notify_fail("你现在没有准备使用参合指,难以施展" JIN "。\n"); if ((int)me->query("max_neili") < 2500) return notify_fail("你的内力修为不足,难以施展" JIN "。\n"); if ((int)me->query("neili") < 500) return notify_fail("你的真气不够,难以施展" JIN "。\n"); if (! living(target)) return notify_fail("对方都已经这样了,用不着这么费力吧?\n"); msg = HIY "$N" HIY "双手合十,微微一笑,颇得拈花之意。食指并中指" "轻轻一弹,顿时一屡罡气电射而出,朝$n" HIY "袭去。\n" NOR; ap = me->query_skill("canhe-zhi", 1) + me->query("level") * 20 + me->query_skill("force") + me->query_skill("martial-cognize", 1); dp = target->query_skill("buddhism", 1) + target->query("level") * 20 + target->query_skill("force") + target->query_skill("martial-cognize", 1); me->start_busy(3); if ((int)target->query_skill("buddhism", 1) >= 200 && random(5) == 1) { me->add("neili", -400); me->start_busy(4); msg += HIY "但见$n" HIY "也即脸露笑容,衣袖轻轻一拂,顺势" "裹上,顿将$N" HIY "的指力消逝殆尽。\n" NOR; } else if (ap * 2 / 3 + random(ap) > dp) { damage = da_power(me, "finger"); me->add("neili", -400); msg += COMBAT_D->do_damage(me, target, UNARMED_ATTACK, damage, 75, (: final, me, target, damage :)); } else
int curse(object me, object target) { int skill, i, mod, duration; int time; object* inv; if( me->query("class") != "wolfmount" ) { return notify_fail("只有狼山弟子才能使用『摄心咒』\n"); } skill = me->query_skill("wolf-curse", 1); if( (skill < 200 || me->query_skill("cursism", 1) < 200) && userp(me) || me->query_skill("summonwolf", 1) < 260 ) { return notify_fail("『摄心咒』需要200级天狼血咒和降头术,260级唤狼术!\n"); } // duration = 5mins. duration = me->query("timer/pfm/wm_mindcurse") + 300 - time(); if( duration > 0 ) { return notify_fail("『摄心咒』极耗元神,需要"+duration+"秒钟后才能再次运用。\n"); } if( !target ) { target = offensive_target(me); } if( !target || !target->is_character() || !me->is_fighting(target) ) { return notify_fail("『摄心咒』只能对战斗中的对手使用。\n"); } if( target->query_temp("mesmerize") || target->is_busy() ) { return notify_fail("对方已经在失魂落魄或忙乱中了,快抓紧时间进攻吧。\n"); } mod = COMBAT_D->can_busy(me, target, "wolf-curse"); if( !mod ) { return notify_fail(HIW"此人功力深湛,不会被此咒法摄魂的。\n"NOR); } if( userp(target) ) { time = 10; } else { time = 10 + F_ABILITY->check_ability(me, "3_shexin_add", 3) * 2; } // Mesmerize timer, 无论成败都出现 me->set("timer/pfm/wm_mindcurse", time()); target->set_temp("busy_timer/wolf-curse", time()); message_vision(HIB"\n$N突然发出沁人毛髓的啸叫,如同发狂的猛兽般欺身扑向$n!\n\n" NOR, me, target); // Quite high rate of success if( COMBAT_D->do_busy_attack(me, target, "wolf-curse/mindcurse", "step", 300, mod) ) { message("vision",HIR""+me->name()+HIR"的眼睛突然现出一片腥红之色,"+target->name()+HIR"的眼神与之一碰,当即呆立当场!\n"NOR, environment(me), ({target,me}));
int valid_leave(object me, string dir) { if (dir == "southup" && userp(me)) { me->receive_damage("jing", 30); me->receive_damage("qi", 30); } return 1; }
int main(object me, string arg) { string target, item; object obj, who, *inv, obj2; int i, amount; if(!arg) { return notify_fail("你要给谁什麽东西?\n"); } if(sscanf(arg, "%s to %s", item, target)==2 || sscanf(arg, "%s %s", target, item)==2 ); else { return notify_fail("你要给谁什麽东西?\n"); } if(!objectp(who = present(target, environment(me)))) { return notify_fail("这里没有这个人。\n"); } if(who->query_temp("is_unconcious")) return notify_fail("此人现在无法接受你的物件。\n"); if(!living(who)) { return notify_fail("这里没有这个人。\n"); } if(me == who) { return notify_fail("你左手要给右手东西吗?\n"); } if(sscanf(item, "%d %s", amount, item)==2) { if( !objectp(obj = present(item, me)) ) return notify_fail("你身上没有这样东西。\n"); if( obj->query("no_drop") && userp(who)) return notify_fail("这样东西不能随便给人。\n"); if( !obj->query_amount() ) return notify_fail( obj->name() + "不能被分开给人。\n"); if( amount < 1 ) return notify_fail("东西的数量至少是一个。\n"); if( amount > obj->query_amount() ) return notify_fail("你没有那麽多的" + obj->name() + "。\n"); else if( amount == (int)obj->query_amount() ) return do_give(me, obj, who); else { obj->set_amount( (int)obj->query_amount() - amount ); obj2 = new(base_name(obj)); obj2->set_amount(amount); if(!do_give(me, obj2, who)) { obj->set_amount( (int)obj->query_amount() + amount ); return 0; } return 1; } } else if(item=="all") { inv = all_inventory(me); for(i=0; i<sizeof(inv); i++) { do_give(me, inv[i], who); } return 1; } else { if(!objectp(obj = present(item, me))) return notify_fail("你身上没有这样东西。\n"); return do_give(me, obj, who); } }