Doesn't matter, after talking to Sickboy on the problem, he's notified me its pretty damn close to useless to figure out a way for when the player leaves the mission and re-slots unless its on a heartbeat method.
Your sentence is a little confusing.
Anyway, s'bit irrelevant. You can achieve what you want, without too much difficulty.
1. you can detect JIP.
2. you can detect if they are there at mission startup or not, so not JIP.
3. you can detect when they disconnect.
4. you can detect when they connect.
5. you can detect what character unit either a StartUp player is in or a JIP player is in.
6. you can detect if the new JIP'ing player is in the same or differing unit's body.
7. I denote players that are there at mission startup as 'mp_client' players, I denote jip'ing players as 'jip_client' players.
8. When a 'mp_client' (a player that was there at mission startup) hits the disconnect button and gets returned to the lobby and selects the same or a differing unit they always become a 'jip_client'.
All of the above can be done. Not easily, it requires a little gymnastics. But, is very much achieveable - I gaurantee it.
You do not need 'watching' thread's or anything that keeps a constant intermittent 'eye on players'. You can do it all with the basic scripting functionality available.
Is it a 'useless' thing to do, quite frankly I dunno, that all depends on requirements really.
It's simply a case of identifying the relevant 'context' a player is in or was in and storing the relevant data in either an array or arrays server side only. Or, storing the data in keygety's database, if you want to use his tool. And, when a 'jip_client' gets in-mission prior to them gaining control over the unit simply seeing if there 'playername' is in this server-side array (or DB), if so then compare the units 'objectname' (vehicleVarName in most cases) that would also be stored along with there 'playername' to that of the stored 'objectname' value.
If different, then they are jip'ing into a new unit.