Raised This Month: $51 Target: $400
 12% 

[TF2 MvM] Upgrade Refund Credit


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Potato Uno
Veteran Member
Join Date: Jan 2014
Location: Atlanta, Georgia
Old 05-06-2015 , 00:27   [TF2 MvM] Upgrade Refund Credit
Reply With Quote #1

Is there a way to check if the upgrade refund credit is available for use? If so, how can I find that?

For my custom upgrades station plugin I'm working on, I want to add an option to the SM upgrades menu "Refund All Upgrades", and to that a function is bound which will remove all item & character attributes and return the cash spent back to the player. To do this, I need to find out how/when the refund credit is active. The rest is easy.

The amount of money required to be collected to reach the upgrade refund credit is a server cvar (I don't have the name), so I can probably pull that number via FindConVar. However, I would also need to pull the counter that has the total amount of money collected (upgrade refund progress).

I should note that I should also be able to disable the upgrade refund credit for the player from SM, or else they will be able to use the one from the default upgrades station to double-refund.

Help? Is there some netprop or datamap I have to find or use? Thanks!

Last edited by Potato Uno; 05-06-2015 at 00:47.
Potato Uno is offline
Powerlord
AlliedModders Donor
Join Date: Jun 2008
Location: Seduce Me!
Old 05-06-2015 , 00:42   Re: [TF2 MvM] Upgrade Refund Credit
Reply With Quote #2

I would expect it to be stored as a datamap or netprop of the tf_objective_resource / CTFObjectiveResource entity, but I can't tell you which one off hand.
__________________
Not currently working on SourceMod plugin development.

Last edited by Powerlord; 05-06-2015 at 00:43.
Powerlord is offline
Potato Uno
Veteran Member
Join Date: Jan 2014
Location: Atlanta, Georgia
Old 05-06-2015 , 01:11   Re: [TF2 MvM] Upgrade Refund Credit
Reply With Quote #3

So I did a netprop dump and found this (check the bottom 2):

Code:
CMannVsMachineStats (type DT_MannVsMachineStats)
 Table: baseclass (offset 0) (type DT_BaseEntity)
  Table: AnimTimeMustBeFirst (offset 0) (type DT_AnimTimeMustBeFirst)
   Member: m_flAnimTime (offset 140) (type integer) (bits 8) (Unsigned|ChangesOften)
  Member: m_flSimulationTime (offset 144) (type integer) (bits 8) (Unsigned|ChangesOften)
  Member: m_vecOrigin (offset 792) (type vector) (bits 0) (ChangesOften|CoordMP)
  Member: m_ubInterpolationFrame (offset 148) (type integer) (bits 2) (Unsigned)
  Member: m_nModelIndex (offset 114) (type integer) (bits 13) ()
  Table: m_Collision (offset 348) (type DT_CollisionProperty)
   Member: m_vecMinsPreScaled (offset 8) (type vector) (bits 0) (NoScale)
   Member: m_vecMaxsPreScaled (offset 20) (type vector) (bits 0) (NoScale)
   Member: m_vecMins (offset 32) (type vector) (bits 0) (NoScale)
   Member: m_vecMaxs (offset 44) (type vector) (bits 0) (NoScale)
   Member: m_nSolidType (offset 65) (type integer) (bits 3) (Unsigned)
   Member: m_usSolidFlags (offset 60) (type integer) (bits 10) (Unsigned)
   Member: m_nSurroundType (offset 64) (type integer) (bits 3) (Unsigned)
   Member: m_triggerBloat (offset 66) (type integer) (bits 8) (Unsigned)
   Member: m_vecSpecifiedSurroundingMinsPreScaled (offset 68) (type vector) (bits 0) (NoScale)
   Member: m_vecSpecifiedSurroundingMaxsPreScaled (offset 80) (type vector) (bits 0) (NoScale)
   Member: m_vecSpecifiedSurroundingMins (offset 92) (type vector) (bits 0) (NoScale)
   Member: m_vecSpecifiedSurroundingMaxs (offset 104) (type vector) (bits 0) (NoScale)
  Member: m_nRenderFX (offset 112) (type integer) (bits 8) (Unsigned)
  Member: m_nRenderMode (offset 113) (type integer) (bits 8) (Unsigned)
  Member: m_fEffects (offset 212) (type integer) (bits 10) (Unsigned)
  Member: m_clrRender (offset 132) (type integer) (bits 32) (Unsigned)
  Member: m_iTeamNum (offset 516) (type integer) (bits 6) ()
  Member: m_CollisionGroup (offset 496) (type integer) (bits 5) (Unsigned)
  Member: m_flElasticity (offset 636) (type float) (bits 0) (NoScale|CoordMP)
  Member: m_flShadowCastDistance (offset 504) (type float) (bits 12) (Unsigned)
  Member: m_hOwnerEntity (offset 488) (type integer) (bits 21) (Unsigned)
  Member: m_hEffectEntity (offset 492) (type integer) (bits 21) (Unsigned)
  Member: moveparent (offset 336) (type integer) (bits 21) (Unsigned)
  Member: m_iParentAttachment (offset 333) (type integer) (bits 6) (Unsigned)
  Member: movetype (offset 334) (type integer) (bits 4) (Unsigned)
  Member: movecollide (offset 335) (type integer) (bits 3) (Unsigned)
  Member: m_angRotation (offset 804) (type vector) (bits 13) (ChangesOften)
  Member: m_iTextureFrameIndex (offset 680) (type integer) (bits 8) (Unsigned)
  Table: predictable_id (offset 0) (type DT_PredictableId)
   Member: m_PredictableID (offset 156) (type integer) (bits 31) (Unsigned)
   Member: m_bIsPlayerSimulated (offset 835) (type integer) (bits 1) (Unsigned)
  Member: m_bSimulatedEveryTick (offset 681) (type integer) (bits 1) (Unsigned)
  Member: m_bAnimatedEveryTick (offset 682) (type integer) (bits 1) (Unsigned)
  Member: m_bAlternateSorting (offset 683) (type integer) (bits 1) (Unsigned)
  Table: m_nModelIndexOverrides (offset 116) (type m_nModelIndexOverrides)
   Member: 000 (offset 0) (type integer) (bits 13) ()
   Member: 001 (offset 4) (type integer) (bits 13) ()
   Member: 002 (offset 8) (type integer) (bits 13) ()
   Member: 003 (offset 12) (type integer) (bits 13) ()
 Member: m_iCurrentWaveIdx (offset 1480) (type integer) (bits 8) (Unsigned)
 Member: m_iServerWaveID (offset 1484) (type integer) (bits 8) (Unsigned)
 Table: m_runningTotalWaveStats (offset 1396) (type DT_CMannVsMachineWaveStats)
  Member: nCreditsDropped (offset 4) (type integer) (bits 16) (Unsigned)
  Member: nCreditsAcquired (offset 8) (type integer) (bits 16) (Unsigned)
  Member: nCreditsBonus (offset 12) (type integer) (bits 16) (Unsigned)
  Member: nPlayerDeaths (offset 16) (type integer) (bits 16) (Unsigned)
  Member: nBuyBacks (offset 20) (type integer) (bits 8) (Unsigned)
 Table: m_previousWaveStats (offset 1424) (type DT_CMannVsMachineWaveStats)
  Member: nCreditsDropped (offset 4) (type integer) (bits 16) (Unsigned)
  Member: nCreditsAcquired (offset 8) (type integer) (bits 16) (Unsigned)
  Member: nCreditsBonus (offset 12) (type integer) (bits 16) (Unsigned)
  Member: nPlayerDeaths (offset 16) (type integer) (bits 16) (Unsigned)
  Member: nBuyBacks (offset 20) (type integer) (bits 8) (Unsigned)
 Table: m_currentWaveStats (offset 1452) (type DT_CMannVsMachineWaveStats)
  Member: nCreditsDropped (offset 4) (type integer) (bits 16) (Unsigned)
  Member: nCreditsAcquired (offset 8) (type integer) (bits 16) (Unsigned)
  Member: nCreditsBonus (offset 12) (type integer) (bits 16) (Unsigned)
  Member: nPlayerDeaths (offset 16) (type integer) (bits 16) (Unsigned)
  Member: nBuyBacks (offset 20) (type integer) (bits 8) (Unsigned)
 Member: m_iCurrencyCollectedForRespec (offset 1572) (type integer) (bits 32) (VarInt)
 Member: m_nRespecsAwardedInWave (offset 1576) (type integer) (bits 8) (Unsigned)
I also found this:

Code:
 CTFPlayerResource (type DT_TFPlayerResource)
 Table: baseclass (offset 0) (type DT_PlayerResource)

<irrelevant crap here>

 Table: m_iUpgradeRefundCredits (offset 4564) (type m_iUpgradeRefundCredits)
  Member: 000 (offset 0) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 001 (offset 4) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 002 (offset 8) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 003 (offset 12) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 004 (offset 16) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 005 (offset 20) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 006 (offset 24) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 007 (offset 28) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 008 (offset 32) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 009 (offset 36) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 010 (offset 40) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 011 (offset 44) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 012 (offset 48) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 013 (offset 52) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 014 (offset 56) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 015 (offset 60) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 016 (offset 64) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 017 (offset 68) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 018 (offset 72) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 019 (offset 76) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 020 (offset 80) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 021 (offset 84) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 022 (offset 88) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 023 (offset 92) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 024 (offset 96) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 025 (offset 100) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 026 (offset 104) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 027 (offset 108) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 028 (offset 112) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 029 (offset 116) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 030 (offset 120) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 031 (offset 124) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 032 (offset 128) (type integer) (bits 32) (Unsigned|VarInt)
  Member: 033 (offset 132) (type integer) (bits 32) (Unsigned|VarInt)
Now the next question is, how can I extract (read & write) to these values? I know I have to use SetEntProp and GetEntProp, in the form of Set/GetEntProp(entity, Prop_Send, "netprop here", .....), but I don't know what the netprop string & the entity should be.

EDIT:

Going by the datamaps, would the entity name be "tf_player_manager" for the second one, and "tf_mann_vs_machine_stats" for the first one?

Code:
CMannVsMachineStats - tf_mann_vs_machine_stats
CTFPlayerResource - tf_player_manager

Last edited by Potato Uno; 05-06-2015 at 01:14. Reason: datamaps
Potato Uno is offline
Benoist3012
Veteran Member
Join Date: Mar 2014
Location: CWave::ForceFinish()
Old 05-09-2015 , 17:03   Re: [TF2 MvM] Upgrade Refund Credit
Reply With Quote #4

I'm pretty sure m_iUpgradeRefundCredits work like the netprop of the score in tf_player_manager
__________________
Benoist3012 is offline
Reply



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 05:19.


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