nightmare4_fluffos_v1/
nightmare4_fluffos_v1/bin/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/ChangeLog.old/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/Win32/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/compat/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/compat/simuls/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/include/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/clone/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/command/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/data/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/etc/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/include/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/inherit/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/inherit/master/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/log/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/single/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/single/tests/compiler/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/single/tests/efuns/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/single/tests/operators/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/testsuite/u/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/tmp/
nightmare4_fluffos_v1/fluffos-2.9-ds2.14/windows/
nightmare4_fluffos_v1/lib/cfg/
nightmare4_fluffos_v1/lib/cmds/admins/
nightmare4_fluffos_v1/lib/cmds/common/
nightmare4_fluffos_v1/lib/cmds/creators/include/
nightmare4_fluffos_v1/lib/cmds/creators/include/SCCS/
nightmare4_fluffos_v1/lib/cmds/hm/
nightmare4_fluffos_v1/lib/daemon/services/
nightmare4_fluffos_v1/lib/doc/
nightmare4_fluffos_v1/lib/doc/faq/
nightmare4_fluffos_v1/lib/doc/help/classes/
nightmare4_fluffos_v1/lib/doc/help/creators/
nightmare4_fluffos_v1/lib/doc/help/hm/
nightmare4_fluffos_v1/lib/doc/help/players/
nightmare4_fluffos_v1/lib/doc/help/races/
nightmare4_fluffos_v1/lib/doc/help/religion/
nightmare4_fluffos_v1/lib/doc/mudlib/
nightmare4_fluffos_v1/lib/doc/mudlib/cfg/
nightmare4_fluffos_v1/lib/domains/Ylsrim/
nightmare4_fluffos_v1/lib/domains/Ylsrim/adm/
nightmare4_fluffos_v1/lib/domains/Ylsrim/armour/
nightmare4_fluffos_v1/lib/domains/Ylsrim/fish/
nightmare4_fluffos_v1/lib/domains/Ylsrim/meal/
nightmare4_fluffos_v1/lib/domains/Ylsrim/npc/
nightmare4_fluffos_v1/lib/domains/Ylsrim/virtual/
nightmare4_fluffos_v1/lib/domains/Ylsrim/weapon/
nightmare4_fluffos_v1/lib/domains/Ylsrim/xtra/
nightmare4_fluffos_v1/lib/lib/comp/
nightmare4_fluffos_v1/lib/lib/lvs/
nightmare4_fluffos_v1/lib/lib/std/
nightmare4_fluffos_v1/lib/lib/user/
nightmare4_fluffos_v1/lib/news/
nightmare4_fluffos_v1/lib/obj/
nightmare4_fluffos_v1/lib/obj/include/
nightmare4_fluffos_v1/lib/save/
nightmare4_fluffos_v1/lib/save/kills/a/
nightmare4_fluffos_v1/lib/save/kills/b/
nightmare4_fluffos_v1/lib/save/kills/f/
nightmare4_fluffos_v1/lib/save/kills/m/
nightmare4_fluffos_v1/lib/save/kills/q/
nightmare4_fluffos_v1/lib/save/kills/r/
nightmare4_fluffos_v1/lib/secure/cfg/
nightmare4_fluffos_v1/lib/secure/cfg/classes/
nightmare4_fluffos_v1/lib/secure/cfg/races/SCCS/
nightmare4_fluffos_v1/lib/secure/cmds/creators/include/
nightmare4_fluffos_v1/lib/secure/cmds/players/
nightmare4_fluffos_v1/lib/secure/cmds/players/include/
nightmare4_fluffos_v1/lib/secure/daemon/include/
nightmare4_fluffos_v1/lib/secure/lib/
nightmare4_fluffos_v1/lib/secure/lib/include/
nightmare4_fluffos_v1/lib/secure/lib/net/
nightmare4_fluffos_v1/lib/secure/lib/std/
nightmare4_fluffos_v1/lib/secure/obj/
nightmare4_fluffos_v1/lib/secure/obj/include/
nightmare4_fluffos_v1/lib/secure/save/
nightmare4_fluffos_v1/lib/secure/save/boards/
nightmare4_fluffos_v1/lib/secure/save/votes/
nightmare4_fluffos_v1/lib/spells/
nightmare4_fluffos_v1/lib/verbs/admins/include/
nightmare4_fluffos_v1/lib/verbs/common/
nightmare4_fluffos_v1/lib/verbs/common/include/
nightmare4_fluffos_v1/lib/verbs/creators/
nightmare4_fluffos_v1/lib/verbs/creators/include/
nightmare4_fluffos_v1/lib/verbs/players/include/SCCS/
nightmare4_fluffos_v1/lib/verbs/rooms/
nightmare4_fluffos_v1/lib/verbs/rooms/include/
nightmare4_fluffos_v1/lib/www/
nightmare4_fluffos_v1/old/
nightmare4_fluffos_v1/old/tools/
nightmare4_fluffos_v1/win32/
/*  /daemon/notify.c
 *  created by Blitz@Nightmare 960115
 *  notification daemon which displays notices to all cres who login
 */
 
