17.06.2017, 14:39
(
Last edited by youngPimp; 18/06/2017 at 01:03 AM.
)
Всем привет .
прошу помощи, нужно немного доделать ач на телепорт, немного не понимаю логики.
вот примерный код:
И сам код античита:
Работает все нормально, кроме того, что есть дыра в данной реализации, когда нам меняет позицию сервер(вход\выход из интерьера), то у нас есть эти самые три секунды, в которые мы можем телепортироваться куда угодно и потом сам сервер запишет наши координаты на новые и сервер не увидит, что это чит.
Пробовал и запоминать позицию перед тп, а в эти три секунды застоя сравнивать, что если игрок не стоит на новых и на старых - то чит.
Но все равно очень коряво работает.
Надеюсь на помощь.
Спасибо.
прошу помощи, нужно немного доделать ач на телепорт, немного не понимаю логики.
вот примерный код:
PHP Code:
_aSetPlayerPos(playerid, Float:x, Float:y, Float:z )
{
PlayerInfo[playerid][ TimeTP ] = gettime();
PlayerInfo[playerid][pX] = x;
PlayerInfo[playerid][pY] = y;
PlayerInfo[playerid][pZ] = z;
SetPlayerPos( playerid, Float:x, Float:y, Float:z ) ;
return true;
}
PHP Code:
new Float: x[3];
GetPlayerPos(i, x, ,x ,x );
if( gettime() - PlayerInfo[i][ TimeTP ] > 3)
{
Если прошло больше трех секунд с момента сервервного ТП, то начинаем проверять его на ТП, аирбрейки, флаии тд.
}
else
{
если меньше, то, чтобы было меньше ошибок античит из-за лагов игрока\сервера, мы записывем новые координаты в переменные:
PlayerInfo[i][pX] = x;
PlayerInfo[i][pY] = x;
PlayerInfo[i][pZ] = x;
}
Пробовал и запоминать позицию перед тп, а в эти три секунды застоя сравнивать, что если игрок не стоит на новых и на старых - то чит.
Но все равно очень коряво работает.
Надеюсь на помощь.
Спасибо.