top.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 119 行
C
119 行
#include <ansi.h>#include <mudlib.h>inherit F_CLEAN_UP;int top_list(object ob1,object ob2);int get_score(object ob);int main(object me, string arg){ object *list,*ob; int i; string msg; ob = filter_array(children(USER_OB),(: userp($1) && !wizardp($1) :)); list = sort_array(ob, (: top_list :)); msg = "\n ┏ "+BCYN HIR+MUD_NAME+"在线高手排行榜"NOR" ┓\n"+HIG; msg += "┏━━━┯━┻━━━━━━━━━┯━━┻━┯━━━━━━┓\n"; msg += "┃ 名次 │ 高 手 │ 门 派 │ 得 分 ┃\n"; msg += "┠───┴─────────━─┴────┴──━━──│\n"; for (i = 0 ;i < 20 ; i++) { if( i >= sizeof(list)) msg += HIG+"┃暂时空缺。 \n"; else { if(list[i] == me) { msg +=BCYN HIR; } else { msg +=HIG; }/*if (!wizardp(me)){ msg += sprintf("┃ %-5s %-22s%-10s %5s ┃"NOR"\n"NOR,chinese_number(i+1),list[i]->query("name")+"("+ capitalize(list[i]->query("id"))+")", list[i]->query("family")? list[i]->query("family/family_name"):"普通百姓", "????");}else{*/ msg += sprintf("┃ %-5s %-22s%-10s %5d ┃"NOR"\n"NOR,chinese_number(i+1),list[i]->query("name")+"("+ capitalize(list[i]->query("id"))+")", list[i]->query("family")? list[i]->query("family/family_name"):"普通百姓", get_score(list[i]));//} } } msg += HIG+"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"; write(msg); msg = "\n ┏ "+BCYN HIC+MUD_NAME+":你现在的评价如下:"NOR" ┓\n"+HIC; msg += "┏━━━┯━┻━━━━━━━━━┯━━┻━┯━━━━━━┓\n"; msg += "┃ 名次 │ 高 手 │ 门 派 │ 得 分 ┃\n"; msg += "┠───┴─────────━─┴────┴──━━──│\n"; for (i = 0 ;i < 1 ; i++) { if( i >= sizeof(list)) msg += HIC+"┃暂时空缺。 \n"; else { if(list[i] == me) { msg +=HIR; } else { msg +=HIC; } msg += sprintf("┃ %-5s %-22s%-10s %5d ┃"NOR"\n"NOR,chinese_number(i+1),me->query("name")+"("+ capitalize(me->query("id"))+")", me->query("family")? me->query("family/family_name"):"普通百姓", get_score(me)); } } msg += HIC+"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"; msg += HIG+" " + NATURE_D->game_time() + "记。\n"+NOR; write(msg); return 1;}int top_list(object ob1, object ob2){ int score1,score2; score1 = get_score(ob1); score2 = get_score(ob2); return score2 - score1;}int get_score(object ob){ int tlvl,i,score; string *ski; mapping skills; object me=this_player(); reset_eval_cost(); skills = ob->query_skills(); if (!sizeof(skills)) return 1; if (!me->query("zhuanshen") && ob->query("zhuanshen")) return 1; if (!me->query("guard/flag") && ob->query("guard/flag")) return 1; if (!me->query("zhuanbest") && ob->query("zhuanbest")) return 1; ski = keys(skills); for(i = 0; i<sizeof(ski); i++) { tlvl += skills[ski[i]]; } score = tlvl/10; score += ob->query("max_neili")/10; score += ob->query_str() + ob->query_int() + ob->query_dex() + ob->query_con(); score += (int)ob->query("combat_exp")/2500; return score;}int help(object me){write(@HELP指令格式 : top 这个指令可以让你知道在线二十大高手是哪些,别去惹他们。 HELP ); return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?