This Text file is old! In a 🏛️Museum, an unsorted archive of (user-)pages. (Saved from Geocities in Oct-2009. The archival story: oocities.org)
--------------------------------------- (To 🚫report any bad content: archivehelp @ gmail.com)
>

;ALCAR'S GM SCRIPT V. 2.0 
;This command sets a GM to a channel as well as allows them to run a game 
;in it. To use it, you must create a gmlog.txt file in your MIRC folder 
;that this script is running from, as well as place the script in that 
;folder. Games are logged at gmnick.txt on the logs folder. It can 
;also recall the last 10 lines of a game logged and tells people who is 
;running the game. Contact Alcar on dal.net in #Game1 with problems.
;Lastly, this script works in mirc 5.8. I don't know about other versions.

;This sets the GM using set gm/dm/st #Channel nick, such as set dm #game1
;Jeramias.
on *:LOAD:{ /run notepad.exe gmlog.txt }


on *:text:set *:*:{
  if (($2 == gm) || ($2 == dm) || ($2 == st) && ($chr(35) isin $3) && ($me ison $3) && ($4 ison $3)) { set %gm.1 $4 | goto next } 
  elseif ($chr(35) !isin $3) || ($me !ison $3) || ($4 !ison $3) { /msg $nick Sorry, you have to type set dm/gm/st #channel nick for the dm script to work. Both $me and the nick have to be on the channel | halt } 
  :next
  ;This prevents the bot running the script (assuming it is a bot) from being made the GM.
  if ($me == $4) { msg $3 Hello, I'm the dice bot! I kill players, not run games. Sheesh! | halt }
  ;This logs everything, getting rid of problems in the GM's nick for .txt files as well.
  set %gm.c1 $3 | set %gametype.1 $2 | set %gm.log %gm.1 | set %gm.log1 $mknickfn(%gm.log) | set %gm.log1 $remove(%gm.log1,$chr(95)) | set %gm.log1 %gm.log1 $+ .txt
  ;This ops the GM, if the bot is an op and the GM isn't already one. 
  if (($me isop %gm.c1) && (%gm.1 !isop %gm.c1)) { /mode %gm.c1 +o %gm.1 | goto msg }
  if (($me !isop %gm.c1) && (%gm.1 !isop %gm.c1)) { /msg $chan *** $me sets mode +o %gm.1 (Hey, I'm trying!) | goto msg }
  if (%gm.1 isop %gm.c1) { goto msg }
  :msg
  ;A quick msg telling people the game has begun.
  msg $3 %gm.1 is running the game in %gm.c1 Shush!
  msg %gm.1 This game is now being logged as %gm.log1
  /log on %gm.c1 -f %gm.log1  
  :writelog
  ;This writes the game log to the log file.
  var %gm.write $read -w* $+ %gm.log1 $+ * gmlog.txt
  if (%gm.write != $null) { halt } 
  else { var %gm.add : | var %gm.add1 %gm.add %gm.log1 | write -al1 gmlog.txt %gm.add1 }
}

;This alerts a GM who changes their nick that they are still running the game. Useful when people forget to remove 
;the GM.
on *:NICK:{ if ($nick == %gm.1) { set %gm.1 $newnick | msg %gm.1 You are still %gametype.1 $+ ing in %gm.c1 If you wish to stop, type remove dm %gm.1 Thank you. } }

;This tells people a game is running and if the GM is missing from the game.
on *:Join:%gm.c1:{
  if ($nick != $me) { msg $nick %gm.1 is %gametype.1 $+ ing a game right now. Please be quiet. }
  elseif (($nick == $me) && (%gm.1 !ison %gm.c1)) { msg %gm.c1 We seem to be missing %gm.1 .... if the game is over, please type remove %gametype.1 %gm.1 Thanks. }
  else { halt }
}

;Removes the rom using remove gm/dmst nick format.
on *:text:remove *:#:{ if (($2 == %gametype.1) && ($3 == %gm.1)) { log off %gm.c1 -f %gm.log1 | msg $chan $3 is no longer %gametype.1 $+ ing in this channel | unset %gametype.1 %gm.* } | else { msg $chan you have to type remove gm/dm/st nick, sorry. The %gametype.1 is currently %gm.1 } }
on *:part:#:{ if (($nick == %gm.c1) && ($chan == %gmc.1)) { log off %gm.c1 -f %gm.log1 | msg %gm.c1 %gm.1 is no longer %gametype.1 $+ ing in this channel | unset %gametype.1 %gm.* } }
on *:quit:{ if $nick == %gm.1 { log off %gm.c1 -f %gm.log1 | msg %gm.c1 %gm.1 is no longer %gametype.1 $+ ing in this channel | unset %gametype.1 %gm.* } }

;This tells people what games exist to have the last 10 lines recapped.
on *:text:!recap:*:{
  var %buf.recap $read -l1 gmlog.txt
  var %buf.replace $remove(%buf.recap,:)
  msg $nick The games that can be recapped are:
  msg $nick %buf.replace
}

;This recaps the last 10 lines of a file in the Gm.log list.
on *:text:!recap *:*:{
  if (.txt !isin $2) { set %buf.game $2 $+ .txt } | else { set %buf.game $2 }
  set %buf.exist logs/ $+ %buf.game
  set %buf.exists $exists(%buf.exist) 
  if (%buf.exists == $true) { goto send } | else { msg $nick Sorry, $2 isnt a game file. Type !recap by itself to see them | unset %buf.* | halt }
  :send
  set %buf.end $lines(%buf.exist)
  set %buf.start $calc(%buf.end - 10)
  set %buf.begin %buf.start
  :loop
  if (%buf.begin < %buf.end) { msg $nick $read -l $+ %buf.begin %buf.exist | inc %buf.begin | goto loop } | else { unset %buf.* | halt }
}

;This tells people who the GM, DM or ST (as the case might be) currently is.
on *:text:!gm:#:{ if (%gm.1 != $null) { msg $chan The %gametype.1 is currently %gm.1 in %gm.c1 } | else { msg $chan There is no gm now. } }
on *:text:!gm:?:{ if (%gm.1 != $null) { msg $nick The %gametype.1 is currently %gm.1 in %gm.c1 } | else { msg $nick There is no gm now. } }
on *:text:!dm:#:{ if (%gm.1 != $null) { msg $chan The %gametype.1 is currently %gm.1 in %gm.c1 } | else { msg $chan There is no dm now. } }
on *:text:!dm:?:{ if (%gm.1 != $null) { msg $nick The %gametype.1 is currently %gm.1 in %gm.c1 } | else { msg $nick There is no dm now. } }
on *:text:!st:#:{ if (%gm.1 != $null) { msg $chan The %gametype.1 is currently %gm.1 in %gm.c1 } | else { msg $chan There is no st now. } }
on *:text:!st:?:{ if (%gm.1 != $null) { msg $nick The %gametype.1 is currently %gm.1 in %gm.c1 } | else { msg $nick There is no st now. } }

;This tells people what logs the bot has
on *:text:!log:*:{
  var %buf.recap $read -l1 gmlog.txt
  var %buf.replace $remove(%buf.recap,:)
  msg $nick The games that are currently logged are:
  msg $nick %buf.replace
}

;This sends a log of a game to someone, if it exists.
on *:text:!log *:*:{
  if (.txt !isin $2) { set %buf.game $2 $+ .txt } | else { set %buf.game $2 }
  set %buf.exist logs/ $+ %buf.game
  set %buf.exists $exists(%buf.exist) 
  if (%buf.exists == $true) { goto send } | else { msg $nick Sorry, $2 isnt a game file. Type !log by itself to see them | unset %buf.* | halt }
  :send
  dcc send $nick %buf.exist
  unset %buf.*
}

Text file Source (historic): geocities.com/kelkaran_2000


(to report bad content: archivehelp @ gmail)