📄 control.c
字号:
//Cracked by Kafei// Control panel for Group BWDH// Apache 10/98// changed by sdong 10/03/98 for fixing some bugs#include <ansi.h>inherit NPC;int reset();int auto_check();#define BOARD __DIR__"npc/bwboard"#define CANGKU "/d/bwdh/sjsz/cangku"// I put all possible npcs at here!string *high_npc = ({ "/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",});string *middle_npc = ({ "/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",});string *low_npc = ({ "/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",});string *misc_npc = ({ "/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",});string *special_weapon = ({ "/d/bwdh/sjsz/obj/hunterbow.c", "/d/bwdh/sjsz/obj/arrow.c", "/d/bwdh/sjsz/obj/dantou.c", "/d/bwdh/sjsz/obj/huoyao.c", "/quest/skills2/shop/shops/hammer.c", "/quest/skills2/shop/shops/sword.c", // 倚天剑 "/d/bwdh/sjsz/obj/yuxiao.c",// : 1, // 玉箫 "/d/shaolin/obj/fumo-dao.c",// : 1, // 伏魔刀 "/d/jinshe/obj/jinshe-jian.c",// : 1, // 金蛇剑 "/d/bwdh/sjsz/obj/eyujian.c",// : 1, // 鳄嘴剪 "/d/bwdh/sjsz/obj/eweibian.c",// : 1, // 鳄尾鞭 "/d/bwdh/sjsz/obj/xuantie-jian.c",// : 1, // 玄铁重剑 "/d/jinshe/obj/jinshe-zhui.c", // : 1, // 金蛇锥 "/kungfu/class/gaibang/obj/yuzhu_zhang.c",// : 1, // 玉竹杖 "/d/bwdh/sjsz/obj/qijue.c",// : 1, // 七绝针 "/d/bwdh/sjsz/obj/yuchang-jian.c",// : 1, // 鱼肠剑 "/d/bwdh/sjsz/obj/zhenwu.c",// : 1, // 真武剑 "/d/bwdh/sjsz/obj/dulong-bian.c", // "/d/bwdh/sjsz/obj/tulong-dao.c", // "/d/bwdh/sjsz/obj/fan.c", // "/d/bwdh/sjsz/obj/jingun.c",// "/d/bwdh/sjsz/obj/falun5.c",// "/d/bwdh/sjsz/obj/qixing-jian.c", // "/d/bwdh/sjsz/obj/zijin-dao.c", // "/d/bwdh/sjsz/obj/heilong-bian.c ", // "/d/bwdh/sjsz/obj/songwen-jian.c ", // "/d/bwdh/sjsz/obj/youlong.c ", // "/d/shaolin/obj/jingang-zhao.c",//: 1, // 金刚罩 "/d/bwdh/sjsz/obj/wucan-yi.c",// : 1, // 乌蚕衣 "/kungfu/class/taohua/obj/ruanwei.c",// : 1, // 软猬甲 "/d/bwdh/sjsz/obj/xuedao.c",// : 1, // 血刀 "/d/bwdh/sjsz/obj/yuandao.c",// : 1, "/d/bwdh/sjsz/obj/yangdao.c",// : 1,});void move_npc(object npc);int update(int n, int result);void sort_rank();void clean_sjsz();int do_judge(string arg);int do_fire(string arg);int do_clean(string arg);int do_challenge(string arg);void auto_check(int nCounts);int do_duet(string arg);void do_challenge(string arg);void do_accept(string arg);int do_goon();int do_auto_teamup(string arg);void move_me(object me, string place);void nude(object obj);void my_destruct(object obj);void full_all(object me);void move_me(object me, string place);int update_room (string file);int refresh_room (string file);void make_weapon(object npc);void make_npc(object room);void refresh_sjsz();void auto_check();void clean_sjsz();int do_back_stuff(string id);void create() { set_name("群英会大主持", ({ "da zhuchi","zhuchi","host" })); set("unit", "座"); set("long", "他就是天下英雄报名参加群英会团体比武大赛的总主持人。他手持一个牌子,上书:报名指令: teamup 队名 玩家1 玩家2 ... ... 玩家19 (报名组队,每队最少三人,最多允许20人一队。队名可以带颜色) 例如: teamup $HIW$飞虎队$NOR$ sdong sdon sdo or baoming 队名 玩家1 玩家2 ... ... 玩家19 (报名组队,每队最少三人,最多允许20人一队。队名可以带颜色) 例如: baoming $HIW$飞虎队$NOR$ sdong sdon sdo dismiss n (解散第N队) kickout id (开除某玩家出队) challenge n (挑战第N队) accept n(接受第N队挑战) clean id(清除玩家比武记录) help sjsz \n");/* set("no_get", 1); set("chat_chance", 240); set("chat_msg", ({ (: auto_check :), }) );*//* set("chat_chance_combat", 240); set("chat_msg_combat", ({ (: auto_check :), }) );*/ set("inquiry", ([ "试剑山庄": "试剑山庄是闻名遐迩的武林圣地。各路英雄都争相来这里比武。", "sjsz": "试剑山庄是闻名遐迩的武林圣地。各路英雄都争相来这里比武。", "baoming": "baoming 队名 玩家1 玩家2 ... ... 玩家19 (报名组队,每队最少三人,最多允许20人一队。队名可以带颜色)", "join": "baoming 队名 玩家1 玩家2 ... ... 玩家19 (报名组队,每队最少三人,最多允许20人一队。队名可以带颜色)", //"askback": "askback", ])); set("bwdhpk",1);setup();}void init() { object me = this_player(); //add_action("do_back_stuff", "askback"); if( !query("bwdh") || me->query("judge") || wizardp(me) ) { add_action("do_add", "add"); add_action("do_add", "teamup"); add_action("do_discard", "dismiss"); add_action("do_discard", "discard"); add_action("do_challenge", "challenge"); add_action("do_accept", "accept"); add_action("do_fire", "kickout"); add_action("do_clean", "clean"); add_action("do_auto_teamup", "auto"); if( me->query("judge") || wizardp(me) ) { add_action("do_assign", "assign"); add_action("do_judge", "judge"); add_action("do_duet", "duet"); add_action("do_goon", "goon"); add_action("do_start","start"); add_action("do_stop","stop"); add_action("do_refresh","refreshsjsz"); } }}int do_start(string arg){ object me = this_player(); if( query("bwdh") ) return notify_fail("比武已经开始了。\n"); message_vision(HIR"$N宣布群英会现在开始!\n"NOR,me); CHANNEL_D->do_channel(me, "chat", HIR"宣布群英会现在开始!\n"NOR); set("bwdh",1); return 1;}int do_stop(string arg){ object me = this_player(); if( !query("bwdh") ) return notify_fail("比武还没开始呢。\n"); delete("bwdh"); message_vision(HIR"宣布群英会结束!\n"NOR,me); CHANNEL_D->do_channel(me, "chat", HIR"宣布群英会结束!\n"NOR); return 1;}void full_all(object me){ if( !living(me) ) me->revive(0); me->set("eff_jing", (int)me->query("max_jing")); me->set("jing", (int)me->query("max_jing")); me->set("eff_qi", (int)me->query("max_qi")); me->set("qi", (int)me->query("max_qi")); me->set("jingli", (int)me->query("max_jingli")); me->set("neili", (int)me->query("max_neili")); me->set("food", (int)me->max_food_capacity()); me->set("water", (int)me->max_water_capacity()); me->remove_all_killer(); me->clear_condition();}int do_back_stuff(string id){ object *inv, cangku, *basket; int i; object player=this_player(); cangku = find_object(CANGKU); if (! objectp(cangku)) { cangku = load_object(CANGKU); if (!objectp(cangku)) { message_vision("$N请告诉 wiz: cangku not found\n", player); return 1; } } basket = cangku->query("basket/"+player->query("id")); if (basket) { for (i=0; i<sizeof(basket); i++) { if (objectp(basket[i])) { basket[i]->move(player); message_vision("$N从主持人手里拿回一"+ basket[i]->query("unit")+ basket[i]->query("name")+"。\n", player); } } cangku->delete("basket/"+player->query("id")); } else message_vision("主持人说:$N什么也没存在我这里,可别赖我贪污喔!\n", player); return 1;}void my_destruct(object obj){ int i; object *inv; string err; if (obj && objectp(obj) ) { inv = all_inventory(obj); i = sizeof(inv); while(i--) { if( inv[i] && objectp(inv[i]) && userp(inv[i]) ) { call_out("move_me",1+random(4),inv[i],"/d/bwdh/sjsz/kantai_w1.c"); if( !living(inv[i]) ) inv[i]->revive(1); full_all(inv[i]); nude(inv[i]); } else { if(inv[i] && objectp(inv[i])) { my_destruct(inv[i]); } } } if( userp(obj) ) { call_out("move_me",1+random(4),obj,"/d/bwdh/sjsz/kantai_w1.c"); if( !living(obj) )obj->revive(1); full_all(obj); nude(obj); } else destruct(obj); }}void nude(object obj){ int i; object *inv; if (obj && objectp(obj) ) { inv = all_inventory(obj); i = sizeof(inv); while(i--) { if( inv[i] && objectp(inv[i]) && userp(inv[i]) ) { call_out("move_me",1+random(4),inv[i],"/d/bwdh/sjsz/kantai_w1.c"); if( !living(inv[i]) ) inv[i]->revive(1); full_all(inv[i]); nude(inv[i]); } else { if(inv[i] && objectp(inv[i])) { return my_destruct(inv[i]); //destruct(inv[i]); } } } }}void move_me(object me, string place){ object obj; if( !me || !objectp(me) || !userp(me) )return; nude(me); full_all(me); if ( (obj = find_object(place)) && obj && objectp(obj) ) { me->set("sjsz/fighting",1); me->move(obj); } else if ( (obj = load_object(place)) && obj && objectp(obj) ) { me->set("sjsz/fighting",1); me->move(obj); }}int update_player(object me){ object env, link_ob, obj; env = environment(me); // Save the data and exec the player to his/her link object. me->save(); // First, create the new body. link_ob = me->query_temp("link_ob"); obj = LOGIN_D->make_body(link_ob); if (!obj) return 0; exec(link_ob, me); destruct(me); // Restore new body and exec to it via enter_world in LOGIN_D obj->restore();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -