#include <amxmodx>
#include <fakemeta>
new g_szModelName[2][32] = {
"nazwa_modelu_TT",
"nazwa_modelu_CT"
};
new g_szPlayerModel[33][32];
new g_bSetModel[33];
public plugin_precache()
{
new i, szBuffer[64];
for(; i < sizeof g_szModelName; i++)
{
formatex(szBuffer, 63, "models/player/%s/%s.mdl", g_szModelName[i]);
precache_model(szBuffer);
}
register_event("ResetHUD", "ResetHUD", "be");
register_forward(FM_SetKeyValue, "ClientKeyValue");
register_forward(FM_ClientUserInfoChanged, "ClientUserInfoChanged");
}
public ResetHUD(id)
{
if(~get_user_flags(id) & ADMIN_LEVEL_F)
{
if(g_bSetModel[id])
{
dllfunc(DLLFunc_ClientUserInfoChanged, id, engfunc(EngFunc_GetInfoKeyBuffer, id));
g_bSetModel[id] = false;
}
return;
}
static szModel[32];
engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModel, 31);
copy(g_szPlayerModel[id], 31, g_szModelName[get_user_team(id) - 1]);
if(!equal(szModel, g_szPlayerModel[id]))
{
set_task(id * 0.1, "UstawModel", id);
}
}
public UstawModel(id)
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", g_szPlayerModel[id]);
g_bSetModel[id] = true;
}
public ClientKeyValue(id, szBuffer[], szKey[])
{
if(g_bSetModel[id] && szKey[0] == 'm' && szKey[1] == 'o' && szKey[2] == 'd')
{
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public ClientUserInfoChanged(id)
{
if(!g_bSetModel[id])
{
return;
}
static szModel[32];
engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", szModel, 31);
if(!equal(szModel, g_szPlayerModel[id]))
{
engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", g_szPlayerModel[id]);
g_bSetModel[id] = true;
}
}