The Mud Connector

Author Topic: MSSP Mudlist  (Read 5628 times)

Gicker

  • Sr. Member
  • ****
  • Posts: 372
    • View Profile
    • d20MUD: Star Wars
Re: MSSP Mudlist
« Reply #15 on: January 10, 2018, 4:48 PM »
How about: "AVERAGE ONLINE: number of players online averaged over the last 24 hours".

That's a stat that most of the mud listing sites already ask for,  and one that the stats crawlers try to calculate.  I think it would be a useful addition to the protocol, and would certainly be willing to update my implementation to send it.

Yeah that makes sense to me as well.
d20MUD Star Wars: Role Play, PvE & PvP using d20 and SAGA rules
www.d20mud.com d20mud.com port 6000

4th Age Dragonlance Role Play & Adventure
ageofdragons.com port 4000

scandum

  • New to TMC
  • *
  • Posts: 35
    • View Profile
Re: MSSP Mudlist
« Reply #16 on: January 10, 2018, 7:56 PM »
So I need only run tt++ once then, and the script will automatically pull the data on the prescribed schedule?
It should, if the hour is set to 9 the crawler will start running exactly at 9:00 AM. So you don't have to worry about the crawler losing a few seconds every day until it gets completely out of whack.

And to add additional fields, would I just add additional entries like this:

Code: [Select]
#event {IAC SB MSSP PLAYERS}
{
        #var players %1;
        #delay 1 #zap
}

A generic approach would be better in that case. You would want to do the following:
Code: [Select]
#event {IAC SB MSSP}
{
        #var mssp_var[%0] {%1};
}

#event {IAC SB MSSP IAC SE}
{
        #delay 1 #zap
}

This will store all MSSP key/value pairs in mssp_var.

Then to check if the player variable exists use: #if {&mssp_var[PLAYERS] != 0} and to display the number of players you would use: $mssp_var[PLAYERS]. You can also use dot notation: #if {&mssp_var.PLAYERS != 0}

If you want to see if the FAMILY field was reported you'd use #if {&mssp_var[FAMILY] != 0}

The line log then becomes:
Code: [Select]
#line log crawldata.txt {$host_port $mssp_var.PLAYERS $mssp_var.FAMILY};

If you're running the latest tt++ version you can see all keys in the table using #showme *mssp_var[]

« Last Edit: January 10, 2018, 9:14 PM by scandum »

scandum

  • New to TMC
  • *
  • Posts: 35
    • View Profile
Re: MSSP Mudlist
« Reply #17 on: January 10, 2018, 8:41 PM »
Why not provide the answer directly? 
In my opinion, put simply, it's too complex.

Take the UPTIME variable, all that the specification asks for is to store time(NULL) on startup and report the value. 10% of the MUDs are somehow getting this wrong.

Asking MUDs to report the average number of players in the last 24 hours is way more complex, most MUDs would not implement it, and of those that do many would get it wrong, either intentionally or unintentionally.

However, the idea behind MSSP is that each MUD listing creates its own extension of the variable list. So if a MUD listing gets most MUDs to adopt and correctly report a variable it is likely to get added to the official variable list.

At one point I was interested in creating a semi-objective categorization system, that would highlight the fact that most MUDs are hack 'n slash fantasy muds while other playing categories are neglected. There are very few player vs environment (survival) MUDs for example, or at least, I don't know of any, though some zombie apocalypse MUDs might come close. But unless a mud listing would adopt it, making it part of the MSSP specification would be futile.
« Last Edit: January 10, 2018, 9:23 PM by scandum »

Gicker

  • Sr. Member
  • ****
  • Posts: 372
    • View Profile
    • d20MUD: Star Wars
Re: MSSP Mudlist
« Reply #18 on: January 11, 2018, 11:03 PM »
Thanks Scandum, greatly appreciated.
d20MUD Star Wars: Role Play, PvE & PvP using d20 and SAGA rules
www.d20mud.com d20mud.com port 6000

4th Age Dragonlance Role Play & Adventure
ageofdragons.com port 4000

Hades_Kane

  • Community Manager
  • TMC Veteran
  • *****
  • Posts: 1248
  • Owner / Administrator of End of Time
    • View Profile
    • End of Time
Re: MSSP Mudlist
« Reply #19 on: January 12, 2018, 12:49 PM »
Corrected (as of the next boot) the only thing it was showing as an error on End of Time and that was reporting "USA" as location (along with updated some outdated values like areas, helpfiles, objs, mobs, etc.).

