duki Posted August 10, 2025 Posted August 10, 2025 (edited) ShowString from `graphic.dll` Some versions of the game may use `ShowStringEx` or `ShowStringW`. Some ideas: - Create unique player names for specific players - Customize guild name size or style - Custom NPC names - Custom MOB/entity names - Custom Server name - Custom FPS / PING display - Render stronger outlines - Store strings data & re-render with your own system Modifications can be done in real time, such as changing the font size, current font type, and more. Example Code targeting FPS/Ping display: Gitlab Preview: Edited December 26, 2025 by duki ... Quote
duki Posted August 10, 2025 Author Posted August 10, 2025 (edited) Forgot to mention: newer versions of the game uses ShowStringW Function: ?ShowStringW@CMyBitmap@@SA?AUC3_SIZE@@HHKPBGPBDH_NW4RENDER_TEXT_STYLE@@KUC3_POS@@@Z Example: typedef struct { int width; int height; } C3_SIZE; typedef struct { int x; int y; } C3_POS; enum RENDER_TEXT_STYLE { STYLE_DEFAULT = 0, STYLE_BOLD = 1, }; typedef C3_SIZE(__cdecl* tShowStringW)(int, int, DWORD, const wchar_t*, const char*, int, bool, RENDER_TEXT_STYLE, DWORD, C3_POS); tShowStringW oShowStringW = nullptr; C3_SIZE __cdecl hkShowStringW(int iPosX, int iPosY, DWORD color, const wchar_t* pszString, const char* pszFont, int nFontSize, bool bAntialias, RENDER_TEXT_STYLE style, DWORD secondColor, C3_POS ptOffset) { //call og function } Edited August 10, 2025 by duki Quote
azna Posted August 10, 2025 Posted August 10, 2025 Excellent contribution, thats awesome!! Have you tried to make a similar hook with the drop items, add an AddStringView to add a background and make them more visible, or change the default color (yellow) for some other one? Quote
duki Posted August 10, 2025 Author Posted August 10, 2025 (edited) 1 hour ago, azna said: Excellent contribution, thats awesome!! Have you tried to make a similar hook with the drop items, add an AddStringView to add a background and make them more visible, or change the default color (yellow) for some other one? Yeah that's possible, if you have a prefix of the item such as "[S]" -> Super or any other prefix you can do that Example targeting "(3rd)" You can prevent it from being draw, add to a list of drawable items & re-render it in endscene. I'll upload in a few days my old imgui project for d3d9 client. Edited August 10, 2025 by duki Quote
azna Posted August 11, 2025 Posted August 11, 2025 5 hours ago, duki said: Yeah that's possible, if you have a prefix of the item such as "[S]" -> Super or any other prefix you can do that Example targeting "(3rd)" You can prevent it from being draw, add to a list of drawable items & re-render it in endscene. I'll upload in a few days my old imgui project for d3d9 client. Awesome. Do you think it's possible to use the same ShowString, but calling the drop item's address? I'll wait for that project; I'm curious about ImGui. Quote
kennylovecode Posted August 11, 2025 Posted August 11, 2025 11 hours ago, duki said: Yeah that's possible, if you have a prefix of the item such as "[S]" -> Super or any other prefix you can do that Example targeting "(3rd)" You can prevent it from being draw, add to a list of drawable items & re-render it in endscene. I'll upload in a few days my old imgui project for d3d9 client. I'm doing this, but I found that the function for drawing item names doesn't have an item ID, which means I can't draw item names based on the item ID.... Quote
kennylovecode Posted August 11, 2025 Posted August 11, 2025 11 hours ago, duki said: Yeah that's possible, if you have a prefix of the item such as "[S]" -> Super or any other prefix you can do that Example targeting "(3rd)" You can prevent it from being draw, add to a list of drawable items & re-render it in endscene. I'll upload in a few days my old imgui project for d3d9 client. I'm doing this, but I found that the function for drawing item names doesn't have an item ID, which means I can't draw item names based on the item ID.... Quote
duki Posted December 26, 2025 Author Posted December 26, 2025 Updated & moved code to repo (link) Cleaner & detailed info + added both dx8/dx9 addresses (ref) Quote
Airplist Posted December 27, 2025 Posted December 27, 2025 14 hours ago, duki said: Updated & moved code to repo (link) Cleaner & detailed info + added both dx8/dx9 addresses (ref) Thanks, brother. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.