#include "path.h" inherit "room/room"; /* make sure room.c has short(arg) instead of short() and just returns * short_desc (without exits) if it gets an argument. (this won't effect * normal calls of short() without an arg (like in brief mode) */ /* * Platforms * --------- * * This code has been ported to the following drivers: (With a basic mudlib) * * 2.4.5, 3.1.2, 3.2 (amylaar), 3.12 -DR, 3.12 -CD * * Author * ------ * * This code was written by David Ljung as Jubal E. Harshaw (The LPJubal) * DaveSource.com/GetDave.com * * Copyright * --------- * * This code is Copyright 1993, David Ljung Madison * * It may not be rewritten without consent of the author, except for the sake * of fixing bugs or porting to new platforms. * * It may be freely redistributed, but it may not be sold in any form. */ reset(arg) { if (arg) return; set_light(5); short_desc = "Super-Tag Booth"; no_castle_flag = 0; dest_dir = ({ "players/jubal/castle/mainhall", "east", }); } init() { add_action("notag","tag"); add_action("tagwho","tagwho"); add_action("tagsay","tagsay"); add_action("register","register"); add_action("deregister","deregister"); add_action("deregister","dereg"); add_action("register","reg"); add_action("taghelp","taghelp"); ::init(); } long() { #ifdef LONGNUM object a; int i,c; #endif string exits; exits=" There is one obvious exit: east\n"; write( "Jubal's Super-Tag Sign Up Booth.\n" +"Use 'register' and 'deregister' to enter/leave the Super-Tag game.\n" +"WARNING: READ TAG HELP FIRST! (type 'taghelp')\n" +"If you register do 'look tag' for extra commands. You cannot tag here.\n" ); #ifdef LONGNUM a=users(); c=0; for(i=0;iquery_points(); if(pts<10) write(" "); else if(pts<100) write(" "); else if(pts<1000) write(" "); write(pts+" "+a[i]->query_name()); write(" is hiding in: "+environment(a[i])->short(1)); if(tag->query_lasttag()) write(", last tagged: "+tag->query_lasttag()+"\n"); /* else if(tag->query_killedby()) write(", tagged by: "+tag->query_killedby()+"\n"); */ else write("\n"); c++; } if(c==1) return write(BORDER+"There is only one Super-Tag player\n\n"); write(BORDER+"There are "+c+" people playing Super-Tag\n\n"); return 1; } tagsay(arg) { if(!arg) return write("Usage: tagsay \n"); tagshout(this_player()->query_name()+" tagsays: "+arg+"\n",1); return write("You tagsay: "+arg+"\n"); } tagshout(str,inroomtoo) { object a; int i; a=users(); for(i=0;iquery_name()+" joins the game!\n"); tagshout(this_player()->query_name()+" joins the game!\n",0); move_object(clone_object(TAGOBJ_FILE),this_player()); return 1; } deregister() { object tag; if(tag=present("__tag",this_player())) { if(tag->query_points()==1) { write("You quit without tagging anyone!\n"); say(this_player()->query_name()+" quits without tagging anyone!\n"); tagshout(this_player()->query_name()+" quits without tagging anyone!\n"); } else { write("You leave the game with "+tag->query_points()+" points.\n"); say(this_player()->query_name()+" leaves the game with " +tag->query_points()+" points.\n"); tagshout(this_player()->query_name()+" leaves the game with " +tag->query_points()+" points.\n",0); } #ifdef LOG_FILE if(tag->query_points()>=LOGPOINTS) log_file(LOG_FILE,this_player()->query_name()+" quits with " +tag->query_points()+" points.\n"); #endif destruct(tag); } else write("You aren't playing.\n"); return 1; }