[Home] [Downloads] [Search] [Help/forum]


Register forum user name Search FAQ

Gammon Forum

[Folder]  Entire forum
-> [Folder]  MUSHclient
. -> [Folder]  Plugins
. . -> [Subject]  Plugins for Aardwolf MUD

Plugins for Aardwolf MUD

It is now over 60 days since the last post. This thread is closed.     [Refresh] Refresh page


Pages: 1 2  3  

Posted by Onoitsu2   USA  (248 posts)  [Biography] bio
Date Thu 18 May 2006 01:59 AM (UTC)

Amended on Tue 11 Jul 2006 04:31 AM (UTC) by Onoitsu2

Message
I have created 7 plugins for the MUD Aardwolf (aardmud.org)

1. Aardwolf_Alignment_ReportLUA.xml
2. Aardwolf_Colored_ConsiderLUA.xml
3. Aardwolf_FriendxLUA.xml
4. Aardwolf_GroupMonitorLUA.xml
5. Aardwolf_Quest_InformLUA.xml
6. Aardwolf_SpellupLUA.xml
7. Aardwolf_Weapon_SwitchLUA.xml

you can download them here ... http://geocities.com/onoitsu2/MC_Plugins/

and also look up information related to them.

All are written in LUA so that they WILL work on LINUX (using wine 'emulated' mushclient)

Enjoy,
Onoitsu2 (Venificius on Aardwolf)
[Go to top] top

Posted by Nick Gammon   Australia  (22,973 posts)  [Biography] bio   Forum Administrator
Date Reply #1 on Tue 11 Jul 2006 05:47 AM (UTC)
Message
Thanks for making those available. I have made an archive of them, in the event that your link becomes unavailable, do I have your permission to make the copy available?

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by NeoFryBoy   USA  (42 posts)  [Biography] bio
Date Reply #2 on Wed 12 Jul 2006 06:30 AM (UTC)
Message
May I add a few of my own creations to the archive Nick? I have no place to upload any of mine and make publicly available.
[Go to top] top

