rankdbak.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 533 行 · 第 1/2 页

C
533
字号
// rankd.c
// 1996-02-15 dts ranking related to "shen"

#include <ansi.h>

string query_rank(object ob)
{
        mapping fam;

        int exp;
        int shen;
        int budd;
        int age;

        if( ob->is_ghost() )
                return HIB "【 鬼  魂 】" NOR;

        shen = ob->query("shen");
        exp = ob->query("combat_exp");
        age = ob->query("age");
        if ( (fam = ob->query("family")) && (fam["family_name"] == "少林派"
                || fam["family_name"] == "峨嵋派"
                || fam["family_name"] == "天龙寺"
                || fam["family_name"] == "雪山派"
                || fam["family_name"] == "恒山派"
                ))
                budd = ob->query_skill("buddhism",1);
        if(exp >=2500000 && shen >=200000)
                return HIW "【传说中的大侠】" NOR;
        if(exp >=2500000 && shen <=-200000)
                return HIW "【传说中的魔王】" NOR;
        if(exp >=1500000)
                return HIW "【武林传奇】" NOR;


        switch(ob->query("gender")) {
        case "女性":
                switch(wizhood(ob)) {
                case "(admin)":
                        return HIM "【 天  后 】" 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 "【 惯  窃 】";
                         if (shen >= 100000 && exp >=800000)
                                return HIC "【旷世女侠】" NOR;
                        else if (shen >= 10000 && exp >=400000)
                                return HIC "【 大女侠 】" NOR;
                        else if (shen >= 1000 && exp >=200000)
                                return HIC "【 女  侠 】" NOR;
                        else if (shen >= 100 && exp >=50000)
                                return HIC "【 女少侠 】" NOR;
                        else if (shen <= -100000 && exp >=800000)
                                return HIC "【 女魔王 】" NOR;
                        else if (shen <= -10000 && exp >=400000)
                                return HIC "【 大女魔 】" NOR;
                        else if (shen <= -1000 && exp >=200000)
                                return HIC "【 女  魔 】" NOR;
                        else if (shen <= -100 && exp >=50000)
                                return HIC "【 女少魔 】" NOR;
                        else
                        switch(ob->query("class")) {
                        case "bonze":
                             if (budd >= 150)
                                return HIY "【 神  尼 】" NOR;
                             else if (budd >= 120)
                                return HIY "【 圣  尼 】" NOR;
                             else if (budd >= 90)
                                return HIY "【 德  尼 】" NOR;
                             else if (budd >= 60)
                                return HIC "【 贤  尼 】" NOR;
                             else if (budd >= 30)
                                return HIG "【 师  太 】" NOR;
                             else if (age <= 16)
                                return "【 小尼姑 】";
                             else
                                return "【 尼  姑 】";
                        case "taoist":
                             if (age <= 16)
                                return "【 小道姑 】";
                             else if (age <= 30)
                                return "【 道  姑 】";
                             else
                                return "【 玄  女 】";
                        case "bandit":
                                return "【 女飞贼 】";
                        case "dancer":
                                return "【 舞  妓 】";
                        case "scholar":
                             if (age <= 16)
                                return "【 女学童 】";
                             else if (age <= 30)
                                return "【 才  女 】";
                             else
                                return "【 女学士 】";
                        case "officer":
                                return "【 女  官 】";
                        case "fighter":
                                return "【 女武者 】";
                        case "swordsman":
                                return "【 女剑士 】";
                        case "alchemist":
                                return "【 女方士 】";
                        case "shaman":
                                return "【 女巫医 】";
                        case "beggar":
                                return "【 女叫化 】";
                        case "prostitute":
                                return "【 妓  女 】";			    case "mr":                                return HIB"【 慕容世家 】"NOR;			    case "tiezhang":                                return HIY"【 铁掌弟子 】"NOR;                        default:
                                if (age <= 16)
                                    return "【 少  女 】";
                                else
                                    return "【 民  妇 】";
                        }
                }
        default:
                switch(wizhood(ob)) {
                case "(admin)":
                        return HIM "【 天  帝 】" NOR;
                case "(arch)":
                        return HIY "【 大  神 】" NOR;
                case "(wizard)":
                        return HIG "【 神  仙 】" NOR;
                case "(apprentice)":
                        return HIC "【 散  仙 】" NOR;
                case "(immortal)":
                        return HIC "【 半  仙 】" NOR;
                default:
                        if (shen >= 100000 && exp >=800000)
                                return HIC "【旷世大侠】" NOR;
                        else if (shen >= 10000 && exp >=400000)
                                return HIC "【 大  侠 】" NOR;
                        else if (shen >= 1000 && exp >=200000)
                                return HIC "【 侠  客 】" NOR;
                        else if (shen >= 100 && exp >=50000)
                                return HIC "【 少  侠 】" NOR;
                        else if (shen <= -100000 && exp >=800000)
                                return HIC "【混世魔王】" NOR;
                        else if (shen <= -10000 && exp >=400000)
                                return HIC "【 大  魔 】" NOR;
                        else if (shen <= -1000 && exp >=200000)
                                return HIC "【 魔  头 】" NOR;
                        else if (shen <= -100 && exp >=50000)
                                return HIC "【 少  魔 】" NOR;
                        else
                        if (((int)ob->query("PKS") > 100) &&
                            ((int)ob->query("PKS") > (int)ob->query("MKS")))
                                return "【 杀人魔 】";
                        if ((int)ob->query("thief") > 10 )
                                return "【 惯  窃 】";
                        else
                                switch(ob->query("class")) {
                                case "bonze":
                                        if (budd >= 150)
                                                return HIY "【 长  老 】" NOR;
                                        else if (budd >= 120)
                                                return HIY "【 圣  僧 】" NOR;
                                        else if (budd >= 90)
                                                return HIY "【 罗  汉 】" NOR;
                                        else if (budd >= 60)
                                                return HIY "【 尊  者 】" NOR;
                                        else if (budd >= 40)
                                                return HIY "【 禅  师 】" NOR;
                                        else if (budd >= 30)
                                                return HIY "【 比  丘 】" NOR;
                                        else if (age <= 16)
                                                return HIY "【 小和尚 】" NOR;
                                        else
                                                return "【 僧  人 】";
                                case "taoist":
                                        if (ob->query_skill("taoism",1)>100)
                                           return "【 真  人 】";
                                        else if (age <= 16)
                                           return "【 小道士 】";
                                        else if (age <= 30)
                                           return "【 道  士 】";
                                        else
                                           return "【 道  长 】";
                                case "bandit":
                                        return "【 盗  贼 】";
                                case "scholar":
                                     if (age <= 16)
                                        return "【 学  童 】";
                                     else if (age <= 45)
                                        return "【 书  生 】";
                                     else
                                        return "【 老秀才 】";
                                case "officer":
                                        return "【 官  差 】";
                                case "fighter":
                                        return "【 武  者 】";
                                case "swordsman":
                                        return "【 剑  士 】";
                                case "alchemist":
                                        return "【 方  士 】";
                                case "shaman":
                                        return "【 巫  医 】";
                                case "mr":                                return HIB"【 慕容世家 】"NOR;			            case "tiezhang":                                return HIY"【 铁掌弟子 】"NOR;			        	case "beggar":
                                        if (age <= 16)
                                            return "【 小叫化 】";
                                        else
                                            return "【 叫化子 】";
                                case "eunach":
                                        budd = ob->query_skill("pixie-jian",1);
                                        if (budd >= 110)
                                                return HIY "【大内高手】" NOR;
                                        else if (budd >= 100)
                                                return HIY "【东厂万户】" NOR;
                                        else if (budd >= 90)
                                                return HIY "【东厂千户】" NOR;
                                        else if (budd >= 80)
                                                return HIY "【东厂百户】" NOR;
                                        else if (budd >= 70)
                                                return HIY "【东厂十户】" NOR;
                                        else if (budd >= 60)
                                                return HIY "【东厂公公】" NOR;
                                        else return "【 内  侍 】";
                                case "prostitute":
                                        return "【 龟  公 】";
                                default:
                                        if (age <= 16)
                                            return "【 少  年 】";
                                        else
                                            return "【 平  民 】";
                                }
                }
        }
}

string query_respect(object ob)
{
        int age;
        string str;

        if( stringp(str = ob->query("rank_info/respect")) )
                return str;

        age = ob->query("age");
        switch(ob->query("gender")) {
                case "女性":
                        switch(ob->query("class")) {
                        case "bonze":
                                if( age < 18 ) return "小师太";
                                else return "师太";
                                break;
                        case "taoist":
                                if( age < 18 ) return "小仙姑";
                                else return "仙姑";

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?