Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Silkroad Online > SRO Coding Corner
You last visited: Today at 11:59

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Change color name via Dll

Discussion on Change color name via Dll within the SRO Coding Corner forum part of the Silkroad Online category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2014
Posts: 157
Received Thanks: 70
Change color name via Dll

i'm trying to change color name via dll , but always client crash
any solution ?
i used this code in dll

PHP Code:
const DWORD dwWriteChatFN 0x009D026C;
void chathelp::ColorName(uint32_t color)
{
    
//equal to
    //mov ecx, dword ptr ds:[0x110f80c]
    
void_ecx memhelp::RefPtr<void*>(0x110F80C);
    
__asm
    
{
        
mov ecx_ecx;
        
push color;
        
call dwWriteChatFN;
    }

hancook1st is offline  
Old 03/24/2019, 11:11   #2
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487

Well ... the location you are calling is ... "suboptimal".
  1. You calling inside another function. Functions are build to be executed as a whole, not partially.
  2. the value of ECX is immediatly overwritten by the code you are calling.
  3. UpdateColor, the function you see at my screen, is for entities. So even if ECX would work in this case, 0x110F80C is still the wrong address as it is the address of the main ui and an entity.
florian0 is offline  
Thanks
2 Users
Old 03/24/2019, 11:58   #3
 
#HB's Avatar
 
elite*gold: 100
Join Date: Sep 2017
Posts: 1,110
Received Thanks: 904
flory already explained everything. But remember that you're using "__asm", so the function must be "naked".

However, if you implemented the function, that function is called like every 1 ~ 2 secs, it should be called with CICPlayer::OnRender, so if you edit the color for a sec, you will see it getting back to usual color again immediately after.

So, if you want to have a permanent color change, you can hook the function and edit the color before calling the main function or just look into that UpdateColor function and see what it does
#HB is offline  
Thanks
1 User
Old 03/24/2019, 12:57   #4
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
Quote:
Originally Posted by #HB View Post
remember that you're using "__asm", so the function must be "naked".
__asm and naked do not correlate. Naked just means that there will be no prolog and epilog generated. You can still use __asm in non-naked functions. His example should work fine without, if the addresses were correct.
florian0 is offline  
Thanks
1 User
Old 03/24/2019, 14:10   #5
 
elite*gold: 0
Join Date: Feb 2014
Posts: 157
Received Thanks: 70
Quote:
Originally Posted by florian0 View Post

Well ... the location you are calling is ... "suboptimal".
  1. You calling inside another function. Functions are build to be executed as a whole, not partially.
  2. the value of ECX is immediatly overwritten by the code you are calling.
  3. UpdateColor, the function you see at my screen, is for entities. So even if ECX would work in this case, 0x110F80C is still the wrong address as it is the address of the main ui and an entity.
Thanks for helping me.
i changed address but client always got crash .
PHP Code:
const DWORD UpdateColor 0x009D026E;
void chathelp::ColorName(uint32_t color)
{
    
void_ecx memhelp::RefPtr<void*>(0x009D026C);
    
__asm
    
{
        
mov ecx_ecx;
        
push 0x00FF00// new color
        
call UpdateColor;
    }

hancook1st is offline  
Old 03/24/2019, 19:08   #6
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
Quote:
Originally Posted by hancook1st View Post
Thanks for helping me.
i changed address but client always got crash .
My post did not contain the solution. I only showed whats wrong. The whole call destination is wrong in the first place. You can only "call" to the first address of a function, not in between. You can call UpdateColor directly. It is meant to change the text color of the entity name. In order to call that, you need to get the address of the entity. For your own player, its 0x00EEF5EC. You need to find the addresses of other players if you want to change other player's color aswell. HB gave the hint to hook CICPlayer::OnRender, which is at 0x009D87C0.
florian0 is offline  
Thanks
1 User
Old 03/25/2019, 00:59   #7
 
elite*gold: 0
Join Date: Feb 2014
Posts: 157
Received Thanks: 70
Quote:
Originally Posted by florian0 View Post
My post did not contain the solution. I only showed whats wrong. The whole call destination is wrong in the first place. You can only "call" to the first address of a function, not in between. You can call UpdateColor directly. It is meant to change the text color of the entity name. In order to call that, you need to get the address of the entity. For your own player, its 0x00EEF5EC. You need to find the addresses of other players if you want to change other player's color aswell. HB gave the hint to hook CICPlayer::OnRender, which is at 0x009D87C0.
OKey thanks for help
hancook1st is offline  
Old 08/18/2019, 14:22   #8
 
T0o0P's Avatar
 
elite*gold: 0
Join Date: Sep 2016
Posts: 165
Received Thanks: 38
need code dll file :/
T0o0P is offline  
Old 08/18/2019, 19:17   #9
 
elite*gold: 0
Join Date: Jan 2011
Posts: 146
Received Thanks: 85
paradise1992 is offline  
Thanks
1 User
Old 01/26/2020, 00:44   #10
 
Empire1453's Avatar
 
elite*gold: 0
Join Date: Jan 2020
Posts: 36
Received Thanks: 5
Can job names be colored? would be interesting: D
Empire1453 is offline  
Old 01/26/2020, 11:28   #11
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
Quote:
Originally Posted by Empire1453 View Post
Can job names be colored? would be interesting: D
Should be possible. Isn't the opponent job already colored in red (Thief <-> Hunter, Trader)? You can probably use that location to insert more job specific colors.
florian0 is offline  
Old 01/31/2020, 02:50   #12

 
sarkoplata's Avatar
 
elite*gold: 166
Join Date: Apr 2009
Posts: 2,339
Received Thanks: 2,661
Quote:
Originally Posted by florian0 View Post
Should be possible. Isn't the opponent job already colored in red (Thief <-> Hunter, Trader)? You can probably use that location to insert more job specific colors.
It is. The UpdateColor function is called from somewhere else if the user is in Job Mode.

Func43 @ CICPlayer return the Job Mode. 1/2/3 is trader/thief/hunter, 4 = no job.
sarkoplata is offline  
Thanks
2 Users
Old 07/01/2020, 06:03   #13
 
elite*gold: 0
Join Date: Jul 2020
Posts: 51
Received Thanks: 6
Quote:
Originally Posted by florian0 View Post

Well ... the location you are calling is ... "suboptimal".
  1. You calling inside another function. Functions are build to be executed as a whole, not partially.
  2. the value of ECX is immediatly overwritten by the code you are calling.
  3. UpdateColor, the function you see at my screen, is for entities. So even if ECX would work in this case, 0x110F80C is still the wrong address as it is the address of the main ui and an entity.
thanks so much
xTomasky is offline  
Old 07/01/2020, 21:05   #14
 
Faaruk's Avatar
 
elite*gold: 0
Join Date: Jun 2020
Posts: 32
Received Thanks: 46
works perfectly thanks
Faaruk is offline  
Reply


Similar Threads Similar Threads
[HOW TO] MSVCR110.dll fehlt BEHEBEN | [MSVCR120.dll MSVCP110.dll MSVCP100.dll etc]
03/25/2014 - Tutorials - 2 Replies
Hier ist ein Youtube Video: MSVCR100.dll feht BEHEBEN / MSVCR110.dll fehlt MSVCR120.dll MSVCP110.dll MSVCP100.dll MSVCP120.dll - YouTube Aber den ganzen Kram könnt ihr auch als Text haben: Viele von euch kennen bestimmt das Problem das ne dll auf dem PC fehlt und das Programme dann nicht laufen. Hier ist die Lösung: Schaut erstmal nach, welche Microsoft Redistributables auf eurem PC installiert sind. Geht hierzu auf Start > Sytemsteuerung > Programme > Programme und Funktionen und...
[DLL]How to change injector if i want inject granny22.dll not python22.dll ?
10/07/2012 - Metin2 Private Server - 0 Replies
Hello i have a laucher protected and can not run launcher if i modify granny22.dll in python22.dll I want inject hack intro granny22.dll What can i do ? I give you thaks for good answer.
[progress] name color change!
09/21/2011 - Shaiya - 9 Replies
While narrowing down addresses for a personal weapon speed hack I happened to run into a couple addresses that when I changed there values I had some VERY odd results. 03df8ae0 < (the first) when I doubled the value made my character do the snow boarding thing. I didn't give to much thought to it as I had seen this done before and didn't much care for the hack. 00856c3e <(the second) Made my characters name change colors! I was shocked that I had been able to do this so I quickly...
Name Color Change?
10/16/2010 - CO2 Private Server - 2 Replies
Hello all. i was wondering if it is possible to change the in game Charname color. i had do some test with the stateffects, like redname and blackname etc. but i guess that i can olso change the color to send an sort of package to the client with some parameters. so an COpackets. or does someone else an simple solution for it?



All times are GMT +1. The time now is 12:01.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.