Skip to content

temporal fix: crystal-handle colourisable mounts for OTCR - #826

Open
Paco161315 wants to merge 5 commits into
zimbadev:mainfrom
Paco161315:temporal-fix-crystal-handle-colourisable-mounts
Open

temporal fix: crystal-handle colourisable mounts for OTCR#826
Paco161315 wants to merge 5 commits into
zimbadev:mainfrom
Paco161315:temporal-fix-crystal-handle-colourisable-mounts

Conversation

@Paco161315

@Paco161315 Paco161315 commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

I'm sure you have met this problem in otcr where color mounts ends by crashing otcr player screen when playing with mixed cipsoft and otcr clients. Well, this is a temporal solution that sets color 0 in mounts, this way you don't have to disable mounts in the xml and you can enable mixed cipsoft and otcr in same server.

This is a temporal fix while otcr guys handle the color mounts, I know it's a lil fixed already but if you change color as cip client player in front of a otcr player you will go totally invisible, this script will prevent this problem while a solution is created.

This doesn't has to be merged if tryller doesn't want to, it's just a code I'm sharing with you guys so you can play without problems. I would make it configurable but it makes no sense because otcr may be updated soon.

Works for both android and windows otcr clients, you can try with the clients of mine, just change the ip and connect to your server:

Windows
https://tibiatales.com/otclient.zip

Android
https://tibiatales.com/androidotclient.apk

NOTE: YOU CANNOT DO THIS OTC SIDE BECAUSE FUNCTION ISN'T PROPERLY CREATED IN SOURCE YET

Paco161315 and others added 4 commits July 12, 2026 01:40
I'm sure you have met this problem in otc where color mounts ends by crashing otcr player screen when playing with mixed cipsoft and otcr clients. Well, this is a temporal solution that sets color 0 in mounts, this way you don't have to disable mounts in the xml and you can enable mixed cipsoft and otcr in same server.

This is a temporal fix while otcr guys handle the color mounts, I know it's a lil fixed already but if you change color as cip client player in front of a otcr player you will go totally invisible, this script will prevent this problem while a solution is created.

This doesn't has to be merged if you don't want to, it's just a code I'm sharing with you guys so you can play without problems. I would make it configurable but makes no sense because otcr may be updated soon.

Works for both android and windows otcr clients, you can try with those of mine, just change the ip and conenct to your server:

Windows
https://tibiatales.com/otclient.zip

Android
https://tibiatales.com/androidotclient.apk
@omarcopires

Copy link
Copy Markdown
Contributor

Kudos for the creativity, but my CPU started crying just reading this code. Running an onThink event every 250ms that loops through the server's entire player list just to fix a purely visual client bug is like burning down your car because the ashtray is full.The OTC side might indeed be broken, but fixing it by frying the server-side is definitely not the way to go. If anyone puts this into production with more than 5 players online, the lag will end up making everyone invisible anyway.

@Mateuzkl

Copy link
Copy Markdown
Contributor

Running onThink every 250 ms and iterating through all online players is not a good solution. It creates constant CPU and Lua GC overhead and may trigger unnecessary outfit broadcasts. This is not a direct memory leak, but it scales poorly. The fix should be event-based or handled in ProtocolGame only when the outfit changes.

@Paco161315

Copy link
Copy Markdown
Contributor Author

Running onThink every 250 ms and iterating through all online players is not a good solution. It creates constant CPU and Lua GC overhead and may trigger unnecessary outfit broadcasts. This is not a direct memory leak, but it scales poorly. The fix should be event-based or handled in ProtocolGame only when the outfit changes.

Alright man will do! I only play with my friends in my server. So I never had an issue we are very few people, but you are right!

@Paco161315

Paco161315 commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

Running onThink every 250 ms and iterating through all online players is not a good solution. It creates constant CPU and Lua GC overhead and may trigger unnecessary outfit broadcasts. This is not a direct memory leak, but it scales poorly. The fix should be event-based or handled in ProtocolGame only when the outfit changes.

That's absolutely right man, will send fix

Updated with less punishment to your server
@Paco161315

Copy link
Copy Markdown
Contributor Author

I just updated code, I didn't want to c++ it because this is only a temporal measure until otc gets updated. Don't merge this PR but leave it here for everyone to see and combine clients if they desire so! - There is now less punishment to your resources.

@jprzimba

jprzimba commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

I could be mistaken, but I believe this needs to be fixed directly in the OTC, right?

@Paco161315

Copy link
Copy Markdown
Contributor Author

I could be mistaken, but I believe this needs to be fixed directly in the OTC, right?

Yeah man, you can use this while they fix the otc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants