I don't think this will completely solve it, but make sure you are hooking it as post.
Code:
#include <amxmodx>
#include <fakemeta>
#define pev_oldsolid pev_button
new const BLOCK[] = "block";
new bool:gRestoreEntities;
public plugin_init() {
register_forward(FM_PlayerPreThink, "FwdPlayerPreThink");
register_forward(FM_PlayerPostThink, "FwdPlayerPostThink");
register_forward(FM_AddToFulLPack, "FwdAddToFullPackPost", 1);
}
public FwdPlayerPreThink(id) {
if(is_user_alive(id) && get_user_team(id) == 2) {
new ent = -1;
while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", BLOCK))) {
set_pev(ent, pev_oldsolid, pev(ent, pev_solid));
set_pev(ent, pev_solid, SOLID_BBOX);
}
gRestoreEntities = true;
}
}
public FwdPlayerPostThink(id) {
if(gRestoreEntities) {
new ent = -1;
while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", BLOCK))) {
set_pev(ent, pev_solid, pev(ent, pev_oldsolid));
}
gRestoreEntities = false;
}
}
public FwdAddToFullPackPost(esHandle, e, ent, host, hostFlags, player, pSet) {
if(!player && pev_valid(ent) && is_user_alive(host) && get_user_team(host) == 2) {
static className[32];
pev(ent, pev_classname, className, charsmax(className));
if(equal(className, BLOCK)) {
set_es(esHandle, ES_Solid, SOLID_BBOX);
}
}
}