/* -*- LPC -*- */ inherit COMMAND_BASE; #include <tasks.h> #define STATS_DIR "/save/tasks/" #define DIVISOR 100 int do_summary(); int cmd(string str) { string file, cmd, tmp; mapping awards, summary, obs; int lvl, i, total, files; return do_summary(); if(!str) str=""; tmp = ""; obs = ([ ]); summary = ([ ]); foreach(file in get_dir(STATS_DIR+str+"*")) { file = file[0..sizeof(file)-3]; files++; awards = TASKER->query_stats(file); foreach(lvl in keys(awards)) { foreach(cmd in keys(awards[lvl])) { total += awards[lvl][cmd]; obs[cmd] += 1; } } } foreach(cmd in keys(obs)) { if(obs[cmd] > 100) i += 1; } printf("%s: Skills: %d, Total: %d: Ratio: %d, Objects: %d, " "Obs over 100: %d\n", str, files, total, total/files, sizeof(keys(obs)), i); return 1; } /* cmd() */ int do_summary() { string skill; mapping sum, stats; int i; int tries, awards; stats = TASKER->query_stats("summary"); sum = stats; foreach(skill in keys(sum)) { if(skill == "otehr") continue; printf("Skill: %s\n", skill); printf(" Level 0..149: Tries: %d, Awards: %d, ", sum[skill][0][0], sum[skill][0][1]); if(sum[skill][0][1] == 0) printf("Ratio: ?\n"); else printf("Ratio: 1/%d\n", sum[skill][0][0]/(sum[skill][0][1])); printf(" Level 150..299: Tries: %d, Awards: %d, ", sum[skill][1][0], sum[skill][1][1]); if(sum[skill][1][1] == 0) printf("Ratio: ?\n"); else printf("Ratio: 1/%d\n", sum[skill][1][0]/(sum[skill][1][1])); printf(" Level 300..599: Tries: %d, Awards: %d, ", sum[skill][2][0], sum[skill][2][1]); if(sum[skill][2][1] == 0) printf("Ratio: ?\n"); else printf("Ratio: 1/%d\n", sum[skill][2][0]/(sum[skill][2][1])); printf(" Level >=600: Tries: %d, Awards: %d, ", sum[skill][3][0], sum[skill][3][1]); if(sum[skill][3][1] == 0) printf("Ratio: ?\n"); else printf("Ratio: 1/%d\n", sum[skill][3][0]/(sum[skill][3][1])); tries = 0; awards = 0; for(i=0; i<3; i++) { tries += sum[skill][i][0]; awards += sum[skill][i][1]; } printf(" Total: Tries: %d, Awards: %d, ", tries, awards); if(!awards) printf("Ratio: ?\n"); else printf("Ratio: 1/%d\n", tries/awards); } return 1; }