[Help] Read Last Cahat Message menu

User Tag List

Results 1 to 12 of 12
  1. #1
    Hrap's Avatar Member
    Reputation
    12
    Join Date
    Oct 2018
    Posts
    111
    Thanks G/R
    12/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    [Help] Read Last Chat Message

    Hi guys, can someone help me with reading the latest chat message?
    i have offsets
    Code:
            public const int Last_Ui_Message = 0x30096;
            public class Chat
            {
                
                public const int Open = 0x2F87134;
                
                public const int Start = 0x30A3810;
                
                public const int Offset = 0xCB8;
                
                public const int Message = 0xE6;
            }
    But I don't know how to use it
    What type to read from Last_Ui_Message , unsigned int?


    Help me understand this structure please , and how to read it
    Last edited by Hrap; 03-28-2023 at 09:13 AM.

    [Help] Read Last Cahat Message
  2. #2
    qop1832's Avatar Active Member

    Reputation
    21
    Join Date
    Dec 2021
    Posts
    52
    Thanks G/R
    17/9
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    "offset": 0xCB8,
    "posterGuid": 0x0,
    "posterName": 0x34,
    "channelName": 0x65,
    "message": 0xE6,
    "type": 0xCA0,
    "channelId": 0xCA4,
    "index": 0xCA8,
    "time": 0xCB0,
    Hello everyone, I'm a newbie~ Recently I'm trying to study how to execute API externally and get the return value of API, as well as the release of aoe spells, come on!

  3. Thanks Hrap (1 members gave Thanks to qop1832 for this useful post)
  4. #3
    Razzue's Avatar Contributor Avid Ailurophile

    CoreCoins Purchaser Authenticator enabled
    Reputation
    379
    Join Date
    Jun 2017
    Posts
    588
    Thanks G/R
    185/268
    Trade Feedback
    2 (100%)
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Hrap View Post
    Hi guys, can someone help me with reading the latest chat message?
    i have offsets
    Code:
            public const int Last_Ui_Message = 0x30096;
            public class Chat
            {
                
                public const int Open = 0x2F87134;
                
                public const int Start = 0x30A3810;
                
                public const int Offset = 0xCB8;
                
                public const int Message = 0xE6;
            }
    But I don't know how to use it
    What type to read from Last_Ui_Message , unsigned int?


    Help me understand this structure please , and how to read it
    Oh hey... I wonder how you got those results btw 0x30096 is generally attributed to an invalid pattern result. If you're just using my dumper straight off GitHub, you'll need to update the patterns as a few are no longer valid (and I will not be publicly updating patterns)
    "May all your bacon burn"

  5. #4
    Hrap's Avatar Member
    Reputation
    12
    Join Date
    Oct 2018
    Posts
    111
    Thanks G/R
    12/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Greetings Razzue,
    Fortunately, all the offsets that are critical for me still work.
    I still have no idea how to search for templates correctly, so that I can update them later in the dumper.
    So far, all the time is spent on building the logic of the bot (moving, fighting, collecting, reactions, etc.)

    does not work
    Code:
    public const int Last_Ui_Message = 0x30096;
    public const int Count = 0x30096;
    public const int Base = 0x3009E;
    so far everything seems
    Last edited by Hrap; 12-15-2022 at 05:28 AM.

  6. #5
    oiramario's Avatar Established Member
    Reputation
    85
    Join Date
    Mar 2021
    Posts
    133
    Thanks G/R
    36/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    const uint64_t ChatHistoryInitialized = 0x30D3350;
    const uint64_t ChatHistory = 0x30A3810;
    const uint64_t ChatHistoryCount = 0x3C;
    const uint64_t ChatHistoryCurrentIndex = 0x30A380C;
    const uint64_t ChatHistoryNextOffset = 0xCB8;
    const uint64_t ChatHistorySenderGuid = 0x0;
    const uint64_t ChatHistorySenderName = 0x34;
    const uint64_t ChatHistoryFullMessage = 0xE6;
    const uint64_t ChatHistoryChatType = 0xCA0;
    const uint64_t ChatHistoryChannelNum = 0xCA4;

  7. Thanks Razzue (1 members gave Thanks to oiramario for this useful post)
  8. #6
    Hrap's Avatar Member
    Reputation
    12
    Join Date
    Oct 2018
    Posts
    111
    Thanks G/R
    12/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Thank you for help

  9. #7
    qop1832's Avatar Active Member

    Reputation
    21
    Join Date
    Dec 2021
    Posts
    52
    Thanks G/R
    17/9
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    "LastError" "48 8D 0D ?? ?? ?? ?? 41 B8 ?? ?? ?? ?? 48 8D 95 ?? ?? ?? ?? 0F 1F 40 ??"
    "Chat_Open" "44 39 25 ?? ?? ?? ?? 0F 8E ?? ?? ?? ?? 33"
    "Chat_Base" "48 8D 15 ?? ?? ?? ?? 4C 8D 05 ?? ?? ?? ?? 80 BA ?? ?? ?? ?? ?? 74 ?? 8B 01 39 82 ?? ?? ?? ?? 74 ?? 48 81 C2 ?? ?? ?? ?? 49 3B D0 75 ?? 32 C0"
    Hello everyone, I'm a newbie~ Recently I'm trying to study how to execute API externally and get the return value of API, as well as the release of aoe spells, come on!

  10. #8
    Hrap's Avatar Member
    Reputation
    12
    Join Date
    Oct 2018
    Posts
    111
    Thanks G/R
    12/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Until now, I have not figured out what
    Last_Message = 0x2D58940 returns
    The address or structure of the last message...?


    I try to read as an address
    Code:
    DWORD_PTR LMptr = Read<DWORD_PTR>(BaseAdrtess + Last_Message);
    I get the address but when I try to read a message from it I get an empty string

    Understood like with Last Message.
    returns the last message, but not from the chat



    Code:
        OpenChat = 0x2C713A4,
        StartChat = 0x2D5B0D0,
    How to use it is still not clear.
    please help
    Last edited by Hrap; 03-28-2023 at 10:37 AM.

  11. #9
    qop1832's Avatar Active Member

    Reputation
    21
    Join Date
    Dec 2021
    Posts
    52
    Thanks G/R
    17/9
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Last_Message = LastError


    "Chat": {
    "Open": 0x2c713a4,
    "Base": 0x2d5b0d0,
    "offset": 0xCB8,
    "posterGuid": 0x0,
    "posterName": 0x34,
    "channelName": 0x65,
    "message": 0xE6,
    "type": 0xCA0,
    "channelId": 0xCA4,
    "index": 0xCA8,
    "time": 0xCB0,
    Hello everyone, I'm a newbie~ Recently I'm trying to study how to execute API externally and get the return value of API, as well as the release of aoe spells, come on!

  12. #10
    ValikK's Avatar Member
    Reputation
    5
    Join Date
    Jan 2023
    Posts
    4
    Thanks G/R
    1/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    		uint32_t ChatCount = *reinterpret_cast<uint32_t*>((uintptr_t)GlobalVars::ProcVars::g_hModuleBase + 0x2DF40E8);
    
    		std::cout << "Message Count: " << ChatCount << std::endl;
    		for (size_t i = 0; i < ChatCount; i++)
    		{
    
    			auto a = reinterpret_cast<wChat*>((GlobalVars::ProcVars::g_hModuleBase + 0x2DF40F0) + (i* 0xCB8));
    			std::cout << "Sender: " << a->GetSenderName() << " Message: " << a->GetChatMessage() << std::dec << " ChatType: " << a->GetChatType() << " ChannelNum: " << a->GetChannelNum() << std::endl;
    		}
    
    
    class wChat
    {
    public:
    	std::string GetSenderName()
    	{
    		std::string NameStr = "";
    		char Name[12];
    		for (size_t i = 0; i < 12; i++)
    		{
    			Name[i] = *reinterpret_cast<char*>(((uintptr_t)this + 0x34) + i);
    		}
    		NameStr = Name;
    
    		NameStr = split(NameStr, (char)"-");
    		return NameStr;
    	}
    
    	std::string GetChatMessage()
    	{
    		std::string MessageStr = "";
    		char Message[255];
    		for (size_t i = 0; i < 255; i++)
    		{
    			Message[i] = *reinterpret_cast<char*>(((uintptr_t)this + 0xE6) + i);
    		}
    		MessageStr = Message;
    		return MessageStr;
    	}
    	uint32_t GetChatType()
    	{
    		return *reinterpret_cast<uint32_t*>((uintptr_t)this + 0xCA0);
    	}
    	uint32_t GetChannelNum()
    	{
    		return *reinterpret_cast<uint32_t*>((uintptr_t)this + 0xCA4);
    	}
    };

  13. Thanks Hrap (1 members gave Thanks to ValikK for this useful post)
  14. #11
    Hrap's Avatar Member
    Reputation
    12
    Join Date
    Oct 2018
    Posts
    111
    Thanks G/R
    12/4
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Thank you all for your help, I already figured it out

  15. #12
    _chase's Avatar Established Member
    Reputation
    95
    Join Date
    Dec 2019
    Posts
    58
    Thanks G/R
    17/49
    Trade Feedback
    0 (0%)
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ValikK View Post
    Code:
    		uint32_t ChatCount = *reinterpret_cast<uint32_t*>((uintptr_t)GlobalVars::ProcVars::g_hModuleBase + 0x2DF40E8);
    
    		std::cout << "Message Count: " << ChatCount << std::endl;
    		for (size_t i = 0; i < ChatCount; i++)
    		{
    
    			auto a = reinterpret_cast<wChat*>((GlobalVars::ProcVars::g_hModuleBase + 0x2DF40F0) + (i* 0xCB8));
    			std::cout << "Sender: " << a->GetSenderName() << " Message: " << a->GetChatMessage() << std::dec << " ChatType: " << a->GetChatType() << " ChannelNum: " << a->GetChannelNum() << std::endl;
    		}
    
    
    class wChat
    {
    public:
    	std::string GetSenderName()
    	{
    		std::string NameStr = "";
    		char Name[12];
    		for (size_t i = 0; i < 12; i++)
    		{
    			Name[i] = *reinterpret_cast<char*>(((uintptr_t)this + 0x34) + i);
    		}
    		NameStr = Name;
    
    		NameStr = split(NameStr, (char)"-");
    		return NameStr;
    	}
    
    	std::string GetChatMessage()
    	{
    		std::string MessageStr = "";
    		char Message[255];
    		for (size_t i = 0; i < 255; i++)
    		{
    			Message[i] = *reinterpret_cast<char*>(((uintptr_t)this + 0xE6) + i);
    		}
    		MessageStr = Message;
    		return MessageStr;
    	}
    	uint32_t GetChatType()
    	{
    		return *reinterpret_cast<uint32_t*>((uintptr_t)this + 0xCA0);
    	}
    	uint32_t GetChannelNum()
    	{
    		return *reinterpret_cast<uint32_t*>((uintptr_t)this + 0xCA4);
    	}
    };
    Are the chat messages and message sender names null terminated?
    If they are null terminated you can simply reinterpret the base ptr (this + 0xE6) as a *const char to avoid the copies and O(characters) time complexity

Similar Threads

  1. Need help, read please!
    By elwarcrafta in forum World of Warcraft General
    Replies: 5
    Last Post: 07-30-2008, 01:00 PM
  2. Replies: 3
    Last Post: 07-10-2008, 05:05 AM
  3. Help Fast Last Name Change
    By Mr. Retail in forum WoW Scams Help
    Replies: 11
    Last Post: 06-07-2008, 05:48 AM
  4. [help] reading chat pane (for zeppelin arrivals)
    By korknob in forum WoW Memory Editing
    Replies: 2
    Last Post: 05-17-2008, 06:00 AM
  5. somebody please help me - last resort
    By mnkje in forum WoW ME Questions and Requests
    Replies: 3
    Last Post: 04-06-2007, 05:28 PM
All times are GMT -5. The time now is 05:24 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search