lucasmonstrox/PyTibia

Running on Linux?

Opened this issue · 14 comments

Anyone was able to run this on Linux?
I was able to install poetry and poetry was able to install everything.
But whenever I run "poetry run ..." it says tkinter wasn't installed.
I tried everything but couldn't get it to work.

If anyone can help me, it would be greatly appreciated.

Note: I'm running this on a VM on Linux Lite 6.4, which is derived from Ubuntu.

Linux is not supported yet. I will adapt it soon.

I can maybe help you port to Linux, if needed.
I still can't even get it running because of tkinter.
No matter what I do, it always says tkinter is not install.

Any insights would be greaty appreciated.

Fonts are different. I noticed about it 2/3 days ago. So, I have issues detecting battle list monsters. Do you have another solution?

same on mac. maybe we can have the characters of each OS and make the images of names of the monsters the first time the program run

So tkinter is being used to detect the fonts of the client?
Since I can't get it to install correctly on Linux, I'm kind of lost on its use.

I tried every tutorial I could find on installing tkinter on Linux, none seemed to work.

same on mac. maybe we can have the characters of each OS and make the images of names of the monsters the first time the program run

PyTibia is little different since a pre-compute everything to reach incredible performance. Example:

https://github.com/lucasmonstrox/PyTibia/blob/main/src/repositories/battleList/images/monsters/Aggressive%20Lava.png

I already have all monsters pre-computed in an object in hash/name style like this

monsters = { hashit(loadImage('larva.png')): 'Larva', hashit(loadImage('troll.png')): 'Troll' }

When I compute monsters from battleList, I clean the "gray" from behind, slice the part of the name, make a hash to get it frommonsters variable. This is how I get "microseconds" performance and made this bot a very fast bot.

I didnt know about different fonts in OS/Linux. Im a noob player and I always played on Windows.

same on mac. maybe we can have the characters of each OS and make the images of names of the monsters the first time the program run

PyTibia is little different since a pre-compute everything to reach incredible performance. Example:

https://github.com/lucasmonstrox/PyTibia/blob/main/src/repositories/battleList/images/monsters/Aggressive%20Lava.png

I already have all monsters pre-computed in an object in hash/name style like this

monsters = { hashit(loadImage('larva.png')): 'Larva', hashit(loadImage('troll.png')): 'Troll' }

When I compute monsters from battleList, I clean the "gray" from behind, slice the part of the name, make a hash to get it frommonsters variable. This is how I get "microseconds" performance and made this bot a very fast bot.

I didnt know about different fonts in OS/Linux. Im a noob player and I always played on Windows.

Yeah. I read almost all the code. what I say is to not have the monster names folder in the repository and generate them from the characters depending on the OS. so as not to have two folders with the same for each os since there are many monsters. I don't know if I expressed my idea well

same on mac. maybe we can have the characters of each OS and make the images of names of the monsters the first time the program run

PyTibia is little different since a pre-compute everything to reach incredible performance. Example:

https://github.com/lucasmonstrox/PyTibia/blob/main/src/repositories/battleList/images/monsters/Aggressive%20Lava.png

I already have all monsters pre-computed in an object in hash/name style like this

monsters = { hashit(loadImage('larva.png')): 'Larva', hashit(loadImage('troll.png')): 'Troll' }

When I compute monsters from battleList, I clean the "gray" from behind, slice the part of the name, make a hash to get it frommonsters variable. This is how I get "microseconds" performance and made this bot a very fast bot.

I didnt know about different fonts in OS/Linux. Im a noob player and I always played on Windows.

I always play on Windows too.
But for this project I installed Linux on a VM and was able to get BattlEye working for it, so it doesn't know I'm on a VM. (BattlEye doesn't allow Tibia to be played in VMs, and I couldn't get Tibia to work on a Windows VM)

So can you enlighten me on what exactly is tkinter being used for? This way maybe we can move away from this library on Linux, if needed. (since I can't get this damn thing installed)

Yeah. I read almost all the code. what I say is to not have the monster names folder in the repository and generate them from the characters depending on the OS. so as not to have two folders with the same for each os since there are many monsters. I don't know if I expressed my idea well

So what you are saying is to instead of having the images already on the folder, the code compiles a list of images based on the monsters names using the OS font?
If I understood this correctly, we would still have the folder with the images, but those images would be compiled based on the OS, rather than using a pre-compiled list of images for Windows.

same on mac. maybe we can have the characters of each OS and make the images of names of the monsters the first time the program run

PyTibia is little different since a pre-compute everything to reach incredible performance. Example:
https://github.com/lucasmonstrox/PyTibia/blob/main/src/repositories/battleList/images/monsters/Aggressive%20Lava.png
I already have all monsters pre-computed in an object in hash/name style like this
monsters = { hashit(loadImage('larva.png')): 'Larva', hashit(loadImage('troll.png')): 'Troll' }
When I compute monsters from battleList, I clean the "gray" from behind, slice the part of the name, make a hash to get it frommonsters variable. This is how I get "microseconds" performance and made this bot a very fast bot.
I didnt know about different fonts in OS/Linux. Im a noob player and I always played on Windows.

I always play on Windows too. But for this project I installed Linux on a VM and was able to get BattlEye working for it, so it doesn't know I'm on a VM. (BattlEye doesn't allow Tibia to be played in VMs, and I couldn't get Tibia to work on a Windows VM)

So can you enlighten me on what exactly is tkinter being used for? This way maybe we can move away from this library on Linux, if needed. (since I can't get this damn thing installed)

Tkinter is only used for UI configuration.

Yeah. I read almost all the code. what I say is to not have the monster names folder in the repository and generate them from the characters depending on the OS. so as not to have two folders with the same for each os since there are many monsters. I don't know if I expressed my idea well

So what you are saying is to instead of having the images already on the folder, the code compiles a list of images based on the monsters names using the OS font? If I understood this correctly, we would still have the folder with the images, but those images would be compiled based on the OS, rather than using a pre-compiled list of images for Windows.

Yes it possible :) but the ideal is to do a check and it can be time consuming since there are 1000+ monsters.

Yes it possible :) but the ideal is to do a check and it can be time consuming since there are 1000+ monsters.
I might be something to do on a first run, then it takes longer the first time, but creates the images and stores them. After that it should just load the images to the hash.

Yo, is there a plan to adapt this for MacOS?

JakNo commented

Hi @lucasmonstrox, do you plan porting PyTibia to MacOS? I can try to help with potential testing :)