11.01.2018, 22:07
Доброго всем времени суток.
Посетила такая мысль, а что если проверять скорость, так сказать, через производную пути.
Делим пройденное расстояние за короткий промежуток времени (скажем 0,05 секунд).
Например:
Я так понял, есть некоторые читы, которые позволяют заставить сервер думать, что вы на паузе, и в это время злодействовать...
Но ведь в таком случае OnPlayerUpdate не будет выполнять свои функции, то есть когда игрок отключит чит, отношение пути к скорости будет огромным, что говорит о чите на скорость.
Проверял:
При обычном беге(не CJ) 5 ед, при прыжке 11 ед. , при ускорении 6-8 ед. Конечно значения колеблются, это средние
Посетила такая мысль, а что если проверять скорость, так сказать, через производную пути.
Делим пройденное расстояние за короткий промежуток времени (скажем 0,05 секунд).
Например:
Code:
new Float: prevpnt[MAX_PLAYERS][3]; //старая координата
new Float: newpnt[MAX_PLAYERS][3]; //новая координата
public OnPlayerUpdate(playerid)
{
prevpnt[playerid][0] = newpnt[playerid][0];
prevpnt[playerid][1] = newpnt[playerid][1];
prevpnt[playerid][2] = newpnt[playerid][2];
GetPlayerPos(playerid,newpnt[playerid][0],newpnt[playerid][1],newpnt[playerid][2]);
GetPlayerVelocity(playerid, GPVspd[0], GPVspd[1], GPVspd[2]);
format(string1, sizeof(string1), "Ваша скорость через f'[x] = %f", floatabs(floatsqroot(floatpower(newpnt[playerid][0]-prevpnt[playerid][0], 2) + floatpower(newpnt[playerid][1]-prevpnt[playerid][1], 2) + floatpower(newpnt[playerid][2]-prevpnt[playerid][2], 2)))/0.05);
SendClientMessage(playerid, COLOR_WHITE,string1);
return 1;
}
Но ведь в таком случае OnPlayerUpdate не будет выполнять свои функции, то есть когда игрок отключит чит, отношение пути к скорости будет огромным, что говорит о чите на скорость.
Проверял:
При обычном беге(не CJ) 5 ед, при прыжке 11 ед. , при ускорении 6-8 ед. Конечно значения колеблются, это средние




) так и динамику, сильно зависит от фпс, при том при различном состоянии закономерность может быть и противоположной к тому, что у машин по фпс.