Skip to content

Add monoAA_FINDMONOMETHODWITHPARAMS#2846

Open
JasonGoemaat wants to merge 2 commits intocheat-engine:masterfrom
JasonGoemaat:MonoFindMethodWithParameters
Open

Add monoAA_FINDMONOMETHODWITHPARAMS#2846
JasonGoemaat wants to merge 2 commits intocheat-engine:masterfrom
JasonGoemaat:MonoFindMethodWithParameters

Conversation

@JasonGoemaat
Copy link
Copy Markdown
Contributor

When a method is overridden with different parameters, this method will let you hook the right one by specifying the parameter types.

I've run into this issue several times where the method I want to hook has several versions. An example is the free game on Steam
'Underminer'. There are three versions of
Inventory.TryRemoveItem, this will hook the one that is called
when you use a missile, so you can just mov al, 1; ret to have
infinite items. The default FINDMONOMETHOD seems to only find
the first instance of the method which might not be the one you
want to hook.

I have a little difference in parsing parameters since I couldn't figure out what was happening in the original, I created some helper methods. With this, the method has to have a ":" prefix if there is no namespace.

FINDMONOMETHODWITHPARAMS(address, :Inventory:TryRemoveItem, Item,int)

When a method is overridden with different parameters, this method
will let you hook the right one by specifying the parameter types.

I've run into this issue several times where the method I want to
hook has several versions.  An example is the free game on Steam
'Underminer'.   There are three versions of
`Inventory.TryRemoveItem`, this will hook the one that is called
when you use a missile, so you can just `mov al, 1; ret` to have
infinite items.   The default FINDMONOMETHOD seems to only find
the first instance of the method which might not be the one you
want to hook.

    FINDMONOMETHODWITHPARAMS(address, :Inventory:TryRemoveItem, Item,int)
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.

1 participant