58 lines
1.3 KiB
C
58 lines
1.3 KiB
C
#include <lib.h>
|
|
#include <save.h>
|
|
#include <daemons.h>
|
|
#include <privs.h>
|
|
|
|
inherit LIB_DAEMON;
|
|
static string SaveFile;
|
|
mapping Stats = ([]);
|
|
|
|
static void create() {
|
|
daemon::create();
|
|
SaveFile = save_file(SAVE_STATS);
|
|
SetSaveFile(SaveFile);
|
|
if(!file_exists(SaveFile) && file_exists(old_savename(SaveFile))){
|
|
cp(old_savename(SaveFile), SaveFile);
|
|
}
|
|
RestoreObject(SaveFile);
|
|
if(sizeof(Stats)){
|
|
SaveObject(SaveFile);
|
|
}
|
|
else {
|
|
call_out("SetStats", 5);
|
|
}
|
|
}
|
|
|
|
varargs int SetStat(string what, string race, int statcl){
|
|
object prev = previous_object();
|
|
string pbase = base_name(prev);
|
|
int accept_class;
|
|
if(!prev || pbase = RACES_D){
|
|
accept_class = 1;
|
|
}
|
|
else if(!living(prev)){
|
|
return 0;
|
|
}
|
|
if(!Stats) Stats = ([]);
|
|
if(!Stats[what]) Stats[what] = ([]);
|
|
if(!undefinedp(race) && !undefinedp(statcl)){
|
|
if(!statcl) statcl = 5;
|
|
if(accept_class) Stats[what][race] = statcl;
|
|
return 2;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void SetStats(){
|
|
foreach(string race in RACES_D->GetRaces()){
|
|
mapping stats = RACES_D->GetRace(race)["Stats"];
|
|
foreach(mixed key, mixed val in stats){
|
|
SetStat(key, race, val["Class"]);
|
|
}
|
|
}
|
|
}
|
|
|
|
mapping GetStats(){
|
|
return copy(Stats);
|
|
}
|