This is what I do, first you need to load the function, if you are using SSGM you can do it in plugin_load() afaik
void plugin_load()
{
AddVersionHook(VersionHook);
memset((void *)BHS_Versions, 0, 128*sizeof(float));
}
float Functions::BHS_Versions[128];
void Functions::VersionHook(int PlayerID,float Version)
{
BHS_Versions[PlayerID] = Version;
}
when the player joins you get the version store it to use
p->BHS = Functions::BHS_Versions[ID];
Functions::BHS_Versions[ID] = 0;
Original code from Dan (jnz) afaik