dvernoff
Добрая душа
- Сообщения
- 638
- Реакции
- 591
Возник вопрос по поводу краша физики связанного с ноублоком который мы устанавливаем через
SetEntData(LR_Player_Prisoner, m_CollisionGroup, 5, 4, true); / SetEntData(LR_Player_Prisoner, m_CollisionGroup, 2, 4, true);
Уже есть 100% информация что крашит переодически именно из за этой функции,
оставляю плагин с этой функцией = краш физики 1-2 раза в день: Throttle,
убираю нет проблем неделю, ну не суть.
Я сделал логи в плагине, чтоб отслеживать на какой строке сработало вкл/выкл ноублока
и вот прямо перед крашем, до него за секунд 20 видим что прошла установка ноублока
Ну ладно, к сути вопроса, почему может происходить краш физики? Как можно это избежать?
Проверка валидности клиента используемая перед установкой ноублока:
SetEntData(LR_Player_Prisoner, m_CollisionGroup, 5, 4, true); / SetEntData(LR_Player_Prisoner, m_CollisionGroup, 2, 4, true);
Уже есть 100% информация что крашит переодически именно из за этой функции,
оставляю плагин с этой функцией = краш физики 1-2 раза в день: Throttle,
убираю нет проблем неделю, ну не суть.
Я сделал логи в плагине, чтоб отслеживать на какой строке сработало вкл/выкл ноублока
и вот прямо перед крашем, до него за секунд 20 видим что прошла установка ноублока
Ну ладно, к сути вопроса, почему может происходить краш физики? Как можно это избежать?
Проверка валидности клиента используемая перед установкой ноублока:
C-подобный:
stock bool EMP_IsValidClient(int client, bool bAllowBots = false, bool bAllowDead = true, int team = -1)
{
if (!(1 <= client <= MaxClients) || !IsClientInGame(client) || (!bAllowBots && IsFakeClient(client)) || IsClientSourceTV(client) || IsClientReplay(client) || (!bAllowDead && !IsPlayerAlive(client)) || (team != -1 && GetClientTeam(client) != team))
{
return false;
}
return true;
}
Последнее редактирование: