Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Запрет на "ТП в авто из авто".

Статус
В этой теме нельзя размещать новые ответы.

armena

Ученик
Всем привет. Я думаю многие знают, что на собейте есть такая функция как ТП в авто. ( нумпад 7 )
Сейчас я напишу как "поймать" читера который делает ТП в авто из авто.

В паблике OnPlayerStateChange пишем следующее
PHP:
if ( newstate == 1 ) // Игрок пешком
    {
        DeletePVar ( playerid, "VehicleID" ) ; // Удаляем ПВарку, она на не нужна будет
    }
    else if ( newstate == 2 ) // Игрок сел в авто
    {
        new vehicleid = GetPlayerVehicleID ( playerid ) ; // Узнаем ИД авто в которое сел игрок
        SetPVarInt ( playerid, "VehicleID", vehicleid ) ; // Заносим ИД авто в ПВарку
    }
// Суть в том, что при ТП в авто из авто собейтом, этот паблик не вызывается, по этому игроку не будет присваивается ИД нового авто в которое он ТП
Далее, нам нужно проверять, в каком авто сидит игрок, и равен ли ИД этого авто ИДу в нашей ПВарке. Для этого нам нужен любой таймер на 1 секунду.
Если у Вас есть такой, вписывайте туда этот код
PHP:
if ( IsPlayerInAnyVehicle ( playerid ) && GetPlayerState ( playerid ) == 2 && GetPlayerVehicleID ( playerid ) != GetPVarInt ( playerid, "VehicleID" ) ) return Kick ( playerid ) ; // Проверяем, если игрок в авто и ИД этого авто не равен ИДу записаному в ПВарку, то кикаем
Если же у Вас нету таймера, создаем его

в паблике OnGameInit() пишем
PHP:
SetTimer ( "AntiTPinAuto", 1000, true ) ;
Ну и вне пабликов:

PHP:
forward AntiTPinAuto ( ) ;
public AntiTPinAuto ( )
{
    for ( new i; i <= MAX_PLAYERS; i++ )
    {
        if ( !IsPlayerConnected ( i ) ) continue;
        if ( IsPlayerInAnyVehicle ( i ) && GetPlayerState ( i ) == 2 && GetPlayerVehicleID ( i ) != GetPVarInt ( i, "VehicleID" ) ) return Kick ( i ) ;
    }
    return 1;
}
Автор: YouAreScared
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу