Jump to content
Eternal Lands Official Forums
necroman

loging in when using qsockets

Recommended Posts

I've been trying to log in using qsockets, but so far i've had no luck

i can connect to the server just fine, but when i send the login info i get disconnected ....

could anyone tell me what I'm doing wrong here

 

my source can be found here: elbot.tar.gz

just go to the bottom of windowImpl.cpp, fill in your username and password and 'make'

the binary should be called 'elbot'

 

thx

Share this post


Link to post
Share on other sites

k, after further exploring the source of EL, i found out that they set the second bit to the size of the msg that is sent to the server ... didnt quite expect that :)

 

anywayz, I'm able to log my bot in just fine now

Edited by necroman

Share this post


Link to post
Share on other sites

Wait... You didn't check the protocol? I don't get it, how can anyone expect to be able to write a program that does network communication, without checking what protocol is used?

Share this post


Link to post
Share on other sites

There is no API, and the protocol is defined in the source.

 

You can't seriously believe that just because you couldn't find where the protocol was defined, you didn't need to follow it?

Share this post


Link to post
Share on other sites

Um, that's right. I didn't need to the source code to write Quartermaster. In fact reading the source was as helpful as a hole in the head, for determining what each packet did. There is no documentation for the packets from and to the server. People should know this fact. I think you have an elitist attitude, and not a helpful one. I have documented the protocols now, and have worked on a real API. The minute I am given "permission" to release it, along with the source code to trade and walk and take PM's, I'll release it. Until then, these poor folks that want a trade bot have to deal with these elitist attitudes. Linux is free. It is open source. GCC is free and open. All the tools we use to create fun toys are free and the community welcomes people to create with them. This is not the case for EL. I understand the initial problems associated with releasing information and bot source code for EL, but the philosophy of keeping the protocol/packet information secret is elitist and not productive in the long run. By the way, elbot doesn't crack packets correctly, it is broken in that regard, and others. I used various packet sniffers to find the packet contents because the only information you people offer is "no you can't" and "that isn't allowed" and "you are doing it wrong" and "no." Wrong answer. You should help people. I promised not to release the source to Quartermaster, and I won't. But in a month's time when I have time, I'll write a multi-guild-friendly bot in PHP that can be used by anyone in unix or winblows or the mac, and release it along with the map of protocols. Then, no more super secret elitist me me me selfish attitude will matter.

Share this post


Link to post
Share on other sites

Is this supposed to be some sort of threat :?

 

I understand the initial problems associated with releasing information and bot source code for EL, but the philosophy of keeping the protocol/packet information secret is elitist and not productive in the long run.

 

OMG we discovered a way to hide secret information on an open source progam. :D

Share this post


Link to post
Share on other sites
Is this supposed to be some sort of threat :?

 

I understand the initial problems associated with releasing information and bot source code for EL, but the philosophy of keeping the protocol/packet information secret is elitist and not productive in the long run.

 

OMG we discovered a way to hide secret information on an open source progam. :P

Wow, congratz!

 

:lol:

 

Piper

Share this post


Link to post
Share on other sites
There is no documentation for the packets from and to the server. People should know this fact.

Instead of ranting it would actually be more helpful, if you just would search the forums and contact one the devs if you want to help with this. :P

 

I think you have an elitist attitude, and not a helpful one.

You haven't? :)

Share this post


Link to post
Share on other sites

Why dont you simply download the source of the client from CVS and have a look what the client does?

 

Its all in there.

 

All you need is the knowledge how to program C.

 

Thats all.

 

No hidden knowledge needed or, as Leeloo said, no $$$ for knowledge needed.

 

Piper

Share this post


Link to post
Share on other sites

The syntax of the protocol is pretty easy to get from the source code (the data layouts of the incoming and outgoing messages). The semantics (when to send certain messages depending on sequence of other sent/received messages) isn't quite so clear. Both of these things would need to be documented in an API document.

 

However as long as these things keep changing an API document will always be out-of-date. It is my understanding that this is the major reason the API was never documented. It may still be too early to do so although a draft version covering most of the items needed in a bot would be useful. Do I hear anyone volunteering?

Share this post


Link to post
Share on other sites
this is actualy the first network related program I'm writing, and i overlooked one simple fact in my_tcp_send(), which is that the second byte is set the to the size of the msg that is beeing sent to the server ...

Actually, the size is a 16-bit number, in little-endian (Intel) format. That's why there is a zero following it.

Share this post


Link to post
Share on other sites

Now i have tested it by trying to log it into my accout (just for test purposes, not for macroing; I was gonna log out almost immediately after), and every time I try to log in, I get a LOG_IN_NOT_OK message... what will give this message other than sending an incorrect username/password?

 

I guess the fact that I have to ask this means that I was wrong about not needing documentation, but the people of these forums can do the job just as well...

Share this post


Link to post
Share on other sites

Are you null terminating the username and password?

 

E.G:

[LOG_IN,LEN,username," ",password+"\0"]

 

EDIT: Make sure your connecting to the test server when coding like this (Port 2001)

Edited by Placid

Share this post


Link to post
Share on other sites

You have to send the terminating zero too!?!? You don't send it in raw text, assumedly because the server adds the terminating zero itself. Why can't it do the same thing with the log in code? Oh well, time to fix my little bug...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×