Jump to content

[iOS 12 UPDATED!!] [NIC TEMPLATE] Mod Menu Theos Template! Easily Create Your Own iGMMs!


1,155 posts in this topic

Recommended Posts

Posted
addTextfieldHook(@"Hook name", @"Description of hook", font, address of function that you are hooking, the name of the function you are using for the hook, the name of the function you aren't using for the hook);

To get the value from the textfield, you'll have to use one of these methods based on what your hooked function return type is:

	int val = [[TextfieldHook getTextfieldValueForHook:@"hook name here"] intValue];
	float val = [[TextfieldHook getTextfieldValueForHook:@"hook name here"] floatValue];

 

If I wanted to add a textfield that allowed the user to input their FOV, I would write this line of code:

addTextfieldHook(@"FOV Textfield", @"Input the value you want for your FOV.", font, 0xc392da, (void *)_getFovHooked, (void *)getFovOrig);

 

 

And the hooked functions would look like this:

	float (*getFovOrig)(void *_this);
	 
	float _getFovHooked(void *_this){
	if([TextfieldHook getTextfieldValueForHook:@"FOV Textfield"] != nil){ //the textfield will be empty on first run, and we don't want to return a nil value
	return [[TextfieldHook getTextfieldValueForHook:@"FOV Textfield"] floatValue];
	}
	 
	return getFovOrig(_this);
	}

 

 

 

NOTICE!

Always add (void *) to the beginning of the last two parameters if you are adding hooks. This is called casting, don't worry about it. Just know that it is needed.

 

Here is what your mod menu will generally look like if you choose green as your theme color and Copperplate-Bold as your font:

Credits:

- me

@DiDA (for animation ideas!)

  • Like 1
Posted

I think I messed something up. Using iPhoneOS11.2 as SDK.

> Making all for tweak AmericanDadHack
==> Compiling Tweak.xm (arm64)…
In file included from Tweak.xm:1:
In file included from /Users/aarivex/americandadhack/Macros.h:1:
In file included from /Users/aarivex/americandadhack/ModMenu.h:11:
In file included from /Users/aarivex/americandadhack/Hack.h:10:
In file included from /Users/aarivex/theos/include/vector:66:
In file included from /Users/aarivex/theos/include/bits/stl_algobase.h:66:
/Users/aarivex/theos/include/cstring:102:12: error: cannot initialize return object of type 'void *' with an rvalue of type 'const void *'
  { return memchr(const_cast<const void*>(__p), __c, __n); }
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from Tweak.xm:1:
In file included from /Users/aarivex/americandadhack/Macros.h:1:
In file included from /Users/aarivex/americandadhack/ModMenu.h:11:
In file included from /Users/aarivex/americandadhack/Hack.h:10:
In file included from /Users/aarivex/theos/include/vector:66:
In file included from /Users/aarivex/theos/include/bits/stl_algobase.h:68:
/Users/aarivex/theos/include/cstdlib:143:3: error: declaration conflicts with target of using declaration already in scope
  abs(long __i) { return labs(__i); }
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/stdlib.h:111:44: note: target of using declaration
inline _LIBCPP_INLINE_VISIBILITY long      abs(     long __x) _NOEXCEPT {return  labs(__x);}
                                           ^
/Users/aarivex/theos/include/cstdlib:110:11: note: using declaration
  using ::abs;
          ^
/Users/aarivex/theos/include/cstdlib:146:3: error: declaration conflicts with target of using declaration already in scope
  div(long __i, long __j) { return ldiv(__i, __j); }
  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/stdlib.h:116:42: note: target of using declaration
inline _LIBCPP_INLINE_VISIBILITY  ldiv_t div(     long __x,      long __y) _NOEXCEPT {return  ldiv(__x, __y);}
                                         ^
/Users/aarivex/theos/include/cstdlib:117:11: note: using declaration
  using ::div;
          ^
In file included from Tweak.xm:1:
In file included from /Users/aarivex/americandadhack/Macros.h:1:
In file included from /Users/aarivex/americandadhack/ModMenu.h:11:
In file included from /Users/aarivex/americandadhack/Hack.h:10:
In file included from /Users/aarivex/theos/include/vector:66:
In file included from /Users/aarivex/theos/include/bits/stl_algobase.h:70:
In file included from /Users/aarivex/theos/include/iosfwd:49:
In file included from /Users/aarivex/theos/include/bits/postypes.h:46:
/Users/aarivex/theos/include/cwchar:212:12: error: cannot initialize return object of type 'wchar_t *' with an rvalue of type 'const wchar_t *'
  { return wcschr(const_cast<const wchar_t*>(__p), __c); }
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/aarivex/theos/include/cwchar:218:12: error: cannot initialize return object of type 'wchar_t *' with an rvalue of type 'const wchar_t *'
  { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/aarivex/theos/include/cwchar:224:12: error: cannot initialize return object of type 'wchar_t *' with an rvalue of type 'const wchar_t *'
  { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/aarivex/theos/include/cwchar:230:12: error: cannot initialize return object of type 'wchar_t *' with an rvalue of type 'const wchar_t *'
  { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/aarivex/theos/include/cwchar:236:12: error: cannot initialize return object of type 'wchar_t *' with an rvalue of type 'const wchar_t *'
  { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from Tweak.xm:1:
In file included from /Users/aarivex/americandadhack/Macros.h:1:
In file included from /Users/aarivex/americandadhack/ModMenu.h:11:
In file included from /Users/aarivex/americandadhack/Hack.h:10:
In file included from /Users/aarivex/theos/include/vector:66:
In file included from /Users/aarivex/theos/include/bits/stl_algobase.h:71:
/Users/aarivex/theos/include/bits/stl_pair.h:96:22: error: no template named 'pair'
    operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                     ^
/Users/aarivex/theos/include/bits/stl_pair.h:96:49: error: no template named 'pair'
    operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                                                ^
/Users/aarivex/theos/include/bits/stl_pair.h:102:21: error: no template named 'pair'
    operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                    ^
/Users/aarivex/theos/include/bits/stl_pair.h:102:48: error: no template named 'pair'
    operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                                               ^
/Users/aarivex/theos/include/bits/stl_pair.h:109:22: error: no template named 'pair'
    operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                     ^
/Users/aarivex/theos/include/bits/stl_pair.h:109:49: error: no template named 'pair'
    operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                                                ^
/Users/aarivex/theos/include/bits/stl_pair.h:115:21: error: no template named 'pair'
    operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                    ^
/Users/aarivex/theos/include/bits/stl_pair.h:115:48: error: no template named 'pair'
    operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                                               ^
/Users/aarivex/theos/include/bits/stl_pair.h:121:22: error: no template named 'pair'
    operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                     ^
/Users/aarivex/theos/include/bits/stl_pair.h:121:49: error: no template named 'pair'
    operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                                                ^
/Users/aarivex/theos/include/bits/stl_pair.h:127:22: error: no template named 'pair'
    operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
                     ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[3]: *** [/Users/aarivex/americandadhack/.theos/obj/debug/arm64/Tweak.xm.ca397b12.o] Error 1
make[2]: *** [/Users/aarivex/americandadhack/.theos/obj/debug/arm64/AmericanDadHack.dylib] Error 2
make[1]: *** [internal-library-all_] Error 2
make: *** [AmericanDadHack.all.tweak.variables] Error 2

 

Guest
This topic is now closed to further replies.
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines