Вы не подключены. Войдите или зарегистрируйтесь

[ Scr ][ All ] Античит На Тп Машин

Перейти вниз  Сообщение [Страница 1 из 1]

Pawno

avatar
Местный
Местный
Представляю вашему вниманию экспериментальную версию античита на телепортацию автомобиля к игроку (читеру).

Ахтунг: Корректная работа данного скрипта не гарантируется! Только для тестирования!

Версии:
0.1.2 - добавлена функция avtp_PutPlayerInVehicle
0.1.1 - добавлена функция avtp_SetVehiclePos
0.1.0 - релиз

Исходники:
Код:
// AVTP anticheat by OFFREAL
// WARNING: Experimental version
// avtp.inc

#if defined _avtp_included
  #endinput
#endif

#define _avtp_included
#pragma library avtp

// Переменные:

#define STREAM_DIST_MIN 100.00

new bool:v_Streamed[ MAX_VEHICLES ][ MAX_PLAYERS ];

// Паблики (требуется добавить ссылки на эти функции в оргинальных пабликах)

stock avtp_OnVehicleStreamIn(vehicleid, forplayerid)
{
    new Float:vehx, Float:vehy, Float:vehz;
    GetVehiclePos(vehicleid, vehx, vehy, vehz);
    if( GetPlayerDistanceFromPoint(forplayerid, vehx, vehy, vehz) < STREAM_DIST_MIN && !v_Streamed[vehicleid][forplayerid] )
    {
        SendClientMessage(forplayerid, -1, "Подозрение в ТП машин. Соединение было разорвано сервером");
        //Kick(forplayerid);
        //SetVehicleToRespawn(vehicleid);
        return 1;
    }
    v_Streamed[vehicleid][forplayerid] = true;
    return 1;
}

stock avtp_OnVehicleStreamOut(vehicleid, forplayerid)
{
    v_Streamed[vehicleid][forplayerid] = false;
    return 1;
}

stock avtp_OnPlayerConnect(playerid)
{
    for(new v;v<MAX_VEHICLES;v++)
    {
        v_Streamed[v][playerid] = false;
    }
    return 1;
}

stock avtp_OnVehicleSpawn(vehicleid)
{
    new Float:vehx, Float:vehy, Float:vehz;
    GetVehiclePos(vehicleid, vehx, vehy, vehz);
    for(new i; i<MAX_PLAYERS; i++)
    {
        if( GetPlayerDistanceFromPoint(i, vehx, vehy, vehz) < STREAM_DIST_MIN )
        {
            v_Streamed[vehicleid][i] = true;
        }
        else
        {
            v_Streamed[vehicleid][i] = false;
        }
    }
    return 1;
}

// Замена стандарт функций

stock avtp_SetplayerPos(playerid, Float:X, Float:Y, Float:Z)
{
    for(new i; i<MAX_VEHICLES; i++)
    {
        if( GetVehicleDistanceFromPoint(i, X, Y, Z) < STREAM_DIST_MIN )
        {
            v_Streamed[i][playerid] = true;
        }
        else
        {
            v_Streamed[i][playerid] = false;
        }
    }
    SetPlayerPos(playerid,X,Y,Z);
    return 1;
}

stock avtp_SetVehiclePos(vid, Float:X, Float:Y, Float:Z)
{
    for(new i; i<MAX_PLAYERS; i++)
    {
        if( GetPlayerDistanceFromPoint(i, X, Y, Z) < STREAM_DIST_MIN )
        {
            v_Streamed[vid][i] = true;
        }
        else
        {
            v_Streamed[vid][i] = false;
        }
    }
    SetVehiclePos(vid,X,Y,Z);
    return 1;
}

stock avtp_PutPlayerInVehicle(playerid, vehicleid, seat)
{
    v_Streamed[vehicleid][playerid] = true;
    PutPlayerInVehicle(playerid, vehicleid, seat);
}

#define SetplayerPos avtp_SetplayerPos
#define SetVehiclePos avtp_SetVehiclePos
#define PutPlayerInVehicle avtp_PutPlayerInVehicle
Автор: OFFREAL

Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения