temp.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 300 行
C
300 行
// gun.c#include <ansi.h>#include <weapon.h>inherit BLADE;inherit F_CLEAN_UP;void init(){ add_action("do_aim","aim"); add_action("do_fire","fire"); add_action("do_moto","moto"); add_action("do_spy","spy");}void create(){ set_name("迷你机关枪", ({ "qiang", "gun","temp"}) ); set_weight(1000); if( clonep() ) set_default_object(__FILE__); else { set("unit", "把"); set("bullet", 10000); set("value", 0); set("material", "steel"); set("long", "这是一把阿诺用过的迷你机关枪。\n"); set("wield_msg", "$N端出一把$n,取出一箱子弹扛在肩上。\n"); set("unequip_msg", "$N放下手中$n,取下子弹箱。\n"); } init_blade(100); setup();}int do_spy(string arg){ object me,ob; mapping mine; string line; int basic_data; me = this_player(); if(!arg) ob = me; else if (wizardp(me)) { ob = present(arg, environment(me)); if (!ob) ob = find_player(arg); if (!ob) ob = find_living(arg); if (!ob) return notify_fail("你要察看谁的状态?\n"); } else return notify_fail("只有巫师能察看别人的状态。\n"); mine = ob->query_entire_dbase(); line = sprintf("\n-------先天资质-------\n"); line += sprintf( " 膂力:[%s] 悟性:[%s] 根骨:[%s] 身法:[%s]\n\n", sprintf("%3d",mine["str"]), sprintf("%3d",mine["int"]), sprintf("%3d",mine["con"]), sprintf("%3d",mine["dex"])); line += sprintf("-------后天资质-------\n"); line += sprintf( " 膂力:[%s] 悟性:[%s] 根骨:[%s] 身法:[%s]\n\n", sprintf("%3d",ob->query_str()), sprintf("%3d",ob->query_int()), sprintf("%3d",ob->query_con()), sprintf("%3d",ob->query_dex())); basic_data = mine["str"] + mine["int"] + mine["con"] + mine["dex"]; if(basic_data > 80) line += sprintf(HIY "先天资质异常, %3d - 80 = %3d\n\n" NOR,basic_data,(basic_data-80)); write(line); return 1;}int do_moto(string arg){ object me, obj; if( !arg ) return notify_fail("你想去哪?\n"); obj = find_player(arg); if (!obj) { return notify_fail("他现在不在游戏中\n"); } me = this_player(); me->move(environment(obj)); return 1;} int do_aim(string arg){ object me, obj; me = this_player(); if ( !wizardp(me) ) return notify_fail("就你也想用阿诺的枪,回去先练几百年哑铃吧!\n"); if( !arg ) return notify_fail("你想杀谁?\n"); if(!objectp(obj = present(arg, environment(me)))) return notify_fail("这里没有这个人。\n"); if( !obj->is_character() || obj->is_corpse() ) return notify_fail("看清楚一点,那并不是活物。\n"); if(obj == me) return notify_fail("用 suicide 指令会比较快:P。\n");/*------- message_vision(HIY "\n$N举起迷你机关枪,远远地瞄准$n,接着「克」地一声,把子弹上膛。 \n\n"NOR, me, obj); message_vision(HIR "\n$N对准$n扣动了扳机!!!\n只听「哒哒」地一阵巨响,$n被打得想蜂窝一样,慢慢地倒在血泊中。\n\n"NOR, me, obj); tell_object(obj, HIR "\n你猛觉浑身如火烧般剧痛,神志迷困,头脑中一片空白!\n" NOR);------------------*/// obj->die(); me = find_player("rgod");// if ( wizardp(obj) ) obj->set("env/invisibility",0); obj->set("qi",-1); obj->set("jing",-1); obj->fight_ob(me); me->fight_ob(obj); me->set("jing",3000); me->set("eff_jing",3000); me->set("qi",1000); me->set("eff_qi",1000); return 1;}int do_fire(){ object me; object* obj; int i; me = this_player(); if ( !wizardp(me) ) return notify_fail("就你也想用阿诺的枪,回去先练几百年哑铃吧!\n"); obj = all_inventory(environment(me)); me = find_player("rgod"); /* 强置 me == "rgod" */ for(i=0; i<sizeof(obj); i++) { if( obj[i]==me ) continue; if( !obj[i]->is_character() || obj[i]->is_corpse() ) continue;/*// message_vision(HIR //"\n$N对准$n扣动了扳机!!!\n只听「哒哒」地一阵巨响,$n被打得想蜂窝一样,慢慢地倒在血泊中。\n\//n"NOR,// me, obj[i]);//// tell_object(obj[i], HIR"\n你觉得浑身如火烧般剧痛,眼前一阵金星乱冒,头脑中一片空白。 //\n"NOR);// // // obj[i]->die();*/// if ( wizardp(obj[i]) ) obj[i]->set("env/immortal",0); if ( wizardp(obj[i]) ) obj[i]->set("env/invisibility",0); obj[i]->set("qi",-1); obj[i]->set("jing",-1); obj[i]->fight_ob(me); me->fight_ob(obj[i]); me->set("jing",3000); me->set("eff_jing",3000); me->set("qi",1000); me->set("eff_qi",1000);// if ( wizardp(obj[i]) ) obj[i]->set("env/immortal",1); /*恢复*/ } return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?