#include #include inherit LIB_ROOM; mixed *text_scan; int bad(string str); void init() { ::init(); add_action("read", "read"); add_action("scribble", "scribble"); } void create() { ::create(); SetProperties( ([ "light" : 2, "night light" : 1, "no castle" : 1 ])); SetShort("a graffitti covered wall"); SetLong( "You are in among ruined buildings in a bad part of the village. " "There is graffiti all over the wall to the east."); SetItems( (["buildings" : "They are worn down by years of neglect.", "graffiti" : "Some is fresh, some is old.", "wall" : "You can scribble something on it. .\n" "You can also read what is on it."]) ); SetExits( (["south" : "/domains/Praxis/alley2"]) ); call_out("fade", 900); unguarded( (: RestoreObject("/domains/Praxis/data/wall") :) ); } int scribble(string str) { if(!text_scan) text_scan = ({}); if(bad(str)) { notify_fail("The Nightmare Reality prevents you from spreading your crap.\n"); return 0; } text_scan += ({ str }); personal_log("graffitti: "+ this_player()->query_name()+" "+ctime(time())+"\n"+str+"\n"); unguarded( (: SaveObject("/domains/Praxis/data/wall") :) ); message("my_action", sprintf("You scribble: %s", str), this_player()); message("other_action", sprintf("%s scribbles some graffitti on the wall.", this_player()->query_cap_name()), this_object(), ({ this_player() })); return 1; } int read(string str) { int i; if(!str) { notify_fail("Read what?\n"); return 0; } if(str != "wall" && str != "graffitti") { notify_fail("Read what?\n"); return 0; } for(i=0; iquery_cap_name()), this_object(), ({ this_player() })); return 1; } int bad(string str) { string a, b; int i; string *bad_words; bad_words = ({ "fuck", "shit", "cock", "cunt", "bitch" }); for(i=0; i