#include <lib.h>
#include <save.h>
#include "include/notify.h"
 
inherit LIB_DAEMON;
 
#define MaxTime  (3600 * 24 * 60)
 
private mixed * Notes;
 
static void create() {
    int x;
    daemon::create();
    SetNoClean(1);
    Notes = ({});
    if( unguarded((: file_size(SAVE_NOTIFY __SAVE_EXTENSION__) :)) > 0 )
      unguarded((: restore_object(SAVE_NOTIFY) :));
    x = sizeof(Notes);
    while( sizeof(Notes) && (time() - Notes[0][Date]) > MaxTime )
      Notes -= ({ Notes[0] });
    if( x != sizeof(Notes) ) eventSaveNotices();
}
 
static int eventSaveNotices() {
    if( !archp(this_player()) ) return 0;
    else return unguarded((: save_object(SAVE_NOTIFY) :));
}
 
int eventAddNotice(object who, string msg) {
    object * obs;
    int x = time();
    if( !who || !sizeof(msg) ) return 0;
    Notes += ({ ({ time(), (string)who->GetName(), msg }) });
    if( sizeof(obs = filter(users() - ({ who }), (: creatorp :))) )
      obs->eventPrint("["+(string)who->GetName()+" added a new notice]");
    if( eventSaveNotices() ) return (sizeof(Notes));
    else return 0;
}
 
int eventRemoveNotice(int x) {
    mixed var = copy(Notes);
    if( x < 0 || x > sizeof(Notes) - 1 ) return 0;
    Notes -= ({ Notes[x] });
    if( !eventSaveNotices() ) return (Notes = var), 0;
    else return 1;
}
 
int eventPrintNotices(object who, int start_time) {
    mixed str = ({ "[ %^YELLOW%^"+mud_name()+" Creator Notices %^RESET%^]", "" });
    int y = sizeof(Notes);
    int x = y - 1;
    if( x < 0 || start_time > Notes[x][Date] ) return 0;
    while( x > 0 && Notes[x - 1][Date] > start_time ) x--;
    do str += ({ sprintf("%sAdded %s by %s [id #%d]:\n\t%s%s",
                 "%^RESET%^", ctime(Notes[x][Date]), Notes[x][Author], x,
                 "%^CYAN%^", Notes[x][Message]), "" });
    while( ++x < y );
    who->eventPage(str);
    return 1;
}
 
int eventWriteNotices(string file, int start_time) {
    string str = "Nightmare Notices Text Dump.\n\n";
    mixed var;
    int x = sizeof(Notes) - 1;
    if( !archp(this_player()) ) return 0;
    if( x < 0 || start_time > Notes[x][Date] ) return 0;
    while( x > 0 && Notes[x - 1][Date] > start_time ) x--;
    foreach(var in Notes[x..])
      str += sprintf("Added %s by %s\n\t%s\n\n", ctime(var[Date]),
                      var[Author], var[Message]);
    return write_file(file, str);
}