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 ед. Конечно значения колеблются, это средние