How to determine mine and herb? menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 20
  1. #1
    starfish99's Avatar Corporal
    Reputation
    31
    Join Date
    May 2008
    Posts
    24
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    How to determine mine and herb?

    I know both mine and herb are gameobjects,
    and their game object subtype is chest (GOT_Chest=3)
    so, my program is confused with herb,mine and real chest

    below is my descriptor for gameobject(delphi code)

    TWOWGameObjectData = record
    WOWObjectData : TWOWObjectData;
    OBJECT_FIELD_CREATED_BY : TWOWGUID;
    GAMEOBJECT_DISPLAYID : DWord;
    GAMEOBJECT_FLAGS : DWord;
    GAMEOBJECT_PARENTROTATION : Array[1..4] of DWord;
    GAMEOBJECT_DYNAMIC : DWord;
    GAMEOBJECT_FACTION : DWord;
    GAMEOBJECT_LEVEL : DWord;
    GAMEOBJECT_BYTES_1 : DWord; //SubType := thisfield shr 8
    {for trap}
    GAMEOBJECT_SPELLID : DWord;
    GAMEOBJECT_RADIUS : Single;
    end;

    but GAMEOBJECT_BYTES_1 and GAMEOBJECT_FLAGS cannot tell me whether it's a herb or mine or real chest
    Should I get information from GAMEOBJECT_DISPLAYID?

    Another question:
    After a corpse has been looted, it may be shown as minable or herbable,
    I analyzed this situation, and found that, it's UNIT_FIELD_FLAGS had this mask : UNIT_FLAG_SKINNABLE = 0x04000000,
    So I am confused with mineable and herbale and really skinnable for a corpse !

    Appreciate for any help!

    How to determine mine and herb?
  2. Thanks tutrakan (1 members gave Thanks to starfish99 for this useful post)
  3. #2
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Lol, delphi.

    Use the model of the object. Call the GetModelName VMT func or pull out the DisplayId of the gameobject and look up the model in the DBCs, then check using that whether it's a herb or mine. You only need to check one string because all the objects of each type start with the same thing...

    It's like __MININGNODE__\\ or something. Can't remember and too lazy to open VS and check. It's easy to do on your own.

  4. Thanks tutrakan (1 members gave Thanks to Cypher for this useful post)
  5. #3
    starfish99's Avatar Corporal
    Reputation
    31
    Join Date
    May 2008
    Posts
    24
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    yes, I did it before,
    Getting a gameobject's name and parsing string may be possible to find out mine and herb with English client, but it fails when using other language clients, such as chinese,korean,etc.

    Just now I found an interesting function :
    0x0059BE00 : GetUnitSkinType (3.1.3 9947)
    it's Unit Object's memeber function, and it returns the skin type of a unit's corpse
    0 - UNIT_SKINNABLE_LEATHER
    1 - UNIT_SKINNABLE_HERB
    2 - UNIT_SKINNABLE_ROCK
    3 - UNIT_SKINNABLE_BOLTS

    but this function can't resolve my problem of determine a mine or herb for a gameobject.
    Last edited by starfish99; 07-30-2009 at 05:45 AM.

  6. #4
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by starfish99 View Post
    yes, I did it before,
    Getting a gameobject's name and parsing string may be possible to find out mine and herb with English client, but it fails when using other language clients, such as chinese,korean,etc.

    Just now I found an interesting function :
    0x0059BE00 : GetUnitSkinType
    it's Unit Object's memeber function, and it returns the skin type of a unit's corpse
    0 - UNIT_SKINNABLE_LEATHER
    1 - UNIT_SKINNABLE_HERB
    2 - UNIT_SKINNABLE_ROCK
    3 - UNIT_SKINNABLE_BOLTS

    but this function can't resolve my problem of determine a mine or herb for a gameobject.

    Non-english clients are for those crazy foreigners I couldn't care less about.

    (i.e. I have no idea because I've always used models. Sorry.)

  7. #5
    starfish99's Avatar Corporal
    Reputation
    31
    Join Date
    May 2008
    Posts
    24
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post

    Non-english clients are for those crazy foreigners I couldn't care less about.

    (i.e. I have no idea because I've always used models. Sorry.)
    why you say "those crazy foreigners"?

  8. #6
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by starfish99 View Post
    why you say "those crazy foreigners"?

    Because I'm a xenophobic Australian.

    inb4wutizxenophobia

  9. #7
    suicidity's Avatar Contributor
    Reputation
    207
    Join Date
    Oct 2006
    Posts
    1,439
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just thought I might ask, are you using Unicode (For the Korean, Chinese .. etc Clients)?


  10. #8
    amadmonk's Avatar Active Member
    Reputation
    124
    Join Date
    Apr 2008
    Posts
    772
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post

    Because I'm a xenophobic Australian.

    inb4wutizxenophobia
    Wut iz xenophobia?

    Please don't use long words. I'm scared of things that are different.

    To the OP: see if the GameObject VMT has a method to determine the skill required (Mining, Herbalism, etc.). That might be what you need.

    A little debugging (trace from the Interact VM -- is it still 38 for GO's?) should do the trick.
    Don't believe everything you think.

  11. #9
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hint: Model names/paths DON'T CHANGE regardless of client locale! (Eg; _MININGNODE_ remains even in CN/KR clients.) The only thing that changes, is the use of a different string index in the DBCs. (Notice how they have LOCALIZED strings?!?!)

  12. Thanks tutrakan (1 members gave Thanks to Apoc for this useful post)
  13. #10
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by amadmonk View Post
    Wut iz xenophobia?

    Please don't use long words. I'm scared of things that are different.

    To the OP: see if the GameObject VMT has a method to determine the skill required (Mining, Herbalism, etc.). That might be what you need.

    A little debugging (trace from the Interact VM -- is it still 38 for GO's?) should do the trick.

    Winnarrrrr.

    Pretty sure you can do skill checks with DBCs too.

  14. #11
    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)
    Just use the entry.
    Lookup the ids on wowhead /?object=id
    make 2 dictionaries <string,uint> name and entry then you can do something like this in your Gameobject class:

    public bool Herb { get return herbDictionary.ContainsValue(Entry);
    public bool Mineral { get { return mineralDictionary.ContainsValue(Entry);
    public bool Node { get { return Herb || Mineral } }

    now you han easily check if its à herb or à mineral, dunno how you would do it Delphi but therw should be something similiar.

  15. #12
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Nesox View Post
    Just use the entry.
    Lookup the ids on wowhead /?object=id
    make 2 dictionaries <string,uint> name and entry then you can do something like this in your Gameobject class:

    public bool Herb { get return herbDictionary.ContainsValue(Entry);
    public bool Mineral { get { return mineralDictionary.ContainsValue(Entry);
    public bool Node { get { return Herb || Mineral } }

    now you han easily check if its à herb or à mineral, dunno how you would do it Delphi but therw should be something similiar.
    NOU! Doing .Contains on ANY collection is costly! (Unless it's a hashtable, in which case, that's pretty much what it's made for)

  16. #13
    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)
    Originally Posted by Apoc View Post
    NOU! Doing .Contains on ANY collection is costly! (Unless it's a hashtable, in which case, that's pretty much what it's made for)
    stop raping my posts Q_Q

  17. #14
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1358
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/6
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Apoc View Post
    NOU! Doing .Contains on ANY collection is costly! (Unless it's a hashtable, in which case, that's pretty much what it's made for)
    I dunno about C# but in C++ maps/sets (unhashed associative containers) are sorted at all time stored as red-black trees. This makes searching for a specific value fairly efficient, more efficient than in say a vector (unsorted sequent container -- excluding cases where you sort the vector manually). Though putting a new element into the container is more expensive because the container needs to put it in the 'right place'.

    Unless you're working with extremely large data sets (which is not happening in example) I wouldn't exactly call it 'costly'.

  18. #15
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post
    I dunno about C# but in C++ maps/sets (unhashed associative containers) are sorted at all time stored as red-black trees. This makes searching for a specific value fairly efficient, more efficient than in say a vector (unsorted sequent container -- excluding cases where you sort the vector manually). Though putting a new element into the container is more expensive because the container needs to put it in the 'right place'.

    Unless you're working with extremely large data sets (which is not happening in example) I wouldn't exactly call it 'costly'.
    It's a non-ordered list of objects, usually updated each frame (or every-other frame). It's costly as hell. (Roughly 30-40 CPU cycles per .Contains)

Page 1 of 2 12 LastLast

Similar Threads

  1. Vash'jir - Best Mining and Herbing Profile!
    By moonk1n in forum WoW Bot Maps And Profiles
    Replies: 5
    Last Post: 08-20-2012, 11:41 PM
  2. Uldum mining and herbing profile, 137 harvests per hour
    By talihashi in forum WoW Bot Maps And Profiles
    Replies: 0
    Last Post: 03-02-2012, 07:29 PM
  3. [SGatherer+Whack Underground Profiles - Mining and Herb!] *Under Progress*
    By darkpingu in forum WoW Bot Maps And Profiles
    Replies: 26
    Last Post: 05-05-2011, 11:53 AM
  4. [Gold] [Mining And Herbing In Tanaris]
    By doodlydude in forum World of Warcraft Guides
    Replies: 3
    Last Post: 07-06-2010, 04:59 PM
  5. how to display ore and herbs at the sam time
    By sytry in forum World of Warcraft Guides
    Replies: 12
    Last Post: 08-04-2009, 12:02 AM
All times are GMT -5. The time now is 08:42 PM. 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