Hercules
Hercules copied to clipboard
Stops tsd client crashing if party inviter is disguised.
Pull Request Prelude
- [x] I have followed proper Hercules code styling.
- [x] I have read and understood the contribution guidelines before making this PR.
- [x] I am aware that this PR will be closed if the above-mentioned criteria are not fulfilled.
Changes Proposed
Stops disguised party invites if disguised. If the party inviter is disguised, they can crash anyone's client just by inviting them to their party (not sure if it will crash on partylock or if player already has party).
Confirmed to crash the target's client in 20160113.
Affected Branches:
- [x] master
- [x] stable
Issues addressed:
Known Issues and TODO List
- [ ] Test in other clients to see if it is a packetver related thing.
caption said prevent invite if party leader disguised, but pr really prevent invites if party inviter disguised. what is correct caption or code?
It should be the party inviter.
If someone else can test for which client it crashes, it would be great.
If someone else can test for which client it crashes, it would be great.
yep crashing here using current Hercules~
look like need rebase and conflict fixing
I did some testing with 2016-01-13cRagexeRE and the issue isn't related to the invitation itself.
The actual problem is opening the party window. As of yet I wasn't able to find the real culprit since the crash doesn't occur every time the party window is opened. Actually it doesn't always happen under identical circumstances. :disappointed:
However, prevent disguised characters from inviting other characters doesn't fix anything and thus this PR brings no benefit.
This crash is caused by a missing check in the party logic of the client for when getting the Actor Object by AID what type of object it is. They think it's of type "0" instead of "1" but both have different vftables and different adresses / offsets for their HP bar information, which leads to an memory access violation for when you have disguised people in your party.
Can pretty much only be solved by modifying the client with your own asm. :)
EDIT: Also it's true that this PR thus makes little sense, as the existance of a disguised char itself is the issue in the party, not the invite stemming from it.
Closing it thus.