int sinking(object ob) { int i; int damage; if( ob && environment(ob) == this_object()) { message_vision(HIW"$N又在流沙中陷深了一些!!", ob); message_vision("$N几乎在绝望中哭了出来!!\n"NOR, ob); damage = random(5)+1; i = (int)ob->query("kee"); ob->set("kee",(int) i - damage); if( environment(ob) == this_object()) call_out("sinking",random(5)+5, ob); } else return 1; }
void init() { object me,ob; int os; me = this_player(); if( me->query("quests/can_go_magic-manor") == 1 ) { if( present("magic sign",me) ) { ob = present("magic sign",me); os = ob->query("magic-manor"); if( os == 6 ) { call_out("msg1",3,me); } } } }
int cmd_darkshift(string str) { object ob; int stealth, faith, intelligence, dex, stlth; if (!abil()) { notify_fail("What?\n"); return 0; } if(this_player()->query_ghost()) return 0; if(this_player()->query_invis()) { notify_fail("You are already walking in darkness.\n"); return 0; } stlth = (int)this_player()->query_skill("stealth"); dex = (int)this_player()->query_stats("dexterity"); faith = (int)this_player()->query_skill("faith"); intelligence = (int)this_player()->query_stats("intelligence"); stealth = ((stlth/3)+(dex)+(intelligence)+(faith/3)); if(stealth < 15) { notify_fail("The demons laugh at you.\n"); return 0; } if((int)this_player()->query_sp() < 50) { notify_fail("You are too tired.\n"); return 0; } if((int)this_player()->query_mp() < 75) { notify_fail("You lack the magical energy needed.\n"); return 0; } this_player()->set_invis(); call_out("take_off", ((stlth/2)+dex+random(faith/2)), this_player()); this_player()->add_mp(-((faith/3)+random(faith/3))); write("%^BLUE%^You shift into %^BOLD%^%^BLACK%^darkness%^RESET%^%^BLUE%^ and become completely undetectable!%^RESET%^\n"); return 1; }
void greeting(object me) { object basket,food; if(!me->query("food_carrier")) return ; if(me->query("food_carrier")+60>time()) { message_vision(CYN"�����������һ�ۣ�˵��������ʹ������Ҫ�ٵ�һ�� \n"NOR,me); remove_call_out("make_food"); call_out("make_food",60+me->query("food_carrier")-time(),me); return ; } message_vision(CYN "��ϵ����ȥ��߶Ȱ����IJ˶���ɹ���� \n"NOR,me); basket=present("bamboo basket",this_object()); if(!basket) { basket=new(__DIR__"obj/zhulan"); basket->move(this_object()); }
int heal_up() { object master; if( objectp(master = query("possessed")) && (int)master->query("mana") > 100 && (int)master->query("kee") > 100) { message("tell", HIR + name() + "告诉你:我...需...要...你...的...力...量...\n" NOR, master ); master->add("mana", -50); master->receive_damage("sen", 50); ::heal_up(); return 1; // Always acquire power from master. } else { call_out("die", 1); return ::heal_up(); } }
void Poison() { if (((Player = environment(this_object())) && this_player() != Player) || !Player || Player->query_ghost()) { while(remove_call_out("Poison") != -1); remove(); return; } if (!Effect) { while (remove_call_out("poison") != -1); return; } if (!Player->query_linkdead()) { if (random(100) < POISON_MESSAGE_CHANCE) { tell_object(Player, "You feel the effects of a poison strike " "your body.\n"); tell_room(environment(Player), sprintf("%s convulses with pain.\n", Player->query_name()), Player); } // I'd certainly like to set a player's death message here. #ifdef DEBUG tell_object(Player, "*** You've just been hit by poison.\n"); tell_object(Player, sprintf("*** Dur: %d, Dam: %d, Int: %d, Num: %d.\n", Duration, Damage, Interval, Number)); #endif Player->receive_damage((Damage / 2) + random(Damage / 2) + 1); if (!Player || Player->query_ghost()) { if (this_object()) remove(); return; } Duration -= 1; } if (Duration > 0) call_out("Poison", Interval); else { tell_object(Player, "You overcome the effects of a poison.\n"); remove(); } }
int exert(object me, object target) { skill=this_player()->query("functions/gen/level"); if(userp(me)) return notify_fail("����� mixforce��\n"); if(me->query("class")!="prayer") return notify_fail("���ְҵ��ʹ�ô˼��ܡ�\n"); if( (string)me->query_skill_mapped("force")!= "superforce") return notify_fail("�����ر���ʹ�û����ķ����ܷ���������\n"); if( target != me ) return notify_fail("��ֻ���û����ķ���������������\n"); if (me->query_skill("superforce",1) < 40) return notify_fail("��Ļ����ķ��ȼ����㣬��Ҫ 40 ����\n"); if (me->query("force") < skill*5) return notify_fail("������������������������صĻ����ھ���\n"); if( (int)me->query("max_force") < 400 ) return notify_fail("���������������,����ȫ���ӳ��������ۻ���ھ���\n"); if(me->query_temp("gen")) return notify_fail("���Ѿ������ˡ�\n"); if(me->query_temp("purple")) return notify_fail("���Ѿ�������[32m���Ǻ��ķ�[0m�ˡ�\n"); if(me->query_temp("white")) return notify_fail("���Ѿ�������[37m�������ķ�[0m�ˡ�\n"); if(me->query_temp("nine")) return notify_fail("���Ѿ���ʹ��[35mõ��ϼ�ķ�[0m�ˡ�\n"); if(me->query_temp("ice")) return notify_fail("���Ѿ�����ת[37m��ѩ���ķ�[0m�ˡ�\n"); if(me->query_temp("black")) return notify_fail("���Ѿ�������[30m������[0m�ˡ�\n"); if(me->query_temp("bluesea")) return notify_fail("���Ѿ��ڴ���[34m���[0m�ھ��ˡ�\n"); if(me->query_temp("goldsun")) return notify_fail("���Ѿ���ǿ��[33m����[0m�ھ��ˡ�\n"); if(me->query_temp("blood")) return notify_fail("���Ѿ��ڴ߹�[31mѪ��[0m�ھ��ˡ�\n"); if(me->query_temp("green")) return notify_fail("���Ѿ�������[32m������[0m�ھ��ˡ�\n"); me->set_temp("gen",1); message_vision( HIC "$N��������ķ��������"YEL"������"HIC"�����Ϸ������ذ������,�γ�����������!!\n" NOR,me); me->add_temp("apply/force", 4); me->add_temp("apply/move", 4); me->add_temp("apply/stick", 4); me->add_temp("apply/parry", 4); me->add_temp("apply/dodge", 4); me->add_temp("apply/unarmed", 4); call_out("remove_effect", skill, me); if( me->is_fighting() ) me->start_busy(1); return 1; }
int cast(object me) { int howlong; if((int)me->query_skill("spells") < 100) return notify_fail("你还没学会隐身法。。。\n"); if( (int)me->query("mana") < 2*(int)me->query_skill("spells")) return notify_fail("你的法力不够了!\n"); if( (int)me->query("sen") < 50 ) return notify_fail("你的精神无法集中!\n"); if( (int)me->query("env/invisibility") ) return notify_fail("你已经在隐身中了。\n"); if (me->query_temp("yinshen_busy")) return notify_fail("你刚隐身过,先休息一会儿吧。\n"); message_vision("$N喃喃地念了几句咒语。\n", me); if( random(me->query("max_mana")) < 200 ) { me->add("mana",-(int)me->query_skill("spells",1)); me->receive_damage("sen",10); message("vision", "但是什么也没有发生。\n", environment(me)); return 5+random(5); } me->add("mana", -2*(int)me->query_skill("spells",1)); me->receive_damage("sen", 20); howlong = 15 + random((me->query_skill("spells") -100)); if (!me->query("env/invisibility")) call_out("free", howlong, me, howlong); me->set_temp("yinshentime", howlong+(int)me->query_temp("yinshentime")); me->set("env/invisibility", 1); me->set_temp("no_heal_up/yinshen",1); me->set_temp("yinshen_busy",1); message_vision(HIW"\n只见一道白光闪过,$N踪迹皆无。\n\n"NOR, me); return 5+random(5); }
void extra_create() { object ob; set_name( "Chester" ); add_alias( "chester" ); add_alias( "uncle chester" ); add_alias( "uncle" ); add_alias( "master of arms" ); add_alias( "hill wizard master of arms" ); set_short( "Uncle Chester, Hill Wizard Master of Arms" ); set_long( "Remember that jovial old man who helps teach young boys " "how to properly use and care for their weapons on every " "TV show ever? Well, that's Uncle Chester. He's a kind " "middle aged man with time to spare. He also happens to " "know a whole lot about weaponry! And by that, I mean " "even moreso than your average hillbilly." ); set_race( "human" ); set_gender( "male" ); set_alignment( 500 ); set_stat( "str", 800 ); set_stat( "int", 250 ); set_stat( "wil", 1000 ); set_stat( "con", 1000 ); set_stat( "dex", 400 ); set_stat( "chr", 250 ); set_skill( "dodge", 100 ); set_proficiency( "hands", 50 ); set_max_fatigue( 25000 ); set_natural_ac ( 10 ); set_percent_bonus_exp( -25 ); ob = clone_object( "/zone/present/hillbilly/obj/armor/overalls.c" ); move_object( ob, THISO ); call_out( "gear_up", 1 ); }
int do_clean(string arg) { int i; object ob=this_object(); object me=this_player(); object obj; if(!arg || arg != "jingji") return notify_fail("��Ҫ��ʲô��\n"); if(query("clean")) return notify_fail("��Χ�Ѿ�û�о����ˡ�\n"); if((int)me->query("kee") <50) return notify_fail("��̫���ˣ�ЪЪ�ɣ�\n"); if(!(obj = me->query_temp("weapon")) ){ message_vision("$N������ȥ���Ǿ�����ȴ����������Ѫ��\n", me); return 1; } else { message_vision("$N��������$n��С�ĵ�ȥ�����ǶѶѾ�����\n", me, obj); me->receive_damage("kee", 50); i=(int)me->query_str(); ob->set("coe",(int)ob->query("coe") + i ); if( i < 30 ){ tell_room(environment(me), "���ֻ������֦С�̡�\n"); } else if (i < 50 ) { tell_room(environment(me), "�������һƬ������\n"); } else if (i < 100 ) { tell_room(environment(me), "ֻ���������ƵIJ�ס���ˡ�\n"); } else tell_room(environment(me), "ֻ�������糱ˮ���˺�\n"); } if( (int)ob->query("coe") > 1000 ) { tell_room(environment(me), "�������Ƶ����ԣ�����һ����·��\n\n"); me->set_temp("obstacle/jingji/clean_8", 1); call_out("done", 1); } return 1; }
int do_clean(string arg) { int i; object ob=this_object(); object me=this_player(); object obj; if(!arg || arg != "jingji") return notify_fail("你要干什么?\n"); if(query("clean")) return notify_fail("周围已经没有荆棘了。\n"); if((int)me->query("kee") <50) return notify_fail("你太累了,歇歇吧!\n"); if(!(obj = me->query_temp("weapon")) ){ message_vision("$N想用手去扯那荆棘,却扎了满手鲜血!\n", me); return 1; } else { message_vision("$N挥舞手中$n,小心的去拨开那堆堆荆棘。\n", me, obj); me->receive_damage("kee", 50); i=(int)me->query_str(); ob->set("coe",(int)ob->query("coe") + i ); if( i < 30 ){ tell_room(environment(me), "结果只拨开几枝小刺。\n"); } else if (i < 50 ) { tell_room(environment(me), "结果拨倒一片荆棘。\n"); } else if (i < 100 ) { tell_room(environment(me), "只见荆棘被推的不住后退。\n"); } else tell_room(environment(me), "只见荆棘如潮水般退后。\n"); } if( (int)ob->query("coe") > 1000 ) { tell_room(environment(me), "荆棘被推到两旁,闪出一条道路。\n\n"); me->set_temp("obstacle/jingji/clean_3", 1); call_out("done", 1); } return 1; }
void create() { set ("short", "石窟"); set ("long", @LONG 莫高窟始建於符秦元二年,后历代均有扩建,有大约四百个石窟。 这里是莫高窟第一层的入口。 LONG); set("exits", ([ "eastdown" : __DIR__"drukou", "enter" : __DIR__"dtongdao", ])); set("cost", 2); set("objects", ([ "/d/xingxiu/npc/yinli" : 1 ])); set("no_clean_up", 1); setup(); call_out("reset_flags", 60); }
int do_open(string arg) { object obj; object me; if(!arg || arg=="") { write("你要打开什么?\n"); return 1; } if( arg == "屏风" || arg == "ping feng" || arg == "pingfeng") { me = this_player(); message_vision("$N信手按在屏风上,屏风微微一动,过得片刻,屏风 竟然向左移开来,露出一道暗门。 \n", me); if( !query("exits/south") ) { set("exits/south", __DIR__"secret"); call_out("close_path", 6); } return 1; }
void reset() { int dayTime; mixed *local; object xiaohe; :: reset(); if (xiaohe=present("xiao he",this_object())) if (!xiaohe->is_fighting()) { destruct(xiaohe); set("xiaohe",1); return; } local = NATURE_D->get_current_time(); dayTime = local[5]; if(dayTime > 0 && dayTime < 360) { call_out("do_reveal",2); } return; }
int do_search(string arg) { object me; int llvl; me = this_player(); llvl = (int)me->query_kar(); message_vision("$N伸手在火热的石壁上摸索着。\n",me); if (random(100) < llvl) { tell_object(me, "你的手在石壁上摸到了一个突出物,你顺手往上一按。 \n"); message_vision("只听一阵绞索的声音,你头上裂开了一个洞口。 \n", me); if( !query("exits/up") ) { set("exits/up", __DIR__"rongdong1"); call_out("close_path", 1); } } else tell_object(me, "你什么都没找到。\n"); return 1; }
void apply_effect(object target, int duration,int amount) { int gin,kee,sen; message_vision(HIW"一片浅色霞云在$N头顶收聚,一点点纳进$N天门...\n"NOR,target); gin = (int)target->query("max_gin"); target->set("max_gin",gin+amount); target->set("eff_gin",target->query("eff_gin")+amount); kee = (int)target->query("max_kee"); target->set("max_kee",kee+amount); target->set("eff_kee",target->query("eff_kee")+amount); sen = (int)target->query("max_sen"); target->set("max_sen",sen+amount); target->set("eff_sen",target->query("eff_sen")+amount); call_out("warning",duration-180, target,amount); return; }
void end_pfm(object me, int enhance,int damage,object weapon) { if (me->query_temp("wzg-powerup") && me->query_temp("weapon")==weapon) { call_out("end_pfm",2,me,enhance,damage,weapon); return; } if (me->query_temp("wzg_pfm_cleared")) return; if (weapon) { weapon->set("use_apply_skill",weapon->query_temp("original/use_apply_skill")); weapon->set("apply/skill_type",weapon->query_temp("original/skill_type")); weapon->set("skill_type",weapon->query_temp("original/skill_type2")); } me->add_temp("apply/attack",-enhance); me->add_temp("apply/damage",-damage); me->delete_temp("wzg-powerup"); me->set_temp("wzg_pfm_cleared",1); // make sure only remove effect once. me->reset_action(); }
void init() { object me = this_player(); add_action("do_search","search"); remove_call_out("warning"); remove_call_out("capture"); if (me->query_per() > 26 && me->query("age") >13 // && !NATURE_D->is_day_time() && me->query("age") <26 && !me->query_temp("afei_on_the_way") && me->query("combat_exp")>300000 && me->query("gender") == "��" ) { call_out("warning", 10, me); } }
void greeting(object ob) { object me, room1; me = this_object(); room1 = environment(me); // if(ob->query_temp("hastrystab")==6) return; if (room1->query("no_fight")) room1->set("no_fight", 0); if (interactive(ob)) // && !environment(ob)->query("no_fight")) { command("say 你这家伙不要跑,让大爷我宰了你!!!\n"); me->set_leader(ob); remove_call_out("kill_ob"); call_out("kill_ob", 1, ob); } }
int do_crawl(string arg){ object me; if(!arg) { write("你要爬向哪里?\n"); return 1; } if( arg == "down" || arg == "山洞"|| arg == "out"|| arg== "cave" ){ me = this_player(); message_vision("$N抓着山壁上的杂草,慢慢的爬下去。\n", me); me->start_busy(2); call_out("fliping",2,me); me->stop_busy(); return 1; } else { me = this_player(); tell_object(me, "你不可以爬"+arg+"。\n"); return 1; } }
void event1(object me, int count) { object ob,girl; ob=this_object(); if (environment(me)!=environment(this_object()) || this_object()->is_fighting()) return; girl=present("bilian",environment(ob)); if (!girl || girl->is_fighting()) return; message_vision(event1_msg[count]+"\n",me); if(++count==sizeof(event1_msg)) { message_vision(CYN" 碧莲满脸通红,低著头一声不吭。\n\n"NOR,me); ob->delete_temp("talking"); return; } else call_out("event1",2,me,count); return ; }
void check(object me) { object weapon; if(!me) return; if(!me->query_skill_mapped("force")) remove_effect(me); if(me->query_skill_mapped("sword") != "sanqing-jian" || me->query_skill_mapped("force") != "zhenyuan-force" || me->query_skill_mapped("spells") != "taiyi" || !objectp(weapon=me->query_temp("weapon")) || (weapon->query("apply/skill_type") != "sword" && weapon->query("skill_type") != "sword" )) remove_effect(me); else if(me->query_temp("jianmang_time")<1) remove_effect(me); else { me->add_temp("jianmang_time",-1); call_out("check", 1, me); } }
void preparing (object who) { object where = this_object (); object king = present("guo wang",this_object()); if (king) return; if (! who || environment (who) != where) return; if (where->query("has_thrown")) { return; } message_vision ("彩楼上有人又高喊:公主临窗,伺女备球!\n",who); message_vision ("底下无数看客高声呐喊:抢绣球也!抢绣球也!\n",who); remove_call_out ("throwing"); call_out ("throwing",random(10)+10,who); }
void init() { delete("exits/out"); if(this_player()->query_temp("shendian/tumigong_kill") >= 2) { message_vision(HIC"\n刹那间你眼前的石头中间裂开了。\n\n"NOR,this_player()); set("exits/out", __DIR__"linwai"); } if (!((this_player()->query_temp("shendian/tumigong") == "begin") || (this_player()->query("id") == "shen jiang"))) { message_vision(HIW"\n岂有此理,$N是怎么进来的?出去!\n\n"NOR,this_player()); this_player()->move("/d/city/kezhan"); } if (this_player()->query_temp("shendian/tumigong") == "begin") { remove_call_out ("check_hp"); call_out ("check_hp", 3,this_player()); } add_action ("do_cast","cast"); }
int accept_object(object who, object ob) { who=this_player(); if( who->query("obstacle/jz") == "done" ) return 1; if( ! who->query_temp("obstacle/jz_yin_asked") ) return 1; if ( ob->query("id") == "xue shu" || ob->query("id") == "han shan" ) { command("ah"); command("nocry"); command("say 你是从哪拿来的?我儿现在怎么样了。\n"); tell_room(environment(this_object()),HIR"忽然刘洪,李彪闯了进来。\n"NOR); who->set_temp("obstacle/jz_given",1); call_out("liuhong_appear",1,who); return 1; } }
int do_sleep(string arg) { object me, obj, girl; int gin, kee, sen; me = this_player(); obj = this_object(); if (me->is_fighting()) return 1; if (this_object()->query_temp("marks/taken")) { tell_object(me, "床上有人耶。。。。\n"); return 1; } if (me->query("class")=="shenshui") { message_vision("$N揉揉眼、打个哈欠,躺到了床上,", me); tell_object(me, "很快你就觉的睡意朦胧。\n"); message("vision", me->name()+"翻了几个身,找到个舒适的姿势,很快就进入了梦乡。\n", environment(me), me); obj->set_temp("marks/taken", 1); gin = (int) me->query("eff_gin"); kee = (int) me->query("eff_kee"); sen = (int) me->query("eff_sen"); me->set("gin", gin); me->set("kee", kee); me->set("sen", sen); me->set_temp("disable_inputs",1); me->set_temp("block_msg/all",1); me->set_temp("is_unconcious",1); me->set("disable_type",HIG "<睡梦中>"NOR); call_out("wake", 10, me); return 1; } else { message_vision("$N揉揉眼、打个哈欠,躺到了床上。\n", me); girl = present("gong nu", obj); if (!objectp(girl)) { girl = new(__DIR__"npc/fightgirl2"); girl->move(obj); message_vision(girl->name()+"走了进来,喝到:"这里是给贵宾休息的地方,不是给你睡觉的。" \n", me); return 1; } message_vision(girl->name()+"喝到:"这里是给贵宾休息的地方,你算什么人?"\n", me); return 1; }
int do_setname(string arg) { object obj,me; me = this_player(); if (!me->query_temp("allow_set")) return notify_fail("这位"+RANK_D->query_respect(me)+"您请先付十两白银。\n"); if (!arg) return notify_fail("你要在什么兵器上刻名字?\n"); if( !objectp(obj = present(arg, me)) ) return notify_fail("你要在什么兵器上刻名字?\n"); if (!obj->query("weapon_prop/damage") || obj->query("weapon_prop/damage")<1) return notify_fail("这东西是兵器吗?\n"); // if (obj->query("value")>=1000000) // return notify_fail("这样兵器太贵重了,不能被刻字。\n"); if (query_temp("busy")) return notify_fail("哟,抱歉啊,我这儿正忙着呢……您请稍候。\n"); if (obj->query("owner")) return notify_fail(obj->query("name")+"上不是已经有字了吗?\n"); set_temp("busy",1); start_busy(2); obj->set("long",obj->query("long")+"\n"+obj->query("name")+"上刻有:"+me->query("name")+"之兵器。\n"); obj->set("short",obj->query("short")); obj->set("owner",me->query("id")); write("工匠抹了一把汗,说道:“刻好了,拿去吧。”\n"); me->delete_temp("allow_set"); remove_call_out("enough_rest"); call_out("enough_rest", 2); return 1; }
int exert(object me, object target) { string msg; int i, extra; if (me->query_temp("wuzhuan") || me->query_temp("powerup")) return notify_fail("你正在运用「奇门五转」心法!\n"); if( me->query_skill_mapped("force") != "bibo-shengong") return notify_fail("你所用的内功与「奇门五转」心法相悖!\n"); if( me->query_skill("bibo-shengong", 1) < 100 ) return notify_fail("你的内功修为火候未到,还未领悟「奇门五转」!\n"); if( me->query("neili") < 500 ) return notify_fail("你的内力不够,劲力不足以施展「奇门五转」!\n"); if( me->query_skill("qimen-wuxing", 1) < 120 ) return notify_fail("你的奇门五行修为不够,还未领悟「奇门五转」!\n"); msg = HIG "$N脸上青气大盛,脚下缓缓踩着九宫八卦方位,头顶冒出腾腾白气,"; msg += "四面隐隐传来潮涌之声,碧波神功已发挥到极致!\n"NOR; me->add("neili", -200); extra = (int)me->query_skill("qimen-wuxing",1); me->add_temp("apply/attack", extra / 2); me->add_temp("apply/defense", extra / 2); me->add_temp("apply/dodge", extra/30); me->set_temp("wuzhuan", 1); me->set_temp("powerup",1); me->set_temp("wuzhuan_hit", extra/60 + random(2)); call_out("remove_effect", extra/2, me, extra); message_vision(msg, me); return 1; }
void init() { object ob, me; mapping skill_status, map_status; string *sname, *mname; int i; me = this_object(); ob = this_player(); ::init(); // if (me->is_fighting() || !userp(ob) || wizardp(ob)) return; if (me->is_fighting() || wizardp(ob)) return; remove_call_out("pretending"); call_out("pretending", 1, ob); skill_status = ob->query_skills(); sname = sort_array( keys(skill_status), (: strcmp :) ); for(i=0; i<sizeof(skill_status); i++) { me->set_skill(sname[i], skill_status[sname[i]]); } command("enable unarmed none"); command("enable dodge none"); command("enable parry none"); if ( !(map_status = ob->query_skill_map()) ) return; mname = sort_array( keys(map_status), (: strcmp :) ); for(i=0; i<sizeof(map_status); i++) { command("enable " + mname[i] + " " + map_status[mname[i]]); } set("neili", 600); set("jiali", 30); }
int perform(object me, object target) { string msg; int extra, skill; object weapon; if(me->query("class")!="swordsman") return notify_fail("神剑只有剑神的弟子才有资格用!\n"); if(me->query_skill("softsword",1)<50) 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("muyu")) return notify_fail("你已经在使用[暮雨飞虹]了。\n"); weapon = me->query_temp("weapon"); extra = me->query_skill("sword"); skill = me->query_skill("softsword",1); target->delete_temp("last_damage_from"); me->add_temp("apply/attack", skill); me->add_temp("apply/damage", extra); msg = HIC "$N一剑挥出,如夕阳,又如烈日,如彩虹,又如乌云,如动又静,如虚又实, 如在左,又在右,如在前,又在後,如快又慢,如空又实。 \n"NOR; COMBAT_D->do_attack(me,target, TYPE_PERFORM,msg); me->add_temp("apply/attack", -skill); me->add_temp("apply/damage", -extra); if(target->query_temp("last_damage_from") && (!userp(me) || skill>170)) { me->set_temp("muyu",1); call_out("begin_perform",1,me,target,extra,skill); } else { if (me->query_busy()<2) me->start_busy(2); } return 1; }