Raised This Month: $ Target: $400
 0% 

[TF2] Econ Data (supercedes TF2IDB, TF2ItemsInfo) (0.18.3, 2023-01-30)


Post New Thread Reply   
 
Thread Tools Display Modes
Author
Benoist3012
Veteran Member
Join Date: Mar 2014
Location: CWave::ForceFinish()
Plugin ID:
6476
Plugin Version:
0.18.3
Plugin Category:
Technical/Development
Plugin Game:
Team Fortress 2
Plugin Dependencies:
    Servers with this Plugin:
    590 
    Plugin Description:
    Exposes natives to read properties from TF2's item definitions in-memory
    Old 03-17-2019 , 08:10   Re: [TF2] Econ Data (supercedes TF2IDB, TF2ItemsInfo)
    Reply With Quote #1

    Amazing!

    I started something similar as a SM extension but with your plugin out, I've no need to work on that

    Only thing to worry about is the gamedata, but I don't think the tf team is touching those functions anytime soon. Anyway great replacement for tf2ii & tf2idb thanks again.
    __________________
    Benoist3012 is offline
    nosoop
    Veteran Member
    Join Date: Aug 2014
    Old 03-18-2019 , 01:37   Re: [TF2] Econ Data (supercedes TF2IDB, TF2ItemsInfo)
    Reply With Quote #2

    Quote:
    Originally Posted by Benoist3012 View Post
    Only thing to worry about is the gamedata, but I don't think the tf team is touching those functions anytime soon.
    Yeah; thinking about adding a few Linux-specific assertions to make sure the member offsets are correct (I'd assume that the member layout is the same on both platforms). Should probably add a few safeguards on unavailable SDKCalls as well.

    Otherwise, I'm not too worried about updates since I documented how to find the signatures / offsets to some extent; the bus factor should be greater than 1.

    Edit: I've written a basic porting guide for those that want to migrate plugins to this library from TF2ItemsInfo and TF2IDB. I'll get around to adding attribute support eventually, but for items you should be all set to migrate.

    Edit (2): 0.6.0 has been released. The only important change here is that a function was renamed. Plugins compiled against the older version will still work (the native is also mapped to the old function name), but I wanted to make this change while this plugin's still new.
    __________________
    I do TF2, TF2 servers, and TF2 plugins.
    I don't do DMs over Discord -- PM me on the forums regarding inquiries.
    AlliedModders Releases / Github / TF2 Server / Donate (BTC / BCH / coffee)

    Last edited by nosoop; 03-18-2019 at 12:22.
    nosoop is offline
    404UserNotFound
    BANNED
    Join Date: Dec 2011
    Old 03-18-2019 , 18:08   Re: [TF2] Econ Data (supercedes TF2IDB, TF2ItemsInfo)
    Reply With Quote #3

    Quote:
    Originally Posted by nosoop View Post
    Yeah; thinking about adding a few Linux-specific assertions to make sure the member offsets are correct (I'd assume that the member layout is the same on both platforms). Should probably add a few safeguards on unavailable SDKCalls as well.

    Otherwise, I'm not too worried about updates since I documented how to find the signatures / offsets to some extent; the bus factor should be greater than 1.

    Edit: I've written a basic porting guide for those that want to migrate plugins to this library from TF2ItemsInfo and TF2IDB. I'll get around to adding attribute support eventually, but for items you should be all set to migrate.

    Edit (2): 0.6.0 has been released. The only important change here is that a function was renamed. Plugins compiled against the older version will still work (the native is also mapped to the old function name), but I wanted to make this change while this plugin's still new.

    This thing's only been out for a day, I think it'd be safe to just scrap the old name entirely.
    404UserNotFound is offline
    nosoop
    Veteran Member
    Join Date: Aug 2014
    Old 03-21-2019 , 05:36   Re: [TF2] Econ Data (supercedes TF2IDB, TF2ItemsInfo)
    Reply With Quote #4

    Quote:
    Originally Posted by 404UNF View Post
    This thing's only been out for a day, I think it'd be safe to just scrap the old name entirely.
    I like my backwards compatibility reeeee

    Anyways, 0.7.1 has been released with support to convert item slot names to indices and vice-versa.

    Considering what I just said about backwards compatibility, ironically enough, I do have to note that the slot values are not compatible with those in TF2IDB and TF2II. Those two plugins return values mapping approximately to the virtual CBaseCombatWeapon::GetSlot() function (which is what GetPlayerWeaponSlot() looks up), while TF2 itself has a slightly different mapping.

    I'll refer to the former as "weapon slots", and the latter as "loadout slots".

    Here is TF2IDB's list, and this is the current game-specific mapping for comparison (the indices go from 0 to 18 inclusive):

    Code:
    0: primary
    1: secondary
    2: melee
    3: utility
    4: building
    5: pda
    6: pda2
    7: head
    8: misc
    9: action
    11: taunt
    So, if you're porting from one of the two to this plugin, don't use the TF2ItemSlot enum values when checking the result of TF2Econ_GetItemSlot() -- convert between slot indices and names with TF2Econ_TranslateLoadoutSlotIndexToName() and TF2Econ_TranslateLoadoutSlotNameToIndex().

    If you want to access the entity in a specific loadout slot, it'd be preferable to use an SDKCall to CTFPlayer::GetEntityForLoadoutSlot() or use my maintained fork of Powerlord's TF2 Wearables API, which has a native to do just that.

    Otherwise, you may want to grab a variation of GetSlotByName and translate from loadout slot → name → weapon slot.
    __________________
    I do TF2, TF2 servers, and TF2 plugins.
    I don't do DMs over Discord -- PM me on the forums regarding inquiries.
    AlliedModders Releases / Github / TF2 Server / Donate (BTC / BCH / coffee)

    Last edited by nosoop; 03-22-2019 at 00:34.
    nosoop is offline
    Reply


    Thread Tools
    Display Modes

    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -4. The time now is 22:49.


    Powered by vBulletin®
    Copyright ©2000 - 2024, vBulletin Solutions, Inc.
    Theme made by Freecode