Legends of the Jedi Forums Share Yo’ Scripts About the MSDP protocol
This topic has 3 replies, 3 voices, and was last updated 10 years, 7 months ago by dacen.
Viewing 4 posts - 1 through 4 (of 4 total)
    • dacen Participant
      September 18, 2013 at 3:33 am #22431

      Hi,

      I’m new to LotJ, but I’m an long time programer who usually finds more time on hack stuff than (almost) anything else…

      Said so, I started to do my own LodJ client almost at the same moment I started playing the MUD, mostly because there were a couple of things I found necessary, and I really do not like mushclient or any of the clients around. I’m not saying my client is or will be better, just that it’s mine 😉 It currently does not do much: just sends OOC to a separated window (I find it better for immersion) and allows me to create bot commands (always the legal ones!).

      DISCLAIMER: the client is not ready to be shown and I don’t know when it will be, but of course when I think is “showable” I will share it open source (is made in pharo so most probably no one will take it, but well, another option never hurts 🙂 )

      So, here my question:

      A couple of days before I was unable to play so I started to add MSDP protocol to the client, I create a couple of parsers, etc. and after awhile I can do the handshake and I receive the SERVER_ID variable.

      Then… nothing else.

      AFAIK, after agreeing to receive MSDP, server should start send commands regularly… so, what I’m doing wrong?

       

      Thanks

    • Johnson Participant
      September 19, 2013 at 10:48 pm #22439

      After you handshake and receive the SERVER_ID variable you have to send a request for the variables you are interested in receiving.
      Here’s the base structure of the variable request packet we need to send:

      Send IAC SB MSDP MSDP_VAR SEND MSDP_VAL VARIABLE1 MSDP_VAL VARIABLE2 IAC SE

      If we want the values to be constantly updated when they change, we use REPORT instead of SEND. The mud will start delivering the variables you specified during regular MSDP pulses if the value has changed since the last pulse. These pulses are not much different than other game pulses; pulse_violence, pulse_space, etc.

      Here is the actual string I would use for receiving a few MSDP variables from LotJ:

      SendPkt ("\255\250\69\1REPORT\2CHARACTERNAME\2AFFECTS\2HEALTH\2HEALTHMAX\2TOPLEVEL\255\240")


      Check out http://tintin.sourceforge.net/msdp/ for more info on the subject.

      Hope this helps.

    • Logan Participant
      September 20, 2013 at 8:31 pm #22441

      Johnson, what aren’t you good at? 😛

    • dacen Participant
      September 25, 2013 at 3:18 am #22448

      hi,

      yes, that makes the trick (I thought it was automatic).

      thanks 🙂

Viewing 4 posts - 1 through 4 (of 4 total)
You must be logged in to reply to this topic.