logind.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 174 行
C
174 行
// logind.c#define VISITORS "/log/mud/MUDVISITOR"#define GIFTCARD "/log/mud/GIFTCARD"#include <ansi.h>#include <command.h>#include <login.h>#include <net/daemons.h>#include <net/macros.h>inherit F_DBASE;static string loginnip;static int loginntime;int check_legal_password(object ob,string arg);int wiz_lock_level = WIZ_LOCK_LEVEL;//tentopint mad_lock = 0;//10 string Rname;string *banned_name = ({ "你", "你", "我", "他", "她", "它", "它", "爸", " ", "翔少爷", "方舟子", "草鱼", "时空", "丁", "江泽民", "邓小平", "李鹏", "朱榕基", "自己", "某人", "尸体", "我们","你们", "他们", "大家", "他妈的", "去你的", "毛泽东", "巫师", "他奶奶的", "仙子", "天马行空", "迪阳", "风儿","星星","小人物"});string random_name(int gender) //gender ==2 日本人 gender==1 女人 gender==0 男人{ string sname,sid; int i; string *first_name = ({"赵","钱","孙","李","周","吴","郑","王","冯","陈","褚","卫","蒋","沈","韩","杨","朱","秦","许","何","吕","施","张","孔","曹","严","华","金","魏","陶","姜","戚","谢","邹","水","章","苏","潘","葛","范","彭","鲁","韦","马","苗","方","任","袁","柳","邓","鲍","史","唐","费","岑","薛","雷","贺","倪","汤","殷","罗","郝","邬","常","乐","卞","齐","康","伍","余","元","卜","顾","黄","穆","肖","尹","姚","邵","汪","祁","毛","狄","米","贝","藏","成","戴","宋","茅","庞","纪","舒","项","董","梁","樊","胡","凌","霍","虞","柯","管","卢","岳","司马","上官","欧阳","夏候","诸葛","东方","赫连","皇甫","尉迟","宗政","太叔","公孙","仲孙","辕轩","令狐","钟离","宇文","长孙","慕容","司徒","师空","巫马","拓趾","夹谷","楚晋","呼延","微生","梁丘","左丘","东门","西门","南宫",}); string *second_name1 = ({"忠","孝","礼","义","智","勇","仁","匡","宪","令","福","禄","大","小","晓","高","可","阿","金","世","克","叔","之","公","夫","时","若","庆","文","武","多","才","长","子","永","友","自","人","为","铁","","","","","","","","","","","","","","","","","","","","","","",}); string *second_name2 = ({"霸","白","班","斌","宾","昌","超","诚","川","鼎","定","斗","法","飞","风","锋","钢","罡","贯","光","海","虎","华","浩","宏","济","坚","健","剑","江","进","杰","俊","康","良","麟","民","明","鸣","宁","培","启","强","荣","山","泰","涛","挺","伟","熙","祥","雄","旭","毅","瑜","羽","宇","岳","舟",}); string *girl_name = ({ //女性专用"爱","春","丹","芳","芬","凤","姑","红","虹","娇","娟","菊","兰","岚","丽","莉","莲","玲","琳","娜","琴","芹","倩","萍","婷","霞","香","艳","燕","英","瑛","玉","珍","珠",}); string *japan_name1 =({"山本","龟田","姿三","大岛","松下","横田","东芝","候本","川野","山口","铃木","岗仓","小岛","井上","安奈","浅田","佐藤","广末","大竹","大村","伯佐","富冈","东乡","柴田"}); string *japan_name2 =({"太郎","次郎","三郎","四郎","五郎","十一郎","十四郎","二十六","俊树","宁次","英机","冶字","俊雄","牧夫","光夫","敬一","英世","漱石","渝吉","一叶","子规","稻造","伊冲","松园","深水","大观","丰国","孝和","茂","川","卫","岛寿","光云","安治","山乐","梦二","长秀","成政"});gender=random(3); switch(gender){ case 0: i = random(sizeof(first_name)); sname = first_name[i]+second_name1[random(sizeof(second_name1))]+second_name2[random(sizeof(second_name2))]; break; case 1: i = random(sizeof(first_name)); sname=first_name[i]+second_name1[random(sizeof(second_name1))]+girl_name[random(sizeof(girl_name))]; break; case 2: i = random(sizeof(japan_name1)); sname = japan_name1[i]+japan_name2[random(sizeof(japan_name2))]; break; } return sname;}void get_id(string arg, object ob);void confirm_id(string yn, object ob);object make_body(object ob);init_new_player(object user);varargs void enter_world(object ob, object user, int silent);varargs void reconnect(object ob, object user, int silent);object find_body(string name);int check_legal_id(string arg);int check_legal_name(string arg);int howmany_user();int howmany_visitor();int howmany_card();void set_visitor(int num);void set_card(int num);// tentopint howmuch_money(object ob);void random_gift(mapping my, int select){ int i = 10, j; int tmpstr, tmpint, tmpcon, tmpdex; tmpstr = tmpint = tmpcon = tmpdex = 10; switch (select) { case 1: tmpstr = i = my["str"]; break; case 2: tmpint = i = my["int"]; break; case 3: tmpcon = i = my["con"]; break; case 4: tmpdex = i = my["dex"]; } i = 50 - i; while (i--) { j = random(4); if (j == select - 1) { i++; continue; } switch (j) { case 0: tmpstr++; break; case 1: tmpint++; break; case 2: tmpcon++; break; case 3: tmpdex++; break; } } if (tmpstr <= 30) my["str"] = tmpstr; else my["str"] = 30; if (tmpint <= 30) my["int"] = tmpint; else my["int"] = 30; if (tmpcon <= 30) my["con"] = tmpcon; else my["con"] = 30; if (tmpdex <= 30) my["dex"] = tmpdex; else my["dex"] = 30; // next 3 are randomly selected my["kar"] = 10 + random(21); my["per"] = 10 + random(31);}void create() { seteuid(getuid()); set("channel_id", "连线精灵");}void logon(object ob){ object *usr; int i, login_cnt; string welcome_msg;// 防止有恶意的玩家用 KMUD 等工具捣乱 usr = filter_array(children(LOGIN_OB), (: interactive :)); i = sizeof(usr); login_cnt = 0; while (i--) if (query_ip_number(usr[i]) == query_ip_number(ob)) login_cnt++; if (login_cnt > 3) { destruct(ob); return; }//welcome_msg = "/adm/etc/welcome";//write(read_file(welcome_msg));// Add by Yu Jue 1997.8.6 write("\n我们建议使用 800 * 600 的分辨率进入"+MUD_NAME+"。\n"); write(HIW"Best view with 800 * 600 "NOR); write("\n可以使用5555,2000,2002,2003,2004多个端口进入"+MUD_NAME+"。"); write(HIW"\nCan use port 5555,2000,2002,2003,2004 telnet this Game 。"NOR); write("\nPlease select 国标码 〖GB〗 or
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?