21.06.2017, 03:44
Ну что же, включил логирование.
Чтобы просто проверить свой код
Код написан верно в моде, просто для примера не переделываю переменные.
В общем суть такая, в логах вот что появляется:
То есть получается так, что у нас и в lastpos и в переменных новой позиции сохраняется координаты ОТКУДА ЧЕЛОВЕК ВЫХОДИТ.
Поэтому и срабатывает античит, так как двое переменных равны друг другу и мы получаемся вдали от них, когда вышли и наша позиция изменилась
Теперь Ваши мысли?
Спасибо.
Чтобы просто проверить свой код
PHP Code:
_aSetPlayerPos(playerid, Float:x, Float:y, Float:z )
{
GetPlayerPos(playerid, lastpos[0], lastpos[1], lastpos[2]);
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;
}
new Float: x[3];
GetPlayerPos(i, x, ,x ,x );
if( gettime() - PlayerInfo[i][ TimeTP ] > 3)
{
АНТИЧИТ ВКЛЮЧАЕТСЯ
КОГДА АНТИЧИТ СДЕЛАЛ ВСЕ ПРОВЕРКИ, ТО МЫ ЗАПИСЫВАЕМ НОВЫЕ ДАННЫЕ:
PlayerInfo[playerid][pX] = x,
PlayerInfo[playerid][pY] = x,
PlayerInfo[playerid][pZ] = x;
}
else
{
if( !IsPlayerInRangeOfPoint(i,20, lastpos[0], lastpos[1], lastpos[2])
&& !IsPlayerInRangeOfPoint(i,20, PlayerInfo[playerid][pX] ,PlayerInfo[playerid][pY] ,PlayerInfo[playerid][pz] ) )
{
ЧИТ!!!
new Float: XT[3]; GetPlayerPos(i, XT[0],XT[1],XT[2]);
printf(" Ошибка АЧ: %s(%i) находится: %f, %f, %f", playerName[i], i, XT[0],XT[1],XT[2]);
printf(" Ошибка АЧ: %s - new %f, %f, %f | back - %f, %f, %f", playerName[i], PlayerInfo[playerid][pX] ,PlayerInfo[playerid][pY],PlayerInfo[playerid][pZ], lastpos[0], lastpos[1], lastpos[2]);
PlayerInfo[playerid][pX] = x,
PlayerInfo[playerid][pY] = x,
PlayerInfo[playerid][pZ] = x;
}
else
{
PlayerInfo[playerid][pX] = x,
PlayerInfo[playerid][pY] = x,
PlayerInfo[playerid][pZ] = x;
}
}
В общем суть такая, в логах вот что появляется:
PHP Code:
Ошибка АЧ: Nickname(0) находится: 1327.016601, -1543.821411, 902.455932
Ошибка АЧ: Nickname - new 1163.739990, -1538.278198, 902.454956 | back - 1164.403442, -1538.339477, 902.454956
Поэтому и срабатывает античит, так как двое переменных равны друг другу и мы получаемся вдали от них, когда вышли и наша позиция изменилась
Теперь Ваши мысли?
Спасибо.