[C#] Get quests cached information menu

Shout-Out

User Tag List

Results 1 to 8 of 8
  1. #1
    JuJuBoSc's Avatar Banned for scamming CoreCoins Purchaser
    Reputation
    1019
    Join Date
    May 2007
    Posts
    922
    Thanks G/R
    1/3
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [C#] Get quests cached information

    Hi there,

    I needed some quests information (mainly quest name localized from it's ID) which is retrieved from the server and cached (like item info) and I think this can help someone else :

    Code:
                uint oQuestCacheBase = 0x89ADE0;
                uint oFirst = 0x10;
                uint oQuestId = 0xC;
                uint oQuestName = 0xC4;
                uint oQuestDesc = 0x2C4;
                uint oLevel = 0x14;
                uint oRequiresLevel = 0x18;
    
                uint questPtr = MyWoW.Memory.ReadUInt(oQuestCacheBase + oFirst, "Wow.exe");
                uint firstQuestPtr = questPtr;
    
                while (questPtr != 0)
                {
    
                    UInt32 QuestId = MyWoW.Memory.ReadUInt(questPtr + oQuestId);
                    UInt32 Level = MyWoW.Memory.ReadUInt(questPtr + oLevel);
                    UInt32 RequiresLevel = MyWoW.Memory.ReadUInt(questPtr + oRequiresLevel);
                    String QuestName = MyWoW.Memory.ReadUTF8String(questPtr + oQuestName, 255);
    
                    Console.WriteLine(QuestId + " " + QuestName + " " + Level + " " + RequiresLevel);
    
                    questPtr = MyWoW.Memory.ReadUInt(questPtr);
    
                    if (questPtr == firstQuestPtr)
                        break;
    
                }
    Here is the output :

    Code:
    ...
    13222 Defend the Siege 80 78
    13195 A Rare Herb 80 78
    13181 Victory in Wintergrasp 80 78
    13179 No Mercy for the Merciless 80 78
    13149 Dispelling Illusions 80 78
    ...
    All offsets is for patch 4.0.6a 13623.

    [C#] Get quests cached information
  2. #2
    teufel123's Avatar Active Member
    Reputation
    30
    Join Date
    Feb 2008
    Posts
    114
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks for the share, might be usefull sometime for me !

  3. #3
    TOM_RUS's Avatar Legendary
    Reputation
    914
    Join Date
    May 2008
    Posts
    699
    Thanks G/R
    0/52
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Another example how to read wow cache data as full struct (not just quests, it can be used for gameobjects, npc, etc as well, all you need is proper struct and cache offset) Filebeam - Beam up that File Scottie!.

    If you are in process, you can just call engine function to get a pointer to specific cache row (yes, it's that simple).
    Last edited by TOM_RUS; 04-07-2011 at 01:28 PM.

  4. #4
    JuJuBoSc's Avatar Banned for scamming CoreCoins Purchaser
    Reputation
    1019
    Join Date
    May 2007
    Posts
    922
    Thanks G/R
    1/3
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the struct TOM_RUS, specially the WowCache struct which I haven't reversed right now

  5. #5
    caowenyu's Avatar Member
    Reputation
    9
    Join Date
    Apr 2009
    Posts
    44
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Great, exactly what I am looking for. Many thanks

    ---------- Post added at 08:14 AM ---------- Previous post was at 07:02 AM ----------

    I just tested the code. It does not always work for me. For example, when the gossip window is open and I have not clicked the quest title. Sometimes, the DB caches does not have the quest information. How do you deal with it?

  6. #6
    TOM_RUS's Avatar Legendary
    Reputation
    914
    Join Date
    May 2008
    Posts
    699
    Thanks G/R
    0/52
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by caowenyu View Post
    Great, exactly what I am looking for. Many thanks

    ---------- Post added at 08:14 AM ---------- Previous post was at 07:02 AM ----------

    I just tested the code. It does not always work for me. For example, when the gossip window is open and I have not clicked the quest title. Sometimes, the DB caches does not have the quest information. How do you deal with it?
    Quests is only cached when being put into your quest log, you click quest link in chat etc. In gossip window quest data displayed using different source...

  7. #7
    caowenyu's Avatar Member
    Reputation
    9
    Join Date
    Apr 2009
    Posts
    44
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok, after a bit reverse the GetGossipAvailableQuests, i got the information i need. I originally thought the questID information could not be retrieved, for from the return of GetGossipAvailableQuests, there is no questID. But it's there. Here is the code:
    Code:
                    int add1 = 0xE36960 + ProcessManager.getProcessRebaseAdd();
                    for (int i = 0; i < 32; i++)
                    {
                        int qID = ProcessManager.WowProcess.ReadInt((uint)add1);
                        if (qID == 0)
                            continue;
                        int level = ProcessManager.WowProcess.ReadInt((uint)add1 + 4);
                        if (tempResult != "")
                        {
                            tempResult += "::";
                        }
                        tempResult += qID.ToString() + ":" + level.ToString() + ":" + ProcessManager.improvedReadUTF8String((uint)add1 + 0x14, 255);
                        add1 += 532;
                    }
    0xE36960 is rebased to 0x400000
    Last edited by caowenyu; 04-13-2011 at 09:17 PM. Reason: a little bug

  8. #8
    JuJuBoSc's Avatar Banned for scamming CoreCoins Purchaser
    Reputation
    1019
    Join Date
    May 2007
    Posts
    922
    Thanks G/R
    1/3
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by caowenyu View Post
    ok, after a bit reverse the GetGossipAvailableQuests, i got the information i need. I originally thought the questID information could not be retrieved, for from the return of GetGossipAvailableQuests, there is no questID. But it's there. Here is the code:
    Code:
                    int add1 = 0xE36960 + ProcessManager.getProcessRebaseAdd();
                    for (int i = 0; i < 32; i++)
                    {
                        int qID = ProcessManager.WowProcess.ReadInt((uint)add1);
                        if (qID == 0)
                            continue;
                        int level = ProcessManager.WowProcess.ReadInt((uint)add1 + 4);
                        if (tempResult != "")
                        {
                            tempResult += "::";
                        }
                        tempResult += qID.ToString() + ":" + level.ToString() + ":" + ProcessManager.improvedReadUTF8String((uint)add1 + 0x14, 255);
                        add1 += 532;
                    }
    0xE36960 is rebased to 0x400000
    Alos if u have reversed the UIFrame (I posted some example a while ago), you can get some information in the child of Quest/GossipTiltleButtonX

Similar Threads

  1. [Addon] KnowItAll: Get all the information you need in game.
    By hp94 in forum WoW UI, Macros and Talent Specs
    Replies: 10
    Last Post: 11-24-2016, 04:08 AM
  2. Replies: 8
    Last Post: 07-10-2008, 02:45 PM
  3. [Question] getting quests to work?
    By Akrurz in forum World of Warcraft Emulator Servers
    Replies: 3
    Last Post: 05-23-2008, 02:38 AM
  4. Characters Not Able To Get Quest's...
    By jtarules89 in forum World of Warcraft Emulator Servers
    Replies: 4
    Last Post: 04-18-2008, 06:56 AM
All times are GMT -5. The time now is 02:12 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search