Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

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

[ Scr ][ All ] Анти-Тп В Авто

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

1[ Scr ][ All ] Анти-Тп В Авто  Empty [ Scr ][ All ] Анти-Тп В Авто Пт Ноя 08, 2013 1:04 pm

Pawno

Pawno
Местный
Местный

Код:
//by Games
#include a_samp
new IDVEH[MAX_PLAYERS];
new bool:UseEnter[MAX_PLAYERS];

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER )
    {
                if(IDVEH[playerid] != GetPlayerVehicleID(playerid) || !UseEnter[playerid])
                {
                        Punish(playerid);
                }
                UseEnter[playerid] = false;
        }
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
        ResetCarInfo(playerid);
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
        UseEnter[playerid] = true;
        IDVEH[playerid]=vehicleid;
        return 1;
}

public OnPlayerConnect(playerid)
{
        ResetCarInfo(playerid);
    return 1;
}

public OnPlayerDisconnect(playerid,reason)
{
    ResetCarInfo(playerid);
    return 1;
}

public OnFilterScriptInit()
{
    SetTimer("CheckCar",1000,1);//если в мод вшивать будете, то в public OnGameModeInit()
}

forward CheckCar();
public CheckCar()
{
    for(new i; i<GetMaxPlayers(); i++)
    {
        if(IDVEH[i] != -1 && IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && !UseEnter[i] && IDVEH[i] != GetPlayerVehicleID(i)) Punish(i);
    }
        return 1;
}

stock ResetCarInfo(playerid)
{
    IDVEH[playerid]=-1;
    UseEnter[playerid] = false;
}

stock Punish(playerid)
{
        new string[MAX_PLAYER_NAME+40];
        format(string,sizeof(string),"{FFFF66}%s был кикнут за тп в авто!",PlayerName(playerid));
        SendClientMessageToAll(-1, string);
        Kick(playerid);
        /*ResetCarInfo(playerid); //если наказание не кик, но вы вытаскиваете игрока из авто, например посадите в тюрьму*/
        /*IDVEH[playerid]=GetPlayerVehicleID(playerid);//если не высаживаете игрока, например только даете предупреждение */
}
//
При необходимости добавить:
Код:
stock PlayerName(playerid){
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
return pname;}
Все PutPlayerInVehicle(playerid, vehicleid, seatid); заменить на PutPlayerInVeh(playerid, vehicleid, seatid);

Вниз мода добавить:
Код:
stock PutPlayerInVeh(playerid, vehicleid, seatid)
{
    UseEnter[playerid] = false;
    IDVEH[playerid] = vehicleid;
    PutPlayerInVehicle(playerid, vehicleid, seatid);
    return 1;
}
Плюсы этого варианта:
-Ловит тп в авто (хоть пешком в авто, хоть из авто в авто)
- Ловит даже если нажать возле одного авто интер, а тп внутрь другого авто.

Минусы:
- Не ловит, если нажать возле авто интер, а потом тп читом в это же авто.

Автор: Games

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

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