jdl@elmgate.uucp (John Liberty) (02/21/86)
A problem that some hackers may have run into is the so called 'invisible forcefield' that prevents you from going to another level. This is not a monster or some other feature that can be zapped or scrolled. It is a problem with hack creating the new level's file on disk. I usually guess it is a disk space problem but I can't be sure. We have plenty of disk space now so we never see this anymore. Maybe someone knows more specifics to help anyone who has run into this problem. A problem which we had at our site, where /usr/games is an exported NFS volume (on SUN's), is the method for checking lock files that already exist. At startup, hack deletes any lock files it thinks are old or have processes that no longer exists. If hack is running on different machines, of course some pids will be invalid. We modified hack.unix.c to comment out the line that checks pid's it starts ....if (!(kill(lockedpid,0)....... Since I'm posting I'd thought I'd add some scripts which I wrote to give info on hackers and their scores. The first is a awk script which gives score information on a player who has played each character. I takes the players highest score with each character and calculates total points and average points. It also give a cum rank which is the sum of the positions. This makes an 'all around player competition' at our site. We post the list in the hack news file. The second script is just a simple shell script which gives the total number of different players. -cut here ---------------o----------------o--------------------- # hackcount # count up the scores for a hack player # written by seismo!rochester!kodak!elmgate!jdl (John Liberty) # # usage: hack -s [user..] | awk -f hackcount # I set up an alias: # alias hc 'hack -s \!* | awk -f hackcount' # # will use the top score in each character class # so if multiple users are given the stats reflect combined effort # some lines at the bottom providing additional stats are commented out # # line1 gives the first line that has a score on it # nscores helps to check if there is enough info # BEGIN { line1 = 3; nscores = 6; notenufs = "Not enough scores."; noteveryc = "Not every character."; } NR >= line1 { n = split($3,who,"-"); if (char[who[2]]) char[who[2]]++; else { char[who[2]]=1; rank += $1; score += $2; lines++; name[who[1]]++; } } END { if (lines < nscores) print notenufs; else if ((char["C"]) && (char["S"]) && (char["T"]) && (char["W"]) && (char["F"]) && (char["K"])) # got one of each { for (i in name) printf("%s ", i); print ":",rank, score, score/nscores; } else print noteveryc; # additional stats if wanted # names used and number of characters played # for (i in name) print i,name[i]; # number in each character class # for (i in char) print i,char[i]; } -and here ---o----------o-------------------o-------------------o------- # # finds number of different players # written by seismo!rochester!kodak!elmgate!jdl (John Liberty) # hack -s all | awk ' NR >=3 { n=split($3,who,"-"); print who[1]; }' |sort|uniq > temp$$ set count = `wc temp$$` echo "Number of different players :" $count[1] echo -n "View =>" ; set resp = $< if ($resp =~ [yY]*) then more temp$$ endif rm temp$$ exit --------------- John Liberty (jdl) seismo!rochester!kodak!elmgate!jdl Eastman Kodak Co. Rochester, NY