void SetModel(int iClient, int index = -1)
{
// give him a random one.
char ModelPath[PLATFORM_MAX_PATH];
if(index == -1)
index = GetRandomInt(0, g_iTotalModelsAvailable - 1);
KV_JumpTo(g_kvModels, index);
KvGetSectionName(g_kvModels, ModelPath, sizeof(ModelPath));
FormatEx(m_sModel[iClient], sizeof(m_sModel[]), "models/%s.mdl", ModelPath);
KvGetString(g_kvModels, "name", m_sName[iClient], sizeof(m_sName[]), "*ERROR*");
if(StrEqual(m_sName[iClient], "*ERROR*"))
{
LogError("No name found for \"%s\"", ModelPath);
// Reset KV position
KvRewind(g_kvModels);
return;
}
m_iIndex[iClient] = index;
m_fOffset[iClient][0] = KvGetFloat(g_kvModels, "offset_x", 0.0);
m_fOffset[iClient][1] = KvGetFloat(g_kvModels, "offset_y", 0.0);
m_fOffset[iClient][2] = KvGetFloat(g_kvModels, "offset_z", 0.0);
m_fAngle[iClient][0] = KvGetFloat(g_kvModels, "rotation_x", 0.0);
m_fAngle[iClient][1] = KvGetFloat(g_kvModels, "rotation_y", 0.0);
m_fAngle[iClient][2] = KvGetFloat(g_kvModels, "rotation_z", 0.0);
KvGetColor(g_kvModels, "color", m_iColor[iClient][0], m_iColor[iClient][1], m_iColor[iClient][2], m_iColor[iClient][3]);
if(m_iColor[iClient][0] == 0 && m_iColor[iClient][1] == 0 && m_iColor[iClient][2] == 0 && m_iColor[iClient][3] == 0)
{
m_iColor[iClient][0] = 255;
m_iColor[iClient][1] = 255;
m_iColor[iClient][2] = 255;
m_iColor[iClient][3] = 255;
}
m_iSkin[iClient] = KvGetNum(g_kvModels, "skin", 0);
m_iWeight[iClient] = KvGetNum(g_kvModels, "weight", 10);
m_iHP[iClient] = KvGetNum(g_kvModels, "hp", 100);
SetEntityHealth(iClient, m_iHP[iClient]);
m_fSpeed[iClient] = KvGetFloat(g_kvModels, "speed", 1.0);
SpeedRules_ClientResetName(iClient, "hider_model"); // Remove speed rules of other models first
SpeedRules_ClientAdd(iClient, "hider_model", SR_Base, m_fSpeed[iClient], -1.0, 0); // Set rule for base speed
m_fGravity[iClient] = KvGetFloat(g_kvModels, "gravity", 1.0);
SetEntityGravity(iClient, m_fGravity[iClient]);
//DispatchKeyValue(iClient, "Solid", "3"); //Мои попытки
delete g_hAutoFreezeTimers[iClient];
Client_ReCreateFakeProp(iClient);
// Reset KV position
KvRewind(g_kvModels);
g_iModelChangeCount[iClient]++;
// Show model name in chat
CPrintToChat(iClient, "%s %t", PREFIX, "whoami", m_sName[iClient]);
Call_StartForward(g_OnHiderSetModel);
Call_PushCell(iClient);
Call_Finish();
}