コード例 #1
0
int main(object me, string arg)
{
	object obj, old_target;
        seteuid(getuid());
	if(!me->is_fighting())
            return notify_fail("只有战斗中才能用。\n");
          if(!me->query("sec_kee"))
                return notify_fail("你的身上没有灵气。\n");
	if( !wizardp(me) && environment(me)->query("no_fight") )
		return notify_fail("这里禁止战斗。\n");

	if(!arg || !objectp(obj = present(arg, environment(me))))
		return notify_fail("你想攻击谁?\n");

	if( !obj->is_character() )
		return notify_fail("看清楚一点,那并不是生物。\n");


	if(wizardp(me)&&!wizardp(obj)&&wizhood(me)!="(manager)"&&wizhood(me)!="(admin)"&&wizhood(me)!="(arch)")
		return notify_fail("巫师不能对玩者使用灵气。\n");

	if(obj==me)	return notify_fail("你不能攻击自己。\n");
	SEC_KEE_D(me->query("sec_kee"))->kee_out(me,obj);
	return 1;
}
コード例 #2
0
int main(object me, string arg)
{
	object ob;
        me=this_player();
	seteuid(geteuid(me));
	if( !arg ) {
	  	if( objectp(ob = query_snooping(me)) )
			write("你现在正在监听" + ob->query("name") + "所收到的讯息。\n");
		return 1;
	} else if( arg=="none" ) {
		if( objectp(ob = query_snooping(me)))
        	message_vision (HIW + "$N停止监听$n所收到的讯息。\n"+ NOR,me,ob);
		snoop(me,);
		write("Ok.\n");
		return 1;
	}

	ob = find_player(arg);
	if (!ob) ob = find_player(arg);
	if(!ob || (!ob->visible(ob))) return notify_fail("没有这个人。\n");
        if (!interactive(ob))
           return notify_fail("不能监听断线中的使用者所收到的讯息。\n");
	if(wizhood(ob)=="(admin)"||wizhood(ob)=="(manager)")
		return notify_fail("你不能窃听大神。\n");
	if( me==ob ) return notify_fail("请用 snoop none 解除监听。\n");
		
	snoop(me, ob);
	if( userp(ob) ) log_file("SNOOP_PLAYER",
		sprintf("%s(%s) snoops %s on %s.\n", me->name(1), geteuid(me), ob->name(1),
			ctime(time()) ) );
	write (HIW"你开始监听"+ob->name()+"所收到的讯息。\n" + NOR);
	tell_object(ob, HIW + me->name(1) + "开始监听你所收到的讯息。\n" + NOR);

	return 1;
}
コード例 #3
0
ファイル: wizlist.c プロジェクト: aricxu/xkx100
int main(object me, string arg)
{
	string *list, hood = "", str;
	int j = 0;

	list = sort_array(SECURITY_D->query_wizlist(), (: level :) );
	str = HIC+CHINESE_MUD_NAME+NOR +"巫师董事会成员:\n";
	str += "───────────────────\n";
	for(int i=0; i<sizeof(list); i++, j++)
	{
		if (hood!= wiz_rank(wizhood(list[i])))
		{
			hood = wiz_rank(wizhood(list[i]));
			if (j%7) str += "\n";
			str += hood;
			str = replace_string(str,"(",HIG);
			str = replace_string(str,")",": "NOR);
			j = 0;
		}
		str += sprintf(" %s%s", list[i],
			( j%7==6 ) ? "\n" : ( i<sizeof(list)-1 && hood ==wizhood(list[i+1]) ) ? ", " : "" );
	}
	str += "\n───────────────────\n";
	str += sprintf("目前一共有: %s个巫师\n",chinese_number(sizeof(list)) );
	me->start_more(str);
	return 1;
}
コード例 #4
0
ファイル: rankd.c プロジェクト: mudchina/es2-utf8
string query_rank(object ob)
{
	if( ob->is_ghost() ) return HIB "【 鬼  魂 】" NOR;
	switch(ob->query("gender")) {
	case "女性":
		switch(wizhood(ob)) {
			case "(admin)":			return HIW "【 女  神 】" NOR;
			case "(arch)":			return HIY "【 大魔女 】" NOR;
			case "(wizard)":		return HIG "【 魔  女 】" NOR;
			case "(apprentice)":	return HIC "【 小魔女 】" NOR;
			case "(immortal)":		return HIC "【 仙  女 】" NOR;
			default:
				if( ((int)ob->query("PKS") > 100) &&
					((int)ob->query("PKS") > (int)ob->query("MKS")) )
					return "【 杀人魔 】";
				if( (int)ob->query("thief") > 10 ) return "【 惯  窃 】";
				switch(ob->query("class")) {
					case "bonze":		return "【 尼  姑 】";
					case "taoist":		return "【 女  冠 】";
					case "bandit":		return "【 女飞贼 】";
					case "dancer":		return "【 舞  妓 】";
					case "scholar":		return "【 才  女 】";
					case "officer":		return "【 女  官 】";
					case "fighter":		return "【 女武者 】";
					case "swordsman":	return "【 女剑士 】";
					case "alchemist":	return "【 方  士 】";
					case "shaman":		return "【 巫  医 】";
					case "beggar":		return "【 叫化子 】";
					default:			return "【 平  民 】";
			}
		}
	default:
		switch(wizhood(ob)) {
			case "(admin)":			return HIW "【 天  神 】" NOR;
			case "(arch)":			return HIY "【 大巫师 】" NOR;
			case "(wizard)":		return HIG "【 巫  师 】" NOR;
			case "(apprentice)":	return HIC "【巫师学徒】" NOR;
			case "(immortal)":		return HIC "【 仙  人 】" NOR;
			default:
				if( ((int)ob->query("PKS") > 100) &&
					((int)ob->query("PKS") > (int)ob->query("MKS")) )
					return "【 杀人魔 】";
				if( (int)ob->query("thief") > 10 ) return "【 惯  窃 】";
				switch(ob->query("class")) {
					case "bonze":		return "【 僧  人 】";
					case "taoist":		return "【 道  士 】";
					case "bandit":		return "【 盗  贼 】";
					case "scholar":		return "【 书  生 】";
					case "officer":		return "【 官  差 】";
					case "fighter":		return "【 武  者 】";
					case "swordsman":	return "【 剑  士 】";
					case "alchemist":	return "【 方  士 】";
					case "shaman":		return "【 巫  医 】";
					case "beggar":		return "【 叫化子 】";
					default:			return "【 平  民 】";
			}
		}
	}
}
コード例 #5
0
ファイル: snoop.c プロジェクト: huangleon/fy2005
int main(object me, string arg)
{
	object ob, ob1;

	if( !arg ) {
		if( objectp(ob = query_snooping(me)) )
			write("─у╧╓╘┌╒¤╘┌╝р╠¤" + ob->query("name") + "╦∙╩╒╡╜╡─╤╢╧вбг\n");
		else
			write("─у╧╓╘┌▓╗╘┌╝р╠¤╚╬║╬╨┼╧вбг\n");	
		return 1;
	} else if( arg=="none" ) {
		if( objectp(ob = query_snooping(me))
		&&	wiz_level(ob) >= wiz_level(me) )
			tell_object(ob, HIW + me->name(1) + "═г╓╣╝р╠¤─у╦∙╩╒╡╜╡─╤╢╧вбг\n" NOR);
		snoop(me);
		if (objectp(ob))
			write("─у╧╓╘┌═г╓╣╝р╠¤" + ob->query("name") + "╦∙╩╒╡╜╡─╤╢╧вбг\n");
		else
			write("─у╧╓╘┌▓╗╘┌╝р╠¤╚╬║╬╨┼╧вбг\n");
		return 1;
	}

	ob = find_player(arg);
	if(!ob) ob = find_living(arg);
	if(!ob || !me->visible(ob)) return notify_fail("├╗╙╨╒т╕Ў╚╦бг\n");

	if( wizhood(me) != "(admin)"
	&&	wiz_level(me) <= wiz_level(ob) )
		return notify_fail("─у├╗╙╨╝р╠¤" + ob->name() + "╦∙╩╒╠¤╤╢╧в╡─╚и└√бг\n");

	if( me==ob ) return notify_fail("╟ы╙├ snoop none ╜т│¤╝р╠¤бг\n");
	
	if (objectp(ob1=query_snoop(ob)))
		return notify_fail(ob1->name()+"╒¤╘┌╝р╠¤"+ob->name()+"╡─╨┼╧вбг\n");
	
	if (ob->query_temp("netdead",1))
		return notify_fail("┤╦╚╦╒¤┤ж╘┌╢╧╧▀╫┤╠мбг\n");
	
	if (!userp(ob))
		return notify_fail("├╗╖и╟╘╠¤NPC╨┼╧в╡─бг\n");
				
	snoop(me, ob);
	write("─у╧╓╘┌┐к╩╝╟╘╠¤" + ob->name(1) + "╦∙╩╒╡╜╡─╤╢╧вбг\n");
	if( userp(ob) ) log_file("SNOOP_PLAYER",
		sprintf("%s(%s) snoops %s on %s.\n", me->name(1), geteuid(me), ob->name(1),
			ctime(time()) ) );
	if( wizardp(ob) && wizhood(me) != "(admin)")
		tell_object(ob, HIW + me->name(1) + "┐к╩╝╝р╠¤─у╦∙╩╒╡╜╡─╤╢╧вбг\n" + NOR);

	return 1;
}
コード例 #6
0
ファイル: ppm.c プロジェクト: mudchina/fy3
int main(object me, string arg)
{
	object ob;
	string old_status, new_status;
	int my_level, ob_level, level;

	if( me!=this_player(1) ) return 0;

	if( !arg || sscanf(arg, "%s %s", arg, new_status)!=2 )
		return notify_fail("指令格式:promote <使用者> <等级>\n");

	if ( wiz_level(new_status) < 0 )  return notify_fail("没有这种等级。\n");

	if( !objectp(ob = present(arg, environment(me))) 
	||	!userp(ob) )
		return notify_fail("你只能改变使用者的权限。\n");

        if( wiz_level(me) > wiz_level(new_status) )
		return notify_fail("你没有这种权力。\n");

	old_status = wizhood(ob);

	seteuid(getuid());
	if( !(SECURITY_D->set_status(ob, new_status)) )
		return notify_fail("修改失败。\n");

	message_vision("$N将$n的权限从 " + old_status + " 改为 " + new_status + " 。\n", me, ob);
	seteuid(getuid());
	ob->setup();

	return 1;
}
コード例 #7
0
ファイル: transferlog.c プロジェクト: gongfuPanada/mhxy2002
int main(object me, string arg)
{
        object user;
	string srcstr, dststr;
	string status;

	status = wizhood(me);
	if( me!=this_player(1) || wiz_level(me) < wiz_level(status) )
		return notify_fail("你没有权力使用这个指令。\n");
	
	if (!arg) return 0;
        if (sscanf(arg, "%s %s", srcstr, dststr)!=2) return 0;

	// login data

        seteuid(getuid());
	user = new(LOGIN_OB);
	if( (string)user->set("id", srcstr) != srcstr ) 
		return notify_fail("Failed setting user name.\n");
	if (! user->restore())	return notify_fail("没有这个玩家。\n");
	export_uid(user);

	if( (string)user->set("id", dststr) != dststr ) 
		return notify_fail("Failed setting user name.\n");
        if (!user->save()) return notify_fail("存档失败!\n");
	destruct(user);

        tell_object(me, 
		"玩家 "+srcstr+" 数据成功转换至玩家 "+dststr+" !\n");
	return 1;
}	
コード例 #8
0
ファイル: purge.c プロジェクト: mudchina/es2-utf8
int main(object me, string arg)
{
	string name, reason;
	string status;
	int day;

	status = wizhood(me);
	if( me!=this_player(1)
	|| wiz_level(me) < wiz_level(status) )
		return notify_fail("你没有权力使用这个指令。\n");

	if( !arg ) return notify_fail(SYNTAX);

	if( sscanf(arg, "%d", day) && day >= 0) return do_purge_players(day);

	if( sscanf(arg, "%s because %s", name, reason)!=2 )
		return notify_fail(SYNTAX);

	seteuid(getuid());
	if( file_size(DATA_DIR + "login/" + name[0..0] + "/" + name + SAVE_EXTENSION)<0 )
		return notify_fail("没有这位使用者。\n");

	rm(DATA_DIR + "login/" + name[0..0] + "/" + name + SAVE_EXTENSION);
	rm(DATA_DIR + "user/" + name[0..0] + "/" + name + SAVE_EXTENSION);
	write( "使用者 " + capitalize(name) + " 删除掉了。\n");
	log_file("static/PURGE", sprintf("[%s] %s purged %s because %s.\n",
		ctime(time())[0..15], geteuid(this_player(1)), name, reason));

	return 1;
}
コード例 #9
0
ファイル: checkleak.c プロジェクト: huangleon/fy2005
int main(object me, string arg)
{
	int i;
	string direc,*dir, roomname;
	string status;
	object room;
        if(!me->query("env/yesiknow")) return notify_fail("╒т╕Ў╓╕┴ю╥╤╛н▒╗╖╧│¤┴╦гб\n");
	status = wizhood(me);
	if( me!=this_player(1)
	|| wiz_level(me) < wiz_level(status) )
		return notify_fail("─у├╗╙╨╚и┴ж╩╣╙├╒т╕Ў╓╕┴юбг\n");
	if( !arg ) return notify_fail(SYNTAX);
	if( sscanf(arg, "%s", direc)!=1 )
		return notify_fail(SYNTAX);
	seteuid(getuid());
	dir = get_dir(arg+"/");
        for(i=0; i<sizeof(dir); i++) {
	if( sscanf(dir[i],"%s.c", roomname) != 1) continue;
	if( room = find_object(arg+"/"+roomname+".c"))
			destruct(room);	
	room = load_object(arg+"/"+roomname+".c");
	if(!room->query("coor"))
	log_file("LEAK",sprintf("%s/%s\n",arg,roomname));
	}
	return 1;
}
コード例 #10
0
ファイル: rstbkup.c プロジェクト: heypnus/xkx2001
int main(object me, string arg)
{
    object obj;
    string name,number;

    if( wizhood(me) != "(caretaker)" && wizhood(me) != "(wizard)" &&
            wizhood(me) != "(arch)" && wizhood(me) != "(admin)"
      ) return notify_fail("什么?\n");

    if (!arg) return notify_fail("指令格式:rstbkup player #backup.\n");
    if(sscanf(arg, "%s %s", name, number) != 2)return notify_fail("指令格式:rstbkup player #backup.\n");

    seteuid(ROOT_UID);
    write_file(RESTOREDATA, name + ":" + number + "\n");


    tell_object(me,"恢复"+name+"备份"+number+"指令执行了。\n");
    return 1;
}
コード例 #11
0
ファイル: wizlist.c プロジェクト: mudchina/sjsh
int main(object me, string arg)
{
        string *list, hood = "", str;
        int j = 0;
        list = sort_array(SECURITY_D->query_wizlist(), (: level :) );
str = HIR"三界神话"HIG"泉州师院总站 "HIR"★ "+HIY"巫师全家福 "HIR"★"NOR+CYN" :\n";
        str += "────────────────────────────\n";
        for(int i=0; i<sizeof(list); i++, j++) {
                if (hood != wizhood(list[i]) ) {
                        hood = wizhood(list[i]);
                        if (j%7) str += "\n";
                        str += lists[hood] ;
                        j = 0;
                }
 
 if (list[i]!="kissess" && list[i]!="chm"&& list[i]!="peaceful") str +=sprintf("%s%s",capitalize(list[i]),
                        ( j%7==6 ) ? "\n" : ( i<sizeof(list)-1 && hood ==wizhood(list[i+1]) ) ? ", " : ""  );
        }
str += CYN"\n────────────────────────────\n"NOR;
  str += "目前共有" +HIW+ chinese_number(sizeof(list)-2) +NOR+ "位巫师。\n\n";
        me->start_more(str);
        return 1;
}
コード例 #12
0
ファイル: snoop.c プロジェクト: mudchina/es2-utf8
int main(object me, string arg)
{
    object ob;

    if( !arg ) {
        if( objectp(ob = query_snooping(me)) )
            write("你现在正在监听" + ob->query("name") + "所收到的讯息。\n");
        return 1;
    } else if( arg=="none" ) {
        if( objectp(ob = query_snooping(me))
                &&	wiz_level(ob) >= wiz_level(me) )
            tell_object(ob, HIW + me->name(1) + "停止监听你所收到的讯息。\n" NOR);
        snoop(me);
        write("Ok.\n");
        return 1;
    }

    ob = find_player(arg);
    if(!ob) ob = find_living(arg);
    if(!ob || !me->visible(ob)) return notify_fail("没有这个人。\n");

    if( wizhood(me) != "(admin)"
            &&	wiz_level(me) <= wiz_level(ob) )
        return notify_fail("你没有监听" + ob->name() + "所收听讯息的权利。\n");

    if( me==ob ) return notify_fail("请用 snoop none 解除监听。\n");

    snoop(me, ob);
    write("你现在开始窃听" + ob->name(1) + "所收到的讯息。\n");
    if( userp(ob) ) log_file("SNOOP_PLAYER",
                                 sprintf("%s(%s) snoops %s on %s.\n", me->name(1), geteuid(me), ob->name(1),
                                         ctime(time()) ) );
    if( wizardp(ob) && wizhood(me) != "(admin)")
        tell_object(ob, HIW + me->name(1) + "开始监听你所收到的讯息。\n" + NOR);

    return 1;
}
コード例 #13
0
ファイル: snoop.c プロジェクト: gongfuPanada/mhxy2002
int main(object me, string arg)
{
	object ob;

	if( !arg ) {
		if( objectp(ob = query_snooping(me)) )
			write("你现在正在监听" + ob->query("name") + "所收到的讯息。\n");
		return 1;
	}
	 else if( arg=="-none" ) {
if( objectp(ob = query_snooping(me)) && wizardp(ob) )
			tell_object(ob, HIW + me->name(1) + 
				"停止监听你所收到的讯息。\n" NOR);
		snoop(me);
		write("Ok.\n");
		return 1;
	}
else if(query_snooping(me)) snoop(me);

	ob = find_player(arg);
	if(!ob) ob = find_living(arg);
	
	if(!ob) ob = LOGIN_D->find_body(arg);
	/* added by mon. 2/23/97 */

	if(!ob || !me->visible(ob)) return notify_fail("没有这个人。\n");

	if( wizhood(me) != "(admin)"
	&&	wiz_level(me) <= wiz_level(ob) )
		return notify_fail("你没有监听" + ob->name() + "所收听讯息的权利。\n");

	if( me==ob ) return notify_fail("请用 snoop -none 解除监听。\n");
		
	snoop(me, ob);

	me->set_temp("snoop_encoding",
		(int)me->query_encoding()*10+ob->query_encoding());
	// added by mon 6/1/98

	write("你现在开始窃听" + ob->name(1) + "所收到的讯息。\n");
	if( userp(ob) ) log_file("SNOOP_PLAYER",
		sprintf("%s(%s) snoops %s on %s.\n", me->name(1), geteuid(me), ob->name(1),
			ctime(time()) ) );
// if( wizardp(ob) && wizhood(me) != "(admin)")
if( wizardp(ob)) 
		tell_object(ob, HIW + me->name(1) + "开始监听你所收到的讯息。\n" + NOR);

	return 1;
}
コード例 #14
0
ファイル: cutuser.c プロジェクト: heypnus/xkx2001
int main(object me, string arg)
{
    string id, skill_name=0, err, *arg_list;
    int    i, amount, type, tmp, cloned;
    object user;

    if ( me!=this_player(1)
	 || wiz_level(me) < wiz_level(wizhood(me)) )
	    return notify_fail("你没有权力使用这个指令。\n");

    if (!arg ) return notify_fail(SYNTAX);

    type = 1;	// default is cut exp
    arg_list = explode(arg, " ");
    for (i=0; i<sizeof(arg_list); i++) {
	if (arg_list[i] == "-e") type = 1;
	else  if (arg_list[i] == "-s") {
	    type = 0;
	    if (i == sizeof(arg_list)-1) return notify_fail(SYNTAX);
	    skill_name = arg_list[++i];
	}else  if (arg_list[i] == "-") break;
  	else if (arg_list[i][0] != '-') break;
    }

    if (i >= sizeof(arg_list)) 
	return notify_fail("Please at least say who you want to cut.\n");
    id = arg_list[i];

    i++;
    amount = 30;	// cut 30% by default
    if (i < sizeof(arg_list)){
	if (sscanf(arg_list[i], "%d", amount)!=1)
	    return notify_fail("Cut percentage must be a number.\n");
    }
    if (amount < 0 || amount > 100)
	return notify_fail("cut percentage must be 0-100.\n");

    seteuid(getuid());

    cloned = 0;
    user = LOGIN_D->find_body(id);
    // cut even if the player is not online
    if (! objectp(user)) {
	user = new ("/clone/obj/dummy");
	cloned = 1;
    }
コード例 #15
0
ファイル: command.c プロジェクト: gongfuPanada/xyj2006
nomask void enable_player()
{
	if( stringp(query("id")) ) set_living_name(query("id"));
	else set_living_name(query("name"));

	delete_temp("disabled");
	enable_commands();
	add_action("command_hook", "", 1);

	if( !userp(this_object()) )
		set_path(NPC_PATH);
	else
	switch( wizhood(this_object()) ) {
		case "(admin)":
			set_path(ADM_PATH);
			enable_wizard();
			break;
		case "(arch)":
			set_path(ARC_PATH);
			enable_wizard();
			break;
		case "(wizard)":
			set_path(WIZ_PATH);
			enable_wizard();
			break;
		case "(apprentice)":
			set_path(APR_PATH);
			enable_wizard();
			break;
		case "(immortal)":
			set_path(IMM_PATH);
			enable_wizard();
			break;
		case "(elder)":
			set_path(ELD_PATH);
			enable_wizard();
			break;
		default:
			set_path(PLR_PATH);
	}
}
コード例 #16
0
ファイル: rankd.c プロジェクト: lostsnow/dtxy
string _query_rank(object ob)
{
        string at;
        int dx, exp, avg;
	    int budd;
        int age;
        if(strlen(ob->query("added_title"))<1) ob->set("added_title", "无名");
        //need this default, otherwise looks too ugly sometimes.

        at = ob->query("added_title");
        dx = (int)ob->query("daoxing");
        exp = (int)ob->query("combat_exp");
        avg = (dx + exp)/2;
        age = ob->query("age");

        if( ob->is_ghost() ) return HIB "【 鬼  魂 】" NOR;
        switch(ob->query("gender")) 
        {
        case "女性":
                switch(wizhood(ob)) {
                        case "(admin)": return GRN "【 巫  女 】" NOR;
                        case "(arch)":          return GRN "【 巫  女 】" NOR;
                        case "(wizard)":        return GRN "【 巫  女 】" NOR;
                        case "(apprentice)":    return GRN "【见习巫女】" NOR;
                                case "(immortal)":      return GRN "【客座巫女】" NOR;
                                case "(elder)":         return GRN "【荣誉玩家】" NOR;
                        default:
                                switch(ob->query("class")) 
                                {
//------------------rank for girls--------------------
case "swordsman":
        if(dx<1000) 
                return HIC "【 女剑童 】" NOR;
        else if(dx<10000) 
                return HIC "【 女剑士 】" NOR;
        else if(dx<500000) 
                return HIC "【 女剑客 】" NOR;
        else if(dx<1000000) 
                return HIC "【"+at+"剑仙】" NOR;
        else 
                return HIC "【"+at+"剑圣】" NOR;
case "xian":
        if(dx<1000) 
                return HIM "【 玉  女 】" NOR;
        else if(dx<10000) 
                return HIM "【 小神女 】" NOR;  
        else if(dx<100000) 
                return HIM "【 神  女 】" NOR;
        else if(dx<500000) 
                return HIM "【"+at+"仙妃】" NOR;        
 else if ( ob->query("family/family_name") == "五庄观" )
       return HIC "【"+at+"天仙】" NOR;
   else
                return HIM "【"+at+"天后】" NOR;
        break;
case "yaomo":
if ( ob->query("family/family_name") == "盘丝洞" )
        if(avg<1000) 
                return MAG "【 小魔女 】" NOR;
        else if(avg<10000) 
                return MAG "【 精   灵】" NOR;  
        else if(avg<100000) 
                return MAG "【 女  魔 】" NOR;
        else if(avg<500000) 
                return MAG "【"+at+"精】" NOR;        
        else 
                return MAG "【"+at+"魔尊】" NOR;
if ( ob->query("family/family_name") == "火云洞" )
        if(avg<1000) 
                return RED "【 小妖女 】" NOR;
        else if(avg<10000) 
                return RED "【 妖  精 】" NOR;  
        else if(avg<100000) 
                return RED "【 女  妖 】" NOR;
        else if(avg<500000) 
                return RED "【"+at+"女洞主】" NOR;        
        else 
                return RED "【"+at+"女妖王】" NOR;
if ( ob->query("family/family_name") == "大雪山" )
        
                if(avg<1000) 
                return HIW "【 小妖女 】" NOR;
        else if(avg<10000) 
                return HIW "【 妖  精 】" NOR;  
        else if(avg<100000) 
                return HIW "【 女  魔 】" NOR;
        else if(avg<500000) 
                return HIW "【"+at+"魔女】" NOR;        
        else 
                return HIW "【"+at+"明王】" NOR;

if ( ob->query("family/family_name") == "陷空山无底洞" )
                if(avg<1000) 
                return YEL "【 小妖女 】" NOR;
        else if(avg<10000) 
                return YEL "【 妖  精 】" NOR;  
        else if(avg<100000) 
                return YEL "【 女  魔 】" NOR;
        else if(avg<500000) 
                return YEL "【"+at+"妖女】" NOR;        
        else 
                return YEL "【"+at+"天魔】" NOR;

        break;
case "bonze":           
        if(dx<1000) 
                return HIY "【 小尼姑 】" NOR;
        else if(dx<10000) 
                return HIY "【 小师太 】" NOR;  
        else if(dx<100000) 
                return HIY "【 圣  尼 】" NOR;
        else if(dx<500000) 
                return HIY "【"+at+"神尼】" NOR;        
        else 
                return HIY "【"+at+"菩萨】" NOR;
        break;
case "taoist":                     
        if(dx<1000) 
                return HIG "【 女道童 】" NOR;
        else if(dx<10000) 
                return HIG "【 小道姑 】" NOR;  
        else if(dx<100000) 
                return HIG "【 玄  女 】" NOR;
        else if(dx<500000) 
                return HIG "【"+at+"玄女】" NOR;        
        else 
                return HIG "【"+at+"圣母】" NOR;
        break;
case "shen":            
        if(avg<1000) 
                return HIC "【 小仙女 】" NOR;
        else if(avg<10000) 
                return HIC "【 仙  姑 】" NOR;  
        else if(avg<100000) 
                return HIC "【 神  女 】" NOR;
        else if(avg<500000) 
                return HIC "【"+at+"玄女】" NOR;        
        else 
                return HIC "【"+at+"圣女】" NOR;
        break;
case "dragon":          
        if(avg<1000) 
                return HIC "【 小宫娥 】" NOR;
        else if(avg<10000) 
                return HIC "【 母夜叉 】" NOR;  
        else if(avg<100000) 
                return HIC "【 小龙女 】" NOR;
        else if(avg<500000) 
                return HIC "【"+at+"龙女】" NOR;        
        else 
                return HIC "【"+at+"公主】" NOR;
        break;
case "scholar":
        if( (string)at=="未设" )
        {
                if((int)ob->query_skill("literate", 1)<20) 
                        return GRN "【 女学童 】" NOR;
                else if((int)ob->query_skill("literate", 1)<100) 
                        return GRN "【 才  女 】" NOR;
                else 
                        return GRN "【 女学士 】" NOR;
        }
        else
        {
                if((int)ob->query_skill("literate", 1)<20) 
                        return GRN "【 女学童 】" NOR;
                else if((int)ob->query_skill("literate", 1)<100) 
                        return GRN "【"+at+"秀才】" NOR;
                else 
                        return GRN "【"+at+"学士】" NOR;
        }
        break;
case "fighter":         
        if(exp<1000) 
                return HIR "【 女  兵 】" NOR;
        else if(exp<10000) 
                return HIR "【 女参将 】" NOR;  
        else if(exp<100000) 
                return HIR "【 女将军 】" NOR;
        else if(exp<500000) 
                return HIR "【"+at+"大将军】" NOR;      
        else 
                return HIR "【"+at+"大元帅】" NOR;
        break;
case "youling": 
        if(avg<1000) 
                return HIB "【阴曹小鬼】" NOR;
        else if(avg<10000) 
                return HIB "【迷魂女鬼】" NOR;  
        else if(avg<100000) 
                return HIB "【幽冥女使】" NOR;
        else if(avg<500000) 
                return HIB "【"+at+"修罗】" NOR;        
        else 
                return HIB "【"+at+"女王】" NOR;
        break;  
case "dancer":
        return GRN "【 舞  妓 】" NOR;  
        break;
default:                        
        if (age <= 16)
                                    return HIM "【 少  女 】"NOR;
                                else
                                    return CYN "【 民  妇 】"NOR;
//------------------end rank for girls--------------------
                                }
                        }
//begin 男性:
        default:
                switch(wizhood(ob)) 
                {
                        case "(admin)":         return HIY "【 天  神 】" NOR;
                        case "(arch)":                  return GRN "【 巫  师 】" NOR;
                        case "(wizard)":                return GRN "【 巫  师 】" NOR;
                        case "(apprentice)":                return GRN "【见习巫师】" NOR;
                                case "(immortal)":               return GRN "【客座巫师】" NOR;
                        case "(elder)":                     return GRN "【荣誉玩家】" NOR;
                        default:
                                switch(ob->query("class")) 
                                {
//------------------rank for men--------------------
case "swordsman":
        if(dx<1000) 
                return HIC "【 剑  童 】" NOR;
        else if(dx<10000) 
                return HIC "【 剑  士 】" NOR;
        else if(dx<100000) 
                return HIC "【 剑  客 】" NOR;
        else if(dx<500000) 
                return HIC "【"+at+"剑仙】" NOR;
        else 
                return HIC "【"+at+"剑圣】" NOR;
case "xian":                    
        if(dx<1000) 
                return RED "【 仙  童 】" NOR;
        else if(dx<10000) 
                return RED "【 散  仙 】" NOR;  
        else if(dx<100000) 
                return RED "【 大  仙 】" NOR;
        else if(dx<500000) 
                return RED "【"+at+"天王】" NOR;        
        else if(dx<1000000) 
                return RED "【"+at+"真君】" NOR;
        else 
                return RED "【"+at+"天尊】" NOR;
        break;
case "yaomo":
if ( ob->query("family/family_name") == "火云洞" )
        if(avg<1000) 
                return RED "【 小  妖 】" NOR;
        else if(avg<10000) 
                return RED "【 妖  怪 】" NOR;  
        else if(avg<100000) 
                return RED "【 护  法 】" NOR;
        else if(avg<500000) 
                return RED "【"+at+"护法】" NOR;        
        else if(avg<1000000) 
                return RED "【"+at+"洞主】" NOR;
        else 
                return RED "【"+at+"大圣】" NOR;
        if ( ob->query("family/family_name") == "盘丝洞" )
        if(avg<1000) 
                return MAG "【 小  魔 】" NOR;
        else if(avg<10000) 
                return MAG "【 精  灵 】" NOR;  
        else if(avg<100000) 
                return MAG "【 魔  鬼 】" NOR;
        else if(avg<500000) 
                return MAG "【 "+at+"精 】" NOR;        
        else if(avg<1000000) 
                return MAG "【"+at+"老怪】" NOR;
        else 
                return MAG "【"+at+"魔尊】" NOR;
 if ( ob->query("family/family_name") == "大雪山" )

                if(avg<1000) 
                return HIW "【 小  妖 】" NOR;
        else if(avg<10000) 
                return HIW "【 妖  怪 】" NOR;  
        else if(avg<100000) 
                return HIW "【 妖  仙 】" NOR;
        else if(avg<500000) 
                return HIW "【 "+at+"怪 】" NOR;        
        else if(avg<1000000) 
                return HIW "【"+at+"老魔】" NOR;
        else 
                return HIW "【"+at+"明王】" NOR;
 if ( ob->query("family/family_name") == "陷空山无底洞" )

                if(avg<1000) 
                return YEL "【 小  妖 】" NOR;
        else if(avg<10000) 
                return YEL "【 妖  怪 】" NOR;  
        else if(avg<100000) 
                return YEL "【 妖  仙 】" NOR;
        else if(avg<500000) 
                return YEL "【"+at+"妖王】" NOR;        
        else if(avg<1000000) 
                return YEL "【"+at+"老妖】" NOR;
        else 
                return YEL "【"+at+"天魔】" NOR;

        break;
case "bonze":           
        if(dx<1000) 
                return HIY "【 小和尚 】" NOR;
        else if(dx<10000) 
                return HIY "【 比  丘 】" NOR;  
        else if(dx<100000) 
                return HIY "【 圣  僧 】" NOR;
        else if(dx<500000) 
                return HIY "【"+at+"禅师】" NOR;        
        else if(dx<1000000) 
                return HIY "【"+at+"长老】" NOR;
        else 
                return HIY "【"+at+"佛】" NOR;
        break;
case "taoist":                      
        if(dx<1000) 
                return HIG "【 小道士 】" NOR;
        else if(dx<10000) 
                return HIG "【 道  士 】" NOR;  
        else if(dx<100000) 
                return HIG "【 道  长 】" NOR;
        else if(dx<500000) 
                return HIG "【"+at+"天师】" NOR;        
        else if(dx<1000000) 
                return HIG "【"+at+"真人】" NOR;
        else 
                return HIG "【"+at+"祖师】" NOR;
        break;
case "shen":            
        if(avg<1000) 
                return HIC "【 小仙童 】" NOR;
        else if(avg<10000) 
                return HIC "【 仙  童 】" NOR;  
        else if(avg<100000) 
                return HIC "【 小  仙 】" NOR;
        else if(avg<500000) 
                return HIC "【"+at+"仙人】" NOR;        
        else 
                return HIC "【"+at+"神仙】" NOR;
        break;
case "dragon":          
        if(avg<1000) 
                return HIC "【 虾  兵 】" NOR;
        else if(avg<10000) 
                return HIC "【 蟹  将 】" NOR;  
        else if(avg<100000) 
                return HIC "【巡海夜叉】" NOR;
        else if(avg<500000) 
                return HIC "【"+at+"夜叉】" NOR;        
        else if(avg<1000000) 
                return HIC "【"+at+"天龙】" NOR;
        else 
                return HIC "【"+at+"海王】" NOR;
        break;
case "scholar":
        if( (string)at=="无名" )
        {
                if((int)ob->query_skill("literate", 1)<20) 
                        return RED "【 童  生 】" NOR;
                else if((int)ob->query_skill("literate", 1)<100) 
                        return RED "【 秀  才 】" NOR;
                else 
                        return RED "【 大学士 】" NOR;
        }
        else
        {
                if((int)ob->query_skill("literate", 1)<20) 
                        return RED "【 童  生 】" NOR;
                else if((int)ob->query_skill("literate", 1)<100) 
                        return RED "【"+at+"秀才】" NOR;
                else 
                        return RED "【"+at+"学士】" NOR;
        }
        break;
case "fighter":         
        if(exp<1000) 
                return HIR "【 小  兵 】" NOR;
        else if(exp<10000) 
                return HIR "【 小  校 】" NOR;  
        else if(exp<100000) 
                return HIR "【 参  将 】" NOR;
        else if(exp<500000) 
                return HIR "【"+at+"将军】" NOR;        
        else if(exp<1000000) 
                return HIR "【"+at+"大将军】" NOR;
        else 
                return HIR "【"+at+"大元帅】" NOR;
        break;
case "youling": 
        if(avg<1000) 
                return HIB "【阴曹小鬼】" NOR;
        else if(avg<10000) 
                return HIB "【勾魂使者】" NOR;  
        else if(avg<100000) 
                return HIB "【地府判官】" NOR;
        else if(avg<500000) 
                return HIB "【"+at+"无常】" NOR;        
        else if(avg<1000000) 
                return HIB "【"+at+"王】" NOR;
        else 
                return HIB "【"+at+"冥王】" NOR;
        break;
default:
        if (age <= 16)
                                            return "【 少  年 】";
                                        else
                                            return CYN"【 平  民 】"NOR;
//------------------end rank for men--------------------
                                }
                        }
        }
}
コード例 #17
0
ファイル: rankd.c プロジェクト: mudchina/sjsh
string _query_rank(object ob)
{
	string at;
	int dx, exp, avg;

	if(strlen(ob->query("added_title"))<1) ob->set("added_title", "无名");
	//need this default, otherwise looks too ugly sometimes.

	at = ob->query("added_title");
	dx = (int)ob->query("daoxing");
	exp = (int)ob->query("combat_exp");
	avg = (dx + exp)/2;

	if( ob->is_ghost() ) return HIB "【 鬼  魂 】" NOR;
	switch(ob->query("gender")) 
	{
	case "女性":
		switch(wizhood(ob)) {
                        case "(admin)": return HIW "【 三界帝后 】" NOR;
                        case "(arch)":          return HIR "【 三界天后 】" NOR;
                        case "(wizard)":        return HIC "【 三界巫女 】" NOR;
                        case "(apprentice)":    return HIW "【见习巫女】" NOR;
                                case "(immortal)":      return HIW "【客座巫女】" NOR;
                                case "(elder)":         return HIG "【荣誉玩家】" NOR;
			default:
				switch(ob->query("class")) 
				{
//------------------rank for girls--------------------
case "tianpeng":
if ( ob->query("family/family_name") == "天蓬元帅府" )
        if(dx<1000) 
                return HIR "【 女家兵 】" NOR;
        else if(dx<10000) 
                 return HIR "【 女家将 】" NOR;
        else if(dx<500000) 
                return HIR "【 右护法 】" NOR;
        else if(dx<1000000) 
                return HIR "【"+at+"元帅右护法】" NOR;
        else 
                return HIR "【"+at+"元帅右亲信】" NOR;
                break; 
case "kunlun":
             if(dx<1000)  
                    return RED "【 小仙女 】" NOR; 
             if(dx<10000)  
                    return RED "【 小仙姑 】" NOR; 
             if(dx<100000)  
                    return RED "【 灵  姑 】" NOR; 
             if(dx<500000)  
                    return RED "【"+at+"灵姑】" NOR; 
             if(dx<700000)
                    return RED "【"+at+"圣灵姑】" NOR; 
            else  
                return HIW "【"+at+"圣灵母】" NOR;
            break; 
case "youxia":
                if(dx<1000)  
                        return HIM "【 女  侠 】" NOR; 
                else if(dx<10000)  
                        return HIM "【 女游侠 】" NOR; 
                else if(dx<500000)  
                        return HIM "【 "+at+"侠女 】" NOR; 
                else if(dx<1000000)  
                        return HIM "【 "+at+"大侠 】" NOR; 
                else  
                        return HIM "【 "+at+"圣侠 】" NOR; 
                break; 
case "wusheng":		           
	if(dx<1000) 
		return GRN "【 玉罗刹 】" NOR;
	else if(dx<10000) 
		return GRN "【 女罗汉 】" NOR;	
	else if(dx<100000) 
		return GRN "【 尊 者 】" NOR;
	else if(dx<500000) 
		return GRN "【"+at+"尊者】" NOR;	
	else 
		return GRN "【"+at+"圣君】" NOR;
	break;
case "sanjie":
if ( ob->query("family/family_name") == "三界山" )
	if(dx<1000) 
		return HIR "【 小魔女 】" NOR;
	else if(dx<10000) 
		return HIR "【 妖 精 】" NOR;
	else if(dx<500000) 
		return HIR "【 魔 女 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"女魔王】" NOR;
	else 
		return HIR "【"+at+"大女魔王】" NOR;
	break;		

/*
if ( ob->query("family/family_name") == "天一宫" )
	if(dx<1000) 
		return HIR "【 道 姑 】" NOR;
	else if(dx<10000) 
		return HIR "【 仙 姑 】" NOR;
	else if(dx<500000) 
		return HIR "【 玄 女 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"圣女】" NOR;
	else 
		return HIR "【"+at+"圣母】" NOR;
		
if ( ob->query("family/family_name") == "天妖宫" )
	if(dx<1000) 
		return HIR "【 妖 女 】" NOR;
	else if(dx<10000) 
		return HIR "【 妖 精 】" NOR;
	else if(dx<500000) 
		return HIR "【 妖 后 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"女妖王】" NOR;
	else 
		return HIR "【"+at+"大女妖王】" NOR;
		
if ( ob->query("family/family_name") == "天魔宫" )
	if(dx<1000) 
		return HIR "【 小魔女 】" NOR;
	else if(dx<10000) 
		return HIR "【 妖 精 】" NOR;
	else if(dx<500000) 
		return HIR "【 魔 女 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"女魔王】" NOR;
	else 
		return HIR "【"+at+"大女魔王】" NOR;
		
if ( ob->query("family/family_name") == "藏尸地" )
	if(dx<1000) 
		return HIR "【 女死尸 】" NOR;
	else if(dx<10000) 
		return HIR "【 女丧尸 】" NOR;
	else if(dx<500000) 
		return HIR "【 女僵尸 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"丧尸王后】" NOR;
	else 
		return HIR "【"+at+"僵尸王后】" NOR;

if ( ob->query("family/family_name") == "雷刀门" )
	if(dx<1000) 
		return HIR "【 女刀手 】" NOR;
	else if(dx<10000) 
		return HIR "【 女刀客 】" NOR;
	else if(dx<500000) 
		return HIR "【 女刀侠 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"女刀仙】" NOR;
	else 
		return HIR "【"+at+"女刀王】" NOR;
	break;
*/

case "swordsman":
	if(dx<1000) 
		return HIC "【 女剑童 】" NOR;
	else if(dx<10000) 
		return HIC "【 女剑士 】" NOR;
	else if(dx<500000) 
		return HIC "【 女剑客 】" NOR;
	else if(dx<1000000) 
		return HIC "【"+at+"剑仙】" NOR;
	else 
		return HIC "【"+at+"剑圣】" NOR;
	break;
case "xian":
	if(dx<1000) 
		return HIM "【 玉  女 】" NOR;
	else if(dx<10000) 
		return HIM "【 小神女 】" NOR;	
	else if(dx<100000) 
		return HIM "【 神  女 】" NOR;
	else if(dx<500000) 
		return HIM "【"+at+"仙妃】" NOR;	
 else if ( ob->query("family/family_name") == "五庄观" )
       return HIC "【"+at+"天仙】" NOR;
   else
		return HIM "【"+at+"天后】" NOR;
	break;
case "yaomo":
if ( ob->query("family/family_name") == "盘丝洞" )
	if(avg<1000) 
		return MAG "【 小妖女 】" NOR;
	else if(avg<10000) 
		return MAG "【 妖  精 】" NOR;	
	else if(avg<100000) 
		return MAG "【 女  魔 】" NOR;
	else if(avg<500000) 
		return MAG "【"+at+"魔女】" NOR;	
	else 
		return MAG "【"+at+"女魔王】" NOR;
if ( ob->query("family/family_name") == "火云洞" )
	if(avg<1000) 
		return RED "【 小妖女 】" NOR;
	else if(avg<10000) 
		return RED "【 妖  精 】" NOR;	
	else if(avg<100000) 
		return RED "【 女  魔 】" NOR;
	else if(avg<500000) 
		return RED "【"+at+"魔女】" NOR;	
	else 
		return RED "【"+at+"女魔王】" NOR;
if ( ob->query("family/family_name") == "大雪山" )
	
		if(avg<1000) 
		return HIW "【 小妖女 】" NOR;
	else if(avg<10000) 
		return HIW "【 妖  精 】" NOR;	
	else if(avg<100000) 
		return HIW "【 女  魔 】" NOR;
	else if(avg<500000) 
		return HIW "【"+at+"魔女】" NOR;	
	else 
		return HIW "【"+at+"女魔王】" NOR;

if ( ob->query("family/family_name") == "陷空山无底洞" )
		if(avg<1000) 
		return YEL "【 小妖女 】" NOR;
	else if(avg<10000) 
		return YEL "【 妖  精 】" NOR;	
	else if(avg<100000) 
		return YEL "【 女  魔 】" NOR;
	else if(avg<500000) 
		return YEL "【"+at+"魔女】" NOR;	
	else 
		return YEL "【"+at+"女魔王】" NOR;

	break;
case "bonze":		
	if(dx<1000) 
		return HIY "【 小尼姑 】" NOR;
	else if(dx<10000) 
		return HIY "【 小师太 】" NOR;	
	else if(dx<100000) 
		return HIY "【 圣  尼 】" NOR;
	else if(dx<500000) 
		return HIY "【"+at+"神尼】" NOR;	
	else 
		return HIY "【"+at+"菩萨】" NOR;
	break;
case "taoist":		           
	if(dx<1000) 
		return HIG "【 女道童 】" NOR;
	else if(dx<10000) 
		return HIG "【 小道姑 】" NOR;	
	else if(dx<100000) 
		return HIG "【 玄  女 】" NOR;
	else if(dx<500000) 
		return HIG "【"+at+"玄女】" NOR;	
	else 
		return HIG "【"+at+"圣母】" NOR;
	break;
case "dragon":		
	if(avg<1000) 
		return HIC "【 小宫娥 】" NOR;
	else if(avg<10000) 
		return HIC "【 母夜叉 】" NOR;	
	else if(avg<100000) 
		return HIC "【 小龙女 】" NOR;
	else if(avg<500000) 
		return HIC "【"+at+"龙女】" NOR;	
	else 
		return HIC "【"+at+"公主】" NOR;
	break;
case "scholar":
	if( (string)at=="未设" )
	{
		if((int)ob->query_skill("literate", 1)<20) 
			return GRN "【 女学童 】" NOR;
		else if((int)ob->query_skill("literate", 1)<100) 
			return GRN "【 才  女 】" NOR;
		else 
			return GRN "【 女学士 】" NOR;
	}
	else
	{
		if((int)ob->query_skill("literate", 1)<20) 
			return GRN "【 女学童 】" NOR;
		else if((int)ob->query_skill("literate", 1)<100) 
			return GRN "【"+at+"秀才】" NOR;
		else 
			return GRN "【"+at+"学士】" NOR;
	}
	break;
case "fighter":		
	if(exp<1000) 
		return HIR "【 女  兵 】" NOR;
	else if(exp<10000) 
		return HIR "【 女参将 】" NOR;	
	else if(exp<100000) 
		return HIR "【 女将军 】" NOR;
	else if(exp<500000) 
		return HIR "【"+at+"大将军】" NOR;	
	else 
		return HIR "【"+at+"大元帅】" NOR;
	break;
case "youling":	
	if(avg<1000) 
		return HIB "【阴曹小鬼】" NOR;
	else if(avg<10000) 
		return HIB "【迷魂女鬼】" NOR;	
	else if(avg<100000) 
		return HIB "【幽冥女使】" NOR;
	else if(avg<500000) 
		return HIB "【"+at+"修罗】" NOR;	
	else 
		return HIB "【"+at+"女王】" NOR;
	break;	
case "dancer":
	return GRN "【 舞  妓 】" NOR;	
	break;
default:			
        return  HIM "【  少  女  】" NOR;
//------------------end rank for girls--------------------
				}
			}
//begin 男性:
	default:
		switch(wizhood(ob)) 
		{
                        case "(admin)":         return HIW "【 三界帝王 】" NOR;
                        case "(arch)":                  return HIR "【 三界天王 】" NOR;
                        case "(wizard)":        return HIC "【 三界神君 】" NOR;
                        case "(apprentice)":                return HIW "【见习巫师】" NOR;
                                case "(immortal)":               return HIW "【客座巫师】" NOR;
                        case "(elder)":                     return HIW "【荣誉玩家】" NOR;
			default:
				switch(ob->query("class")) 
				{
//------------------rank for men--------------------
case "tianpeng":
        if(dx<1000) 
                return GRN "【 男家丁 】" NOR;
        else if(dx<10000) 
                return GRN "【 大战将 】" NOR;  
        else if(dx<100000) 
                return GRN "【 左护法 】" NOR;
        else if(dx<500000) 
                return GRN "【"+at+"元帅左护法】" NOR;        
        else 
                return GRN "【"+at+"元帅左亲信】" NOR;
        break;
case "kunlun":                    
             if(dx<1000)  
                return CYN "【 小  仙 】" NOR;
             if(dx<10000)  
                return CYN "【 大  仙 】" NOR;
             if(dx<100000)  
                return CYN "【 灵  仙 】" NOR;
             if(dx<500000)  
                return CYN "【"+at+"灵仙】" NOR;
             if(dx<700000)  
                return CYN "【"+at+"圣灵仙】" NOR;
            else  
                return HIW "【"+at+"圣灵尊】" NOR;
            break; 
case "youxia":
        if(dx<1000) 
                 return HIC "【 少 侠 】" NOR;
        else if(dx<10000) 
                return HIC "【 游 侠 】" NOR;  
        else if(dx<100000) 
                return HIC "【 "+at+"侠士 】" NOR;
        else if(dx<500000) 
                return HIC "【 "+at+"大侠 】" NOR;
        else 
                return HIC "【 "+at+"圣侠 】" NOR;
        break;
case "wusheng":                    
	if(dx<1000) 
		return GRN "【 大罗刹 】" NOR;
	else if(dx<10000) 
		return GRN "【 大罗汉 】" NOR;	
	else if(dx<100000) 
		return GRN "【 尊 者 】" NOR;
	else if(dx<500000) 
		return GRN "【"+at+"尊者】" NOR;	
	else 
		return GRN "【"+at+"武帝】" NOR;
	break;
case "sanjie":
if ( ob->query("family/family_name") == "三界山" )
	if(dx<1000) 
		return HIR "【 三散人 】" NOR;
	else if(dx<10000) 
		return HIR "【 三圣人 】" NOR;
	else if(dx<500000) 
		return HIR "【 真 人 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"妖仙魔】" NOR;
	else 
		return HIR "【"+at+"元神】" NOR;

/*
if ( ob->query("family/family_name") == "天一宫" )
	if(dx<1000) 
		return HIR "【 道 长 】" NOR;
	else if(dx<10000) 
		return HIR "【 仙 长 】" NOR;
	else if(dx<500000) 
		return HIR "【 真 人 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"天师】" NOR;
	else 
		return HIR "【"+at+"祖师】" NOR;
		
if ( ob->query("family/family_name") == "天妖宫" )
	if(dx<1000) 
		return HIR "【 小 妖 】" NOR;
	else if(dx<10000) 
		return HIR "【 妖 怪 】" NOR;
	else if(dx<500000) 
		return HIR "【 妖 仙 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"妖王】" NOR;
	else 
		return HIR "【"+at+"大妖王】" NOR;
		
if ( ob->query("family/family_name") == "天魔宫" )
	if(dx<1000) 
		return HIR "【 小魔头 】" NOR;
	else if(dx<10000) 
		return HIR "【 魔 兽 】" NOR;
	else if(dx<500000) 
		return HIR "【 魔 头 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"魔王】" NOR;
	else 
		return HIR "【"+at+"大魔王】" NOR;
		
if ( ob->query("family/family_name") == "藏尸地" )
	if(dx<1000) 
		return HIR "【 死 尸 】" NOR;
	else if(dx<10000) 
		return HIR "【 丧 尸 】" NOR;
	else if(dx<500000) 
		return HIR "【 僵 尸 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"丧尸王】" NOR;
	else 
		return HIR "【"+at+"僵尸王】" NOR;

if ( ob->query("family/family_name") == "雷刀门" )
	if(dx<1000) 
		return HIR "【 刀 手 】" NOR;
	else if(dx<10000) 
		return HIR "【 刀 客 】" NOR;
	else if(dx<500000) 
		return HIR "【 刀 侠 】" NOR;
	else if(dx<1000000) 
		return HIR "【"+at+"刀仙】" NOR;
	else 
		return HIR "【"+at+"刀王】" NOR;
	break;
*/

case "swordsman":
	if(dx<1000) 
		return HIC "【 剑  童 】" NOR;
	else if(dx<10000) 
		return HIC "【 剑  士 】" NOR;
	else if(dx<100000) 
		return HIC "【 剑  客 】" NOR;
	else if(dx<500000) 
		return HIC "【"+at+"剑仙】" NOR;
	else 
		return HIC "【"+at+"剑圣】" NOR;
	break;
case "xian":	            	
	if(dx<1000) 
		return RED "【 仙  童 】" NOR;
	else if(dx<10000) 
		return RED "【 散  仙 】" NOR;	
	else if(dx<100000) 
		return RED "【 大  仙 】" NOR;
	else if(dx<500000) 
		return RED "【"+at+"大仙】" NOR;	
	else if(dx<1000000) 
		return RED "【"+at+"真君】" NOR;
	else 
		return RED "【"+at+"天尊】" NOR;
	break;
case "yaomo":
if ( ob->query("family/family_name") == "火云洞" )
	if(avg<1000) 
		return RED "【 小  妖 】" NOR;
	else if(avg<10000) 
		return RED "【 妖  怪 】" NOR;	
	else if(avg<100000) 
		return RED "【 妖  仙 】" NOR;
	else if(avg<500000) 
		return RED "【 "+at+"怪 】" NOR;	
	else if(avg<1000000) 
		return RED "【"+at+"老魔】" NOR;
	else 
		return RED "【"+at+"魔王】" NOR;
	if ( ob->query("family/family_name") == "盘丝洞" )
	if(avg<1000) 
		return MAG "【 小  妖 】" NOR;
	else if(avg<10000) 
		return MAG "【 妖  怪 】" NOR;	
	else if(avg<100000) 
		return MAG "【 妖  仙 】" NOR;
	else if(avg<500000) 
		return MAG "【 "+at+"怪 】" NOR;	
	else if(avg<1000000) 
		return MAG "【"+at+"老魔】" NOR;
	else 
		return MAG "【"+at+"魔王】" NOR;
 if ( ob->query("family/family_name") == "大雪山" )

		if(avg<1000) 
		return HIW "【 小  妖 】" NOR;
	else if(avg<10000) 
		return HIW "【 妖  怪 】" NOR;	
	else if(avg<100000) 
		return HIW "【 妖  仙 】" NOR;
	else if(avg<500000) 
		return HIW "【 "+at+"怪 】" NOR;	
	else if(avg<1000000) 
		return HIW "【"+at+"老魔】" NOR;
	else 
		return HIW "【"+at+"魔王】" NOR;
 if ( ob->query("family/family_name") == "陷空山无底洞" )

		if(avg<1000) 
		return YEL "【 小  妖 】" NOR;
	else if(avg<10000) 
		return YEL "【 妖  怪 】" NOR;	
	else if(avg<100000) 
		return YEL "【 妖  仙 】" NOR;
	else if(avg<500000) 
		return YEL "【 "+at+"怪 】" NOR;	
	else if(avg<1000000) 
		return YEL "【"+at+"老魔】" NOR;
	else 
		return YEL "【"+at+"魔王】" NOR;

	break;
case "bonze":		
	if(dx<1000) 
		return HIY "【 小和尚 】" NOR;
	else if(dx<10000) 
		return HIY "【 比  丘 】" NOR;	
	else if(dx<100000) 
		return HIY "【 圣  僧 】" NOR;
	else if(dx<500000) 
		return HIY "【"+at+"禅师】" NOR;	
	else if(dx<1000000) 
		return HIY "【"+at+"长老】" NOR;
	else 
		return HIY "【"+at+"佛】" NOR;
	break;
case "taoist":		            
	if(dx<1000) 
		return HIG "【 小道士 】" NOR;
	else if(dx<10000) 
		return HIG "【 道  士 】" NOR;	
	else if(dx<100000) 
		return HIG "【 道  长 】" NOR;
	else if(dx<500000) 
		return HIG "【"+at+"天师】" NOR;	
	else if(dx<1000000) 
		return HIG "【"+at+"真人】" NOR;
	else 
		return HIG "【"+at+"祖师】" NOR;
	break;
case "dragon":		
	if(avg<1000) 
		return HIC "【 虾  兵 】" NOR;
	else if(avg<10000) 
		return HIC "【 蟹  将 】" NOR;	
	else if(avg<100000) 
		return HIC "【巡海夜叉】" NOR;
	else if(avg<500000) 
		return HIC "【"+at+"夜叉】" NOR;	
	else if(avg<1000000) 
		return HIC "【"+at+"龙】" NOR;
	else 
		return HIC "【"+at+"天龙】" NOR;
	break;
case "scholar":
	if( (string)at=="无名" )
	{
		if((int)ob->query_skill("literate", 1)<20) 
			return RED "【 童  生 】" NOR;
		else if((int)ob->query_skill("literate", 1)<100) 
			return RED "【 秀  才 】" NOR;
		else 
			return RED "【 大学士 】" NOR;
	}
	else
	{
		if((int)ob->query_skill("literate", 1)<20) 
			return RED "【 童  生 】" NOR;
		else if((int)ob->query_skill("literate", 1)<100) 
			return RED "【"+at+"秀才】" NOR;
		else 
			return RED "【"+at+"学士】" NOR;
	}
	break;
case "fighter":		
	if(exp<1000) 
		return HIR "【 小  兵 】" NOR;
	else if(exp<10000) 
		return HIR "【 小  校 】" NOR;	
	else if(exp<100000) 
		return HIR "【 参  将 】" NOR;
	else if(exp<500000) 
		return HIR "【"+at+"将军】" NOR;	
	else if(exp<1000000) 
		return HIR "【"+at+"大将军】" NOR;
	else 
		return HIR "【"+at+"大元帅】" NOR;
	break;
case "youling":	
	if(avg<1000) 
		return HIB "【阴曹小鬼】" NOR;
	else if(avg<10000) 
		return HIB "【勾魂使者】" NOR;	
	else if(avg<100000) 
		return HIB "【地府判官】" NOR;
	else if(avg<500000) 
		return HIB "【"+at+"无常】" NOR;	
	else if(avg<1000000) 
		return HIB "【"+at+"王】" NOR;
	else 
		return HIB "【"+at+"冥王】" NOR;
	break;
default:
        return "【  少  年  】";
//------------------end rank for men--------------------
				}
			}
	}
}