CabConModding
Facebook
Twitter
youtube
Discord
Contact us
RSS
Menu
CabConModding
Home
New
Top
Premium
Rules
FAQ - Frequently Asked Questions
Games
Fornite
Call of Duty: Black Ops 3
Clash of Clans
Grand Theft Auto 5
Apex Legends
Assassin’s Creed Origins
Forums
Premium
Latest posts
What's new
Latest posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Log in
Register
What's new
Premium
Latest posts
Menu
Log in
Register
Navigation
Install the app
Install
More options
Dark Theme
Contact us
Close Menu
Forums
Gaming
Call of Duty Classics
Call of Duty: Ghosts
[PC/Steam] Call of Duty Ghosts Hud Elements + A Few Functions
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="xCometMods" data-source="post: 59093" data-attributes="member: 10"><p>So figured out hud elements for ghosts PC steam version. Since game is dead and no one got money for a gsc injector, use this thread to make host mod menu. The way the game sets text is different from other COD's and to bypass a G_LocalizedStringIndex Patch everytime you print text, I decided to use G_FindConfigstringIndex instead. First to get hudelems to work on PC it seems not sure though</p><p>Menu Base Made With This : <a href="https://cabconmodding.com/threads/pc-steam-ghosts-menu-base.9352/" target="_blank">Release - [PC/Steam] Ghosts Menu Base</a></p><p style="text-align: center">[SPOILER="Hud Elements For Ghosts Steam"]</p> <p style="text-align: center"></p> <p style="text-align: center"></p> <p style="text-align: center"></p> <p style="text-align: center">[CODE=cpp]</p> <p style="text-align: center">/*</p> <p style="text-align: center">EXAMPLE</p> <p style="text-align: center"></p> <p style="text-align: center">game_hudelem_s * Shader = AddShader(client,"white", 100, 100, 1000, 1000, 0, 0, 0, 180);</p> <p style="text-align: center">game_hudelem_s * Text = setText(client, "HHHHHHHHHHHHHHHHHHHHHHH",1,4,100,100,255,255,255,255);</p> <p style="text-align: center"></p> <p style="text-align: center">*/</p> <p style="text-align: center">typedef unsigned char byte;</p> <p style="text-align: center">typedef unsigned int uint;</p> <p style="text-align: center"></p> <p style="text-align: center">union color_s</p> <p style="text-align: center">{</p> <p style="text-align: center"> struct</p> <p style="text-align: center">{</p> <p style="text-align: center"> byte r, g, b, a;</p> <p style="text-align: center">};</p> <p style="text-align: center"></p> <p style="text-align: center">uint rgba;</p> <p style="text-align: center">};</p> <p style="text-align: center"></p> <p style="text-align: center">struct hudelem_s</p> <p style="text-align: center">{</p> <p style="text-align: center"> int type;</p> <p style="text-align: center"> float x;</p> <p style="text-align: center"> float y;</p> <p style="text-align: center"> float z;</p> <p style="text-align: center"> int targetEntNum;</p> <p style="text-align: center"> float fontScale;</p> <p style="text-align: center"> float fromFontScale;</p> <p style="text-align: center"> float fontScaleStartTime;</p> <p style="text-align: center"> float fontScaleTime;</p> <p style="text-align: center"> int font;</p> <p style="text-align: center"> int alignOrg;</p> <p style="text-align: center"> int alignScreen;</p> <p style="text-align: center"> color_s color;</p> <p style="text-align: center"> color_s fromColor;</p> <p style="text-align: center"> int fadeStartTime;</p> <p style="text-align: center"> int fadeTime;</p> <p style="text-align: center"> int label;</p> <p style="text-align: center"> int width;</p> <p style="text-align: center"> int height;</p> <p style="text-align: center"> int materialIndex;</p> <p style="text-align: center"> int fromWidth;</p> <p style="text-align: center"> int fromHeight;</p> <p style="text-align: center"> int scaleStartTime;</p> <p style="text-align: center"> int scaleTime;</p> <p style="text-align: center"> float fromX;</p> <p style="text-align: center"> float fromY;</p> <p style="text-align: center"> int fromAlignOrg;</p> <p style="text-align: center"> int fromAlignScreen;</p> <p style="text-align: center"> int moveStartTime;</p> <p style="text-align: center"> int moveTime;</p> <p style="text-align: center"> int time;</p> <p style="text-align: center"> int duration;</p> <p style="text-align: center"> float value;</p> <p style="text-align: center"> int text;</p> <p style="text-align: center"> float sort;</p> <p style="text-align: center"> color_s glowColor;</p> <p style="text-align: center"> int fxBirthTime;</p> <p style="text-align: center"> int fxLetterTime;</p> <p style="text-align: center"> int fxDecayStartTime;</p> <p style="text-align: center"> int fxDecayDuration;</p> <p style="text-align: center"> int soundID;</p> <p style="text-align: center"> int flags;</p> <p style="text-align: center">};</p> <p style="text-align: center"></p> <p style="text-align: center">struct game_hudelem_s</p> <p style="text-align: center">{</p> <p style="text-align: center"> hudelem_s elem;</p> <p style="text-align: center"> int clientNum;</p> <p style="text-align: center"> int team;</p> <p style="text-align: center"> int archived;</p> <p style="text-align: center"> int currentShowInKillcam;</p> <p style="text-align: center">};</p> <p style="text-align: center"></p> <p style="text-align: center">int(*G_MaterialIndex)(const char* shader) = (int(*)(const char*))0x140162320;</p> <p style="text-align: center"></p> <p style="text-align: center">int(*G_FindConfigstringIndex)(const char* name, int start, int max, int create, const char* error) = (int(*)(const char*, int, int, int, const char*))0x140161F90;</p> <p style="text-align: center"></p> <p style="text-align: center">game_hudelem_s*(*HudElem_Alloc)(int client, int team) = (game_hudelem_s*(*)(int, int))0x1403997E0;</p> <p style="text-align: center"></p> <p style="text-align: center">game_hudelem_s* setText(int client, char* Text, int font, float fontScale, float x, float y, byte r, byte g, byte b, byte a)</p> <p style="text-align: center">{</p> <p style="text-align: center"> game_hudelem_s* Element = HudElem_Alloc(client,0);</p> <p style="text-align: center"> Element->elem.type = 0x1;</p> <p style="text-align: center"> Element->elem.alignOrg = 0;</p> <p style="text-align: center"> Element->elem.alignScreen = 0;</p> <p style="text-align: center"> Element->elem.font = font;</p> <p style="text-align: center"> Element->elem.fontScale = fontScale;</p> <p style="text-align: center"> Element->elem.x = x;</p> <p style="text-align: center"> Element->elem.y = y;</p> <p style="text-align: center"> Element->elem.color.r = r;</p> <p style="text-align: center"> Element->elem.color.g = g;</p> <p style="text-align: center"> Element->elem.color.b = b;</p> <p style="text-align: center"> Element->elem.color.a = a;</p> <p style="text-align: center"> Element->elem.sort = 1;</p> <p style="text-align: center"> Element->elem.text = G_FindConfigstringIndex(Text, 0x21D, 0x1FF, 1, "error");</p> <p style="text-align: center"> return Element;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">game_hudelem_s* AddShader(int client,char* Shader, float x, float y, int width, int height, byte r, byte g, byte b, byte a)</p> <p style="text-align: center">{</p> <p style="text-align: center"> game_hudelem_s* element = HudElem_Alloc(client, 0);</p> <p style="text-align: center"> element->elem.type = 0x04;</p> <p style="text-align: center"> element->elem.materialIndex = G_MaterialIndex(Shader);</p> <p style="text-align: center"> element->elem.x = x;</p> <p style="text-align: center"> element->elem.y = y;</p> <p style="text-align: center"> element->elem.width = width;</p> <p style="text-align: center"> element->elem.height = height;</p> <p style="text-align: center"> element->elem.alignOrg = 0;</p> <p style="text-align: center"> element->elem.alignScreen = 0;</p> <p style="text-align: center"> element->elem.sort = 0;</p> <p style="text-align: center"> element->elem.color.r = r;</p> <p style="text-align: center"> element->elem.color.g = g;</p> <p style="text-align: center"> element->elem.color.b = b;</p> <p style="text-align: center"> element->elem.color.a = a;</p> <p style="text-align: center"> return element;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void ChangeGlow(game_hudelem_s* element, byte r, byte g, byte b, byte a)</p> <p style="text-align: center">{</p> <p style="text-align: center"> element->elem.glowColor.r = r;</p> <p style="text-align: center"> element->elem.glowColor.g = g;</p> <p style="text-align: center"> element->elem.glowColor.b = b;</p> <p style="text-align: center"> element->elem.glowColor.a = a;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void ChangeColor(game_hudelem_s* element, byte r, byte g, byte b, byte a)</p> <p style="text-align: center">{</p> <p style="text-align: center"> element->elem.color.r = r;</p> <p style="text-align: center"> element->elem.color.g = g;</p> <p style="text-align: center"> element->elem.color.b = b;</p> <p style="text-align: center"> element->elem.color.a = a;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void FreeHudElement(game_hudelem_s* element)</p> <p style="text-align: center">{</p> <p style="text-align: center"> ZeroMemory(element, 0xB8);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void ChangeFontScale(game_hudelem_s* element, float Scale)</p> <p style="text-align: center">{</p> <p style="text-align: center"> element->elem.fontScale = Scale;</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void ChangeText(game_hudelem_s* element, const char* Text)</p> <p style="text-align: center">{</p> <p style="text-align: center"> element->elem.text = G_FindConfigstringIndex(Text, 0x21D, 0x1FF, 1, "error");</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void ChangeMaterial(game_hudelem_s* element, const char* material)</p> <p style="text-align: center">{</p> <p style="text-align: center"> element->elem.materialIndex = G_MaterialIndex(material);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void MoveXY(game_hudelem_s* element, float x, float y)</p> <p style="text-align: center">{</p> <p style="text-align: center"> element->elem.x = x;</p> <p style="text-align: center"> element->elem.y = y;</p> <p style="text-align: center">}[/CODE]</p> <p style="text-align: center">[/SPOILER]</p> <p style="text-align: center"></p> <p style="text-align: center">[SPOILER="Some Functions"]</p> <p style="text-align: center">[SPOILER="RPC"]</p> <p style="text-align: center">[CODE=cpp]typedef unsigned __int64 QWORD;</p> <p style="text-align: center">template<typename function_type, typename... Parameters></p> <p style="text-align: center">function_type RPC(QWORD function_address, Parameters... args)</p> <p style="text-align: center">{</p> <p style="text-align: center"> function_type(*placeholder)(Parameters...) = (function_type(*)(Parameters...))function_address;</p> <p style="text-align: center"> return placeholder(args...);</p> <p style="text-align: center">}[/CODE]</p> <p style="text-align: center">[/SPOILER]</p> <p style="text-align: center">[CODE=cpp]void VM_Notify(unsigned int notifyListOwnerId, unsigned int stringValue, void *top) 0x14043D9B0</p> <p style="text-align: center"></p> <p style="text-align: center">const char * SL_ConvertToString(unsigned int stringValue)</p> <p style="text-align: center">{</p> <p style="text-align: center"> return RPC<const char *>(0x1404317F0, stringValue);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">unsigned int Scr_GetSelf(unsigned int threadID)</p> <p style="text-align: center">{</p> <p style="text-align: center"> return RPC<unsigned int>(0x140436F10, threadID);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void Scr_ConstructMessageString(int firstParmIndex, int lastParmIndex, const char *errorContext, char *string, unsigned int stringLimit)</p> <p style="text-align: center">{</p> <p style="text-align: center"> RPC<void>(0x1403CD810, firstParmIndex, lastParmIndex, errorContext, string, stringLimit);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void SV_SetConfigString(int ConfigString, const char * b)</p> <p style="text-align: center">{</p> <p style="text-align: center"> RPC<void>(0x140477200, ConfigString, b);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void Scr_SetNumParam(int A){</p> <p style="text-align: center"> write_process<int>(0x144D4B0B8 + 4, A);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void Scr_ClearOutParams(){</p> <p style="text-align: center"> RPC<void>(0x140438600);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void Scr_AddString(const char * value){</p> <p style="text-align: center"> RPC<void>(0x1404381D0, value);</p> <p style="text-align: center">}</p> <p style="text-align: center"></p> <p style="text-align: center">void PlayerCMD_giveWeapon(unsigned int Player, const char * Weapon)</p> <p style="text-align: center">{</p> <p style="text-align: center"> Scr_AddString(Weapon);</p> <p style="text-align: center"> Scr_SetNumParam(1);</p> <p style="text-align: center"> RPC<void>(0x1403891F0, Player);</p> <p style="text-align: center"> Scr_ClearOutParams();</p> <p style="text-align: center">}</p> <p style="text-align: center">[/CODE]</p> <p style="text-align: center">[/SPOILER]</p> <p style="text-align: center">[ATTACH=full]4570[/ATTACH]</p> <p style="text-align: center"></p></blockquote><p></p>
[QUOTE="xCometMods, post: 59093, member: 10"] So figured out hud elements for ghosts PC steam version. Since game is dead and no one got money for a gsc injector, use this thread to make host mod menu. The way the game sets text is different from other COD's and to bypass a G_LocalizedStringIndex Patch everytime you print text, I decided to use G_FindConfigstringIndex instead. First to get hudelems to work on PC it seems not sure though Menu Base Made With This : [URL="https://cabconmodding.com/threads/pc-steam-ghosts-menu-base.9352/"]Release - [PC/Steam] Ghosts Menu Base[/URL] [CENTER][SPOILER="Hud Elements For Ghosts Steam"] [CODE=cpp] /* EXAMPLE game_hudelem_s * Shader = AddShader(client,"white", 100, 100, 1000, 1000, 0, 0, 0, 180); game_hudelem_s * Text = setText(client, "HHHHHHHHHHHHHHHHHHHHHHH",1,4,100,100,255,255,255,255); */ typedef unsigned char byte; typedef unsigned int uint; union color_s { struct { byte r, g, b, a; }; uint rgba; }; struct hudelem_s { int type; float x; float y; float z; int targetEntNum; float fontScale; float fromFontScale; float fontScaleStartTime; float fontScaleTime; int font; int alignOrg; int alignScreen; color_s color; color_s fromColor; int fadeStartTime; int fadeTime; int label; int width; int height; int materialIndex; int fromWidth; int fromHeight; int scaleStartTime; int scaleTime; float fromX; float fromY; int fromAlignOrg; int fromAlignScreen; int moveStartTime; int moveTime; int time; int duration; float value; int text; float sort; color_s glowColor; int fxBirthTime; int fxLetterTime; int fxDecayStartTime; int fxDecayDuration; int soundID; int flags; }; struct game_hudelem_s { hudelem_s elem; int clientNum; int team; int archived; int currentShowInKillcam; }; int(*G_MaterialIndex)(const char* shader) = (int(*)(const char*))0x140162320; int(*G_FindConfigstringIndex)(const char* name, int start, int max, int create, const char* error) = (int(*)(const char*, int, int, int, const char*))0x140161F90; game_hudelem_s*(*HudElem_Alloc)(int client, int team) = (game_hudelem_s*(*)(int, int))0x1403997E0; game_hudelem_s* setText(int client, char* Text, int font, float fontScale, float x, float y, byte r, byte g, byte b, byte a) { game_hudelem_s* Element = HudElem_Alloc(client,0); Element->elem.type = 0x1; Element->elem.alignOrg = 0; Element->elem.alignScreen = 0; Element->elem.font = font; Element->elem.fontScale = fontScale; Element->elem.x = x; Element->elem.y = y; Element->elem.color.r = r; Element->elem.color.g = g; Element->elem.color.b = b; Element->elem.color.a = a; Element->elem.sort = 1; Element->elem.text = G_FindConfigstringIndex(Text, 0x21D, 0x1FF, 1, "error"); return Element; } game_hudelem_s* AddShader(int client,char* Shader, float x, float y, int width, int height, byte r, byte g, byte b, byte a) { game_hudelem_s* element = HudElem_Alloc(client, 0); element->elem.type = 0x04; element->elem.materialIndex = G_MaterialIndex(Shader); element->elem.x = x; element->elem.y = y; element->elem.width = width; element->elem.height = height; element->elem.alignOrg = 0; element->elem.alignScreen = 0; element->elem.sort = 0; element->elem.color.r = r; element->elem.color.g = g; element->elem.color.b = b; element->elem.color.a = a; return element; } void ChangeGlow(game_hudelem_s* element, byte r, byte g, byte b, byte a) { element->elem.glowColor.r = r; element->elem.glowColor.g = g; element->elem.glowColor.b = b; element->elem.glowColor.a = a; } void ChangeColor(game_hudelem_s* element, byte r, byte g, byte b, byte a) { element->elem.color.r = r; element->elem.color.g = g; element->elem.color.b = b; element->elem.color.a = a; } void FreeHudElement(game_hudelem_s* element) { ZeroMemory(element, 0xB8); } void ChangeFontScale(game_hudelem_s* element, float Scale) { element->elem.fontScale = Scale; } void ChangeText(game_hudelem_s* element, const char* Text) { element->elem.text = G_FindConfigstringIndex(Text, 0x21D, 0x1FF, 1, "error"); } void ChangeMaterial(game_hudelem_s* element, const char* material) { element->elem.materialIndex = G_MaterialIndex(material); } void MoveXY(game_hudelem_s* element, float x, float y) { element->elem.x = x; element->elem.y = y; }[/CODE] [/SPOILER] [SPOILER="Some Functions"] [SPOILER="RPC"] [CODE=cpp]typedef unsigned __int64 QWORD; template<typename function_type, typename... Parameters> function_type RPC(QWORD function_address, Parameters... args) { function_type(*placeholder)(Parameters...) = (function_type(*)(Parameters...))function_address; return placeholder(args...); }[/CODE] [/SPOILER] [CODE=cpp]void VM_Notify(unsigned int notifyListOwnerId, unsigned int stringValue, void *top) 0x14043D9B0 const char * SL_ConvertToString(unsigned int stringValue) { return RPC<const char *>(0x1404317F0, stringValue); } unsigned int Scr_GetSelf(unsigned int threadID) { return RPC<unsigned int>(0x140436F10, threadID); } void Scr_ConstructMessageString(int firstParmIndex, int lastParmIndex, const char *errorContext, char *string, unsigned int stringLimit) { RPC<void>(0x1403CD810, firstParmIndex, lastParmIndex, errorContext, string, stringLimit); } void SV_SetConfigString(int ConfigString, const char * b) { RPC<void>(0x140477200, ConfigString, b); } void Scr_SetNumParam(int A){ write_process<int>(0x144D4B0B8 + 4, A); } void Scr_ClearOutParams(){ RPC<void>(0x140438600); } void Scr_AddString(const char * value){ RPC<void>(0x1404381D0, value); } void PlayerCMD_giveWeapon(unsigned int Player, const char * Weapon) { Scr_AddString(Weapon); Scr_SetNumParam(1); RPC<void>(0x1403891F0, Player); Scr_ClearOutParams(); } [/CODE] [/SPOILER] [ATTACH type="full" width="595px" alt="1654198908523.png"]4570[/ATTACH] [/CENTER] [/QUOTE]
Verification
Post reply
Forums
Gaming
Call of Duty Classics
Call of Duty: Ghosts
[PC/Steam] Call of Duty Ghosts Hud Elements + A Few Functions
CabConModding is now on facebook! Check the latest Updates, the Site Status and much more now!
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top