Цитата (ThRunningMan)
public OnClientPutInServer(client)
{
SDKHook(client, SDKHook_OnTakeDamage, OnTakeDamage);
}
public Action:OnTakeDamage(client, &attacker, &inflictor, &Float:damage, &damagetype)
{
new iArmor = GetEntData(client, FindDataMapOffs(client, "m_ArmorValue"), 4); //это собственно получаем сколько у клиента брони по которому стреляют или тот который получает дамаг
new iArmor_dmg = GetRandomInt(20,25); //это задает сколько отнмать брони когда получает дамаг, уже сам настроишь фильтры дамага, ножи там оружие падение и т.д.
new iArmor_raz; // это для получения будующей разницы между нанесенным дамагом броне и тем что имеется
if(iArmor > 0)
{
if(iArmor_dmg <= iArmor)
{
iArmor_raz = iArmor - iArmor_dmg; //собственно отнимаем установленное количество брони и записываем в перменную
SetEntData(client, FindDataMapOffs(client, "m_ArmorValue"), iArmor_raz, 4, true); // отправляем данные игроку
damage = 0; // меняем дамаг который должен был быть нанесен игроку п окоторому стреляем и отправляем
return Plugin_Change;
}else
{
SetEntData(client, FindDataMapOffs(client, "m_ArmorValue"), 0, 4, true); // это сработает если у игрока брони меньше чем мы хоти у него отнять, тогда установится минимальный порог брони т.е. 0
damage = 0; // и тут также не разрешаем дамажить по хп
return Plugin_Change;
}
}else
return Plugin_Continue; // это сработает когда не выполнится условие что у игркоа етсь броня в нашем случае не нулевая, тогда все повреждения будут засчитываться
}
Всем большое спасибо !!!
Все получилось !