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 + -
显示快捷键?