Join the forum, it's quick and easy

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

Анти-Тп в автомобиль

Перейти вниз

Анти-Тп в автомобиль Empty Анти-Тп в автомобиль

Сообщение  Ulkiorra Сб Авг 11, 2012 1:01 am


Код:
#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;
}



Плюсы этого варианта:

-Ловит тп в авто (хоть пешком в авто, хоть из авто в авто)
- Ловит даже если нажать возле одного авто интер, а тп внутрь другого авто.

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

Ulkiorra

Сообщения : 30
Репутация : 1
Дата регистрации : 2012-08-10

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

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