Example #1
0
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;
}
Example #2
0
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"))
        );
		}
Example #3
0
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;
}
Example #4
0
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;
}