gunnapong 14 Report post Posted October 22, 2021 I want to change the character's color name, how to fix it? Quote Share this post Link to post Share on other sites
gunnapong 14 Report post Posted October 22, 2021 1 hour ago, gunnapong said: I want to change the character's color name, how to fix it? ++++ Quote Share this post Link to post Share on other sites
gunnapong 14 Report post Posted October 23, 2021 Help me plz Quote Share this post Link to post Share on other sites
gunnapong 14 Report post Posted October 23, 2021 BUMP Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted November 9, 2021 Hello, @gunnapong! You can write a small DLL for this purpose if you know C++ programming language: #include <Windows.h> #include <detours.h> // Address of ' void CHeadSay::Render( D3DXVECTOR3& pos ) ' method const unsigned int headsay_render_address = 0x00470770; // Character name color (0xFFRRGGBB) const unsigned int color = 0xFF0000FF; // Blue color // D3DXVECTOR3 structure struct D3DXVECTOR3 { float x; float y; float z; }; // Pointer to ' void CHeadSay::Render( D3DXVECTOR3& pos ) ' method typedef void(__thiscall* CHeadSayRenderPtr)(void*, D3DXVECTOR3& Pos); CHeadSayRenderPtr CHeadSayRender_Original = (CHeadSayRenderPtr)(void*)(headsay_render_address); // Hook function for ' void CHeadSay::Render( D3DXVECTOR3& pos ) ' method void __fastcall CHeadSayRender_Hooked(void* This, void* NotUsed, D3DXVECTOR3& Pos); // Entry point BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { // Set some hooks if (ul_reason_for_call == DLL_PROCESS_ATTACH) { DetourRestoreAfterWith(); DetourTransactionBegin(); DetourAttach(&(PVOID&)CHeadSayRender_Original, CHeadSayRender_Hooked); DetourUpdateThread(GetCurrentThread()); DetourTransactionCommit(); } return TRUE; } // Hook function for ' void CHeadSay::Render( D3DXVECTOR3& pos ) ' method void __fastcall CHeadSayRender_Hooked(void* This, void* NotUsed, D3DXVECTOR3& Pos) { // Pointer to current character on the scene void* pCha = reinterpret_cast<void*> ( *reinterpret_cast<unsigned int*>( reinterpret_cast<unsigned int>(This) + 0x28 ) ); // Get character type (player, monster, npc and etc) const unsigned int type = *reinterpret_cast<unsigned int*>( reinterpret_cast<unsigned int>(pCha) + 0x0CD8 ); // Check that character is a player if ( type == 1 ) { // Set character color *reinterpret_cast<unsigned int*>( reinterpret_cast<unsigned int>(This) + 0x38 ) = color; } // Call original method CHeadSayRender_Original(This, Pos); } To configuire the DLL you need set 2 variables: 1) 'const unsigned int color' - the color of character names in format 'FFRRGGBB', for example: const unsigned int color = 0xFFFF0000; // Red color or const unsigned int color = 0xFF00FF00; // Green color or const unsigned int color = 0xFF0000FF; // Blue color 2) 'const unsigned int headsay_render_address' - this is address of 'void CHeadSay::Render( D3DXVECTOR3& pos )' method in your Game.exe. You need find it manually using program named OllyDbg 1.10. Open your Game.exe in OllyDbg and search for a string 'Lv%d %s'. You will see something like this: Then scroll up until you see INT instructions: INT3 INT3 INT3 INT3 INT3 Then look for 'PUSH -1' instruction, the address opposite to it will be the address of the 'void CHeadSay::Render( D3DXVECTOR3& pos )' method. In my case it is '0x00470770', so I write in source code of the DLL: const unsigned int headsay_render_address = 0x00470770; Now you need compile DLL. You will need Visual Studio 2019 Community edition, you can download it for free from Microsoft site. Just open project from attached .zip and build it. Finally, you need to inject the DLL to your Game.exe proccess. You can find information about it in Google. Probably, you will find a method which uses program 'СFF Explorer' to make Game.exe load DLL on startup. The result: Download the project (240 KB) Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
kyleflow 35 Report post Posted March 4, 2022 can you give a better explanation on this.. its still confusing @V3ct0r. thanks Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted March 5, 2022 Hello @kyleflow, What exactly is the problem? Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
kyleflow 35 Report post Posted March 5, 2022 That long dll, what should i do with it. If i open it with visual studio, what should i do after i open it as a project? i simply dont know how to operate that part. Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted March 6, 2022 On 3/5/2022 at 8:55 AM, kyleflow said: That long dll, what should i do with it. If i open it with visual studio, what should i do after i open it as a project? i simply dont know how to operate that part. 1) Open pkodev.colorname.vcxproj file with Visual Studio 2019 Community; 2) Do necessary changes in dllmain.cpp file; 3) Compile the project (F5 key) or green arrow ( ); 4) You will get pkodev.colorname.dll in bin folder. 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites