Frozen Shooter Timer Monitor

Purrhaps

Member
Hey all!

For those who might be interested, I've added a few lines in Solybum's Timer addon to automatically track the freezing effect when the Frozen Shooter is equipped.
I was tired of getting frozen and beat to death!

This is just a small window that starts a 2min countdown as soon as the Frozen Shooter is equipped, loops if you forget to switch weapon (or if you want to gamble!) and disappear if you unequip the Frozen Shooter.

I haven't figure out yet how to stop the countdown while in safe place, if anyone have idea please enlight me :) (Quick work around is to unequip/equip when you reach a combat zone).

Note: Solybum's "Solylib" & "Timer" are mandatory since it's just a code injection in the existing addon.
Feel free to take a look:
 
Here's how you can read the freeze timer for FS.
Code:
-- Obtain from the inventory
local fs = <weapon_instance>

local genericUpdateHelper = pso.read_u32(fs + 0x18c)
if 0 == genericUpdateHelper then
  -- unexpected, should always exist here
  return
end

-- First child object of the update helper. The game's object hierarchy supports a list of child objects, but there's only one here.
local fsFreezeCountdownHelper = pso.read_u32(genericUpdateHelper + 0x18)
if 0 == fsFreezeCountdownHelper then
  -- Item exists but is not equipped, so the helper is gone.
  return
end

-- Counter that goes from 0 to the target, and then rolls back to 0.
local frameCounterUp = pso.read_u32(fsFreezeCountdownHelper + 0x24)
-- Once the frameCounterUp reaches this value, the game rolls the freeze chance.
local frameCounterTarget = pso.read_u32(fsFreezeCountdownHelper + 0x20)

local player = <player_instance>
local playerMap = pso.read_u32(player + 0x3ec)

-- maps 0x00, 0x0F, 0x12, 0x2D are not safe meaning the game does NOT roll the freeze chance in those.
-- The game actually iterates over a small array for those, but since there are only 4 for the three P2 maps and
-- lobby, can just compare directly.

-- Freeze chance (not useful)
local freezeChance = pso.read_f32(fsFreezeCountdownHelper + 0x2c)

(Didn't test this at all but it should work)
 
Last edited:
Back
Top