Jump to content


Photo

EL Network Protocol Documentation


  • Please log in to reply
44 replies to this topic

#1 Placid

Placid

    Snowball?

  • Members
  • 5077 posts
  • Location:UK
  • Interests:meh

Posted 26 October 2006 - 01:44 PM

Greetings!

robotbob on a previous thread suggested documenting the EL protocol. This is obviously an awesome idea as at current there isn't any publicly available information. Therefore I have provided a Wiki aptly named 'Eternal Lands Network Protocol Wiki' for documentation. The wiki will provide a breakdown of the protocol, its uses, examples of packets and other information pertaining to communication to and from the Eternal Lands server.

If you are a programmer and have experience with the protocol, you are invited to join us to help make the Wiki an extensive source of information for the EL protocol.

Disclaimer
If there is any abuse to this Wiki, the IPs in question will receive an outright ban from accessing my server, both the Wiki and the webserver in general.

Currently it is just myself and Vegar editing it, with robotbob planning to join us. Please feel free to assist us by creating a username and begin editing. If you run a trade bot, we could use the item ID information if you have it to hand ;)

Cheers :)

Edited by Placid, 29 August 2007 - 05:11 PM.


#2 Darth Carter

Darth Carter

    White Rabbit

  • Members
  • 40 posts

Posted 26 October 2006 - 01:49 PM

Excellent idea,

I'll add some of my protocol knowledge in the next couple of days

cheers

Greetings!

robotbob on a previous thread suggested documenting the EL protocol. This is obviously an awesome idea as at current there isn't any publicly available information. Therefore I have provided a Wiki article for documentation. The wiki will provide a breakdown of the protocol, it's uses, examples of packets and other information pertaining to communication to and from the Eternal Lands server.

If you are a programmer and have experience with the protocol, you are invited to join us to help make the Wiki an extensive source of information regarding the EL protocol.

Disclaimer
If there is any abuse to this Wiki, the IPs in question will receive an outright ban from accessing my server, both the Wiki and the webserver in general.

Currently it is just myself and Vegar editing it, with robotbob planning to join us. Please feel free to assist us by creating a username and begin editing. If you run a trade bot, we could use the item ID information if you have it to hand ;)

Cheers :)



#3 Placid

Placid

    Snowball?

  • Members
  • 5077 posts
  • Location:UK
  • Interests:meh

Posted 26 October 2006 - 01:55 PM

Excellent idea,

I'll add some of my protocol knowledge in the next couple of days

cheers

Good to have you aboard, jump on over and create a username when you're free ;)

