|
You last visited: Today at 11:59
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.
03/24/2019, 01:53
|
#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;
}
}
|
|
|
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".
- You calling inside another function. Functions are build to be executed as a whole, not partially.
- the value of ECX is immediatly overwritten by the code you are calling.
- 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.
|
|
|
03/24/2019, 11:58
|
#3
|
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
|
|
|
03/24/2019, 12:57
|
#4
|
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
|
Quote:
Originally Posted by #HB
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.
|
|
|
03/24/2019, 14:10
|
#5
|
elite*gold: 0
Join Date: Feb 2014
Posts: 157
Received Thanks: 70
|
Quote:
Originally Posted by florian0

Well ... the location you are calling is ... "suboptimal".
- You calling inside another function. Functions are build to be executed as a whole, not partially.
- the value of ECX is immediatly overwritten by the code you are calling.
- 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;
}
}
|
|
|
03/24/2019, 19:08
|
#6
|
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
|
Quote:
Originally Posted by hancook1st
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.
|
|
|
03/25/2019, 00:59
|
#7
|
elite*gold: 0
Join Date: Feb 2014
Posts: 157
Received Thanks: 70
|
Quote:
Originally Posted by florian0
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
|
|
|
08/18/2019, 14:22
|
#8
|
elite*gold: 0
Join Date: Sep 2016
Posts: 165
Received Thanks: 38
|
need code dll file :/
|
|
|
08/18/2019, 19:17
|
#9
|
elite*gold: 0
Join Date: Jan 2011
Posts: 146
Received Thanks: 85
|
|
|
|
01/26/2020, 00:44
|
#10
|
elite*gold: 0
Join Date: Jan 2020
Posts: 36
Received Thanks: 5
|
Can job names be colored? would be interesting: D
|
|
|
01/26/2020, 11:28
|
#11
|
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
|
Quote:
Originally Posted by Empire1453
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.
|
|
|
01/31/2020, 02:50
|
#12
|
elite*gold: 166
Join Date: Apr 2009
Posts: 2,339
Received Thanks: 2,661
|
Quote:
Originally Posted by florian0
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.
|
|
|
07/01/2020, 06:03
|
#13
|
elite*gold: 0
Join Date: Jul 2020
Posts: 51
Received Thanks: 6
|
Quote:
Originally Posted by florian0

Well ... the location you are calling is ... "suboptimal".
- You calling inside another function. Functions are build to be executed as a whole, not partially.
- the value of ECX is immediatly overwritten by the code you are calling.
- 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
|
|
|
07/01/2020, 21:05
|
#14
|
elite*gold: 0
Join Date: Jun 2020
Posts: 32
Received Thanks: 46
|
works perfectly thanks
|
|
|
 |
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.
|
|