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

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

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

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

Анти - ТП в авто.

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

Kreed

Умник
Простая система Анти - ТП в авто. :)

PHP:
//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);//если не высаживаете игрока, например только даете предупреждение */ 
} 
//
При необходимости добавить:

PHP:
stock PlayerName(playerid){ 
new pname[MAX_PLAYER_NAME]; 
GetPlayerName(playerid,pname,sizeof(pname)); 
return pname;}
Все PutPlayerInVehicle(playerid, vehicleid, seatid); заменить на PutPlayerInVeh(playerid, vehicleid, seatid);

Вниз мода добавить:

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

Минусы:

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

(c) Games​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу