#define SAVE "/w/newstyle/stats.o" #define PERIOD 60*60*24*7 string *births, *deaths, *marriages; string *criminals; int log_time; mapping murders; string strlist(string *list) { if(!list || !sizeof(list)) return "Nobody"; if(sizeof(list) == 1) return list[0]; return implode(list[0..sizeof(list)-2], ", ") + " and " + list[sizeof(list)-1]; } string pairlist(string *list) { int i; string ret; ret = ""; if(!list || !sizeof(list) )return "Not a soul"; for(i=0;i<sizeof(list); i += 2) ret += list[i]+" and "+list[i+1]; return ret; } void reset_stats() { births = deaths = marriages = ({ }); murders = ([ ]); } void log_data() { log_file("BDM", "Period "+ctime(time()-PERIOD)+" to "+ctime(time())+".\n"); log_file("BDM", "Sadly passed away:\n"+strlist(deaths)+".\n"); log_file("BDM", "Bouncing babies:\n"+strlist(births)+".\n"); log_file("BDM", "Happily wed:\n"+pairlist(marriages)+".\n"); reset_stats(); } void create() { reset_stats(); seteuid(geteuid(this_object())); restore_object(SAVE, 1); } void dest_me() { save_object(SAVE, 1); destruct(this_object()); } void log_death(string name) { deaths += ({ name }); } void log_birth(string name) { births += ({ name }); } void log_marriage(string bride, string groom) { marriages += ({ bride, groom }); } void log_murder(object what) { string index, junk; index = file_name(what); sscanf(index, "%s#%s", index, junk); if(!murders[index]) murders[index] = 1; else murders[index]++; } string murder_table() { /* return a nice table often killed things in the cache */ string ret, *indexes; string *most; int i; return ""; }