MaxKellermann / GemUO

an Ultima Online client written in the Python programming language
GNU General Public License v2.0
8 stars 11 forks source link

Error on login on ServUO #1

Open Bedotech opened 4 years ago

Bedotech commented 4 years ago

Hi, first of all really nice project! is what i looking for!

I'm trying to connect to my RunUO local instance, but the client doesn't go on after have selected the server (i this is the RelayPacket) and i don't understand why.

You can help me?

MaxKellermann commented 4 years ago

Can you capture packets with Wireshark and upload the dump?

Bedotech commented 4 years ago

Here the file, with filter: port 2593

login_fail.pcapng.zip

MaxKellermann commented 4 years ago

And which program did you run?

Bedotech commented 4 years ago

I run python src/hiding.py 192.168.1.102 2593 bedo bedo ghilfoi modify the client version to hit the minimum requirement on the server side.

The server is ServUO latest version, i've set a breakpoint on parsing CharacterList but is never hit, below you can found the login on same server with ClassicUO.

classicuo_login.pcapng.zip

i've already check that the packet involved in login are the same in ClassicUO and GemUO and seems good to me, i understand other packet are different but i think at least reach the character list.

MaxKellermann commented 4 years ago

If you modify the client version, then the server assumes GemUO talks a different version of the protocol, which GemUO however doesn't understand. Don't do that. If your server needs a higher protocol version, think about plugging uoproxy between GemUO and the server. That will also allow you to use a regular client and watch what GemUO does.

Bedotech commented 4 years ago

Ok i try with UOProxy but the i have checked that the protocol is the same on the first packets, at least for login and all semms good.

thanks by the way

MaxKellermann commented 4 years ago

I was planning to update GemUO's protocol, because I believe there's no software which requires an older protocol version. This may make your problem go away without uoproxy. Meanwhile, use uoproxy as a workaround.

Bedotech commented 4 years ago

Thanks @MaxKellermann i've done some test, with some tweaks reported in two different PR now it works.

tell my if my PR are welcomed or not, if you agree i want to work a little further on this and do some refactor.

By the way i must use UOProxy for connecting, and when i attach a client the client perform the login correctly but it freeze (i tested with ClassicUO)

MaxKellermann commented 4 years ago

Yes, your PRs are very much welcome! I havn't been playing any UO for 10+ years, but it's good to see my code is still useful for some people. If you have problems with uoproxy, report a bug at that project, with a packet dump (uoproxy dumps all packets if you run it with -vvvvvvvvvv).