login.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 67 行
C
67 行
#include <login.h>#include <dbase.h>inherit F_DBASE;inherit F_SAVE;inherit F_ENCODING;void logon(){ call_out( "time_out", LOGIN_TIMEOUT ); LOGIN_D->logon( this_object() );}// Don't destruct(this_object()) in the net_dead() interactive apply or// there'll be error message: Double call to remove_interactive()void net_dead(){// destruct(this_object()); remove_call_out("time_out"); call_out( "time_out", 1 );}void time_out(){ object ob = query_temp("body_ob"); if( objectp(query_temp("body_ob")) ) return; if( objectp(ob) ) { if ( environment(ob) ) return; destruct(ob); } if( interactive(this_object()) ) write("您花在连线进入手续的时间太久了,下次想好再来吧。\n"); destruct(this_object());}// This is used by F_SAVE to determinethe file name to save our data.string query_save_file(){ string id; id = query("id", 1); if( !stringp(id) ) return 0; return sprintf(DATA_DIR "login/%c/%s", id[0], id);}void receive_message(string type, string str){ if( type!= "write" ) return; str = CONVERT_D->output(str,this_object());// if (query_temp("big5")) str = "/adm/daemons/gb_b5d"->gb_b5(str); receive(str);}void terminal_type(string term_type){ set_temp("terminal_type", term_type);}// Protect login object's data against hackers.nomask mixed set(string prop, mixed data){ if( geteuid(previous_object()) != ROOT_UID ) return 0; return ::set(prop, data);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?