![]() ![]() Just define a function pointer to this address.īut that’s boring. The buffer is then passed to a function I already labelled MessageLogPrintf.Īt this point we could already close out the article. Its checking if the wstring is using the internal or the external buffer. The following branch is also nothing new for us. We notice the call to GetTranslation and already know the return value is a std::wstring-pointer. Just trace some messages while playing the game, you will figure out some. Not all messages go through that function. We still don’t want to analyse a function this big, but its still worth a label because you don’t want to run into it over and over again. It contains many different strings for nearly all kinds of messages. Its just a really really big switch statement. It looks really big, but its actually not very complex. Looking for strings will end up in this function almost every time. We also know that all strings being logged come from textdata. ![]() ![]() We can also use Media.pk2/resinfo since we know most of the GUI-Stuff is happening in there. We can use the /frame command to figure out the IDs of the Control. We want to use our knowledge from the previous adventure to access the SystemMessage-log and print some coloured text. This article acts as a follow-up to my previous article. Why it works that way and what’s behind navigation inside the client is a whole new piece I really want to cover in a future article. Now we know how to find the pointer to CNavigationDeadreckon and the values to change.
0 Comments
Leave a Reply. |