/* * Skullwarn - Shaydz * */ #include <playerinfo.h> inherit COMMAND_BASE; string reason; object ob, Skull; mixed cmd( string words ) { string player; if ( !words ) return notify_fail( "Usage: skullwarn <player> (for) <reason>\n" ); if (sscanf( words, "%s for %s", player, reason ) != 2) if (sscanf( words, "%s %s", player, reason ) != 2) return notify_fail( "Usage: skullwarn <player> (for) <reason>\n" ); words = lower_case( words ); ob = find_player( this_player()->expand_nickname( player ) ); if(!ob) ob = find_living(this_player()->expand_nickname(player)); if ( !ob ) return notify_fail( player +" not found!\n" ); if (ob->query_property("flaming skulled")) return notify_fail("This player is already being warned!\n"); if(ob->query_name() == "death") { "/cmds/admin/swat"->cmd(this_player()->query_name()+" safer " "alternative than warning Death :P"); /* VERY evil cackle */ return notify_fail("Maybe that wasn't such a good idea.\n"); } PLAYERINFO_HANDLER->add_entry(TP, ob->query_name(), "skullwarn", reason); log_file( "WARNED", ctime( time() )+": "+this_player()->query_short()+ " warned "+ob->query_short()+": "+reason+"\n"); write("Warning player "+ob->query_name()+".\n"); ob->add_property("flaming skulled",1); call_out("Lair_time", 5, 0); return 1; } varargs void pimp_shout( string words, object avoid ) { object thing, *things; things = users(); foreach( thing in things ) { if ( ( thing != avoid ) && !thing->check_earmuffs( "shout" ) ) thing->event_say( previous_object(), words, ({ }) ); } } /* pimp_shout() */ void Lair_time(int iteration) { switch (iteration) { case 0 : pimp_shout("You notice an extremely large %^BOLD%^%^RED%^flaming skull" "%^RESET%^ peek out from Shaydz's workroom.\n"); break; case 1 : pimp_shout("The %^BOLD%^%^RED%^flaming skull%^RESET%^ starts " "moving downward toward the ground.\n"); break; case 2 : pimp_shout("The %^BOLD%^%^RED%^flaming skull%^RESET%^ stops " "descending and hovers around twenty feet above the ground, skimming quickly " "over the ground.\n"); tell_object(ob, "You get the feeling that it is watching you.\n"); break; case 3 : pimp_shout("The %^BOLD%^%^RED%^flaming skull%^RESET%^ glides " "swiftly above the ground.\n"); Skull = clone_object( NPC_OBJ ); Skull->set_name("skull"); Skull->set_short("enormously large %^BOLD%^%^RED%^flaming skull%^RESET%^"); Skull->set_long("An insanely huge %^BOLD%^%^RED%^" "flaming skull%^RESET%^. It appears to be focusing " "entirely on "+ob->query_cap_name()+ " with great severity.\n"); Skull->add_property("there","floating in mid-air"); Skull->set_race("demon"); Skull->add_skill_level("general.health",999); Skull->add_skill_level("general.language.common.spoken",1000); Skull->set_level(5000); break; case 4 : pimp_shout("The %^BOLD%^%^RED%^flaming skull%^RESET%^ coasts for " "a moment, finally stopping directly over "+ ob->query_cap_name()+"'s head. You think " "you can see "+ob->query_cap_name()+ " pissing "+ob->query_possessive()+ " pants.\n",ob); tell_object(ob,"The %^BOLD%^%^RED%^" "flaming skull%^RESET%^ lurches forward, coming to rest " "an arms-length over your head. It is staring " "menacingly at you, and you can feel a warm " "dribbling going down your leg.\n"); Skull->move(environment(ob)); break; case 5 : Skull->move(environment(ob)); Skull->do_command("glare "+ob->query_name()); pimp_shout("The %^RED%^%^BOLD%^flaming skull%^RESET%^ glares at " +ob->query_cap_name()+", who, amazingly, " "has not passed out yet.\n",ob); break; case 6 : pimp_shout("The %^RED%^%^BOLD%^flaming skull%^RESET%^ appears " "to be shouting at "+ob->query_cap_name()+".\n",ob); Skull->move(environment(ob)); Skull->do_command("scream %^BOLD%^YOU KNOW, YOU REALLY " "SHOULDN'T HAVE DONE WHAT YOU DID.%^RESET%^"); break; case 7 : Skull->move(environment(ob)); Skull->do_command("scream %^BOLD%^IN FACT, YOU " "PROBABLY WOULD HAVE BEEN PUNISHED MORE SEVERELY.%^RESET%^"); break; case 8 : Skull->move(environment(ob)); Skull->do_command("scream %^BOLD%^HOWEVER, THIS TIME " "YOU SEEM TO HAVE GOTTEN OFF WITH JUST A WARNING."); pimp_shout("The %^RED%^%^BOLD%^flaming skull%^RESET%^ gives " +ob->query_cap_name()+" a good lecture.%^RESET%^\n",ob); break; case 9 : Skull->move(environment(ob)); Skull->do_command("scream %^BOLD%^IF I WERE YOU, I'D " "NEVER GET CAUGHT FOR '"+reason+"' AGAIN. CONSIDER " "YOURSELF LUCKY THIS TIME.%^RESET%^"); break; case 10 : pimp_shout("The enormously large %^RED%^%^BOLD%^flaming skull" "%^RESET%^ loses the ferocious glare in its eyes, its " "piece having been said. It ascends back into the " "sky.%^RESET%^\n",ob); tell_object(ob,"As the enormously large %^BOLD%^%^RED%^" "flaming skull%^RESET%^ ascends back into the " "sky, you find yourself unable to stand and collapse " "onto the ground.%^RESET%^\n"); Skull->move("/room/rubbish"); /* DO NOT UNCOMMENT THESE ON PAIN OF DEATH - Shaydz ob->adjust_tmp_dex(-5); ob->adjust_tmp_con(-5); ob->adjust_tmp_wis(-5); ob->adjust_tmp_int(-5); ob->adjust_tmp_str(-5); */ ob->remove_property("flaming skulled"); break; } if (iteration < 10) call_out("Lair_time",5,iteration + 1); }