(I'd prefer to keep anonymous edits at a minimum)

[EDIT]
Anonymous edits are now disabled.

#4 Mar(c)

Mar(c)

    Skeleton

  • Members
  • 1209 posts
  • Gender:Male
  • Location:Groningen/NL Guild: Rivan Warriors NVIDIA GeForce2 MX/MX 400 Driver: 93.71, OpenGL 1.5.7

Posted 26 October 2006 - 05:21 PM

Semi-off-topic but not irrelevant:

Yes, I do have both IE and FireFox installed on my computer.
But I refuse to switch to FireFox because of some tactic which aggressiveness towers over any of M$...

Not meant to be offensive.. or maybe it is...?
Well, you show your statement on your blocking page as shown in IE, I have my statement written here.
:shrugs:


#5 Placid

Placid

    Snowball?

  • Members
  • 5077 posts
  • Location:UK
  • Interests:meh

Posted 26 October 2006 - 05:24 PM

Semi-off-topic but not irrelevant:

Yes, I do have both IE and FireFox installed on my computer.
But I refuse to switch to FireFox because of some tactic which aggressiveness towers over any of M$...

Not meant to be offensive.. or maybe it is...?
Well, you show your statement on your blocking page as shown in IE, I have my statement written here.
:shrugs:

I will add the wiki to an exclusion list to allow all browsers.

#6 LabRat

LabRat

    Phantom Warrior

  • Members
  • 2620 posts
  • Gender:Male
  • Location:West Midlands, England, UK
  • Interests:mainly keeping Michelle_F off my ubercool one of a kind *autographed* EL T-shirt

Posted 26 October 2006 - 05:36 PM

Please (as I just requested on the wiki discussion page) let us have some kind of flag to show that somebody is currently editing the page.. a minor change made by somebody else causes a lot of headache to somebody that just went through half the page filling in the gaps.

#7 Learner

Learner

    Ant

  • Admin
  • 5434 posts
  • Gender:Male
  • Location:MN, USA
  • Interests:Persistent RPG

Posted 26 October 2006 - 05:38 PM

Please (as I just requested on the wiki discussion page) let us have some kind of flag to show that somebody is currently editing the page.. a minor change made by somebody else causes a lot of headache to somebody that just went through half the page filling in the gaps.

Maybe it needs to be broken up into multiple pages to reduce contention/conflicts on edits.

#8 Placid

Placid

    Snowball?

  • Members
  • 5077 posts
  • Location:UK
  • Interests:meh

Posted 26 October 2006 - 05:39 PM

Please (as I just requested on the wiki discussion page) let us have some kind of flag to show that somebody is currently editing the page.. a minor change made by somebody else causes a lot of headache to somebody that just went through half the page filling in the gaps.

As a tip (i've added a reply to the discussion page), edit the page by sections and not the whole page in it's entirety.

#9 Artem

Artem

    White Rabbit

  • Members
  • 30 posts

Posted 26 October 2006 - 05:58 PM

Great work! I will contribute to the Wiki too.

#10 robotbob

robotbob

    Spider

  • Members
  • 662 posts
  • Gender:Male

Posted 26 October 2006 - 06:03 PM

Hello all,

Great! After speaking with vegar about a wiki, in the neighborhood of 24-48 hrs ago, the doc
is coming to life! :D

Some ideas and wishes:
  • I would like the data type to stay in the byte, word, dword ; instead of the C-sque data types.
    Like a format specification for a file fomat.
  • Personally I prefer seeing the protocol byte listed as hexadecimal, instead of decimal. But perhaps
    decimal is the best to prevent confusion.
Here is a blurb from a rar spec doc:

Each block begins with following fields:
  • HEAD_CRC 2 bytes CRC of total block or block part
  • HEAD_TYPE 1 byte Block type
  • HEAD_FLAGS 2 bytes Block flags
  • HEAD_SIZE 2 bytes Block size
  • ADD_SIZE 4 bytes Optional field - added block size
Declared block types:
  • HEAD_TYPE=0x72 marker block
  • HEAD_TYPE=0x73 archive header
  • HEAD_TYPE=0x74 file header
  • HEAD_TYPE=0x75 comment header
  • HEAD_TYPE=0x76 extra information
  • HEAD_TYPE=0x77 subblock
  • HEAD_TYPE=0x78 recovery record

Just my first thoughts over coffee,

robotbob

#11 Entropy

Entropy

    teh G0d

  • Admin
  • 14297 posts
  • Gender:Male
  • Location:USA

Posted 26 October 2006 - 06:09 PM

I would like the data type to stay in the byte, word, dword ; instead of the C-sque data types.

word and dword are ambigous, depending on the machine architecture (64b procesors have different word and dword sizes).
C is also like that, which is why the best idea is to use SDL types, such as uint32, sint16, etc.

Personally I prefer seeing the protocol byte listed as hexadecimal, instead of decimal. But perhaps
decimal is the best to prevent confusion.

The data is in decimal in the protocol file. Making it hex would complicate things way too much and would be pointless.

#12 Placid

Placid

    Snowball?

  • Members
  • 5077 posts
  • Location:UK
  • Interests:meh

Posted 26 October 2006 - 06:35 PM


I would like the data type to stay in the byte, word, dword ; instead of the C-sque data types.

word and dword are ambigous, depending on the machine architecture (64b procesors have different word and dword sizes).
C is also like that, which is why the best idea is to use SDL types, such as uint32, sint16, etc.

Personally I prefer seeing the protocol byte listed as hexadecimal, instead of decimal. But perhaps
decimal is the best to prevent confusion.

The data is in decimal in the protocol file. Making it hex would complicate things way too much and would be pointless.

Feel free to join us :D

robotbob: Vegar mentioned this to me, but I think it would be best to stick to more common terminology. By all means you can add a section describing the correlation or indeed just add '(or dword)' etc to the text wherever you see fit.

Thanks for joining those who have :)

#13 robotbob

robotbob

    Spider

  • Members
  • 662 posts
  • Gender:Male

Posted 26 October 2006 - 09:42 PM

and would be pointless.

Ok yes. i just realized the client code itself references the protocol with decimal.
(I packet sniff most, so intitally I saw this in hex)

Just a personal wish, I never use decimal values in cmps. But for this project, it differs from the design
of the app itself. I understand.

which is why the best idea is to use SDL types, such as uint32, sint16, etc.


Ok, then I'll make sure the examples I present use sdl.
At least a generic non-langauge, non-platform data types are going to be used.

robotbob

#14 Darth Carter

Darth Carter

    White Rabbit

  • Members
  • 40 posts

Posted 27 October 2006 - 11:58 PM

This is looking really good - and best of all (for me;-), the docs are uncovering errors
in my understanding of the protocol - looks like I'll have some bug fixes to make ;-)

cheers

Greetings!

robotbob on a previous thread suggested documenting the EL protocol. This is obviously an awesome idea as at current there isn't any publicly available information. Therefore I have provided a Wiki article for documentation. The wiki will provide a breakdown of the protocol, it's uses, examples of packets and other information pertaining to communication to and from the Eternal Lands server.

If you are a programmer and have experience with the protocol, you are invited to join us to help make the Wiki an extensive source of information regarding the EL protocol.

Disclaimer
If there is any abuse to this Wiki, the IPs in question will receive an outright ban from accessing my server, both the Wiki and the webserver in general.

Currently it is just myself and Vegar editing it, with robotbob planning to join us. Please feel free to assist us by creating a username and begin editing. If you run a trade bot, we could use the item ID information if you have it to hand :D

Cheers :)