Question though... the game's uptime is showing in negative numbers.

Our last boot was Thu Dec 28 14:21:14 2017.

The values in the code for uptime are:

Code: [Select]
static const char *GetMSSP_Uptime()
{
   static char Buffer[32];
   sprintf( Buffer, "%d", (int)s_Uptime );
   return Buffer;
}

      { "UPTIME" ,            FUNCTION_CALL( GetMSSP_Uptime ) },

static time_t s_Uptime  = 0;

void MSSPSetPlayers( int aPlayers )
{
   s_Players = aPlayers;

   if ( s_Uptime == 0 )
      s_Uptime = time(0);
}

static const char *GetMSSP_Uptime()
{
   static char Buffer[32];
   sprintf( Buffer, "%d", (int)s_Uptime );
   return Buffer;
}

Any ideas on this?

Also, the MSSP is showing the color option prompt as the only thing for the login screen on both End of Time and at least one other (although that entry, by and large, appears blank, but the IP points to Genesis MUDs) ... is there a way to address that in the MSSP in my src, or is that one of those things where either the crawler needs to account for it (mudstats.com seems to) or not have that prompt in the login sequence of the game?
« Last Edit: January 12, 2018, 12:51 PM by Hades_Kane »
-Diablos
End of Time, a 100% free Final Fantasy & Chrono Trigger based MUD with a large original world, unique combat & magic systems, and more!
eotmud.com : 4000 • http://www.eotmud.comhttp://www.facebook.com/eotmud
http://www.mudconnect.com/mud-bin/adv_search.cgi?Mode=MUD&mud=End+of+Time

Tijer

  • Community Manager
  • TMC Veteran
  • *****
  • Posts: 781
    • View Profile
Re: MSSP Mudlist
« Reply #20 on: January 12, 2018, 1:32 PM »
in regards to the color prompt i believe that is because of the connected states. All of my muds that are listed on there that negotiate MCCP/MXP etc etc before connection only show "Attempting to detect client..."  and dont show the actual greeting of the MUD
--Tijer
War of Legend    • Mud • Waroflegend.net port 4200   • Web • http://www.waroflegend.net
Aadarian Realms • Mud • Aadaria.net port 1111/1114  • Web • http://www.aadaria.com

scandum

  • New to TMC
  • *
  • Posts: 35
    • View Profile
Re: MSSP Mudlist
« Reply #21 on: January 12, 2018, 8:13 PM »
in regards to the color prompt i believe that is because of the connected states. All of my muds that are listed on there that negotiate MCCP/MXP etc etc before connection only show "Attempting to detect client..."  and dont show the actual greeting of the MUD
I tried to talk some sense into KaVir some years ago with little success. The whole "attempting to detect client" thing was added by him to detect Windows telnet so local echo can be provided. Wintel disables local echo the moment a single TELNET negotiation is received, and there is no way to turn it back on.

The (in my opinion) proper way to fix this is to detect Windows telnet (which can be done with NEW-ENVIRON as well) and to echo back each typed-in character if Windows telnet is detected, which takes 3 lines of code on most MUDs, 5 lines if you echo back a '*' while the user enters their password.

Question though... the game's uptime is showing in negative numbers.
It looks like s_Uptime isn't set when the MUD starts up? You might also want to try:

   sprintf( Buffer, "%lld", s_Uptime );

From the looks of it your server's timestamp is about 20 years in the future, hence the negative value. I'll add proper error checking for that.

Also, the MSSP is showing the color option prompt as the only thing for the login screen on both End of Time and at least one other (although that entry, by and large, appears blank, but the IP points to Genesis MUDs) ... is there a way to address that in the MSSP in my src, or is that one of those things where either the crawler needs to account for it (mudstats.com seems to) or not have that prompt in the login sequence of the game?
Virtually 100% of the clients out there support color nowadays, so I'd suggest removing the ANSI color y/n? prompt. It should be fairly easy to add a color config option and save the player's color preference in their player file instead.

Tijer

  • Community Manager
  • TMC Veteran
  • *****
  • Posts: 781
    • View Profile
