vert | Дата: Среда, 28.11.2012, 19:54 | Сообщение # 1 |
PAWN
Группа: Пользователь
Сообщений: 422
Статус: Offline
| Античит против использования AirBrk в собейте и паралельно лже-телепорты. >>>ОПИСАНИЕ<<< Данный скрипт узнает если игрок использует чит AirBrk(собейт) либо любой подобный ему. Так же узнает если игрок читом телепортировался. Действует античит следующим образом: Если есть онлайн RCON - админ, то придет сообщение админу с именем игрока. А если нет админа онлайн, то игрока кикнет. Code // Действующий античит против Sobeit:airbrk by Dima-kun build:2000 // Вы можете делать с этим скриптом все что хотите кроме: // 1. Нельзя продавать его. #include < a_samp >
forward onCheckAirBrk( playerid ); forward t_SetPlayerPos( playerid, Float:x, Float:y, Float:z ); enum pinfo { Float: pPos_x, Float: pPos_y, Float: pPos_z, bool:pTeleport, airbrake, pCurrentCar, pInt }new PlayerInfo[ MAX_PLAYERS ][ pinfo ];
public OnFilterScriptInit( ) { print( "[FS] Anti-AirBrk by Dima-kun is loaded" ); return 1; } public OnPlayerConnect( playerid ) { SetTimerEx( "onCheckAirBrk", 1000, false, "i", playerid ); return 1; } public OnPlayerSpawn( playerid ) { PlayerInfo[ playerid ][ pTeleport ] = true; PlayerInfo[ playerid ][ airbrake ] = 0; return 1; } public OnPlayerInteriorChange( playerid, newinteriorid, oldinteriorid ) { PlayerInfo[ playerid ][ pTeleport ] = true; PlayerInfo[ playerid ][ airbrake ] = 0; printf( "%i,%i,%i, %b",playerid, newinteriorid, oldinteriorid, PlayerInfo[ playerid ][ pTeleport ] ); return 1; } public OnPlayerStateChange( playerid, newstate, oldstate ) { if( newstate == PLAYER_STATE_DRIVER )PlayerInfo[ playerid ][ pCurrentCar ] = GetPlayerVehicleID( playerid ); return 1; } public t_SetPlayerPos( playerid, Float:x, Float:y, Float:z ) { SetPlayerPos( playerid, x, y, z ); PlayerInfo[ playerid ][ airbrake ] = 0; PlayerInfo[ playerid ][ pTeleport ] = true; return 1; } public onCheckAirBrk( playerid ) { if( IsPlayerConnected( playerid ) ) { new string[ 128 ], speed = GetPlayerSpeed( playerid, true ), Float:currentPos[ 3 ], Float:distance, currentInt = GetPlayerInterior( playerid ); GetPlayerPos( playerid, currentPos[ 0 ], currentPos[ 1 ], currentPos[ 2 ] ); if(speed < 30) { distance = floatround( GetPlayerDistanceFromPoint( playerid, PlayerInfo[ playerid ][ pPos_x ], PlayerInfo[ playerid ][ pPos_y ], PlayerInfo[ playerid ][ pPos_z] ) ); if( distance > 100 && PlayerInfo[ playerid ][ pTeleport ] == false ) { if( PlayerInfo[ playerid ][ airbrake ] < 1 )PlayerInfo[ playerid ][ airbrake ]++; else { PlayerInfo[ playerid ][ airbrake ] ++; if( PlayerInfo[ playerid ][ airbrake ] > 2 ) { if( IsAdminsOnline() ) { format(string,sizeof( string ), "[Античит]: %s использует собейт(Airbrk).", getName( playerid ) ); SendMessageToAdmins( 0xff0000ff, string ); print( string ); } else { SendClientMessage( playerid, 0xff0000ff,"Вы были кикнуты за использование читов( AirBrk )" ); format(string,sizeof( string ), "[Античит]: %s использовал собейт(Airbrk).", getName( playerid ) ); print( string ); Kick( playerid ); } } } } } PlayerInfo[ playerid ][ pPos_x ] = currentPos[ 0 ]; PlayerInfo[ playerid ][ pPos_y ] = currentPos[ 1 ]; PlayerInfo[ playerid ][ pPos_z ] = currentPos[ 2 ]; PlayerInfo[ playerid ][ pInt ] = currentInt; PlayerInfo[ playerid ][ pTeleport ] = false; SetTimerEx( "onCheckAirBrk", 1000, false, "i", playerid ); } } stock getName( const playerid ) { new pname[ MAX_PLAYER_NAME ]; GetPlayerName( playerid, pname, sizeof( pname ) ); return pname; } stock SendMessageToAdmins( const color, const string[] ) { for( new i = GetMaxPlayers(); i >= 0; i-- ) if( IsPlayerConnected( i ) && IsPlayerAdmin( i ) )SendClientMessage( i, color, string ); return 1; } stock GetPlayerSpeed(const playerid, bool: check3d) { new Float: coord[ 3 ]; if( IsPlayerInAnyVehicle( playerid ) ) GetVehicleVelocity( PlayerInfo[ playerid ][ pCurrentCar ], coord[ 0 ], coord[ 1 ], coord[ 2 ] ); else GetPlayerVelocity( playerid, coord[ 0 ], coord[ 1 ], coord[ 2 ] ); return floatround( floatsqroot( ( check3d ) ? ( coord[ 0 ]*coord[ 0 ] + coord[ 1 ]*coord[ 1 ]+coord[ 2 ]*coord[ 2 ]) : ( coord[ 0 ]*coord[ 0 ] + coord[ 1 ]*coord[ 1 ] ) )*100.0*1.6 ); } stock IsAdminsOnline() { for( new i = GetMaxPlayers(); i >= 0; i-- ) if( IsPlayerConnected( i ) && IsPlayerAdmin( i ) )return 1; return 0; } Автор:Dima-kun
|
|
| |
vesselov | Дата: Пятница, 31.05.2013, 23:03 | Сообщение # 2 |
Прохожий
Группа: Пользователь
Сообщений: 1
Статус: Offline
| не выводит сообщение типа вы были кикнуты по подозрению....
|
|
| |
[Re]Ak[T0R] | Дата: Суббота, 01.06.2013, 08:43 | Сообщение # 3 |
I love Anime ^,,^
Группа: Проверенный
Сообщений: 5
Статус: Offline
| Цитата (vesselov) не выводит сообщение типа вы были кикнуты по подозрению.... Это не в коде дело, походу что то разработчики сампа сделали - и теперь перед киком/баном нельзя вывести текст.
|
|
| |
vert | Дата: Суббота, 01.06.2013, 10:33 | Сообщение # 4 |
PAWN
Группа: Пользователь
Сообщений: 422
Статус: Offline
| Цитата ([Re) Ak[T0R]]Это не в коде дело, походу что то разработчики сампа сделали - и теперь перед киком/баном нельзя вывести текст. Да, это баг 0.3x RC 1-2 все след версий сампа все исправят.
Skype: avg.kazax VK: vk.com/ukazax
|
|
| |
Steep_Nk | Дата: Пятница, 04.10.2013, 16:20 | Сообщение # 5 |
Прохожий
Группа: Пользователь
Сообщений: 37
Статус: Offline
| forward KickPublic(playerid); public KickPublic(playerid) Kick(playerid);
stock KickWithMessage(playerid, color, message[]) { SendClientMessage(playerid, color, message); SetTimerEx("KickPublic", 1000, 0, "d", playerid); }
Сообщение отредактировал Steep_Nk - Пятница, 04.10.2013, 16:21 |
|
| |
nizom | Дата: Понедельник, 24.03.2014, 10:25 | Сообщение # 6 |
Прохожий
Группа: Пользователь
Сообщений: 1
Статус: Offline
| куда поставить эти коды???
|
|
| |
vert | Дата: Понедельник, 24.03.2014, 11:21 | Сообщение # 7 |
PAWN
Группа: Пользователь
Сообщений: 422
Статус: Offline
| Цитата nizom ( ) куда поставить эти коды??? Вставь этот код в скрипт и скомпилируй.
Skype: avg.kazax VK: vk.com/ukazax
|
|
| |
Pasha-Sytnik | Дата: Четверг, 18.06.2015, 15:54 | Сообщение # 8 |
Прохожий
Группа: Пользователь
Сообщений: 1
Статус: Offline
| Не понел подскажи ище раз куда это вставить
|
|
| |
sammanymakers | Дата: Суббота, 20.06.2015, 12:44 | Сообщение # 9 |
Прохожий
Группа: Журналист Pro
Сообщений: 4
Статус: Offline
| vert, Цитата Pasha-Sytnik ( ) Не понел подскажи ище раз куда это вставить biggrin Вставь этот код в скрипт и скомпилируй.
|
|
| |