New "summary" feature

Posted by Nick Gammon on Tue 20 Jul 2010 04:39 AM — 7 posts, 36,550 views.

Australia Forum Administrator #0
This page can be quickly reached from the link: http://www.gammon.com.au/summary


Version 4.55 of MUSHclient has a new feature, intended to help us on the forum solve difficulties with problematic situations.

To use it, type into the Immediate scripting window (with scripting active and Lua as the script language):


Debug ("summary")


The syntax would be similar for other languages.

A summary of the world information is dumped to the output window, for example:


-------------- MUSHclient summary --------------

MUSHclient version: 4.55
Compiled: Jul 20 2010.
Operating system: Windows XP
Using: Lua 5.1.4, PCRE 8.10, PNG 1.4.3, SQLite3 3.6.23.1, Zlib 1.2.5
Script language: Lua, enabled: yes
Scripting active: yes
Script file: C:\Program Files\MUSHclient\worlds\test.lua
** Triggers: 4 in world file, triggers enabled: yes.
   4 enabled, 2 regexp, 764 attempts, 4 matched, 0.001660 seconds.
** Aliases: 25 in world file, aliases enabled: yes.
   25 enabled, 0 regexp, 530 attempts, 1 matched, 0.012087 seconds.
** Timers: 1 in world file, timers enabled: yes.
   1 enabled, 186 fired.
** Variables: 7.
MCCP active, took 0.000948 seconds to decompress
Plugin: 87a0ec3649ab9a04d5ea618d, 'Omit_Blank_Lines', enabled: yes
Plugin: 85f72d0e263d75df7bde6f00, 'ATCP_NJG', enabled: yes
Plugin: b9cfe98d6a35dd98cd8ceacc, 'Telnet_Logger_MW', enabled: yes
** Plugins: 3 loaded, 3 enabled.
Received: 4237 bytes (4 Kb)
Sent: 300 bytes (0 Kb)
Output buffer: 256 of 50000 lines.
Total lines received: 257
MXP active: no, Pueblo mode: no
MXP tags received: 0
MXP entities received: 0
MXP errors: 0
** Commands in command history: 9

-------------- End summary --------------



This lets us see things like:


  • MUSHclient version
  • Operating system
  • Library version (eg. PNG)
  • Count of triggers, aliases, timers
  • How many triggers, aliases, timers were enabled, and how many fired
  • Summary of installed plugins and whether enabled or not
  • What scripting language is in use, and if enabled
  • Counts of bytes sent and received
  • Some timing information
Amended on Fri 05 Dec 2014 11:22 PM by Nick Gammon
USA #1
Ohh, that's just fantastic.
Australia Forum Administrator #2
It has got a bit more sophisticated now ...


-------------- MUSHclient summary --------------

MUSHclient version: 4.55
Compiled: Jul 22 2010.
Time now: Thursday, July 22, 2010, 9:02 AM
Operating system: Windows XP
Libraries: Lua 5.1.4, PCRE 8.10, PNG 1.4.3, SQLite3 3.6.23.1, Zlib 1.2.5
World name: 'Aardwolf', ID: b477272a286f0a439bc027ca
-- Scripting --
Script language: Lua, enabled: yes
Scripting active: yes
Scripting for: 0.380188 seconds.
-- Triggers, aliases, timers, variables --
** Triggers: 4 in world file, triggers enabled: yes.
   4 enabled, 1 regexp, 804 attempts, 0 matched, 0.001898 seconds.
** Aliases: 5 in world file, aliases enabled: yes.
   5 enabled, 0 regexp, 70 attempts, 0 matched, 0.000689 seconds.
** Timers: 0 in world file, timers enabled: yes.
   0 enabled, 0 fired.
