What all that means is you can access the player's current action, actioncount, named movement, and counter via the htg_t array, and use this to build a sort of timer. The only part of this that is missing is getting the animation speed of an animation, although in this case PFROZEN has no animation speed, so it's equal to the gametic counter.
So to build a frozen time remaining, you'd subtract the current .htg_t 2 from THAWTIME and that's how many gametics are remaining. The shrunk timer should be the same, except you'd use .htg_t 0 to get the current counter. Divide by 30 to get the real seconds to gametic conversion. If you want to get fancy you can mod the .htg_t 2 value by 30 to get milliseconds.
Here's an untested example based on some other code I have, no idea if this will work off the rip but should put you in the right direction.
appendevent EVENT_DISPLAYREST
{
ifaction PFROZEN
{
set UI_ZOOM 24576
set UI_ORIENTATION 2
set UI_FLAGS 10
set ACTORTEMP THAWTIME
sub ACTORTEMP sprite[].htg_t 2 // The player's current actioncount
set ACTORTEMP2 ACTORTEMP
div ACTORTEMP 30
mod ACTORTEMP2 30 // Process milliseconds
redefinequote 253 %d
redefinequote 254 00
qsprintf 253 253 ACTORTEMP2
qstrlen ACTORCHECK 253
set ACTORCHECK2 2
sub ACTORCHECK2 ACTORCHECK
qstrncat 253 254 ACTORCHECK2
redefinequote 254 UNTHAWING IN %d.%s
qsprintf 254 254 ACTORTEMP 253
screentext BIGALPHANUM 160 20 UI_ZOOM 0 0 254 0 1 UI_ORIENTATION 0 BIGALPHA_XSPACE BIGALPHA_YLINE BIGALPHA_XBETWEEN 0 UI_FLAGS 0 0 xdim ydim
}
}
endevent

Help
Duke4.net
DNF #1
Duke 3D #1



