it's was showed there "its trying to read what isn't there", well untested code, you can try this one, untested too, but should be ok
in : src/map/pc.cpp
bool pc_authok(struct map_session_data *sd, uint32 login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers)
find:
// Request all registries (auth is considered completed whence they arrive)
intif_request_registry(sd,7);
return true;
its where the registry loaded, so after this you can take the state of acc protect from registry
change:
// Request all registries (auth is considered completed whence they arrive)
intif_request_registry(sd,7);
if( pc_readaccountreg(sd, add_str("#BLOCKPASS")) > 0 )
sd->state.protection_acc = 1;
return true;