Taxi Info menu

Shout-Out

User Tag List

Thread: Taxi Info

Results 1 to 10 of 10
  1. #1
    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)

    Taxi Info

    I've been messing around with the 'taxi' stuff in WoW. (Flight paths, boats, zeps, etc.)

    Basically trying to re-reverse what I had done a while ago, to find which flightpaths you currently know. Since I honestly haven't bothered updating since 3.1.x series of patches, nearly all of it has changed.

    For the lazy; here's a few addrs that should help speed up the reversing process.

    00C0D7E4 NumTaxiNodes (Only set after visiting a FP. This will be the number of visible nodes in the window)
    00C0D7E8 - Some ID? Not sure.
    00C0D7EC CurrentTaxiNodeRecord - Points to the current TaxiNodes record for the FP you're at.
    00C0DBF0 CurrentTaxiNpcGuid (Just the GUID of the current Taxi NPC [if there is one])
    00C0DC38 Pointer/Array of info for taxis.

    The pointer/array for infos seems to be a struct; I've just started reversing it, but here it is so far:

    Code:
    #pragma pack(push, 1)
    struct TaxiInfo
    {
      TaxiNodeRecord *NodeRecord;
      DWORD dword4;
      DWORD dword8;
      BYTE byteC;
      BYTE byteD_IsFlightPath;
      BYTE byteE;
      BYTE byteF;
      QWORD *dword10_KnownNodes;
      DWORD dword14;
      DWORD dword18;
      DWORD dword1C;
      DWORD dword20;
      DWORD dword24;
      DWORD dword28;
      DWORD dword2C;
    };
    #pragma pack(pop)
    I'm honestly tired as hell, and I've made little to no progress. Help would be appreciated.

    Taxi Info
  2. #2
    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)
    I would help you if i was home, i'm back on sunday

  3. #3
    XTZGZoReX's Avatar Active Member
    Reputation
    32
    Join Date
    Apr 2008
    Posts
    173
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You can intercept SMSG_SHOWTAXINODES (0x1A9), or just reverse from its handler (if you dislike messing with the protocol). It's sent when you interact with a taxi master, and contains a list of nodes you know (I recommend looking at MaNGOS code for the specifics). The structure goes like so:

    Code:
    uint32 something; // probably 1 for success, 0 for error, or whatever (didn't really check)
    uint64 guidOfTaxiMaster;
    uint32 currentNode;
    for (uint32 i = 0; i < 12; i++)
    {
        uint32 node;
    }

  4. #4
    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)
    Basically; I'm looking for the known taxi node IDs. I know in previous patches it was simply stored in a list of QWORDs where each bit was the ID of the node. (1 for known, 0 for not)

    It's fairly obvious that they're sent to the client, either at login, or shortly after. (Otherwise the client has no way of knowing what FPs are shown and not, to show the green '!' or not)

  5. #5
    namreeb's Avatar Legendary

    Reputation
    668
    Join Date
    Sep 2008
    Posts
    1,029
    Thanks G/R
    8/222
    Trade Feedback
    0 (0%)
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Is that how it's done? A comprehensive FP list at login? I would think it would just be a flag specifying what icons to render above the toon as it is announced to the client or something. This would of course allow you to determine if someone is a flight master, but only when you are in range of them.

  6. #6
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1515
    Join Date
    May 2008
    Posts
    2,433
    Thanks G/R
    81/336
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Isn't this possible to do through Lua?

    Code:
    for i = 1, NumTaxiNodes() do
        print(TaxiNodeName(i).." - "..TaxiNodeGetType(i));
    end
    For me, this prints:
    Code:
    Thunder Bluff, Mulgore - REACHABLE
    Orgrimmar, Durotar - CURRENT
    Crossroads, The Barrens - REACHABLE
    Etc.

  7. #7
    -Ryuk-'s Avatar Elite User CoreCoins Purchaser Authenticator enabled
    Reputation
    529
    Join Date
    Nov 2009
    Posts
    1,028
    Thanks G/R
    38/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Jadd View Post
    Isn't this possible to do through Lua?

    Code:
    for i = 1, NumTaxiNodes() do
        print(TaxiNodeName(i).." - "..TaxiNodeGetType(i));
    end
    For me, this prints:
    Code:
    Thunder Bluff, Mulgore - REACHABLE
    Orgrimmar, Durotar - CURRENT
    Crossroads, The Barrens - REACHABLE
    Etc.
    Yep, However I think he wants it in bytes so he can read just one byte to see if he has the Stormwind City Flight Path(for example), without having to split the string.
    |Leacher:11/2009|Donor:02/2010|Established Member:09/2010|Contributor:09/2010|Elite:08/2013|

  8. #8
    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 Apoc View Post

    It's fairly obvious that they're sent to the client, either at login, or shortly after. (Otherwise the client has no way of knowing what FPs are shown and not, to show the green '!' or not)
    List of known nodes IS ONLY sent when you interact with a taxi master. Green '!' is other story (hint: CMSG_TAXINODE_STATUS_QUERY, SMSG_TAXINODE_STATUS).

  9. #9
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1515
    Join Date
    May 2008
    Posts
    2,433
    Thanks G/R
    81/336
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by TOM_RUS View Post
    List of known nodes IS ONLY sent when you interact with a taxi master. Green '!' is other story (hint: CMSG_TAXINODE_STATUS_QUERY, SMSG_TAXINODE_STATUS).
    Oh yeah, you're right. Didn't notice this.

    Guess my Lua option fails :P

  10. #10
    tymezz's Avatar Member
    Reputation
    9
    Join Date
    Nov 2007
    Posts
    44
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Apoc View Post
    It's fairly obvious that they're sent to the client, either at login, or shortly after. (Otherwise the client has no way of knowing what FPs are shown and not, to show the green '!' or not)
    Unit+0x94 = 7 when there is an available taxi node (green !), didn't reverse further but it might be of some help.

    Though I doubt it.. the value for a new node may have changed since 3.3.5.

Similar Threads

  1. Free World of Warcraft (10 days not playing with payment info)
    By Fakeskuh in forum World of Warcraft General
    Replies: 5
    Last Post: 06-15-2006, 12:20 PM
  2. Collected Naxx info
    By impulse102 in forum World of Warcraft General
    Replies: 1
    Last Post: 06-04-2006, 01:44 AM
  3. Info on taking Ragnaros (And other MC general info)
    By Cush in forum World of Warcraft Guides
    Replies: 4
    Last Post: 05-28-2006, 03:53 AM
All times are GMT -5. The time now is 03: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