コード例 #1
0
    public static HookWrapper <AddonOnUpdate> HookAfterAddonUpdate(IntPtr address, NoReturnAddonOnUpdate after)
    {
        Hook <AddonOnUpdate> hook = null;

        hook = new Hook <AddonOnUpdate>(address, (atkUnitBase, nums, strings) => {
            var retVal = hook.Original(atkUnitBase, nums, strings);
            try {
                after(atkUnitBase, nums, strings);
            } catch (Exception ex) {
                SimpleLog.Error(ex);
                hook.Disable();
            }
            return(retVal);
        });
        var wh = new HookWrapper <AddonOnUpdate>(hook);

        return(wh);
    }
コード例 #2
0
 public static HookWrapper <AddonOnUpdate> HookAfterAddonUpdate(AtkUnitBase *atkUnitBase, NoReturnAddonOnUpdate after) => HookAfterAddonUpdate(atkUnitBase->AtkEventListener.vfunc[46], after);
コード例 #3
0
 public static HookWrapper <AddonOnUpdate> HookAfterAddonUpdate(string signature, NoReturnAddonOnUpdate after, int addressOffset = 0) => HookAfterAddonUpdate(Scanner.ScanText(signature) + addressOffset, after);
コード例 #4
0
 public static HookWrapper <AddonOnUpdate> HookAfterAddonUpdate(void *address, NoReturnAddonOnUpdate after) => HookAfterAddonUpdate(new IntPtr(address), after);