by Spike » Sun Feb 02, 2014 11:47 pm
if you register a string, make certain that you use only getstats to read that string, and never any of the other getstatX functions.
In DP, string stats are horribly limited, and while getstatf can be used to test against an empty string (in DP), doing so will break things if DP does ever support more versatile string stats.
To explain:
DP still packs strings within 4 consecutive stats, giving a limited string length to 15 chars and consuming multiple stat slots for each string.
FTE does remove the length limits on string stats by using a seperate namespace for strings. using getstatf on such a stat will always return 0 (unless, of course, if you depend on the separate namespaces feature by using the same stat number for both a string and a numeric stat. more stats, woo).
as gnounc says, stat 32 will always read as 0, unless the ssqc actually registers something to use that slot.
you can't define random new variables and expect the engine to understand what you mean by that. it doesn't have a clue. if you want it to be available then its either a legacy feature (like intermission, which is set via a special-case svc_intermission packet), or you'll need to modify the ssqc to make that information available somehow.
any stats that you store in some global must be refreshed each frame in order to prevent them from becoming stale. qc doesn't constantly reevaluate every variable based upon how it got its value like prologue might, because that's basically insanely inefficient. thus you'll need to re-read the stats at least once a frame.
.