#15 Placid

Placid

    Snowball?

  • Members
  • 5077 posts
  • Location:UK
  • Interests:meh

Posted 30 October 2006 - 03:02 PM

Note the URL has been updated to http://wiki.beplacid.com/EL_Protocol. Please update any bookmarks you may be using.

#16 squiz

squiz

    Rat

  • Members
  • 50 posts

Posted 31 October 2006 - 07:32 PM

Here are a few errors/suggestions:

Rewrite Message_Length description as follows:
MESSAGE_LENGTH=(length of PROTOCOL TYPE)+(length of DATA) = 1+(length of DATA)

The structure for sending to local chat is wrong. The correct structure (from wireshark) is:
[RAW_TEXT (0)][LENGTH (X*)]MESSAGE
Basically you only have to send the message with Protocol_type=0 and the length. The channel seems to be only for messages from the server.

Otherwise, great job!

#17 squiz

squiz

    Rat

  • Members
  • 50 posts

Posted 31 October 2006 - 07:46 PM

Here is another problem I found. When my client receives a PM, it looks like this:

message type= 0
message length= 25
data= '\x01\x80[PM from squiz: hello]'

The first byte implies channel 1 (pm). What is the second byte?

#18 Placid

Placid

    Snowball?

  • Members
  • 5077 posts
  • Location:UK
  • Interests:meh

Posted 31 October 2006 - 07:52 PM

Here are a few errors/suggestions:

Rewrite Message_Length description as follows:
MESSAGE_LENGTH=(length of PROTOCOL TYPE)+(length of DATA) = 1+(length of DATA)

The structure for sending to local chat is wrong. The correct structure (from wireshark) is:
[RAW_TEXT (0)][LENGTH (X*)]MESSAGE
Basically you only have to send the message with Protocol_type=0 and the length. The channel seems to be only for messages from the server.

Otherwise, great job!

Thanks for the feedback. Please add this to the Wiki or it's discussion page.

Here is another problem I found. When my client receives a PM, it looks like this:

message type= 0
message length= 25
data= '\x01\x80[PM from squiz: hello]'

The first byte implies channel 1 (pm). What is the second byte?

I am assuming it's the colour of the text. The Wiki does need the client colours, so that's something i'll add to the discussion page.

Cheers :(

#19 ttlanhil

ttlanhil

    Bear

  • Members
  • 5155 posts
  • Location:adl2.internode.on.net; south australia!
  • Interests:pineapples, programming, and EL 8^)

Posted 01 November 2006 - 06:11 AM

I'll sign up and do colours shortly, and possibly some other bits... I'm entering exam time at uni now, though, so if there's still more to do in a month or so, nudge me then ;)

#20 ttlanhil

ttlanhil

    Bear

  • Members
  • 5155 posts
  • Location:adl2.internode.on.net; south australia!
  • Interests:pineapples, programming, and EL 8^)

Posted 01 November 2006 - 09:18 AM

I'll sign up and do colours shortly

done. http://wiki.beplacid.com/EL_Colors ... if you don't want separate pages, just merge it into the protocol page, but I don't like pages that are too long




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users