19.06.2017, 23:26
Так там больше ничего не и не нужно.
Все вот так, не считая что lastpos массив для всех игроков.
Как бы ошибка проявляется только у некоторых.
Ну как у 30% - 40% игроков.
По кду выше флудит античитом, но если там никаких проверок, а просто записываем эти три секунды застоя новые координты, то все ОК.
Но как говорил выше, проблема в том, что за эти три секунды можно куда угодно беспалева тпшнуться.
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:pos_x, Float:pos_y, Float:pos_z;
GetPlayerPos(i, pos_x, pos_y, pos_z);
if(gettime() - PlayerInfo[i][TimeTP] > 3)
{
//Проверки античитов
}
else
{
if(!IsPlayerInRangeOfPoint(playerid, 30.0, PlayerInfo[i][pX], PlayerInfo[i][pY], PlayerInfo[i][pZ]) &&
!IsPlayerInRangeOfPoint(playerid, 30.0, lastpos[0], lastpos[1], lastpos[2]) )
{
сообщение администрации
}
}
Как бы ошибка проявляется только у некоторых.
Ну как у 30% - 40% игроков.
По кду выше флудит античитом, но если там никаких проверок, а просто записываем эти три секунды застоя новые координты, то все ОК.
Но как говорил выше, проблема в том, что за эти три секунды можно куда угодно беспалева тпшнуться.