** Variables: 2.
-- MCCP --
MCCP active, took 0.000539 seconds to decompress
MCCP received 2333 compressed bytes, decompressed to 8992 bytes.
MCCP compression ratio was:   25.9% (lower is better)
-- Plugins --
Plugin: 85f72d0e263d75df7bde6f00, 'ATCP_NJG', enabled: yes
Plugin: a9253e5af06182f2c90efc75, 'Aardwolf_Experience_Bar', enabled: yes
Plugin: 07a562eee63e9577db747e32, 'Aardwolf_BigMap_Graphical', enabled: yes
Plugin: 8a710e0783b431c06d61a54c, 'xStats_Detector', enabled: yes
Plugin: 87a0ec3649ab9a04d5ea618d, 'Omit_Blank_Lines', enabled: yes
Plugin: b555825a4a5700c35fa80780, 'Chat_Capture_Miniwindow', enabled: yes
** Plugins: 6 loaded, 6 enabled.
-- Comms --
Connect phase: 8 (Open)
Received: 5622 bytes (5 Kb)
Sent: 614 bytes (0 Kb)
Received 23 packets, sent 37 packets.
Total lines received: 194
This connection: Sent 20 lines, received 263 lines.
Telnet (IAC) received: DO: 3, DONT: 0, WILL: 5, WONT: 1, SB: 44
-- MXP --
MXP active: no, Pueblo mode: no
MXP tags received: 0
MXP entities received: 0
MXP errors: 0
-- Commands --
Commands in command history: 0
Accelerators defined: 0
-- Miniwindows --
Window: '07a562eee63e9577db747e32', at (719,0,1209,368), shown: yes
        width: 490, height: 368, position: 6, hotspots: 1, fonts: 1, images: 1
Window: 'a9253e5af06182f2c90efc75', at (0,846,1207,857), shown: yes
        width: 1207, height: 11, position: 10, hotspots: 0, fonts: 0, images: 0
Window: 'b555825a4a5700c35fa80780', at (0,0,575,122), shown: yes
        width: 575, height: 122, position: 6, hotspots: 4, fonts: 1, images: 0
Window: 'b555825a4a5700c35fa80780resize', at (0,0,15,15), shown: yes
        width: 15, height: 15, position: 6, hotspots: 2, fonts: 0, images: 0
** Miniwindows: 4 loaded, 4 shown.
-- Output window --
Output pixels: width 1209, height: 857, font width: 7, font height: 13
               width 172 characters, wrap at column 80, height 65 lines.
Output buffer: 218 of 50000 lines.
-- Miscellaneous --
Logging: yes, tracing: no
SQLite3 databases: 0
Sound buffers in use: 0

-------------- End summary --------------


Improvements are:

  • Addition of miniwindow summary (quite handy to see how many of them you have)
  • Count of accelerators
  • Count of telnet negotiation things
  • Details about output window (size, characters)
  • World name and ID
Amended on Wed 21 Jul 2010 11:03 PM by Nick Gammon
Australia Forum Administrator #3
To make it easy for players who may not be comfortable with typing script commands, you can install this plugin:

Template:saveplugin=Summary
To save and install the Summary plugin do this:
  1. Copy the code below (in the code box) to the Clipboard
  2. Open a text editor (such as Notepad) and paste the plugin code into it
  3. Save to disk on your PC, preferably in your plugins directory, as Summary.xml
    • The "plugins" directory is usually under the "worlds" directory inside where you installed MUSHclient.
  4. Go to the MUSHclient File menu -> Plugins
  5. Click "Add"
  6. Choose the file Summary.xml (which you just saved in step 3) as a plugin
  7. Click "Close"
  8. Save your world file, so that the plugin loads next time you open it.



<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>

<muclient>
<plugin
   name="Summary"
   author="Nick Gammon"
   id="71a90acddb14f784437b8b80"
   language="Lua"
   purpose="Provides a system summary you can post into a forum message"
   date_written="2010-07-22 07:29:52"
   requires="4.55"
   version="1.0"
   >
<description trim="y">
Type "summary" to use.
</description>

</plugin>

<aliases>
  <alias
   match="summary"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>Debug "summary"</send>
  </alias>
</aliases>

</muclient>


Then type "summary" to get your system summary.

This plugin is now in the base distribution for MUSHclient 4.55 onwards. So if you need to get summary information from a player, just get them to use the File menu -> Plugins, to install it from the plugins directory.
Amended on Wed 21 Jul 2010 11:01 PM by Nick Gammon
Australia Forum Administrator #4
Another new feature in version 4.56 is the addition of various hyperlinks to the summary output, which if clicked on can drill down into more detail. For example:


-- Triggers, aliases, timers, variables --
** Triggers: 5 in world file, triggers enabled: yes. [Triggers]
   4 enabled, 2 regexp, 0 attempts, 0 matched, 0.000000 seconds.
