How do you determine if a node is an herb or mine? menu

Shout-Out

User Tag List

Results 1 to 10 of 10
  1. #1
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    How do you determine if a node is an herb or mine?

    Both are of object type container. I've been using an XML file to basically compare the name but i'd like to stop doing this (mainly so it doesn't matter what localization client you are using of wow).

    Is there a flag/offset off the game object or the cache that indicates this?

    Once I have this, I'll post how to determine if you're skill is high enough to mine/herb without needing an XML file (uses TOM_RUS' method with Lock.dbc)

    Thanks!!

    ---------- Post added at 05:04 PM ---------- Previous post was at 04:46 PM ----------

    I found the post on using the model, is this the only method?

    Edit 2: Do you assume that mining nodes have "mining" in them and herbalism nodes have "bush" in them? Here are 2 examples below:

    // world\skillactivated\tradeskillnodes\elementium_miningnode_normal.mdx
    // world\skillactivated\tradeskillnodes\bush_cinderbloom.mdx

    Edit3: Looks like the model method shouldn't be used unfortunately (unless there is a model elsewhere I'm missing), example of an herb that isn't "herbable":
    World\SkillActivated\TradeskillNodes\Bush_Snakeroot.mdx
    Last edited by Tanaris4; 07-12-2011 at 04:47 PM.
    https://tanaris4.com

    How do you determine if a node is an herb or mine?
  2. #2
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Maybe reverse CGObject__CanTrack? Just an idea. Not sure if that offset is posted, though.

  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)
    Lock.dbc should have all info you need.

    Warning: enums not checked against 4.x client
    Code:
    enum LockKeyType
    {
        LOCK_KEY_NONE  = 0,
        LOCK_KEY_ITEM  = 1,
        LOCK_KEY_SKILL = 2
    };
    
    enum LockType
    {
        LOCKTYPE_PICKLOCK              = 1,
        LOCKTYPE_HERBALISM             = 2,
        LOCKTYPE_MINING                = 3,
        LOCKTYPE_DISARM_TRAP           = 4,
        LOCKTYPE_OPEN                  = 5,
        LOCKTYPE_TREASURE              = 6,
        LOCKTYPE_CALCIFIED_ELVEN_GEMS  = 7,
        LOCKTYPE_CLOSE                 = 8,
        LOCKTYPE_ARM_TRAP              = 9,
        LOCKTYPE_QUICK_OPEN            = 10,
        LOCKTYPE_QUICK_CLOSE           = 11,
        LOCKTYPE_OPEN_TINKERING        = 12,
        LOCKTYPE_OPEN_KNEELING         = 13,
        LOCKTYPE_OPEN_ATTACKING        = 14,
        LOCKTYPE_GAHZRIDIAN            = 15,
        LOCKTYPE_BLASTING              = 16,
        LOCKTYPE_SLOW_OPEN             = 17,
        LOCKTYPE_SLOW_CLOSE            = 18,
        LOCKTYPE_FISHING               = 19,
        LOCKTYPE_INSCRIPTION           = 20,
        LOCKTYPE_OPEN_FROM_VEHICLE     = 21
    };
    Code:
    #define MAX_LOCK_CASE 8
    
    struct LockEntry
    {
          uint32      ID;                                 // 0        m_ID
          uint32      Type[MAX_LOCK_CASE];                // 1-8      m_Type see enum LockKeyType 
          uint32      Index[MAX_LOCK_CASE];               // 9-16     m_Index see enum LockType
          uint32      Skill[MAX_LOCK_CASE];               // 17-24    m_Skill skill value/item id etc... depends on LockEntry::Type
          //uint32      Action[MAX_LOCK_CASE];            // 25-32    m_Action
    };
    Last edited by TOM_RUS; 07-12-2011 at 05:33 PM.

  4. #4
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    1 question - how do you know which index to check? Do I loop through all?
    Last edited by Tanaris4; 07-12-2011 at 08:56 PM.
    https://tanaris4.com

  5. #5
    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 Tanaris4 View Post
    1 question - how do you know which index to check? Do I loop through all?
    https://github.com/mangos/mangos/blo...pell.cpp#L6984

  6. #6
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I need to remember to look at mangos more, I immediately turn to IDA too soon sometimes

    Appreciate it!
    https://tanaris4.com

  7. #7
    Mr.Sergey's Avatar Contributor
    Reputation
    117
    Join Date
    Apr 2009
    Posts
    201
    Thanks G/R
    6/23
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Use displayID, they are the same for all localization.

  8. #8
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Mr.Sergey View Post
    Use displayID, they are the same for all localization.
    Then I still need an XML file... I don't want that - right?
    https://tanaris4.com

  9. #9
    Seifer's Avatar Site Donator
    Reputation
    129
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Tanaris4 View Post
    Then I still need an XML file... I don't want that - right?
    You can compile a list of all herbs in the game and all nodes, there are only like 60 of each anyway, and use a bool value to create a whitelist as it were to determine whether a gameobject is a herb node or a vein, or neither.

  10. #10
    Nesox's Avatar ★ Elder ★
    Reputation
    1280
    Join Date
    Mar 2007
    Posts
    1,238
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You can check the model name too if it's a BUSH or MINERAL IIRC.
    Or you could check the lock type, once you have the lock id.

Similar Threads

  1. Replies: 7
    Last Post: 09-02-2012, 02:41 AM
  2. How do you determine which .M2 to use?
    By Nitric in forum WoW ME Questions and Requests
    Replies: 1
    Last Post: 08-11-2010, 07:56 PM
  3. Replies: 4
    Last Post: 07-15-2010, 12:54 PM
  4. Replies: 6
    Last Post: 09-17-2009, 07:38 AM
  5. 10g/hour (Can be more, depends how long you want to spend)
    By Cush in forum World of Warcraft Guides
    Replies: 3
    Last Post: 05-20-2006, 08:41 PM
All times are GMT -5. The time now is 11:06 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