62      int is_admin() { return VERSION_D->is_release_server() || admin_flag == 1222; } 
63      int set_admin() { if (previous_object() == find_object("/cmds/usr/passwd")) admin_flag = 1222; } 


997     // 计算完整性数据和 
998     string calc_sec_id(int raw) 
999     { 
1000            mapping my; 
1001            string *list; 
1002            string key; 
1003            int sum; 
1004            string str; 
1005            int i; 
1006     
1007            sum = 0; 
1008     
1009            // 累计所有的数据 
1010            if (mapp(my = query_entire_dbase())) 
1011            { 
1012                    foreach (key in keys(my) - ({ "sec_id" })) 
1013                    { 
1014                            sum += sizeof(key); 
1015                            if (intp(my[key])) 
1016                                    sum += my[key]; 
1017                            else 
1018                                    sum += sizeof(my[key]); 
1019                    } 
1020            } 
1021     
1022            // 累计所有的武功技能 
1023            if (mapp(my = query_skills())) 
1024            { 
1025                    foreach (key in keys(my)) 
1026                    { 
1027                            sum += sizeof(key); 
1028                            if (intp(my[key])) 
1029                                    sum += my[key]; 
1030                            else 
1031                                    sum += sizeof(my[key]); 
1032                    } 
1033            } 
1034     
1035            // 累计所有携带的物品 
1036            if (arrayp(list = query_autoload_info())) 
1037            { 
1038                    foreach (key in list) 
1039                    { 
1040                            sum += sizeof(key); 
1041                            if (stringp(key)) 
1042                                    for (i = 0; i < strlen(key); i++) sum += key[i]; 
1043                    } 
1044            } 
1045     
1046            // 转化成字符串 
1047            str = sprintf("%d", sum); 
1048            str[0] = (sum % 26) + 'a'; 
1049     
1050            if (! raw) str = crypt(str, 0); 
1051            return str; 
1052    } 
1053     
1054     
1055    string query_info() 
1056    { 
1057            string msg; 
1058     
1059            if (query("chblk_on")) 
1060            { 
1061                    if (stringp(query("chblk_by"))) 
1062                            msg = "频道已经被 " + query("chblk_by") + " 关闭。\n"; 
1063                    else 
1064                            msg = "频道被关闭中。\n"; 
1065            } 
1066     
1067            return msg; 
1068    } 
1069     

