hanshasheying.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 116 行

C
116
字号
// hanshasheying.c 含沙射影// gemini 改duji为poison 2000.4.3#include <ansi.h>#include <armor.h>inherit WAIST;void create(){        set_name("含沙射影", ({ "han sha she ying", "hssy" }) );        set_weight(500);        if( clonep() )                set_default_object(__FILE__);        else {                set("long", "这是五毒教的奇门暗器「含沙射影」,样子象一条腰带,可以束在腰间。\n带中间有一个扁扁的小铁盒,只要在腰间一按(shot)就可以发射出细如牛毛的毒针。\n") ;                set("unit", "个");                set("value", 0);set("treasure",1);                set("zhen", 10);                set("material", "iron");                set("armor_prop/armor", 3);        }        setup();}void init(){        add_action("do_shot","shot");}int do_shot(string arg){        object me,ob,target;        int myskill , tgskill;        int mylev ,damage;        me = this_player();        if( me->query_temp("armor/waist") != this_object() )                return notify_fail("你对着你的腰间一摸,糟糕!你还没把含沙射影装上呢!\n");        if( !arg ) return notify_fail("你想对谁发射含沙射影?\n");        if( !objectp(target = present(arg, environment(me))) )                return notify_fail("这里没有这个人。\n");        if( target->query("id")==me->query("id"))                return notify_fail("你想杀自己吗?\n");      if( !target || !target->is_character() || !me->is_fighting(target) )              return notify_fail("含沙射影只能对战斗中的对手使用。\n");        if( !target->is_character() || target->is_corpse() )                return notify_fail("看清楚一点,那并不是活物。\n");        if(me->is_busy() )                return notify_fail("你正忙着哪。\n");        if( this_object()->query("zhen") < 1 ) {                remove_call_out("destroy_box");                call_out ("destroy_box" , 0 ) ;                return notify_fail("铁盒中的毒针已经射光了。\n");                }        if( !objectp(ob = present("han sha she ying", me)) )                return notify_fail("你没有这种东西。\n");        myskill =  me->query_skill("poison",1) + me->query_skill("dodge",1);        tgskill =  target->query_skill("dodge",1);        mylev =  me->query_skill("poison");        if( (string)this_player()->query("family/family_name")!="五毒教" ) {                message_vision("\n$N左手在腰间一阵乱按!\n", me);                return 1;                }        if( ob->query("own_name")!= me->query("id") ) {                message_vision("\n$N左手在腰间一阵乱按!\n", me);                remove_call_out("destroy_box");                call_out ("destroy_box" , 0 ) ;                return 1;                }        if ( mylev <= 50 )                return notify_fail("你的毒技还不熟练,无法使用含沙射影!\n");        this_object()->add("zhen", -1);        message_vision(HIR"\n$N一声轻笑,左手不经意的在腰间一按。只听得一阵嗤嗤的破空声。\n"NOR,me,target);        me->start_busy(2+random(2)) ;        if( !target->is_killing(me) ) target->kill_ob(me);        if(  random(myskill) < tgskill )                message_vision("\n$n大叫一声,猛的一个旱地拔葱身行冲起数丈来高,堪堪躲过了$N的毒针!\n",me,target);        else {                message_vision("\n$n躲闪不及,被无数细如牛毛的毒针打了一身,不由的发出一声惨嚎!\n",me,target);                tell_object (target, HIR "\n你只觉得脸上、胸前一痛,而后是奇痒难熬,一定是中毒了。\n"NOR);                damage=(int)me->query_skill("poison",1)*4 - (target->query("max_neili")/5);                if( damage < 100 ) damage = 100;                if( damage > 800 ) damage = 800;                target->receive_wound ("qi",damage) ;                 target->apply_condition("snake_poison", (int)target->query_condition("snake_poison") + damage/5 );                target->apply_condition("wugong_poison", (int)target->query_condition("wugong_poison") + damage/5 );                target->apply_condition("zhizhu_poison", (int)target->query_condition("zhizhu_poison") + damage/5 );                target->apply_condition("xiezi_poison", (int)target->query_condition("xiezi_poison") + damage/5 );                target->apply_condition("chanchu_poison", (int)target->query_condition("chanchu_poison")+damage/5 );                target->start_busy (4);                }        return 1;}void destroy_box(){        message_vision("忽然" + (string)this_object()->query("name") + "掉在地上,摔成了一堆铁片。\n", environment(this_object()));        destruct(this_object());}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?