This setup will break down the more a mod changes the vanilla code, particularly the APLAYER code. A mod that totally does away with things like PFROZEN and PSHRINKING will throw CON errors. Or a mod that uses a different define name for the timer than THAWTIME won't ever display properly.
I am pretty sure that stepping into a blue light sector wouldn't trigger "if sprite[].pal" type checks, since technically the actor's tsprite is having its palette changed and not the actual sprite itself. (Without going super in-depth, the tsprite is a virtual sprite for every sprite/actor in a map and handles the visual component independent of the actual actor, for example enemies turning PAL 6 with nightvision don't actually change palettes, but their tsprite does.) Anyway, it should be easy to test that real quick.
Looking at the vanilla behavior for freezer-ing, aside from starting action PFROZEN, the only other characteristic you could check against would be the palette.
EDuke32 Scripting "CON coding help"
#3511 Posted 03 May 2024 - 11:46 AM
#3512 Posted 03 May 2024 - 02:13 PM
That's what I thought. I was looking through the entire wiki and couldn't find another method. At first I hoped I could use sprite[].htg_t 4 PFROZEN, but I'd need a variable instead of an action here.
Before I am looking for a map with fitting conditions it'd probably be faster to create a super simple map with a mirror and pal 1 lighting. In any case, it'd be a very specific case, especially since it's rather unlikely to get frozen in singleplayer (only with mods, basically) and even then, you'd have to die while frozen in blue light.
Before I am looking for a map with fitting conditions it'd probably be faster to create a super simple map with a mirror and pal 1 lighting. In any case, it'd be a very specific case, especially since it's rather unlikely to get frozen in singleplayer (only with mods, basically) and even then, you'd have to die while frozen in blue light.
#3513 Posted 15 May 2024 - 07:38 AM
You wouldn't even need a mirror in your test map, the freezer projectiles bounce off all wall types. (edit - didn't notice the post was over a week old before I replied, so you've probably remembered or found out since)
This post has been edited by ck3D: 15 May 2024 - 07:39 AM
#3514 Posted 19 May 2024 - 07:07 AM
Is it ok to use the same var or even RETURN as a throwaway for unwanted return vars?
For example hitscan has 6 return vars
<hit sector return var> <hit wall return var> <hit sprite return var> <hit x return var> <hit y return var> <hit z return var>
when only wanting a sprite id
TEMP1 TEMP1 TEMP2 TEMP1 TEMP1 TEMP1
It did not cause any apparent crashes, lag, errors, or otherwise
For example hitscan has 6 return vars
<hit sector return var> <hit wall return var> <hit sprite return var> <hit x return var> <hit y return var> <hit z return var>
when only wanting a sprite id
TEMP1 TEMP1 TEMP2 TEMP1 TEMP1 TEMP1
It did not cause any apparent crashes, lag, errors, or otherwise
#3515 Posted 19 May 2024 - 07:42 AM
Yes.
Well, probably not RETURN as that's a pre-defined gamevar and may have strange or unintended results overriding its value. But using a user gamevar like TEMP1 like this is just fine. Strictly speaking, the value will result in the value of "hit z return var" as it's assigned last.
Well, probably not RETURN as that's a pre-defined gamevar and may have strange or unintended results overriding its value. But using a user gamevar like TEMP1 like this is just fine. Strictly speaking, the value will result in the value of "hit z return var" as it's assigned last.