** Aliases: 26 in world file, aliases enabled: yes. [Aliases]
   25 enabled, 0 regexp, 0 attempts, 0 matched, 0.000000 seconds.
** Timers: 6 in world file, timers enabled: NO. [Timers]
   6 enabled, 0 fired.
   Timers checked every 0.1 seconds.
** Variables: 7. [Variables]
-- MCCP --
MCCP not active.
-- Plugins --
ID: a2af5216d68563401888e01e, 'Health_Bar',  Enabled [Tr Al Ti Va]
ID: 48062dcd6b968c590df50f32, 'Health_Bar_Miniwindow', DISABLED [Tr Al Ti Va]
ID: 71a90acddb14f784437b8b80, 'Summary',  Enabled [Tr Al Ti Va]
** Plugins: 3 loaded, 2 enabled.


Clicking on Triggers shows something like this:


------ Trigger List (evaluation order) ------

  1. Normal,  Enabled : *trigger1      HINT: *
  2. Normal,  Enabled : *trigger3      Jerirath now follows you.
  3. Normal,  Enabled : *trigger5      Koaldan now follows you.
  4. Regexp,  Enabled : *trigger7      ^AUCTION\:\s*(.*?)\s*has put(\s*(.*...
  5. Regexp, DISABLED : foo            northward


And then you can click on the individual trigger names to have the XML data for that trigger displayed.

This is handy in various ways, as you can quickly see a summary of what you have installed in the world file (and in plugins). You also see the trigger and alias evaluation orders.
Amended on Sun 08 Aug 2010 06:01 AM by Nick Gammon
Australia Forum Administrator #5
And then if I click on *trigger1 I see this, which shows the XML for *trigger1 and some internal details (like how many times it has matched so far):


------ Trigger: *trigger1 ------

  <trigger
   enabled="y"
   match="HINT: *"
   script="show_hint"
   sequence="100"
  >
  </trigger>

         Matched count: 1
            Has script: Yes
   Times script called: 1
     When last matched: 08:10:03
               Send to: world
             Temporary: No
         Time to match: 0.000233
        Match attempts: 84


The name "*trigger1" is the internal name assigned to this unlabelled trigger. This name can be used in the trigger manipulation functions (eg. GetTriggerInfo). However it is easier to give triggers, aliases and timers a name yourself if you are planning to refer to them in scripts, then you get a known name, and the name can be more descriptive.
Amended on Sun 08 Aug 2010 10:14 PM by Nick Gammon
Australia Forum Administrator #6
To help with debugging telnet negotiations, version 4.57 now lists the telnet negotiations most recently entered into, like this:


------ Telnet negotiation List (numeric order) ------

  1 (Echo)
     Got:  DO:   no , DONT: no , WILL: yes, WONT: yes 
     Sent: WILL: no , WONT: no , DO:   no , DONT: no  
 24 (Termtype)
     Got:  DO:   yes, DONT: no , WILL: no , WONT: no  
     Sent: WILL: yes, WONT: no , DO:   no , DONT: no  
 31 (Window Size (NAWS))
     Got:  DO:   yes, DONT: no , WILL: no , WONT: no  
     Sent: WILL: yes, WONT: no , DO:   no , DONT: no  
 85 (MCCP1)
     Got:  DO:   no , DONT: no , WILL: yes, WONT: no  
     Sent: WILL: no , WONT: no , DO:   no , DONT: yes 
 86 (MCCP2)
     Got:  DO:   no , DONT: no , WILL: yes, WONT: no  
     Sent: WILL: no , WONT: no , DO:   yes, DONT: no  
102 (Aardwolf)
     Got:  DO:   yes, DONT: no , WILL: yes, WONT: no  
     Sent: WILL: yes, WONT: no , DO:   yes, DONT: no  
200 (ATCP)
     Got:  DO:   no , DONT: no , WILL: yes, WONT: no  
     Sent: WILL: no , WONT: no , DO:   yes, DONT: no  


We can see, for example, that MCCP1 asked us if we would do it (WILL) but we replied DONT.

However for MCCP2 we got a WILL and replied DO.

Also ATCP sent WILL and we replied DO.

The "sent" ones only apply to negotiations automatically sent. If you happen to send one with SendPkt (send packet) it won't be detected because it doesn't scan every outgoing packet. It only notes when it automatically replies to an incoming DO/DONT/WILL/WONT.