Posted by Nick Gammon   Australia  (22,973 posts)  [Biography] bio   Forum Administrator
Date Reply #3 on Wed 12 Jul 2006 06:46 AM (UTC)
Message
Sure, will they fit into a forum posting?

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by Onoitsu2   USA  (248 posts)  [Biography] bio
Date Reply #4 on Wed 12 Jul 2006 03:08 PM (UTC)
Message
Ya Nick, of course you have permission to keep a copy in the archive, in fact I am very glad that you are going to, cause no one likes going to a geocities site as it has that bar on the side now, and all those ads ... :(

Thanks again for this great client,

Onoitsu2 (Venificius on aardmud.org)
[Go to top] top

Posted by Nick Gammon   Australia  (22,973 posts)  [Biography] bio   Forum Administrator
Date Reply #5 on Wed 12 Jul 2006 09:48 PM (UTC)

Amended on Fri 04 Aug 2006 05:49 AM (UTC) by Nick Gammon

Message
Copies are here:




- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by NeoFryBoy   USA  (42 posts)  [Biography] bio
Date Reply #6 on Thu 13 Jul 2006 08:33 AM (UTC)

Amended on Thu 13 Jul 2006 08:36 AM (UTC) by NeoFryBoy

Message
All but this one are too large to fit in a single post.
This plugin acts as an extension to the sell command by allowing a user to sell all of their non-keep flagged equipment with one command. Works with shortflags on or off.


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Sunday, June 25, 2006, 1:47 AM -->
<!-- MuClient version 3.73 -->

<!-- Plugin "Sellall" generated by Plugin Wizard -->

<muclient>
<plugin
   name="Sellall"
   author="NeoFryBoy(Tealos)"
   id="9b5d0352809c46c0900aec6f"
   language="VBscript"
   purpose="Since Aardwolf doesn't have a sell all feature I decided to add one."
   date_written="2006-06-25 01:45:49"
   save_state="y"
   requires="3.73"
   version="1.0"
   >

</plugin>


<!--  Get our standard constants -->

<include name="constants.vbs"/>

<!--  Triggers  -->

<triggers>
  <trigger
   group="SellInv"
   match="^\[Enter key for more or \'q\' to stop\]$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.send vbnewline</send>
  </trigger>
  <trigger
   group="SellInv"
   keep_evaluating="y"
   match="^([ ]{5}|\(( \d|\d{2}|\d{3})\) )(?:\([BKIGHM]\)){0,}(.*?) (|\[\d{3}\/\d{3}\] )(?:\[\d+\])"
   regexp="y"
   script="SellAllItems"
   sequence="100"
  >
  </trigger>
</triggers>

<!--  Aliases  -->

<aliases>
  <alias
   match="sellall"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>world.EnableTriggerGroup "SellInv", True
world.send "inv"
world.doafterspecial 4, "world.EnableTriggerGroup " &amp; chr(34) &amp; "SellInv" &amp; chr(34) &amp; ", False", 12</send>
  </alias>
  <alias
   match="sellkey*"
   enabled="y"
   send_to="10"
   sequence="100"
  >
  <send>goto island of stardock;run 3wd2sw8s;vis</send>
  </alias>
  <alias
   match="sellhelp"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>world.ansinote ansi(0) &amp; "-=" &amp; ansi(36) &amp; "[ " &amp; ansi(31) &amp; ansi(22) &amp; "SellAll for " &amp; ansi(33) &amp; ansi(1) &amp; "MUSHClient" &amp; ansi(31) &amp; ansi(22) &amp; " done by " &amp; ansi(31) &amp; ansi(1) &amp; "T" &amp; ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; "ealos." &amp; ansi(36) &amp; " ]" &amp; ansi(0) &amp; "=-"
world.ansinote ansi(36) &amp; ansi(1) &amp; "This plugin is intended to act as an extension to the MUDs current sell command."
world.ansinote ansi(31) &amp; ansi(22) &amp; vbnewline
world.ansinote ansi(32) &amp; ansi(1) &amp; "Use:"
world.ansinote ansi(33) &amp; ansi(1) &amp; "Just head to your favorite clanshop and type " &amp; ansi(36) &amp; ansi(1) &amp; "sellall" &amp; ansi(33) &amp; ansi(1) &amp; ".  It should automatically scroll through long inventories."
world.ansinote ansi(33) &amp; ansi(1) &amp; "As a side bonus I threw in the command " &amp; ansi(36) &amp; ansi(1) &amp; "sellkey" &amp; ansi(33) &amp; ansi(1) &amp; " which takes you to a shopkeeper in stardock who buys most keys."
world.ansinote ansi(31) &amp; ansi(22) &amp; vbnewline
world.ansinote ansi(31) &amp; ansi(1) &amp; "Note: " &amp; ansi(37) &amp; ansi(1) &amp; "The MUD is pretty good about sending a massive amount of commands, so there shouldn't be a reachable limit.  If you manage to hit it let me know."</send>
  </alias>
</aliases>

<!--  Script  -->


<script>
<![CDATA[
Sub OnPluginInstall()
world.note "Type sellhelp for help."
End Sub

Sub SellAllItems(name, line, wildcards)
Dim a, ItemKeywords

If InStr(1, wildcards(10), "(K)") > 0 Then 'It's keep flagged, so skip it.
 Exit Sub
End If

If Not Trim(wildcards(2)) = "" Then 'It repeats since there are multiples

For a = 1 To Trim(wildcards(2))
 ItemKeywords = Trim(KWShredder(" " & wildcards(3)))
 ItemKeywords = Replace(ItemKeywords, " ", "; sell ")
 world.doafterspecial 3, "sell " & ItemKeywords, 10
Next
Else
 ItemKeywords = Trim(KWShredder(" " & wildcards(3)))
 ItemKeywords = Replace(ItemKeywords, " ", "; sell ")
 world.doafterspecial 3, "sell " & ItemKeywords, 10
'world.execute "sell " & ItemKeywords
End If

End Sub

Function KWShredder(ByVal currItem) 'Called it the Shredder because it's rather messy
currItem = Replace(LCase(currItem), " a ", " ")
currItem = Replace(LCase(currItem), " an ", " ")
currItem = Replace(LCase(currItem), " the ", " ")
currItem = Replace(LCase(currItem), " of ", " ")
currItem = Replace(LCase(currItem), " small ", " ")
currItem = Replace(LCase(currItem), " big ", " ")
currItem = Replace(LCase(currItem), "(", "")
currItem = Replace(LCase(currItem), ")", "")
currItem = Replace(LCase(currItem), "-", "")
currItem = Replace(LCase(currItem), "*", "")
currItem = Replace(LCase(currItem), "<", "")
currItem = Replace(LCase(currItem), "=", "")
currItem = Replace(LCase(currItem), ">", "")
currItem = Replace(LCase(currItem), "'s", "")
currItem = Replace(LCase(currItem), "magical", "")
currItem = Replace(LCase(currItem), "glowing", "")
currItem = Replace(LCase(currItem), "humming", "")
currItem = Replace(LCase(currItem), "invis", "")
currItem = Replace(LCase(currItem), "blue", "")

KWShredder = currItem
End Function
]]>
</script>


</muclient>
[Go to top] top

Posted by Onoitsu2   USA  (248 posts)  [Biography] bio
Date Reply #7 on Thu 13 Jul 2006 11:21 AM (UTC)
Message
Yo neo, would you mind if I converted that sell all to LUA so that even the linux users can use it ?

I am going to do it for myself I just want permission to repost it in an LUA version...

Laterzzz,
Onoitsu2
[Go to top] top

Posted by Nick Gammon   Australia  (22,973 posts)  [Biography] bio   Forum Administrator
Date Reply #8 on Thu 13 Jul 2006 09:39 PM (UTC)

Amended on Thu 13 Jul 2006 09:40 PM (UTC) by Nick Gammon

Message
I have removed the length restriction for your posts, NeoFryBoy, so you can post them here initially.

Please use the [code] tag (which you did but it didn't activate, so you must have not checked "forum codes"), and also - and this is important for things like regular expressions - use the MUSHclient Notepad to Convert -> Quote Forum Codes. This puts a backslash in front of square brackets, and also backslashes.

Otherwise some square bracket items (like [i]) might not appear in the post, but turn everything into italic, and doubled backslashes (which might appear in regexps) might disappear.

I fixed up your earlier post to do that, so you don't need to do that one again.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by NeoFryBoy   USA  (42 posts)  [Biography] bio
Date Reply #9 on Fri 14 Jul 2006 02:15 AM (UTC)
Message
Onoitsu2: Go for it. I made 'em to share, and don't feel like learning a new scripting language.

Note: All my plugins feature a coloured helpfile.

This one is a note bot (aka colourbot) It's basic function is to allow the user to copy text that was displayed on the screen and then send it back to MUD with the same colour formatting based on their ansi colour setting. Technically it should work with any MUD that uses colour codes (@W @r, etc.), and the board system designed by Erwin S. Andreasen, 4u2abc.dk, aka
Phunk, which is freely available.


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Wednesday, June 07, 2006, 4:41 PM -->
<!-- MuClient version 3.73 -->

<!-- Plugin "nbot" generated by Plugin Wizard -->

<muclient>
<plugin
   name="nbot"
   author="NeoFryBoy(Tealos)"
   id="74cb66213118499c3fc4db42"
   language="VBscript"
   purpose="To copy lines from screen with colour attached."
   save_state="n"
   date_written="2006-06-07 16:31:37"
   requires="3.73"
   version="2.10"
   >
<description trim="y">
<![CDATA[
Type nbot:help for help.
]]>
</description>

</plugin>


<!--  Get our standard constants -->

<include name="constants.vbs"/>

<!--  Variables  -->

<variables>
  <variable name="LineSeparator">//</variable>
  <variable name="NoteTotLines">0</variable>
</variables>

<!--  Aliases  -->

<aliases>
  <alias
   script="ColourStripper"
   match="nbot*"
   enabled="y"
   sequence="100"
  >
  </alias>
  <alias
   match="nbothelp"
   enabled="y"
   send_to="12"
   sequence="1"
  >
  <send>world.ansinote ansi(0) &amp; "-=" &amp; ansi(36) &amp; "[ " &amp; ansi(31) &amp; ansi(22) &amp; "Notebot for " &amp; ansi(33) &amp; ansi(1) &amp; "MUSHClient" &amp; ansi(31) &amp; ansi(22) &amp; " done by " &amp; ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "T" &amp; ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; "ealos." &amp; ansi(36) &amp; " ]" &amp; ansi(0) &amp; "=-"
world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "This plugin is intended to make it extremely simple to copy lines and return them to the game with the same colour codes in tact.  In otherwords you won't have to add in the colour codes to send a duplicate of a line back to the MUD."
world.ansinote ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; vbnewline
world.ansinote ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "Use:"
world.ansinote ansi(37) &amp; ansi(1) &amp; ansi(40) &amp; "Select the line or lines that you intend to copy, right-click the screen, and select ""Copy as HTML...."""
world.ansinote ansi(37) &amp; ansi(1) &amp; ansi(40) &amp; "Alternatively, you can goto Game | Configure --> Output and select ""Copy Selection to Clipboard"" and ""HTML"" to have the MUD auto-copy text you select in HTML format."
world.ansinote ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "Then use the command " &amp; ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "'nbot &lt;channel&gt; [pre-appended text]'"
world.ansinote ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; vbnewline
world.ansinote ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "Note:" &amp; ansi(22) &amp; " All of the arguments can be blank, but the pre-appended text is only if you specify a channel."
world.ansinote ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "If you're putting this into a note just type " &amp; ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "'nbot'" &amp; ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; " and it will paste it all in and auto-fix lines that are too long."
world.ansinote ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; vbnewline
world.ansinote ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "To just send to a channel type " &amp; ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "'nbot &lt;channel&gt;'"
world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "ie. 'nbot ftalk' (Can select multiple lines with this feature.  Each new line is replaced with //)"
world.ansinote ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; vbnewline
world.ansinote ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "To send to a channel, and add on text use " &amp; ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "'nbot &lt;channel&gt; &lt;text&gt;'"
world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "ie. 'nbot ftalk Check out this cool item...'  will send it to ftalk with the text pre-appended."
world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "ie. 'nbot tell Tealos'  will do just as it suggests."
world.ansinote ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; vbnewline
world.ansinote ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "Currently you cannot paste into a note, and add text in front of the first line using 'nbot &lt;text&gt;'"
world.ansinote ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "Just type your text into the note, and then use 'nbot' to have the bot place the rest in for you."</send>
  </alias>
</aliases>

<!-- Triggers -->

<triggers>
  <trigger
   enabled="y"
   match="^ ( \d|\d+). (.*?)$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "NoteTotLines",  trim(%1)</send>
  </trigger>
</triggers>

<!--  Script  -->


<script>
<![CDATA[
Sub OnPluginInstall()
world.note "Type nbothelp for instructions on how to use the nbot."
End Sub

Dim strRAW, strHTML, a, strValue, b, strOffset

Sub ColourStripper(name, line, wildcards)
If wildcards(1) = "help" then
exit sub
End if

strRAW = world.getClipboard 'Get it
strRAW = Split(strRAW, vbNewLine) 'Cut up the HTML lines

strHTML = ""

'Now we're gonna ignore the first four and last lines and put it all back together
'This way is more versatile and requires less editing if transferred to another user
'due to any differences in the colours and fonts of the output screen.
For a = 4 To (UBound(strRAW) - 2)
  If a = UBound(strRAW) - 2 Then
   strHTML = strHTML & strRAW(a)
  Else
   strHTML = strHTML & strRAW(a) & vbNewLine
  End If
Next

strHTML = wildcards(1) & " " & strHTML

'Few things that aren't anywhere in particular.
strHTML = Replace(strHTML, "</font>", "")
strHTML = Replace(strHTML, "</code></pre>", "")
strHTML = Replace(strHTML, "&gt;", ">")
strHTML = Replace(strHTML, "&quot;", Chr(34))
strHTML = Replace(strHTML, "&lt;", "<")
strHTML = Replace(strHTML, "&amp;","&")
strHTML = Replace(strHTML, "@","@@")
strHTML = Replace(strHTML, ";",";;")

'Now to replace font colours
'" & chr(34) & "

For a = 2 To 8
 strValue = StrReverse(Hex(world.boldcolour(a)))
 
 Do Until Len(strValue) = 6
  strValue = strValue & "0"
 Loop
 
 'Then we fix an oddity with hex.
 'Hex is represented in a form of 3 groups of two.  Each group is reversed when translated. So we've got to undo it.
 ReDim strOffset(1)
 
 For b = 1 To 6
  ReDim Preserve strOffset(b)
  strOffset(b) = Mid(strValue, b, 1)
 Next
  
  strValue = strOffset(2) & strOffset(1) & strOffset(4) & strOffset(3) & strOffset(6) & strOffset(5)
 Select Case a:
 Case 2: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@R") 'Bright Red
 Case 3: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@G") 'Bright Green
 Case 4: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@Y") 'Bright Yellow
 Case 5: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@B") 'Bright Blue
 Case 6: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@M") 'Bright Magenta
 Case 7: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@C") 'Bright Cyan
 Case 8: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@W") 'Bright White
 End Select
Next

For a = 2 To 8
 strValue = StrReverse(Hex(world.normalcolour(a)))
 
 Do Until Len(strValue) = 6
  strValue = strValue & "0"
 Loop
 
 'Fix the hex again.
 ReDim strOffset(1)
 
 For b = 1 To 6
  ReDim Preserve strOffset(b)
  strOffset(b) = Mid(strValue, b, 1)
 Next
  
  strValue = strOffset(2) & strOffset(1) & strOffset(4) & strOffset(3) & strOffset(6) & strOffset(5)
 Select Case a:
 Case 2: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@r") 'Dark Red
 Case 3: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@g") 'Dark Green
 Case 4: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@y") 'Dark Yellow
 Case 5: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@b") 'Dark Blue
 Case 6: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@m") 'Dark Magenta
 Case 7: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@c") 'Dark Cyan
 Case 8: strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#" & strValue & Chr(34) & ">", "@w") 'Dark White
 End Select
Next

strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#FF0000" & Chr(34) & ">", "") 'This is just fer me because my name is highlighted that colour.  You can change this to match your own custom colours, just replace the #XXXXXX with the appropriate hex code and the second set of quotes after the second comma you can add a colour code or leave blank.
strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#80FFFF" & Chr(34) & ">", "@W") 'The colour of my commands...
strHTML = Replace(strHTML, "<font color=" & Chr(34) & "#0080FF" & Chr(34) & ">", "@W") ' The colour of my world.notes

if trim(wildcards(1)) = "" then 'it's note mode
 world.setvariable "NoteTotLines", "0"
 world.send ".sn"
 world.AddTimer "NBot_Note_Timer", 0, 0, 2, "", 1 + 4 + 16384, "NoteMode"
else 'Channel mode
 strHTML = Replace(strHTML, vbnewline , "@w" & world.getvariable("LineSeparator")) 'Remove newlines for single line input.
 world.execute trim(strHTML) & "@w"
end if
End Sub

Sub NoteMode(name)
redim strRAW(0)
strraw = split(strHTML,vbnewline)
strHTML = ""

for a = 0 to ubound(strraw)
 If strraw(a) = "" then
  strraw(a) = " ;"
 end if

 If (0 + len(strraw(a)))> 75 then
  'Toss something there then do a line replace to get around
  'the max char limit.
  strraw(a) = "q;.lr " & Cint(world.getvariable("NoteTotLines")) + a + 1 & " " & strRAW(a) 
 End If
next

For a = 0 To UBound(strRAW)
  If a = UBound(strRAW) Then
   strHTML = strHTML & strRAW(a) & "@w"
  Else
   strHTML = strHTML & strRAW(a) & vbNewLine
  End If
Next

 world.execute trim(strHTML) & "@w"
End Sub
]]>
</script>
</muclient>
[Go to top] top

Posted by NeoFryBoy   USA  (42 posts)  [Biography] bio
Date Reply #10 on Fri 14 Jul 2006 02:19 AM (UTC)

Amended on Fri 14 Jul 2006 02:20 AM (UTC) by NeoFryBoy

Message
This script just sends a message to any user-specified channel when an area repop msg is recieved. (Not all 217 areas are documented.)

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Sunday, June 18, 2006, 10:02 PM -->
<!-- MuClient version 3.73 -->

<!-- Plugin "RepopTracker" generated by Plugin Wizard -->

<muclient>
<plugin
   name="RepopTracker"
   author="NeoFryBoy(Tealos)"
   id="a5d06f430d8f58c8a4c3ea6d"
   language="VBscript"
   purpose="Used to note the user when an area has repopped."
   save_state="y"
   date_written="2006-06-18 22:00:12"
   requires="3.73"
   version="1.0"
   >

</plugin>


<!--  Triggers  -->

<triggers>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Richard and Virgil are at it again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow War of the Wizards"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Darkness reaches out and pries at your very being\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Council of Wyrm"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A faint \'Yoho\!\' can be heard somewhere in the distance\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Misty Shores of Yarr"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A gentle breeze softly caresses your cheek.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Takeda's Warcamp"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The darkness shifts as chaos changes\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Courts of Chaos"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Welcome to the casino\. May fortune leave you both profitable and alive \.\.\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Casino"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear guards yelling \'Intruders\!\!\' as more dark elves are alerted of your presence\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dark Elf Stronghold"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The trip gets stranger and stranger and stranger\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Bad Trip"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Let the slaughter commence....$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Slaughter House"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Battle for Human Souls Begins Again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Avian Kingdom"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The dream never ends.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Astral Travels"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^More of the undead sense mortal flesh in Arboria.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Arboria"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A calm passes over the city as Mt\. Vesuvius rests once again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Pompeii"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^There is a jet of warm air, as the furnace flares\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dwarven Kingdom"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Ah\, More BEER\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Land of Beer Goblins"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The prison alarm sounds\!  It\'s a breakout\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Prison"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Allllllllll aboooooooooooard\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Land of Legend"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^There is a great rumbling as some ice falls from the summit into the lake.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Icy Caldera"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You see a whale swim above you blocking out the faint sunlight\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Lost City of Atlantis"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Horses hooves pound against the ground as more guards arrive to protect the roads\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Western Roads"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The shadow of the The Three Pillars rolls over the courtyard\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Three Pillars of Diatz"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A new game begins on the chessboard\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Chessboard"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear the sounds of sabres clashing on deck\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Pirate Ship"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A booming voice shouts &quot;Minions, destroy the intruders.. Devour their souls\!&quot;$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Castle Vlad-Shamir"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The winds shift as the citadel moves again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Flying Citadel"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear the call of a loon from out on the lake\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Crystalmir Lake"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear the seagulls over the cliffs of Kerofk as new life enters the city.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Kerofk"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The forces of darkness bring forth more children of Torak.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Cthos Misrak"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The screams of damned souls fill the air and echo deeply into your ears.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Sanctity of Eternal Damnation"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The ground trembles with the pulse of dark magic.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Halls of the Damned"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Magic surges through the land as a new day of mystery and heroes are born.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Covenant of Mistrige"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Princess whimpers as her shackles are pulled tighter and the Tower's minions commence.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dread Tower"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Wetly rising from the shadows\, once again evil threatens Reme...$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Reman Conspiracy"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The wayhouse has hired new staff and is open for business\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Adventurer's Wayhouse"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^More Rangers have been suppressed as they attempt to flee.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Deathtrap Dungeon"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear a roar in the distance, reminding you to stay on your guard.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Cougarian Queendom"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Mists settle and new travellers come to the realm.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Falcovnia"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A distant scream ends in abrupt silence...$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Black Rose"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Peace reigns the Plane once again as a new day emerges.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Earth Plane 4"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Lightning flashes over the stark mountains, awakening dark creatures.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Mountains of Desolation"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Aardwolf Zoological Park appears clean and ready for today's visitors.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Aardwolf Zoological Park"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^\* Diamond Dust sprinkles downward from the sky, revitalizing all life. \*$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Diamond Soul Revelation"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Thunder clashes in the sky as Dragon Mountain is overrun by kobolds.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dragon Mountain"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Another avalanche rolls down Storm Mountain.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Storm Mountain"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^More smurfs\! Kill those little blue bastards\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Smurf Village"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A fiery, sulphurous breeze blasts you with a bonechilling shriek.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Paradise Lost"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A whinny and a roar fill the air\, then slowly the echoes fade away\.$$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Unearthly Bonds"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The denizens of the Underdark are ready to start their business.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Underdark"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear a voice singing 'just beat it.. yes, beat it...'$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dangerous Neighborhood"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The sound of a thousand goblins cripples you with fear.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Goblin Fortress"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Amusement Park's lights and music fade and then flare to life again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Amusement Park"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Suddenly a chill runs up your back\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dwarven Catacombs"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^More are seeking the Soulblade.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Souldblade"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Death's Gate has opened yet again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Death's Gate"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A cold wind blows through the old cathedral.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Old Cathedral"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Temple of Shal'indrael achieves perfect balance once again\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Temple of Shal'indrael"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The ground trembles and stones fall from the ceiling as a tremor shakes the entire region.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dungeon of Doom"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The magics surrounding the Isle of Myst return.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow MYST"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Drunken cheers are heard as another arrow pierces the wind.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Nottingham"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The lifeless artifacts on the floor rise and ravage the castle again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Art of Mayhem"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear the rattling of chains echoing from somewhere.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Kul Tiras"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Council of the Dark Eight has declared that you should not be here.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Nine Hells"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A great light flares blinding you, then it is gone.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Antharia"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^\*RING RING\* Classes have begun\! Good Luck$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow School of Horror"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Hell Freezes over \- this can't be a good sign.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Descent to Hell"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Attention Shoppers\! More weird and wondrous creatures have just arrived\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Giant's Pet Store"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The sound of gunfire marks a new day in the City of Gold.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Gold Rush"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Ahner shall rise and rule the realm once more.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Kingdom of Ahner"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The magics of the Lower Planes renew.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Lower Planes"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You slip and fall into the smelly brown guck at your feet.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Sewers"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The hair on your neck rises as you hear the great minotaur awaken\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Knossos"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Water ripples on the surface of the lake.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Sen'narre Lake"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The magics of the Upper Planes are back.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Upper Planes"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The magic of the forest weakens.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Snuckles Village"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You sense a renewal of the Force.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Star Wars"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^There is a flash of lightning in the sky as the magics of Dominia renew\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Land of Dominia"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A cloud flies over, dropping creatures all over the place.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Goblin Path"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Across a glade hoofbeats resound, pages flutter, and the past returns.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow History fo Black Adder"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Slithering from the depths comes forth an army of snakes.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Wobbly Woes of Woobleville"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You wince as the bride throws yet another screaming fit.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Wedded Bliss"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^There is a slight draft as new customers enter the tavern.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Jenny's Tavern"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The king of Juargan moves with his staff and Juargan is populated again\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Kingdom of Juargan"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear the Queen's echoing cackle gloating over your predicament.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Labyrinth"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^All melodies flow in sync once more...$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Art of Melody"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The smell of death grows as Damian reigns for another day.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Killing Fields"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The air suddenly rings with the sound of metal chimes.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dragon Cult"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Munchkins arrive and repopulate the land of Oz.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Land of Oz"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The shadow of Kali wanders by and alters all corpses back into monsters.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Yurgach Domain"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Yet another contingent of Axa's army has been ordered towards Midgaard.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Anthrox"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The blistering sun bakes your sweat to your face.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Great Salt Flats"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear familiar sounding theme music in the background.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow STTNG"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The theme music gets on your nerves as you hear it over and over again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow STTNG: Veritgo"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You sense that more prisoners are being transported here.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Desert Prison"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Drageran Empire lives again as the Empress breathes new life into her realm.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Drageran Empire"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Praying to the Goddess of Nature, fishermen head toward their ships.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Arisian Realm"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Pure evil passes over you as the Dark One reaches out from his prison.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Shayol Ghul"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Rumours are that Nessy has been seen again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Highlands"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Blood flows freely throughout the shadowlands as the oni turn their gazes toward you.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Rokugan, The Shadowlands"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Ancient evil surrounds you through the midday heat and leaves a cold print on your soul.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Necromancer's Guild"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Ripples of twisted magic pass through you and chill you to the bone.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Scarred Lands"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^These swamps are quiet, too quiet....$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Curse of the Midnight Fens"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The calling of rebellion stirs fire into the people.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Empire of Talsa"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Cold air brushes against you as the evil heros revive\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Realm of Evil Superheroes"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The mist echoes with insane giggles, and the Faerie Tales start again\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Faerie Tales II"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The leaves beyond the shadow of the treeline begin to rustle.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Gallows"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Rain crashes down. Winds howl. Life returns to the Wonders.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Seven Wonders"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Dark One frees more of his twisted creatures to wreak havoc and mayhem.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Deadlights"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^All gnomes and hobgoblins regroup to defend their king.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Gnome Village"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A golden light bathes Old Thalos as it is reborn.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Old Thalos"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^An eerie scream echos off the walls, seemingly coming from nowhere.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Gauntlet"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The elements merge creating new life.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Elemental Canyon"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Dark is rising again...$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Darklight"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Mt. Vesuvius stirs, making the city tremble.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Pompeii"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A monsoon breaks over Raganatittu.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Raganatittu"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^DONG\! DONG\! The ringing of the Joseph Bell announces a new day.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Mossflower Wood"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Creator bathes the Fortress in his light, bringing forth a new day.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow City of Amador"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The darkness around you conceals a new outpouring of the minions of hell.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Into the Long Night"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Sights, Sounds and Smells all hit you, as the port gets busier.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Port"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The titter of little voices heralds the start of a new Faerie Tale.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Faerie Tales"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Sickening waves of color ripple across the sky as the onslaught renews.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Onslaught of Chaos"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Diana and her guard re\-appear to uphold law and order in Ofcol.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Old Thalos"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Bronze ranks clash, rising from their earthen graves anew. Hail Reme\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Imperial City of Reme"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^An amazon warcry resounds throughout the nation, signaling a new dawn.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Amazon Nation"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Strange winds blow and the fallen leaves swirl until they come to a new place.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Verdure Estates"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The moans of the returning undead echo hauntedly in your ears.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Doom and Gloom"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Lizardmen Scatter About the Jungle Waiting for Ushak's Return.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Jungles of Verume"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^There is a deep rumble as the Isle of Quake stirs.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Isle of Quake"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The darkness seems to close in as the subterranean army prepares to invade.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Fort Terramire"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The eyes of many minotaurs staring angrily at you make you feel uncomfortable.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Keep of Mahn-Tor"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A group of tourists have arrived to see the beauty of the city.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow New Thalos"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The faint mumbling of magic words has increased in volume...$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow High Tower of Sorcery"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You can hear a bard playing on the harp nearby.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Ultima"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^In the distance you see the sudden appearance of a large wyvern, grinning evilly at you.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Wyvern Tower"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear the sound of monks chanting.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Monastery"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A sudden blast of flame appears in the sky. Giants whisper a word\: 'Vopil\!'$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow A Peaceful Giant Village"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear bells ringing as Santa's sleigh draws in.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Christmas Vacation"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The air around you resonates at the sounds of wild cackling.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Nanjiki Ruins"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A sea gale rises and drives you once more into the storm.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Foolish Promises"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^As the blood flows from their wounds, the minions of Zyian regain their strength...$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Dark Temple of Zian"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A strong breeze breathes new life into the tree.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Tree of Life;tolalarm "</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The weeds grow in the orchard once again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Orchard"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Whoa\! Was that a pig that just flew by\?$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Magical Hodgepodge"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Your mind is filled with fantastic thoughts and visions.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Fantasy Fields"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The energy level rises as excited cheers fill the air.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Olde Worlde Carinvale"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The sunlight reflects into your eyes off a mirror.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Mirror Realm"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A crystal chime sounds, summoning back the dead.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Death's Manor"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^As the Dunes shift, time goes on and all things change.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dune"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The high\-pitched giggle of a young child echoes on the fresh breeze.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Child's Play"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^All evil is purged as a holy light flashes across the grove.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Holy Grove"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The good people rise to work another day, fearful of the coming evil.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dortmund"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You hear a cold echoing scream in the distance.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Chapel Catacombs"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A temporal shockwave emanates from within the mines, leaving evil in its wake.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Ruins of Diamond Reach"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Prince of Krondor has proclaimed a new day in the Kingdom of the Isles.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Island of Stardock"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Alden, Creator of all, repopulates the world.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Northstar"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The howling of direwolves chills you to the bone.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Winterfell"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The war drums sound as the sun rises.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Desert Doom"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The trumpets sound, and everyone runs off to see the knights' tournament.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Illoria"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A new day dawns in Midgaard, all appears fresh and clean.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Midgaard"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The Sound of Clicking Mandibles and Crunching Carapace tells you the Infestation is Renewed...$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Infestation"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A big stone falls out of the sky and hits you on the head\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Fabled City of Stone"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A large rat scurries beneath your feet.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Rats Lair"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A bellowing dinosaur heralds the start of a new day.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Island of Lost Time"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A school of fish swims by, searching for food among the coral.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Coral Kingdom"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Roll up\! Roll up\! The show is about to begin.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Circus"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The teachers of the way of the White Lotus assemble to praise Buddha.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow The Temple of White Lotus"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Mashadar descends upon Shadar Logoth, bringing forth the dead once again.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Shadar Logoth"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You catch the faint smell of spiced potatoes on the breeze.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Town of Solace"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Elves from outside the valley are summoned to defend their elders.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Valley of the Elves"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^The sand is moving beneath your feet.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Sands of Sorrow"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You sense that life will return to this area in roughly (\d+) minutes.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.send "gt Sense Life Automessage: Repop in %1 minutes."</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^A shiny scarab beetle scuttles swiftly away from approaching footsteps.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Eighteenth Dynasty"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^You sense that life will return to this area in roughly (\d) minute.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Sense Life Automessage: Repop in %1 minute."</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Serenity returns to the Lagoon and life starts anew.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Black Lagoon"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^\*rrrrRRRRROOOOOOOAAAAAAAARRRRRRRrrrr\*$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Dragon Tower"</send>
  </trigger>
  <trigger
   enabled="y"
   group="RepopMsgs"
   match="^Creatures from the future have arrived through a time machine, and scatter themselves around the city.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.execute "repshow Mega City One"</send>
  </trigger>
</triggers>

<!--  Aliases  -->

<aliases>
  <alias
   match="repchan *"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "repopchan", "%1"</send>
  </alias>
  <alias
   match="tolalarm*"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>if trim("%1") = "" then
 world.DoAfter 810, "@repopchan @@WAutomessage: ToL Repop from within 30 secs ago to 90 secs from now."
else
  world.DoAfter trim(%1), "@repopchan @@WAutomessage: ToL Repop from within 30 secs ago to 90 secs from now."
End if</send>
  </alias>
  <alias
   match="rephelp"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "-=+ " &amp; ansi(36) &amp; ansi(1) &amp; "Original" &amp; ansi(37) &amp; " Repop Report Script v2.0, written by Atreidess " &amp; ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "+=-" &amp; ansi(37) &amp; ansi(22)
world.ansinote ansi(0) &amp; "-=" &amp; ansi(36) &amp; "[ " &amp; ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; "Remake for " &amp; ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "MUSHClient" &amp; ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; " done by " &amp; ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "T" &amp; ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; "ealos." &amp; ansi(36) &amp; " ]" &amp; ansi(0) &amp; "=-"
world.ansinote ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "I removed aliases I deemed unnecessary, or didn't feel like adding.  This is MY version of Atreidess script."
world.ansinote ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; vbnewline
world.ansinote ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "Usage:"
world.ansinote ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "repon, repoff"
world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "Turns the plugin on and off."
world.ansinote ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; vbnewline
world.ansinote ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "Repchan &lt;argument&gt;"
world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "Sets the channel the report is placed on. (Default: gt)"
world.ansinote ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "If you want an audible beep, you can set the channel to page &lt;name&gt;, but this creates a global lag which isn't pleasant during battles."
world.ansinote ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; vbnewline
world.ansinote ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "tolalarm &lt;#&gt;"
world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "Sets a timer to estimate when Tree of Life will repop. Default is 820 seconds,"
world.ansinote ansi(36) &amp; ansi(1) &amp; ansi(40) &amp; "the optional # paramater sets it to that many seconds."
world.ansinote ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "The tolalarm command is automatically started, at 820 seconds, every time you're in the"
world.ansinote ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "area for a tol repop. During GQs, this will become inaccurate, the rest of the time it's"
world.ansinote ansi(32) &amp; ansi(1) &amp; ansi(40) &amp; "quite useful."</send>
  </alias>
  <alias
   match="repoff"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>world.EnableTriggerGroup "RepopMsgs", False
world.sendnoecho "@repopchan @@CRepop Messages Off@@w"</send>
  </alias>
  &l
[Go to top] top

Posted by NeoFryBoy   USA  (42 posts)  [Biography] bio
Date Reply #11 on Fri 14 Jul 2006 02:26 AM (UTC)

Amended on Thu 03 Aug 2006 07:14 AM (UTC) by NeoFryBoy

Message
This is a very extensive level tracker. It tracks, levels, exp, and gold gained per hour and reports them every hour. It also sends a message to the user per level/pup noting time since last level/pup, gains made this level, the level, gold, kills, exp, exp / kill, and bonus stats.

It has a set of variables to track on a level basis, and hourly basis, a mort basis, and an alltime basis.

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Saturday, July 01, 2006, 1:37 AM -->
<!-- MuClient version 3.73 -->

<!-- Plugin "LevelTracker" generated by Plugin Wizard -->

<!--
This script also creates and maintains a variable, ""@alevel"", is your ""actual level"" in terms of equipment/weapon/spell/skill useage.  No idea yet how to make this variable useful.
-->

<muclient>
<plugin
   name="LevelTracker"
   author="NeoFryBoy(Tealos)"
   id="d133b9cf9f4fa22a35791a54"
   language="VBscript"
   purpose="To track levels/trains/stats gained across morts, and through pups as well."
   save_state="y"
   date_written="2006-07-01 01:35:05"
   requires="3.73"
   version="1.0"
   >

</plugin>


<!--  Get our standard constants -->

<include name="constants.vbs"/>

<!--  Triggers  -->

<triggers>
  <trigger
   enabled="y"
   match="^You gain a bonus (\w+) point!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "bstats", (world.getvariable("bstats") &amp; Chr(Asc("%1")) &amp; "@w, @W")
world.setvariable "MortR" &amp; Chr(Asc("%1")), (clng(world.getvariable("MortR" &amp; Chr(Asc("%1")))) + 1)
world.setvariable "AllTimeR" &amp; Chr(Asc("%1")), (clng(world.getvariable("AllTimeR" &amp; Chr(Asc("%1")))) + 1)</send>
  </trigger>
  <trigger
   group="FingerInfo"
   match="^\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- Player \: (.*?) \(Online\) \-\-\-\-\-\-\-\-\-\-\-\-\-\-$"
   regexp="y"
   send_to="9"
   sequence="100"
   variable="player_name"
  >
  <send>%1</send>
  </trigger>
  <trigger
   expand_variables="y"
   group="FingerInfo"
   match="^\w+ online since \: .*"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.ansinote ansi(31) &amp; ansi(1) &amp; "Done.  Thank you, @player_name."
world.ansinote ansi(32) &amp; ansi(1) &amp; "Current level is: " &amp; ansi(36) &amp; ansi(1) &amp; "@clevel"
world.ansinote ansi(32) &amp; ansi(1) &amp; "Total classes: " &amp; ansi(36) &amp; ansi(1) &amp; "@classes"
world.ansinote ansi(32) &amp; ansi(1) &amp; "Total tiers: " &amp; ansi(36) &amp; ansi(1) &amp; "@tiers"
if "@clevel" = "201" then
 world.ansinote ansi(32) &amp; ansi(1) &amp; "Total levels gained: " &amp; ansi(36) &amp; ansi(1) &amp; ((@clevel - 2) + (@tiers * 1393) + ((@classes - 1) * 199))  &amp; ansi(33) &amp; ansi(1) &amp; " (" &amp; ansi(32) &amp; (13930 - ((@clevel - 2) + (@tiers * 1393) + ((@classes - 1) * 199))) &amp; " to go!" &amp; ansi(33) &amp; ansi(1) &amp; ")"
else
 world.ansinote ansi(32) &amp; ansi(1) &amp; "Total levels gained: " &amp; ansi(36) &amp; ansi(1) &amp; ((@clevel - 1) + (@tiers * 1393) + ((@classes - 1) * 199))  &amp; ansi(33) &amp; ansi(1) &amp; " (" &amp; ansi(32) &amp; (13930 - ((@clevel - 1) + (@tiers * 1393) + ((@classes - 1) * 199))) &amp; " to go!" &amp; ansi(33) &amp; ansi(1) &amp; ")"
end if

If world.getvariable("InstallTime") = "" then
 world.setvariable "InstallTime", Now
 world.setvariable "LevelTime", Now
 world.setvariable "ResetTime", Now
world.setvariable "MortRGold", "0"
world.setvariable "MortRExp", "0"
world.setvariable "MortRKills", "0"
world.setvariable "MortRLevels", "0"
world.setvariable "MortRTrains", "0"
world.setvariable "MortRBTrains", "0"
world.setvariable "MortRBTrainsPup", "0"
world.setvariable "MortRTrainsPup", "0"
world.setvariable "MortRPups", "0"
world.setvariable "MortRD", "0"
world.setvariable "MortRS", "0"
world.setvariable "MortRW", "0"
world.setvariable "MortRL", "0"
world.setvariable "MortRI", "0"
world.setvariable "MortRC", "0"
world.setvariable "HourRGold", "0"
world.setvariable "HourRExp", "0"
world.setvariable "HourRKills", "0"
world.setvariable "HourRLevels", "0"
world.setvariable "HourRPups", "0"
world.setvariable "LevelRBonusExp", "0"
world.setvariable "LevelRExp", "0"
world.setvariable "LevelRKills", "0"
world.setvariable "AllTimeRLevels", "0"
world.setvariable "AllTimeRTrains", "0"
world.setvariable "AllTimeRBTrains", "0"
world.setvariable "AllTimeRBTrainsPup", "0"
world.setvariable "AllTimeRTrainsPup", "0"
world.setvariable "AllTimeRPups", "0"
world.setvariable "AllTimeRD", "0"
world.setvariable "AllTimeRS", "0"
world.setvariable "AllTimeRW", "0"
world.setvariable "AllTimeRL", "0"
world.setvariable "AllTimeRI", "0"
world.setvariable "AllTimeRC", "0"
world.setvariable "pupbonustrains", "0"
world.setvariable "bonustrains", "0"
End if

if cint(world.getvariable("clevel")) >= 200 then
 world.setvariable "pupping", "1"
else
 world.setvariable "pupping", "0"
end if

'This is the hourly report timer
world.addtimer "LevelInfo_HourlyReport", 1, 0, 0, "", 1, "ExecExpHour"
world.EnableTriggerGroup "FingerInfo", False</send>
world.savestate
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^INFO\: (\w+) has been reborn as .*\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>If "@player_name" = "%1" then
 world.setvariable "pupping", "0"
 world.setvariable "clevel", "1"
 world.setvariable "Classes", (@classes + 1)
 world.setvariable "alevel", (1 + (@tiers * 10))
 world.execute "lvlavgb"
 world.execute "lvlavgr"
end if</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^Lucky\! You gain an extra (\d+) training session(|s)\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>if world.getvariable("pupping") = "1" then
 world.setvariable "pupbonustrains", "%1"
 world.setvariable "MortRBTrainsPup", (@MortRBTrainsPup + %1)
 world.setvariable "AllTimeRBTrainsPup", (@AllTimeRBTrainsPup + %1)
else
 world.setvariable "bonustrains", "%1"
 world.setvariable "MortRBTrains", (@MortRBTrains + %1)
 world.setvariable "AllTimeRBTrains", (@AllTimeRBTrains + %1)
end if</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^The immortals cringe as they realize (\w+) will be here for another 1407 levels\!$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>If "@player_name" = "%1" then
 world.setvariable "pupping", "0"
 world.setvariable "clevel", "1"
 world.setvariable "Classes", "1"
 world.setvariable "tiers", (@tiers + 1)
 world.setvariable "alevel", (1 + ((@tiers + 1) * 10))
 world.execute "lvlavgb"
 world.execute "lvlavgr"
end if</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^There is a brilliant burst of lightning throughout the skies as (\w+) is stripped of power and starts a new life.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>If "@player_name" = "%1" then
 world.setvariable "pupping", "0"
 world.setvariable "clevel", "1"
 world.setvariable "Classes", "1"
 world.setvariable "tiers", (@tiers + 1)
 world.setvariable "alevel", (1 + ((@tiers + 1) * 10))
 world.execute "lvlavgb"
 world.execute "lvlavgr"
end if</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^You receive (.*) experience points.$"
   regexp="y"
   keep_evaluating="y"
   send_to="12"
   sequence="100"
  >
  <send>if eval("%1") > "0" then
world.setvariable "HourRexp", (@HourRexp + eval("%1"))
world.setvariable "MortRexp", (@MortRexp + eval("%1"))
world.setvariable "LevelRexp", (@LevelRexp + eval("%1"))
world.setvariable "LevelRKills", (@LevelRKills + 1)
world.setvariable "HourRKills", (@HourRkills + 1)
world.setvariable "MortRKills", (@MortRkills + 1)
world.savestate
end if</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^You receive (\d+) bonus experience"
   regexp="y"
   keep_evaluating="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "HourRExp", (@HourRExp + %1)
world.setvariable "MortRExp", (@MortRExp + %1)
world.setvariable "LevelRBonusExp", (@LevelRBonusExp + %1)
</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^You receive (\d+) gold"
   regexp="y"
   keep_evaluating="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "HourRGold", (@HourRGold + %1)
world.setvariable "MortRGold", (@MortRGold + %1)</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^You get (\d+) gold coins"
   regexp="y"
   keep_evaluating="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "HourRGold", (@HourRGold + %1)
world.setvariable "MortRGold", (@MortRGold + %1)</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^\w+ gives you (\d+) gold coins"
   regexp="y"
   keep_evaluating="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "HourRGold", (@HourRGold + %1)
world.setvariable "MortRGold", (@MortRGold + %1)</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^You are taxed (\d+) by your clan\!$"
   regexp="y"
   keep_evaluating="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "HourRGold", (@HourRGold - %1)
world.setvariable "MortRGold", (@MortRGold - %1)</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^(.*?) split(|s) (\d+) gold coins. Your share is (\d+) gold.$"
   regexp="y"
   keep_evaluating="y"
   send_to="12"
   sequence="100"
  >
  <send>if "%1" = "You" then
 world.setvariable "HourRGold", ((@HourRGold - %3) + %4)
 world.setvariable "MortRGold", ((@MortRGold - %3) + %4)
else
 world.setvariable "HourRGold", (@HourRGold + %4)
 world.setvariable "MortRGold", (@MortRGold + %4)
end if</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^You receive 8,000 gold from the full moon.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "HourRGold", (@HourRGold + 8000)
world.setvariable "MortRGold", (@MortRGold + 8000)</send>
  </trigger>
  <trigger
   group="FingerInfo"
   match="^Level (\d+) (none|male|female) .* \(Tier (\d)\)\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "clevel", "%1"
world.setvariable "tiers", "%3"
world.setvariable "alevel", (%1 + (%3 * 10))</send>
  </trigger>
  <trigger
   group="FingerInfo"
   match="Remort\:( .* \/){1,7}"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>dim Classes1

Classes1 = Split("%1", " /")
world.setvariable "Classes", (UBound(Classes1) + 1)

'If this script never goes off, then they are a SC, 
'and the variable is already set to reflect that.
</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^You gain (\d+) hit points\, (\d+) mana\, (\d+) moves\, (\d+) practices and (\d+) trains\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "clevel", (@clevel + 1)
world.setvariable "alevel", (@alevel + 1)
world.setvariable "HourRLevels", (@HourRLevels + 1)
world.setvariable "MortRLevels", (@MortRLevels + 1)
world.setvariable "AllTimeRLevels", (@AllTimeRLevels + 1)
world.setvariable "bonustrains", "0"
world.setvariable "bstats", ""
world.setvariable "MortRTrains", (@MortRTrains + %5)
world.setvariable "AllTimeRTrains", (@AllTimeRTrains + %5)
'TimerNames don't like numbers.  Phooey.
var1 = "%1"
var2 = "%2"
var3 = "%3"
var4 = "%4"
var5 = "%5"
world.AddTimer "LeveledTimer", 0, 0, 1.5, "", 5, "RegLevelReport"</send>
  </trigger>
  <trigger
   enabled="y"
   expand_variables="y"
   match="^You gain (\d+) trains\.$"
   regexp="y"
   send_to="12"
   sequence="100"
  >
  <send>world.setvariable "pupbonustrains", "0"
world.setvariable "bstats", ""
world.setvariable "MortRTrainsPup", (@MortRTrainsPup + %1)
world.setvariable "AllTimeRTrainsPup", (@AllTimeRTrainsPup + %1)
world.setvariable "MortRPups", (@MortRPups + 1)
world.setvariable "AllTimeRPups", (@AllTimeRPups + 1)
world.setvariable "HourRPups", (@HourRPups + 1)


var1 = "%1"
world.AddTimer "PuppedTimer", 0, 0, 1.5, "", 5, "RegLevelReport"</send>
  </trigger>
</triggers>

<!--  Aliases  -->

<aliases>
  <alias
   match="lvlt"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>if "@LevelRKills" = "0" then
 world.sendnoecho "@lvlchannel @@RS@@rince @@rL@@Rast @@RL@@revel@@w: @@c" &amp; LevelTimer(world.getvariable("LevelTime"),Now) &amp; "@@w|@@w 0 @@ckills @@w|@@w 0 @@cexp@@w/@@ckill@@w."
else
 world.sendnoecho "@lvlchannel @@RS@@rince @@rL@@Rast @@RL@@revel@@w: @@c" &amp; LevelTimer(world.getvariable("LevelTime"),Now) &amp; "@@w|@@w @LevelRKills @@ckills @@w|@@w " &amp; FormatNumber(((cint(world.getvariable("LevelRExp")) + 0 + cint(world.getvariable("LevelRBonusExp"))) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@cexp@@w/@@ckill@@w."
end if</send>
  </alias>
  <alias
   match="exphl"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>If world.getvariable("LastHourR") = "" then
world.ansinote ansi(31) &amp; ansi(1) &amp; "Nothing to report."
else
world.sendnoecho world.getvariable("lvlchannel") &amp; " " &amp; world.getvariable("LastHourR")
end if</send>
  </alias>
  <alias
   match="exph"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>if "@HourRKills" = "0" then
world.ansinote ansi(31) &amp; ansi(1) &amp; "Nothing to report."
else
world.sendnoecho "@lvlchannel @@RS@@ro @@rF@@Rar @@RT@@rhis @@RH@@rour@@w: @@W@HourRExp @@cexp@@w, @@W@HourRKills @@ckills@@w, @@W@HourRLevels @@clevel(s),  @@W@HourRPups @@cpups@@w@@w, @@W" &amp; FormatNumber((@HourRExp / @HourRKills), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@cexp/kill@@w. @@Y@HourRGold @@cgold@@w, @@Y" &amp; FormatNumber((@HourRGold / @HourRKills), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@cgold/kill@@w."
End if</send>
  </alias>
  <alias
   match="exphour"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>if "@HourRKills" = "0" then
world.setvariable "LastHourR", "@@RL@@rast @@rR@@Reported @@rH@@Rour@@w: @@W@HourRExp @@cexp@@w, @@W@HourRKills @@ckills@@w, @@W@HourRLevels @@clevel(s),  @@W@HourRPups @@cpups@@w@@w, @@W0 @@cexp/kill@@w. @@Y@HourRGold @@cgold@@w, @@Y0 @@cgold/kill@@w."
world.sendnoecho "@lvlchannel @@RT@@rhe @@rP@@Rrevious @@rH@@Rour@@w: @@W@HourRExp @@cexp@@w, @@W@HourRKills @@ckills@@w, @@W@HourRLevels @@clevel(s),  @@W@HourRPups @@cpups@@w@@w, @@W0 @@cexp/kill@@w. @@Y@HourRGold @@cgold@@w, @@Y0 @@cgold/kill@@w."
else
world.setvariable "LastHourR", "@@RL@@rast @@rR@@Reported @@rH@@Rour@@w: @@W@HourRExp @@cexp@@w, @@W@HourRKills @@ckills@@w, @@W@HourRLevels @@clevel(s),  @@W@HourRPups @@cpups@@w@@w, @@W" &amp; FormatNumber((@HourRExp / @HourRKills), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@cexp/kill@@w. @@Y@HourRGold @@cgold@@w, @@Y" &amp; FormatNumber((@HourRGold / @HourRKills), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@cgold/kill@@w."
world.sendnoecho "@lvlchannel @@RT@@rhe @@rP@@Rrevious @@rH@@Rour@@w: @@W@HourRExp @@cexp@@w, @@W@HourRKills @@ckills@@w, @@W@HourRLevels @@clevel(s),  @@W@HourRPups @@cpups@@w@@w, @@W" &amp; FormatNumber((@HourRExp / @HourRKills), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@cexp/kill@@w. @@Y@HourRGold @@cgold@@w, @@Y" &amp; FormatNumber((@HourRGold / @HourRKills), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@cgold/kill@@w."
end if
world.setvariable "HourRGold", "0"
world.setvariable "HourRExp", "0"
world.setvariable "HourRKills", "0"
world.setvariable "HourRLevels", "0"
world.setvariable "HourRPups", "0"</send>
  </alias>
  <alias
   match="lvlsetup"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>dim dummyvar
Dummyvar  = Inputbox("Enter the channel on which the report shows.", "Tealos' LevelScript", world.getvariable("lvlchannel"))

if dummyvar = "" then
else
world.setvariable "lvlchannel", dummyvar

if msgbox("Would you like reports to show all gains (Yes), or just pracs + trains + stats (No)", vbYesNo) = vbYes then
 world.setvariable "shortreport", "0"
else
 world.setvariable "shortreport", "1"
end if

world.EnableTriggerGroup "FingerInfo", True
world.setvariable "Classes", "1"
world.send "finger"
end if</send>
  </alias>
  <alias
   match="llvl"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>If world.getvariable("lastlevel") = "" then
world.ansinote ansi(31) &amp; ansi(1) &amp; "Nothing to report."
else
world.sendnoecho world.getvariable("lvlchannel") &amp; world.getvariable("lastlevel")
end if</send>
  </alias>
  <alias
   match="whogr*"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>
world.send "swho 12%1 " &amp; (@clevel - 9) &amp; " " &amp; (@clevel + 9)</send>
  </alias>
  <alias
   match="lvlhelp"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>world.ansinote ansi(37) &amp; ansi(1) &amp; "/~/~" &amp; ansi(36) &amp; ansi(1) &amp; " Original " &amp; ansi(37) &amp; ansi(1) &amp; "Level Info script v3.2 written by Atreidess ~\~\"
world.ansinote ansi(37) &amp; ansi(1) &amp; "~/~/ Parts of Atreidess' script were adapted from Ninja's ~\~\"
world.ansinote ansi(0) &amp; "-=" &amp; ansi(36) &amp; "[ " &amp; ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; "Remake for " &amp; ansi(33) &amp; ansi(1) &amp; ansi(40) &amp; "MUSHClient" &amp; ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; " done by " &amp; ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "T" &amp; ansi(31) &amp; ansi(22) &amp; ansi(40) &amp; "ealos." &amp; ansi(36) &amp; " ]" &amp; ansi(0) &amp; "=-"
world.ansinote ansi(31) &amp; ansi(1) &amp; ansi(40) &amp; "I removed aliases I deemed unnecessary, or didn't feel like adding.  This is MY version of Atreidess script."
world.ansinote ansi(22) &amp; vbnewline
world.ansinote ansi(36) &amp; ansi(1) &amp; "Configuration commands:"
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: lvlsetup :=- " &amp; ansi(33) &amp; ansi(1) &amp; " Configure options for the script, and automatically gets level, remorts, and tiers."
world.ansinote ansi(31) &amp; ansi(1) &amp; "* with no parameters, these will show your current settings and 'total level'"
world.ansinote ansi(22) &amp; vbnewline
world.ansinote ansi(36) &amp; ansi(1) &amp; "Report commands:"
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: exph :=-"    &amp; ansi(33) &amp; ansi(1) &amp; " Displays last hour info."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: exphl :=-"   &amp; ansi(33) &amp; ansi(1) &amp; " Displays last reported hour info."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: exphour :=-" &amp; ansi(33) &amp; ansi(1) &amp; " Resets current hour's timer and reports as if timer had gone off."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: llvl :=-"    &amp; ansi(33) &amp; ansi(1) &amp; " Displays last level info."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: lvlt :=-"    &amp; ansi(33) &amp; ansi(1) &amp; " Reports time since last level."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: lvlavg :=-"    &amp; ansi(33) &amp; ansi(1) &amp; " Displays gains averages this mort."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: lvlavga :=-"   &amp; ansi(33) &amp; ansi(1) &amp; " Displays alltime gains averages."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: lvlavgb :=-" &amp; ansi(33) &amp; ansi(1) &amp; " Lucky bonus stats info."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: pupavg :=-"     &amp; ansi(33) &amp; ansi(1) &amp; " Pup averages this mort."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: pupavga :=-"  &amp; ansi(33) &amp; ansi(1) &amp; " Pup averages alltime."
world.ansinote ansi(31) &amp; ansi(1) &amp; "* report commands are reported to the channel chosen during setup, or to screen."
world.ansinote ansi(22) &amp; vbnewline
world.ansinote ansi(36) &amp; ansi(1) &amp; "Miscellaneous commands:"
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: lvlavgr :=-"   &amp; ansi(33) &amp; " Resets the script. (Doesn't reset alltime reports, and "   &amp; ansi(31) &amp; ansi(1) &amp; "DOES NOT"   &amp; ansi(33) &amp; " display a warning."
world.ansinote ansi(32) &amp; ansi(1) &amp; "-=: whogr [argument] :=-" &amp; ansi(33) &amp; ansi(1) &amp; " Do a who for people +/- 9 levels from your current level."
world.ansinote ansi(31) &amp; ansi(1) &amp; "The argument is optional, so you can use 'whogr', 'whogr evil friend', 'whogr chaos', etc."
world.ansinote ansi(0) &amp; vbnewline
world.ansinote ansi(31) &amp; ansi(1) &amp; "This script uses the same variable as my Potion Tracker script to hold the player's name, and a different variable from Huan's script to track player level."
world.ansinote ansi(31) &amp; ansi(1) &amp; "Note" &amp; ansi(37) &amp; ansi(1) &amp; ": The script counts levels *gained* as 199 per mort or 1393 per tier, because levels 1 and 201 are basically freebies, so you only actually raise your character 199 levels of experience per mort. If you don't like this reasoning, then simply add 14 levels per tier, two levels per complete mort, and one level per unfinished mort."</send>
  </alias>
  <alias
   match="lvlavgr"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send> world.setvariable "MortRGold", "0"
 world.setvariable "MortRExp", "0"
 world.setvariable "MortRKills", "0"
 world.setvariable "MortRLevels", "0"
 world.setvariable "MortRTrains", "0"
 world.setvariable "MortRBTrains", "0"
 world.setvariable "MortRBTrainsPup", "0"
 world.setvariable "MortRTrainsPup", "0"
 world.setvariable "MortRPups", "0"
 world.setvariable "MortRD", "0"
 world.setvariable "MortRS", "0"
 world.setvariable "MortRW", "0"
 world.setvariable "MortRL", "0"
 world.setvariable "MortRI", "0"
 world.setvariable "MortRC", "0"
 world.setvariable "LevelRBonusExp", "0"
 world.setvariable "LevelRExp", "0"
 world.setvariable "LevelRKills", "0"
 world.setvariable "LevelTime", Now
 world.setvariable "ResetTime", Now
 world.ansinote ansi(36) &amp; ansi(1) &amp; "-=+ " &amp; ansi(31) &amp; ansi(1) &amp; "LevelInfo Script Reset " &amp; ansi(36) &amp; ansi(1) &amp; "+=-"</send>
  </alias>
  <alias
   match="lvlavgb"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>world.ansinote ansi(0) &amp; "-=: " &amp; ansi(35) &amp; ansi(1) &amp; world.getvariable("MortRLevels") &amp; " levels since " &amp; world.getvariable("ResetTime") &amp; " (this mort)" &amp; ansi(0) &amp; " :=-"
world.ansinote ansi(36) &amp; ansi(1) &amp;  "Bonus stats: " &amp; ansi(37) &amp; ansi(1) &amp; (cint(world.getvariable("MortRS")) + cint(world.getvariable("MortRD")) + cint(world.getvariable("MortRI")) + cint(world.getvariable("MortRL")) + cint(world.getvariable("MortRC")) + cint(world.getvariable("MortRW")))
world.ansinote ansi(35) &amp; ansi(1) &amp;  "----------------"
world.ansinote ansi(32) &amp; ansi(1) &amp;  "Strength: " &amp; ansi(33) &amp; ansi(1) &amp; world.getvariable("MortRS")
world.ansinote ansi(32) &amp; ansi(1) &amp;  "Intelligence: " &amp; ansi(33) &amp; ansi(1) &amp; world.getvariable("MortRI")
world.ansinote ansi(32) &amp; ansi(1) &amp;  "Wisdom: " &amp; ansi(33) &amp; ansi(1) &amp; world.getvariable("MortRW")
world.ansinote ansi(32) &amp; ansi(1) &amp;  "Dexterity: " &amp; ansi(33) &amp; ansi(1) &amp; world.getvariable("MortRD")
world.ansinote ansi(32) &amp; ansi(1) &amp;  "Constitution: " &amp; ansi(33) &amp; ansi(1) &amp; world.getvariable("MortRC")
world.ansinote ansi(32) &amp; ansi(1) &amp;  "Luck: " &amp; ansi(33) &amp; ansi(1) &amp; world.getvariable("MortRL")</send>
  </alias>
  <alias
   match="lvlavg"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>if "@MortRLevels" = "0" then
world.ansinote ansi(31) &amp; ansi(1) &amp; "Nothing to report."
else
world.sendnoecho "@lvlchannel @@CSince @@w@ResetTime@@Y (this mort): @@w@MortRLevels @@clevels@@w,@@W @MortRTrains @@ctrains@@w,@@W @MortRBTrains @@cbonus trains@@w.@@W " &amp; (@MortRS + @MortRI + @MortRW + @MortRD + @MortRC + @MortRL) &amp; "@@cbonus stats@@w,@@W " &amp; FormatNumber((@MortRTrains / @MortRLevels), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@ctrains per level@@w,@@W " &amp; FormatNumber((@MortRBTrains / @MortRLevels), 3, vbFalse, vbUseDefault, vbFalse) &amp; "@@c bonus trains per level@@w,@@W " &amp; FormatNumber(((@MortRS + @MortRI + @MortRW + @MortRD + @MortRC + @MortRL) / @MortRLevels), 3, vbFalse, vbUseDefault, vbFalse) &amp; "@@c bonus stats per level@@w,@@W " &amp; FormatNumber(((@MortRTrains + @MortRBTrains) / @MortRLevels), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@ctotal trains per level."
End if
</send>
  </alias>
  <alias
   match="lvlavga"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>if "@AllTimeRLevels" = "0" then
world.ansinote ansi(31) &amp; ansi(1) &amp; "Nothing to report."
else
world.sendnoecho "@lvlchannel @@CSince @@w@InstallTime@@Y (installed): @@w@AllTimeRLevels @@clevels@@w,@@W @AllTimeRTrains @@ctrains@@w,@@W @AllTimeRBTrains @@cbonus trains@@w.@@W " &amp; (@AllTimeRS + @AllTimeRI + @AllTimeRW + @AllTimeRD + @AllTimeRC + @AllTimeRL) &amp; "@@cbonus stats@@w,@@W " &amp; FormatNumber((@AllTimeRTrains / @AllTimeRLevels), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@ctrains per level@@w,@@W " &amp; FormatNumber((@AllTimeRBTrains / @AllTimeRLevels), 3, vbFalse, vbUseDefault, vbFalse) &amp; "@@c bonus trains per level@@w,@@W " &amp; FormatNumber(((@AllTimeRS + @AllTimeRI + @AllTimeRW + @AllTimeRD + @AllTimeRC + @AllTimeRL) / @AllTimeRLevels), 3, vbFalse, vbUseDefault, vbFalse) &amp; "@@c bonus stats per level@@w,@@W " &amp; FormatNumber(((@AllTimeRTrains + @AllTimeRBTrains) / @AllTimeRLevels), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@ctotal trains per level."
end if
</send>
  </alias>
  <alias
   match="pupavg"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>if "@MortRPups" = "0" then
world.ansinote ansi(31) &amp; ansi(1) &amp; "Nothing to report."
else
world.sendnoecho "@lvlchannel @@CSince @@w@ResetTime@@Y (this mort): @@W@MortRPups@@C pups@@w, @@W@MortRTrainsPup@@Ctrains@@w, @@W@MortRBTrainsPup@@C bonus trains@@w. " &amp; FormatNumber((@MortRTrainsPup / @MortRPups), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@Ctrains per pup@@w, @@W" &amp; FormatNumber((@MortRBTrainsPup / @MortRPups), 3, vbFalse, vbUseDefault, vbFalse) &amp; "@@C bonus trains per pup@@w, @@W" &amp; FormatNumber(((@MortRTrainsPup + @MortRBTrainsPup) / @MortRPups), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@ctotal trains per pup."
end if</send>
  </alias>
  <alias
   match="pupavga"
   enabled="y"
   expand_variables="y"
   send_to="12"
   sequence="100"
  >
  <send>if "@AllTimeRPups" = "0" then
world.ansinote ansi(31) &amp; ansi(1) &amp; "Nothing to report."
else
world.sendnoecho "@lvlchannel @@CSince @@w@InstallTime@@Y (installed): @@W@AllTimeRPups@@C pups@@w, @@W@AllTimeRTrainsPup@@Ctrains@@w, @@W@AllTimeRBTrainsPup@@C bonus trains@@w. " &amp; FormatNumber((@AllTimeRTrainsPup / @AllTimeRPups), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@Ctrains per pup@@w, @@W" &amp; FormatNumber((@AllTimeRBTrainsPup / @AllTimeRPups), 3, vbFalse, vbUseDefault, vbFalse) &amp; "@@C bonus trains per pup@@w, @@W" &amp; FormatNumber(((@AllTimeRTrainsPup + @AllTimeRBTrainsPup) / @AllTimeRPups), 3, vbFalse, vbUseDefault, vbFalse) &amp; " @@ctotal trains per pup."
end if</send>
  </alias>
</aliases>

<!--  Variables  -->

<variables>
  <variable name="lvlchannel">gt</variable>
</variables>

<!--  Script  -->


<script>
<![CDATA[
dim var1,var2,var3,var4,var5

Function LevelTimer (Date1, Date2)
Dim seconds, min, hours, days

seconds = (DateDiff("s", Date1, Date2) - 1)
min = (seconds \ 60)
seconds = (seconds / 60) - (seconds \ 60)
seconds = Round(seconds * 60)

hours = (min \ 60)
min = (min / 60) - (min \ 60)
min = Round(min * 60)

days = (hours \ 24)
hours = (hours / 24) - (hours \ 24)
hours = Round(hours * 24)

LevelTimer =  days & "d " & hours & "h " & min & "m " & seconds & "s"

End Function

Sub ExecExpHour(name)
 world.execute "exphour"
End Sub

Sub RegLevelReport(name)

If len(world.getvariable("bstats")) > 1 then
 If InStrRev(world.getvariable("bstats"), "@w, @W") = (Len(world.getvariable("bstats")) - 5) Then
  world.setvariable "bstats", Left(world.getvariable("bstats"), Len(world.getvariable("bstats")) - 6)
 End If
end if

If world.getvariable("LevelRKills") = "0" then
 world.sendnoecho world.getvariable("lvlchannel") &  " Sorry, but an error occured marking kills this level as 0 so you'll recieve this report instead."
  world.sendnoecho world.getvariable("lvlchannel") &  " @RL@reveled@R!@w: @C" & world.getvariable("clevel") & "@w: @W" & var1 & "@chp@W " & var2 & "@cmn@W " & var3 & "@cmv@W " & var4 & " @cpracs@w " & var5 & "@C+@W" & (world.getvariable("bonustrains") + 0) & " @ctrains@w | {@RB@ronus S@Rtat(s)@w} @W " &  world.getvariable("bstats") & " @w|@c " &  LevelTimer(world.getvariable("LevelTime"),Now) & " @w|@R " & world.getvariable("LevelRKills") & "@c kills.@w"
else
if world.getvariable("pupping") = "1" then
 if world.getvariable("shortreport") = "1" then
  world.sendnoecho world.getvariable("lvlchannel") &  " @RP@rupped@R!@w:@W " & var5 & "@C+@W" & (cint(world.getvariable("pupbonustrains")) + 0) & " @ctrains@w. {@RB@ronus S@Rtat(s)@w} @W " & world.getvariable("bstats") &  " @w|@W " & LevelTimer(world.getvariable("LevelTime"),Now) & " @w|@R " & world.getvariable("LevelRKills") & "@c kills@w averaging " & FormatNumber(0 + (cint(world.getvariable("LevelRExp")) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) & " @cexp@W/@ckill@w."
  world.setvariable "lastlevel", " @RL@rast @RP@rup@w: @W" & var5 & "@c+@w" & (world.getvariable("pupbonustrains") + 0) & " @ctrains@w| {@RB@ronus S@Rtat(s)@w} @W " &  world.getvariable("bstats") & " @w|@c " &  LevelTimer(world.getvariable("LevelTime"),Now) & " @w|@R " & world.getvariable("LevelRKills") & "@c kills@w averaging " & FormatNumber(((cint(world.getvariable("LevelRExp")) + cint(world.getvariable("LevelRBonusExp"))) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) & " @cxp@W/@ckill@w."
 else
  world.sendnoecho world.getvariable("lvlchannel") &  " @RP@rupped@R!@w: @W" & var1 & "@chp@W " & var2 & "@cmn@W " & var3 & "@cmv@W " & var4 & " @cpracs@w " & var5 & "@C+@W" & (cint(world.getvariable("pupbonustrains")) + 0) & " @ctrains@w. {@RB@ronus S@Rtat(s)@w} @W " & world.getvariable("bstats") &  " @w|@W " & LevelTimer(world.getvariable("LevelTime"),Now) & " @w|@R " & world.getvariable("LevelRKills") & "@c kills@w averaging " & FormatNumber(0 + (cint(world.getvariable("LevelRExp")) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) & " @cexp@W/@ckill@w."
  world.setvariable "lastlevel", " @RL@rast @RP@rup@w: @W" & var1 & "@chp@W " & var2 & "@cmn@W " & var3 & "@cmv@W " & var4 & " @cpracs@w " & var5 & "@C+@w" & (world.getvariable("pupbonustrains") + 0) & " @ctrains@w| {@RB@ronus S@Rtat(s)@w} @W " &  world.getvariable("bstats") & " @w|@c " &  LevelTimer(world.getvariable("LevelTime"),Now) & " @w|@R " & world.getvariable("LevelRKills") & "@c kills@w averaging " & FormatNumber(((cint(world.getvariable("LevelRExp")) + cint(world.getvariable("LevelRBonusExp"))) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) & " @cxp@W/@ckill@w."
 end if
else
 if world.getvariable("shortreport") = "1" then
  world.sendnoecho world.getvariable("lvlchannel") & " @RL@reveled@R!@w: @C" & world.getvariable("clevel") & "@w: @W" & var5 & "@c+@w" & (world.getvariable("bonustrains") + 0) & " @ctrains@w| @w{@RBonus @rStat(s)@w}@W " &  world.getvariable("bstats") & " @w|@c " &  LevelTimer(world.getvariable("LevelTime"),Now) & "@w|@r " & world.getvariable("LevelRKills") & "@c kills@w averaging " & FormatNumber(((cint(world.getvariable("LevelRExp")) + 0 + cint(world.getvariable("LevelRBonusExp"))) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) & " @cxp@W/@ckill@w."
  world.setvariable "lastlevel", " @RL@rast @RL@revel@w: @C" & world.getvariable("clevel") & "@w: @W" & var5 & "@c+@w" & (world.getvariable("bonustrains") + 0) & " @ctrains@w| @cB@ronus @cS@rtat(s)@w:@W " &  world.getvariable("bstats") & " @w|@c " &  LevelTimer(world.getvariable("LevelTime"),Now) & " @w|@r " & world.getvariable("LevelRKills") & "@c kills@w averaging " & FormatNumber(((cint(world.getvariable("LevelRExp")) + 0 + cint(world.getvariable("LevelRBonusExp"))) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) & " @cxp@W/@ckill@w."
 else
  world.sendnoecho world.getvariable("lvlchannel") &  " @RL@reveled@R!@w: @C" & world.getvariable("clevel") & "@w: @W" & var1 & "@chp@W " & var2 & "@cmn@W " & var3 & "@cmv@W " & var4 & " @cpracs@w " & var5 & "@C+@W" & (world.getvariable("bonustrains") + 0) & " @ctrains@w | {@RB@ronus S@Rtat(s)@w} @W " &  world.getvariable("bstats") & " @w|@c " &  LevelTimer(world.getvariable("LevelTime"),Now) & " @w|@R " & world.getvariable("LevelRKills") & "@c kills@w averaging " & FormatNumber(((cint(world.getvariable("LevelRExp")) + 0 + cint(world.getvariable("LevelRBonusExp"))) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) & " @cxp@W/@ckill@w."
  world.setvariable "lastlevel", " @RL@rast @RL@revel@w: @C" & world.getvariable("clevel") & "@w: @W" & var1 & "@chp@W " & var2 & "@cmn@W " & var3 & "@cmv@W " & var4 & " @cpracs@W " & var5 & "@C+@W" & (world.getvariable("bonustrains") + 0) & " @ctrains@w | {@RB@ronus S@Rtat(s)@w} @W " &  world.getvariable("bstats") & " @w|@c " &  LevelTimer(world.getvariable("LevelTime"),Now) & " @w| @R" & world.getvariable("LevelRKills") & "@c kills@w averaging " & FormatNumber(((cint(world.getvariable("LevelRExp")) + 0 +  cint(world.getvariable("LevelRBonusExp"))) / cint(world.getvariable("LevelRKills"))), 3, vbFalse, vbUseDefault, vbFalse) & " @cxp@W/@ckill@w."
 end if
end if
end if


world.setvariable "LevelRBonusExp", "0"
world.setvariable "LevelRExp", "0"
world.setvariable "LevelRKills", "0"
world.setvariable "bstats", "0"
world.setvariable "pupbonustrains", "0"
world.setvariable "bonustrains", "0"

if cint(world.getvariable("clevel")) >= 200 then
 world.setvariable "pupping", "1"
else
 world.setvariable "pupping", "0"
end if

'Set the new level time
 world.setvariable "leveltime", Now
 world.savestate
End Sub

Sub OnPluginInstall()
world.note "Type lvlhelp for help, and then lvlsetup to begin."
if not world.getvariable("timeleft") = "" then
Dim seconds, min

seconds = world.getvariable("timeleft")
min = (seconds \ 60)
seconds = (seconds / 60) - (seconds \ 60)
seconds = Round(seconds * 60)

min = (min / 60) - (min \ 60)
min = Round(min * 60)
world.addtimer "LevelInfo_HourlyReport", 0, min, seconds, "", 1, "ExecExpHour"
end if
End Sub

sub OnPluginClose
world.setvariable "timeleft", world.gettimerinfo("LevelInfo_HourlyReport",13)
world.savestate
end sub

]]>
</script>
</muclient>
[Go to top] top

Posted by NeoFryBoy   USA  (42 posts)  [Biography] bio
Date Reply #12 on Fri 14 Jul 2006 02:30 AM (UTC)
Message
I have two more, but I think the double tracker and mobscanner have a couple bugs left. Gonna find 'em and post the result.


Thank you Nick.
[Go to top] top

Posted by Bottomfeeder   (42 posts)  [Biography] bio
Date Reply #13 on Sat 25 Aug 2007 05:29 AM (UTC)
Message
Neo posted a levelling script similar to Ninja and Atreidess' zMud scripts above. The problem with it is that it's firing off every 15 minutes or so instead of the hourly report. Anyone else get this, or understand the code enough to find the problem?

It's the second raw post he did above.
[Go to top] top

Posted by Crash   (1 post)  [Biography] bio
Date Reply #14 on Sat 23 Feb 2008 04:22 AM (UTC)
Message
Hey, sorry to ask you guys a stupid question, but here it goes. how in the world do I get these plugin scripts downloaded to my cpu?
[Go to top] top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


145,874 views.

This is page 1, subject is 3 pages long: 1 2  3  [Next page]

It is now over 60 days since the last post. This thread is closed.     [Refresh] Refresh page

Go to topic:           Search the forum


[Go to top] top

Quick links: MUSHclient. MUSHclient help. Forum shortcuts. Posting templates. Lua modules. Lua documentation.

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.

[Home]


Written by Nick Gammon - 5K   profile for Nick Gammon on Stack Exchange, a network of free, community-driven Q&A sites   Marriage equality

Comments to: Gammon Software support
[RH click to get RSS URL] Forum RSS feed ( https://gammon.com.au/rss/forum.xml )

[Best viewed with any browser - 2K]    [Hosted at HostDash]