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 + -
显示快捷键?