string finger_all() { object *ob; string msg; int i; ob = users(); msg = ""; for(i=0; i<sizeof(ob); i++) // if(wiz_level(this_player())>3||(!wizardp(this_player())&&!wizardp(ob[i]))||(wiz_level(this_player())<4&&wizardp(this_player())&&wizardp(ob[i]))) if(wiz_level(this_player())||(!wizardp(this_player())&&!wizardp(ob[i]))) if(wizardp(this_player())) msg = sprintf("%s%-20s %-20s %-10s %s\n", msg, ob[i]->query("name"), ob[i]->query("id"), age_string( (int)ob[i]->query("mud_age")), query_ip_name(ob[i]) ); else msg = sprintf("%s%-20s %-20s %-10s\n",msg, ob[i]->query("name"), ob[i]->query("id"),age_string( (int)ob[i]->query("mud_age"))); return msg; }
string finger_user(string name, int wizship) { object ob, body; string msg="", mud; if( sscanf(name, "%s@%s", name, mud)==2 ) { GFINGER_Q->send_finger_q(mud, name, this_player(1)); return "网路指令传送过程可能需要一些时间,请稍候。\n"; } ob = new(LOGIN_OB); ob->set("id", name); if( !ob->restore() ) return "没有这个玩家。\n"; if( wizship ) { if( objectp(body = find_player(name)) && geteuid(body)==name ) { msg = sprintf("\n%s目前正在从 %s 连线中。\n", body->name(1), query_ip_name(body)); } msg += sprintf("\n英文代号:\t%s\n姓 名:\t%s\n权限等级:\t%s\n" "电子邮件地址:\t%s\n上次连线地址:\t%s( %s )\n" "合计在线时间:\t%s\n\n", ob->query("id"), ob->query("name"), SECURITY_D->get_status(name), ob->query("email"), ob->query("last_from"), ctime(ob->query("last_on")), (body ? (age_string( (int)body->query("mud_age"))) : "不告诉你") ); } else { if( objectp(body = find_player(name)) && geteuid(body)==name && !body->query("wiz_invis")) { msg = sprintf("\n%s目前正在连线中。\n", body->name(1), ); } msg += sprintf("\n英文代号:\t%s\n姓 名:\t%s\n权限等级:\t%s\n" "上次连线时间:\t%s\n\n", ob->query("id"), ob->query("name"), SECURITY_D->get_status(name), ctime(ob->query("last_on")) ); }
string finger_all(int showage) { object *ob; string msg; int i; ob = sort_array(users(),"sort_user",this_object()); msg = ""; for(i=0; i<sizeof(ob); i++) { if( this_player() && !this_player()->visible(ob[i]) ) continue; if( showage) msg = sprintf("%s%-10s %-8s %-15s (%s) %s\n", msg, ob[i]->query("name"), ob[i]->query("id"), age_string( (int)ob[i]->query("mud_age")), query_ip_number(ob[i]),query_ip_name(ob[i]) ); else msg = sprintf("%s%-20s %-20s \n", msg, ob[i]->query("name"), ob[i]->query("id"), ); } return msg; }
string finger_user(string name) { object me, ob, body; object where; string msg, mud; me = this_player(); if (!name) ob = me; else if( sscanf(name, "%s@%s", name, mud)==2 ) { GFINGER_Q->send_finger_q(mud, name, this_player(1)); return "网路指令传送过程可能需要一些时间,请稍候。\n"; } // ob = new(LOGIN_OB); // ob->set("id", name); else ob = find_player(name); // if( wiz_level(me) < wiz_level(ob) ) // return "\n"; if (!ob && wizardp(me) ) return remote_finger_user(name); ob = acquire_login_ob(name); if( !ob ) return "没有这个玩家。\n"; // if (!user(ob)) return "没有这个玩家: "+name+"\n。"; msg = sprintf("\n英文代号:\t%s\n姓 名:\t%s\n权限等级:\t%s\n" "上次连线时间:\t%s\n上线时间总和:\t%s\n\n", ob->query("id"), ob->query("name"), SECURITY_D->get_status(name), ctime(ob->query("last_on")), age_string (ob->query("mud_age")), ); if(wizardp(this_player())) msg += sprintf("上次连线位置:%s\n",ob->query("last_from")); msg += sprintf ("年龄是: %d 岁\n", ob->query("age")); if(SECURITY_D->get_status(name)==("player") && stringp(ob->query("clan/name")) ) msg += sprintf("所属帮派: %s\n", ob->query("clan/name")); if(ob->query("new_mail")) msg += sprintf("他有新的情书未读\n"); if( wiz_level(me) < wiz_level(ob) ) return msg; where = environment(ob); if (where && wizardp(me)) msg += sprintf("%s (%s) 现在在--%s (%s).\n", (string)ob->name(), (string)ob->query("id"), where ? where->query("short") : "未知", (string)file_name(where)); else msg += sprintf("%s现在在--%s.\n", (string)ob->name(), where ? where->query("short") : "未知"); if( objectp(body = find_player(name)) && geteuid(body)==name ) { if(wizardp(this_player())) msg += sprintf("%s 目前正在从 %s 连线中。\n", body->name(1), query_ip_name(body)); else msg += sprintf("目前正在连线中。\n"); } if( stringp(ob->query("plan")) ) msg += sprintf("%s 最近的计划是--\n%s", name, ob->query("plan")); // destruct(ob); return msg; }