Re: MSSP Mudlist
« Reply #22 on: January 13, 2018, 1:12 PM »
in regards to the color prompt i believe that is because of the connected states. All of my muds that are listed on there that negotiate MCCP/MXP etc etc before connection only show "Attempting to detect client..."  and dont show the actual greeting of the MUD
I tried to talk some sense into KaVir some years ago with little success. The whole "attempting to detect client" thing was added by him to detect Windows telnet so local echo can be provided. Wintel disables local echo the moment a single TELNET negotiation is received, and there is no way to turn it back on.


He didnt actually release that in the snippet... was just something he did on GodWarsII.
--Tijer
War of Legend    • Mud • Waroflegend.net port 4200   • Web • http://www.waroflegend.net
Aadarian Realms • Mud • Aadaria.net port 1111/1114  • Web • http://www.aadaria.com

scandum

  • New to TMC
  • *
  • Posts: 35
    • View Profile
Re: MSSP Mudlist
« Reply #23 on: January 13, 2018, 5:55 PM »
He didnt actually release that in the snippet... was just something he did on GodWarsII.
I assumed it was something he released in the snippet, as there are about 10 muds that make the player wait 5 to 10 seconds before presenting the login screen. I assume all these muds are trying to detect windows telnet.

Hades_Kane

  • Community Manager
  • TMC Veteran
  • *****
  • Posts: 1248
  • Owner / Administrator of End of Time
    • View Profile
    • End of Time
Re: MSSP Mudlist
« Reply #24 on: January 14, 2018, 3:59 PM »

Question though... the game's uptime is showing in negative numbers.
It looks like s_Uptime isn't set when the MUD starts up? You might also want to try:

   sprintf( Buffer, "%lld", s_Uptime );

From the looks of it your server's timestamp is about 20 years in the future, hence the negative value. I'll add proper error checking for that.

Thanks, I'll look at that and see if I can't fix it.

Quote
Also, the MSSP is showing the color option prompt as the only thing for the login screen on both End of Time and at least one other (although that entry, by and large, appears blank, but the IP points to Genesis MUDs) ... is there a way to address that in the MSSP in my src, or is that one of those things where either the crawler needs to account for it (mudstats.com seems to) or not have that prompt in the login sequence of the game?
Virtually 100% of the clients out there support color nowadays, so I'd suggest removing the ANSI color y/n? prompt. It should be fairly easy to add a color config option and save the player's color preference in their player file instead.

We use our initial prompt for screen reader mode (color preference is on by default, but easily turned out and saved in the player file), I suppose there is really no harm in making the prompt AFTER the greet, but when screen reader mode is selected the greeting is just the name along with the required credits for Diku/Merc/Rom and filters out all of the unnecessary ascii noise.  My understanding is that screen readers automatically do that, anyhow, so maybe I'm being redundant, but my goal with screen reader mode has been to give the software as little as possible to have to convert and deal with.

I'll think on this more and weigh the pros/cons.
« Last Edit: January 14, 2018, 4:01 PM by Hades_Kane »
-Diablos
End of Time, a 100% free Final Fantasy & Chrono Trigger based MUD with a large original world, unique combat & magic systems, and more!
eotmud.com : 4000 • http://www.eotmud.comhttp://www.facebook.com/eotmud
http://www.mudconnect.com/mud-bin/adv_search.cgi?Mode=MUD&mud=End+of+Time

scandum

  • New to TMC
  • *
  • Posts: 35
    • View Profile
Re: MSSP Mudlist
« Reply #25 on: January 16, 2018, 11:27 AM »
We use our initial prompt for screen reader mode (color preference is on by default, but easily turned out and saved in the player file), I suppose there is really no harm in making the prompt AFTER the greet, but when screen reader mode is selected the greeting is just the name along with the required credits for Diku/Merc/Rom and filters out all of the unnecessary ascii noise.  My understanding is that screen readers automatically do that, anyhow, so maybe I'm being redundant, but my goal with screen reader mode has been to give the software as little as possible to have to convert and deal with.

I'll think on this more and weigh the pros/cons.
It's my understanding that people with screen readers can and will use a skip option. So you may actually turn something that normally requires one key press (skipping the greeting screen), into two key presses (select screen reader, then skip the text only greeting screen).

It's possible to detect if someone uses a screen reader using MTTS (http://tintin.sourceforge.net/mtts). It's supported by TinTin++, MUSHclient, and mudportal.com, though in all three cases primarily to let MUDs know the client supports 256 colors.

It's one of those things that in my opinion is better handled using a player configuration setting and is important enough to set during player creation. Even if a pause is added, 2 seconds should be more than enough for 99% of logins.