entry.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 423 行
C
423 行
// Room: "/d/pk/entry",#include <ansi.h>inherit ROOM;string *map1=({"/d/pk/pk/turen1","/d/pk/pk/turen10","/d/pk/pk/turen11","/d/pk/pk/turen12","/d/pk/pk/turen2","/d/pk/pk/turen3","/d/pk/pk/turen4","/d/pk/pk/turen5","/d/pk/pk/turen6","/d/pk/pk/turen7","/d/pk/pk/turen8","/d/pk/pk/turen9","/d/pk/bwdh/caodi1","/d/pk/bwdh/caodi10","/d/pk/bwdh/caodi2","/d/pk/bwdh/caodi3","/d/pk/bwdh/caodi4","/d/pk/bwdh/caodi5","/d/pk/bwdh/caodi6","/d/pk/bwdh/caodi7","/d/pk/bwdh/caodi8","/d/pk/bwdh/caodi9","/d/pk/bwdh/houting","/d/pk/bwdh/huilang1","/d/pk/bwdh/huilang2","/d/pk/bwdh/huilang3","/d/pk/bwdh/huilang4","/d/pk/bwdh/huilang5","/d/pk/bwdh/huilang6","/d/pk/bwdh/jiashan","/d/pk/bwdh/qianting","/d/pk/bwdh/quqiao1","/d/pk/bwdh/quqiao2","/d/pk/bwdh/quqiao3","/d/pk/bwdh/quqiao4","/d/pk/bwdh/shulin1","/d/pk/bwdh/shulin10","/d/pk/bwdh/shulin11","/d/pk/bwdh/shulin12","/d/pk/bwdh/shulin13","/d/pk/bwdh/shulin14","/d/pk/bwdh/shulin2","/d/pk/bwdh/shulin3","/d/pk/bwdh/shulin4","/d/pk/bwdh/shulin5","/d/pk/bwdh/shulin6","/d/pk/bwdh/shulin7","/d/pk/bwdh/shulin8","/d/pk/bwdh/shulin9","/d/pk/bwdh/zhongting","/d/pk/bwdh/zoulang1","/d/pk/bwdh/zoulang2","/d/pk/sjsz/egarden","/d/pk/sjsz/etower1","/d/pk/sjsz/etower2","/d/pk/sjsz/etower3","/d/pk/sjsz/etower4","/d/pk/sjsz/etower5","/d/pk/sjsz/etower6","/d/pk/sjsz/etower7","/d/pk/sjsz/ezoulan","/d/pk/sjsz/room_01","/d/pk/sjsz/room_02","/d/pk/sjsz/room_03","/d/pk/sjsz/room_04","/d/pk/sjsz/room_05","/d/pk/sjsz/room_06","/d/pk/sjsz/room_07","/d/pk/sjsz/room_08","/d/pk/sjsz/room_09","/d/pk/sjsz/room_10","/d/pk/sjsz/room_11","/d/pk/sjsz/room_12","/d/pk/sjsz/room_13","/d/pk/sjsz/room_14","/d/pk/sjsz/room_15","/d/pk/sjsz/room_16","/d/pk/sjsz/room_17","/d/pk/sjsz/room_18","/d/pk/sjsz/room_19","/d/pk/sjsz/room_20","/d/pk/sjsz/room_21","/d/pk/sjsz/room_22","/d/pk/sjsz/room_23","/d/pk/sjsz/room_24","/d/pk/sjsz/room_25","/d/pk/sjsz/room_26","/d/pk/sjsz/room_27","/d/pk/sjsz/wgarden","/d/pk/sjsz/wtower1","/d/pk/sjsz/wtower2","/d/pk/sjsz/wtower3","/d/pk/sjsz/wtower5","/d/pk/sjsz/wtower6","/d/pk/sjsz/wtower7","/d/pk/sjsz/wzoulan",});/*string *map2=({"/d/pk/pk/entry",});*/string *map2=({"/d/pk/pk/turen1","/d/pk/pk/turen10","/d/pk/pk/turen11","/d/pk/pk/turen12","/d/pk/pk/turen2","/d/pk/pk/turen3","/d/pk/pk/turen4","/d/pk/pk/turen5","/d/pk/pk/turen6","/d/pk/pk/turen7","/d/pk/pk/turen8","/d/pk/pk/turen9","/d/pk/sjsz/egarden","/d/pk/sjsz/etower1","/d/pk/sjsz/etower2","/d/pk/sjsz/etower3","/d/pk/sjsz/etower4","/d/pk/sjsz/etower5","/d/pk/sjsz/etower6","/d/pk/sjsz/etower7","/d/pk/sjsz/ezoulan","/d/pk/sjsz/room_01","/d/pk/sjsz/room_02","/d/pk/sjsz/room_03","/d/pk/sjsz/room_04","/d/pk/sjsz/room_05","/d/pk/sjsz/room_06","/d/pk/sjsz/room_07","/d/pk/sjsz/room_08","/d/pk/sjsz/room_09","/d/pk/sjsz/room_10","/d/pk/sjsz/room_11","/d/pk/sjsz/room_12","/d/pk/sjsz/room_13","/d/pk/sjsz/room_14","/d/pk/sjsz/room_15","/d/pk/sjsz/room_16","/d/pk/sjsz/room_17","/d/pk/sjsz/room_18","/d/pk/sjsz/room_19","/d/pk/sjsz/room_20","/d/pk/sjsz/room_21","/d/pk/sjsz/room_22","/d/pk/sjsz/room_23","/d/pk/sjsz/room_24","/d/pk/sjsz/room_25","/d/pk/sjsz/room_26","/d/pk/sjsz/room_27","/d/pk/sjsz/wgarden","/d/pk/sjsz/wtower1","/d/pk/sjsz/wtower2","/d/pk/sjsz/wtower3","/d/pk/sjsz/wtower5","/d/pk/sjsz/wtower6","/d/pk/sjsz/wtower7","/d/pk/sjsz/wzoulan",});string *npc1 = ({ "/d/biwu/ouyangfeng", "/quest/menpaijob/emei/miejue", "/kungfu/class/emei/zhou", "/kungfu/class/gaibang/hong", "/kungfu/class/huashan/feng", "/kungfu/class/huashan/yue-buqun", "/kungfu/class/shaolin/du-jie", "/kungfu/class/shaolin/du-nan", "/kungfu/class/shaolin/da-mo", "/kungfu/class/wudang/zhang", "/kungfu/class/xingxiu/ding", "/kungfu/class/xueshan/fawang", "/kungfu/class/xueshan/jiumozhi", "/quest/menpaijob/shenlong/hong", "/d/biwu/dongfang", "/d/shenlong/npc/dushe", "/d/shenlong/npc/fushe", "/d/wudujiao/npc/baidu5", "/d/wudujiao/npc/chanchu5", "/d/wudujiao/npc/laohu2", "/d/wudujiao/npc/qiandu5", "/d/wudujiao/npc/wandu5", "/d/wudujiao/npc/wolf2", "/d/wudujiao/npc/wugong3", "/d/wudujiao/npc/xiezi3", "/d/wudujiao/npc/zhangao", "/d/wudujiao/npc/zhanglang", "/d/wudujiao/npc/zhizhu3", "/kungfu/class/btshan/ouyangke", "/kungfu/class/emei/jingxuan", "/kungfu/class/gaibang/jian", "/kungfu/class/shaolin/xuan-ci", "/kungfu/class/shaolin/xuan-bei", "/kungfu/class/shaolin/xuan-nan", "/kungfu/class/shaolin/xuan-ku", "/kungfu/class/wudang/mo", "/kungfu/class/wudang/yu", "/kungfu/class/wudang/yin", "/kungfu/class/wudang/song", "/kungfu/class/wudang/zhang", "/kungfu/class/xingxiu/zhaixing", "/kungfu/class/xuedao/shengdi", "/kungfu/class/xueshan/lingzhi", "/d/quanzhen/npc/hao", "/d/quanzhen/npc/ma", "/d/quanzhen/npc/tan", "/d/quanzhen/npc/liu", "/d/taishan/npc/tianmen", "/kungfu/class/emei/fang", "/kungfu/class/gaibang/kongkong", "/kungfu/class/shaolin/hui-kong", "/kungfu/class/xingxiu/azi", "/kungfu/class/wudang/daotong", "/kungfu/class/emei/li", "/kungfu/class/emei/bei", "/kungfu/class/emei/fang", "/d/songshan/npc/zuo", "/d/henshan/npc/moda", "/d/hengshan/npc/xian", "/d/qingcheng/npc/hai", "/kungfu/class/shenlong/su", "/kungfu/class/shenlong/wugen", "/d/xingxiu/npc/gushou", "/d/xingxiu/npc/boshou", "/d/xingxiu/npc/haoshou", "/d/xingxiu/npc/caihua",});void create(){ set("short", "屠人场入口"); set("long", @LONG这里是一间不算大的小屋,当中摆了一个桌子,后面做着一个人,正笑吟吟的看着你。他身后有一扇门,虚掩着,里面黑乎乎的,也不知道通往哪里。西面望出去是宽阔敞亮的大街,让人无限向往。[1;31m玩家: 如果天神宣布比赛开始,可以用start来进入比武场。[1;33m天神:如果你是天神,能先用an anniu来开始比赛和结束比赛。如果你是天神,能用chuchang来让玩家出场。出场后用updatedir /d/pk/ 来清比赛场LONG ); set("exits", ([// "west" : __DIR__"kantaiw",// "east" : __DIR__"kantaie", "out" : "/d/city/wumiao", ])); set("no_fight", 1); setup();}void init(){ add_action("do_push", "an"); add_action("do_start", "start"); add_action("do_refresh", "chuchang");}void check_trigger(){ object room,npc,room2; int a,b,i; object thisroom = this_object(); if(!(room = find_object(__DIR__"entry"))) room = load_object(__DIR__"entry"); if( room = find_object(__DIR__"entry")){ if( room->query("exits/out")){ room->delete("exits/out"); room->set("startpk",1); for (i=0;i<30;i++){ a=random(sizeof(npc1)); npc=new(npc1[a]); b=random(sizeof(map2)); room2=load_object(map2[b]);if (npc && room2){ npc->move(room2);// message("vision", HIR" "+npc->query("name")+"分布到"+room2->query("short")+"了。\n"NOR, thisroom);}}for (i=0;i<4;i++){ a=random(sizeof(npc1)); npc=new(__DIR__"obj/hongmao"); b=random(sizeof(map1)); room2=load_object(map1[b]);if (npc && room2){ npc->move(room2);// message("vision", HIY" "+npc->query("name")+"分布到"+room2->query("short")+"了。\n"NOR, thisroom);}}message("channel:chat", HIC"【试剑山庄】"HIR + "屠人大会开始了!\n"NOR,users() ); message("vision", HIG"只听见轰然一声,比武马上开始,NPC入场,试剑山庄的大门关上了。\n"NOR, thisroom); } else{room->set("startpk", 0); room->delete("startpk"); room->set("exits/out", "/d/city/wumiao"); message("channel:chat", HIC"【试剑山庄】"HIR + "屠人大会结束了!\n"NOR,users() ); message("vision", HIW"试剑山庄的出口大门被打开了。\n"NOR, thisroom);} } else message("vision", "ERROR: Room 2 not found\n", thisroom); }void check_trigger1(){ object room1; object thisroom = this_object(); if(!(room1 = find_object("/d/city/wumiao"))) room1 = load_object("/d/city/wumiao"); if( room1 = find_object("/d/city/wumiao")){ if( room1->query("exits/enter")){ room1->delete("exits/enter"); message("vision", HIR"只听见轰然一声,比武马上开始,试剑山庄的入口关上了。\n"NOR, thisroom); } else {room1->set("exits/enter", "/d/pk/pk/entry"); message("vision", HIW"试剑山庄的入口被打开了。\n"NOR, thisroom);} } else message("vision", "ERROR: Room 1 not found\n", thisroom); }int do_push(string arg){ object me; me = this_player(); if (userp(me) && !wiz_level(me)) return notify_fail("你不是巫师,不要随便乱动,坏了你可赔不起哦!\n"); if( wiz_level(me) < 3) return notify_fail("这么贵重的东西,你还是别碰为好。\n"); if (!arg || arg !="anniu") return notify_fail("你要按什么?\n"); if (arg == "anniu"){ message_vision(HIR"$N轻轻嘘了口气,提起食指慢慢地按动了按钮。\n"NOR, me); check_trigger(); check_trigger1(); return 1; } return notify_fail("你要按什么?\n");}int do_start(){ object me; object room,npc,room2;int a; me = this_player(); if (!userp(me)) return notify_fail("非玩家不得进入!\n"); if (!environment(me)->query("startpk")) return notify_fail("还没有开始!\n");if (me->query_condition("killer"))return notify_fail("通辑犯不能进入!\n");if (me->query("combat_exp") <100000)return notify_fail("只有经验大于100000才能进入!\n"); if (present("mian ju", me) )return notify_fail("不能带面具入内!\n"); if (present("helan huoqiang", me) )return notify_fail("不能带火枪入内!\n"); message_vision(HIR"一阵光包围了$N,$N消失不见了。\n"NOR, me); a=random(sizeof(map1)); room2=load_object(map1[a]);if (room2) me->move(room2); return 1; }int do_refresh(object me,string file) { object *list,*ob; int i; string msg;me=this_player(); if (userp(me) && !wiz_level(me)) return notify_fail("你不是巫师,不要随便乱动,坏了你可赔不起哦!\n"); if( wiz_level(me) < 3) return notify_fail("这么贵重的东西,你还是别碰为好。\n"); ob = filter_array(children(USER_OB),(: userp($1) && !wizardp($1) :));list = sort_array(ob,"sort_user"); for (i = 0 ;i < sizeof(list); i++) { if( environment(list[i])->query("bwdhpk")){list[i]->remove_all_killer();list[i]->move(__DIR__"ready");}} message_vision(HIW"出场完成,所有比赛场中玩家移至休息室。\n"NOR, me); return 1; } int sort_user(object ob1, object ob2){ string name1, name2; if( wiz_level(ob1) != wiz_level(ob2) ) return wiz_level(ob2) - wiz_level(ob1); name1 = ob1->query("family/family_name"); name2 = ob2->query("family/family_name"); if (intp(name1)) name1 = ""; if (intp(name2)) name2 = ""; if (name1 > name2) return -1; if (name1 < name2) return 1; return (int)ob2->query("family/generation") - (int)ob1->query("family/generation");}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?