07:42
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: Alcoholik  
AIM Bot Detection (Обнаружитель аима)
AXEДата: Среда, 29.01.2014, 03:53 | Сообщение # 1
Группа: Администратор
Сообщений: 6575
Награды: 156
Город: Ильичёвск
Репутация: 3907
Статус:
NOTE: the hit / miss ratio can be edited by changing the total2 value in each of the three weapon classes. ex: for handguns, shotguns, snipers. - "if(hitsA[issuerid] == 12)" Количество попаданий в игрока. - "if(total1A[issuerid] - total2A[issuerid] < 15)" Количество выстрелов в игрока.
- Если из 15ти выстрелов в игрока попали 12, то стрелок получает предупреждение об использовании аима.
Сервера с лаговой синхрой стрельбы
[cut noguest]
//This script is designed to help admins to detect when a player is using aimbot NOTE: also works on joypad users
//When aimbot users are detected a message will be sent to admins to spectate that player
//It is possible to get false positives (but rare) ex: player runs away in a straight line (LOL) and gets shot by another player that never misses
//I do not advise using kick or ban instead of the message, you don't want to punish good players do you?
//Use this script on any 0.3d or higher servers that have lag shooting
#include <a_samp>
#include <foreach>
#define red 0xFF0000AA
//#define TEST_MOVEMENT //uncomment this line to use debug, this will send a message to all players OnPlayerUpdate if they are "IN MOTION" or "STOPPED" (returns "STOPPED" in a vehicle) new ammo1, ammo2, ammo3, ammo4, ammo5, ammo6, ammo7, ammo8, ammo9, ammo10, ammo11, weapon, total1A[MAX_PLAYERS], total2A[MAX_PLAYERS], total1B[MAX_PLAYERS], total2B[MAX_PLAYERS], total1C[MAX_PLAYERS], total2C[MAX_PLAYERS], hitsA[MAX_PLAYERS], hitsB[MAX_PLAYERS], hitsC[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
hitsA[playerid] = 0;
hitsB[playerid] = 0;
hitsC[playerid] = 0;
total1A[playerid] = 0;
total2A[playerid] = 0;
total1B[playerid] = 0;
total2B[playerid] = 0;
total1C[playerid] = 0;
total2C[playerid] = 0;
return 1;

}
public OnPlayerDisconnect(playerid, reason)
{
hitsA[playerid] = 0;
hitsB[playerid] = 0;
hitsC[playerid] = 0;
total1A[playerid] = 0;
total2A[playerid] = 0;
total1B[playerid] = 0;
total2B[playerid] = 0;
total1C[playerid] = 0;
total2C[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
if(!IsPlayerConnected(playerid)) return 0;
hitsA[playerid] = 0;
hitsB[playerid] = 0;
hitsC[playerid] = 0;
total1A[playerid] = 0;
total2A[playerid] = 0;
total1B[playerid] = 0;
total2B[playerid] = 0;
total1C[playerid] = 0;
total2C[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(!IsPlayerConnected(playerid)) return 0;
hitsA[playerid] = 0;
hitsB[playerid] = 0;
hitsC[playerid] = 0;
total1A[playerid] = 0;
total2A[playerid] = 0;
total1B[playerid] = 0;
total2B[playerid] = 0;
total1C[playerid] = 0;
total2C[playerid] = 0;
return 1;
}
public OnPlayerUpdate(playerid)
{
#if defined TEST_MOVEMENT IsPlayerMoving(playerid);
#endif return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(!IsPlayerConnected(issuerid)) return 0;
if(IsPlayerMoving(playerid) && hitsA[issuerid] == 0 && GetPlayerWeapon(issuerid) > 15 && GetPlayerWeapon(issuerid) < 28 || IsPlayerMoving(playerid) && hitsA[issuerid] == 0 && GetPlayerWeapon(issuerid) > 32 && GetPlayerWeapon(issuerid) < 35) //handguns, shotguns, snipers
{
total1A[issuerid] = GetPlayerTotalAmmo(issuerid);
hitsA[issuerid] ++;
}
if(IsPlayerMoving(playerid) && hitsA[issuerid] > 0 && hitsA[issuerid] < 12 && GetPlayerWeapon(issuerid) > 15 && GetPlayerWeapon(issuerid) < 28)
{
hitsA[issuerid] ++;
}
if(hitsA[issuerid] == 12)
{
total2A[issuerid] = GetPlayerTotalAmmo(issuerid);
if(total1A[issuerid] - total2A[issuerid] < 15 && total1A[issuerid] - total2A[issuerid] >= 0)
{
new name[MAX_PLAYER_NAME], string[192];
GetPlayerName(issuerid,name,sizeof(name));
hitsA[issuerid] = 0;
format(string, sizeof string, "{FF7D7D}[ATTENTION] {FF0000}%s {FF7D7D}id{FF0000}[%d] {FF7D7D}Needs to be spectated, {FF0000}Reason: {FF7D7D}POSSIBLE AIMBOT.", name, issuerid);
foreach (new i : Player)
{
if(IsPlayerAdmin(i)) SendClientMessage(i,red,string);
//will send to rcon admins unless you edit it for your admin script
}
}
else
{
hitsA[issuerid] = 0;
}
}
if(IsPlayerMoving(playerid) && hitsB[issuerid] == 0 && GetPlayerWeapon(issuerid) == 28 || IsPlayerMoving(playerid) && hitsB[issuerid] == 0 && GetPlayerWeapon(issuerid) == 32) //tec 9 and uzi
{
total1B[issuerid] = GetPlayerTotalAmmo(issuerid);
hitsB[issuerid] ++;
}
if(IsPlayerMoving(playerid) && hitsB[issuerid] > 0 && hitsB[issuerid] < 26 && GetPlayerWeapon(issuerid) == 28 || IsPlayerMoving(playerid) && hitsB[issuerid] > 0 && hitsB[issuerid] < 26 && GetPlayerWeapon(issuerid) == 32)
{
hitsB[issuerid] ++;
}
if(hitsB[issuerid] == 26)
{
total2B[issuerid] = GetPlayerTotalAmmo(issuerid);
if(total1B[issuerid] - total2B[issuerid] < 30 && total1B[issuerid] - total2B[issuerid] >= 0)
{
new name[MAX_PLAYER_NAME], string[192];
GetPlayerName(issuerid,name,sizeof(name));
hitsB[issuerid] = 0;
format(string, sizeof string, "{FF7D7D}[ATTENTION] {FF0000}%s {FF7D7D}id{FF0000}[%d] {FF7D7D}Needs to be spectated, {FF0000}Reason: {FF7D7D}POSSIBLE AIMBOT.", name, issuerid);
foreach (new i : Player)
{
if(IsPlayerAdmin(i)) SendClientMessage(i,red,string);
//will send to rcon admins unless you edit it for your admin script
}
}
else
{
hitsB[issuerid] = 0;
}
}
if(IsPlayerMoving(playerid) && hitsC[issuerid] == 0 && GetPlayerWeapon(issuerid) > 28 && GetPlayerWeapon(issuerid) < 32) //MP5, AK47, M4
{
total1C[issuerid] = GetPlayerTotalAmmo(issuerid);
hitsC[issuerid] ++;
}
if(IsPlayerMoving(playerid) && hitsC[issuerid] > 0 && hitsC[issuerid] < 20 && GetPlayerWeapon(issuerid) > 28 && GetPlayerWeapon(issuerid) < 32)
{
hitsC[issuerid] ++;
}
if(hitsC[issuerid] == 20)
{
total2C[issuerid] = GetPlayerTotalAmmo(issuerid);
if(total1C[issuerid] - total2C[issuerid] < 23 && total1C[issuerid] - total2C[issuerid] >= 0)
{
new name[MAX_PLAYER_NAME], string[192];
GetPlayerName(issuerid,name,sizeof(name));
hitsC[issuerid] = 0;
format(string, sizeof string, "{FF7D7D}[ATTENTION] {FF0000}%s {FF7D7D}id{FF0000}[%d] {FF7D7D}Needs to be spectated, {FF0000}Reason: {FF7D7D}POSSIBLE AIMBOT.", name, issuerid);
foreach (new i : Player)
{
if(IsPlayerAdmin(i)) SendClientMessage(i,red,string);
//will send to rcon admins unless you edit it for your admin script
}
}
else
{
hitsC[issuerid] = 0;
}
}
return 1;
}
stock IsPlayerMoving(playerid)
{
new Float:Velocity[3];
GetPlayerVelocity(playerid, Velocity[0], Velocity[1], Velocity[2]);
if(Velocity[0] >= 0.02 || Velocity[1] >= 0.02 || Velocity[2] >= 0.02 || Velocity[0] <= -0.02 || Velocity[1] <= -0.02 //set at 0.02 and -0.02 will detect any on foot movement faster than standing on an escalator || Velocity[2] <= -0.02) //set at 0.07 and -0.07 will detect any on foot movement faster than walking or strafing (running)
{
#if defined TEST_MOVEMENT SendClientMessage(playerid, -1, "IN MOTION");
#endif return true;
}
else
{
#if defined TEST_MOVEMENT SendClientMessage(playerid, red, "STOPPED");
#endif return false;
}
}
stock GetPlayerTotalAmmo(playerid) //fist and melee weaps excluded
{
new totalammo;
GetPlayerWeaponData(playerid, 2, weapon, ammo1);
GetPlayerWeaponData(playerid, 3, weapon, ammo2);
GetPlayerWeaponData(playerid, 4, weapon, ammo3);
GetPlayerWeaponData(playerid, 5, weapon, ammo4);
GetPlayerWeaponData(playerid, 6, weapon, ammo5);
GetPlayerWeaponData(playerid, 7, weapon, ammo6);
GetPlayerWeaponData(playerid, 8, weapon, ammo7);
GetPlayerWeaponData(playerid, 9, weapon, ammo8);
GetPlayerWeaponData(playerid, 11, weapon, ammo9);
GetPlayerWeaponData(playerid, 12, weapon, ammo10);
GetPlayerWeaponData(playerid, 13, weapon, ammo11);
totalammo = ammo1+ammo2+ammo3+ammo4+ammo5+ammo6+ammo7+ammo8+ammo9+ammo10+ammo11;
return totalammo;
}
[/cut]
Сервера с нормальной синхрой стрельбы [cut noguest]
//This script is designed to help admins to detect when a player is using aimbot NOTE: also works on joypad users
//When aimbot users are detected a message will be sent to admins to spectate that player
//It is possible to get false positives (but rare) ex: player runs away in a straight line (LOL) and gets shot by another player that never misses
//I do not advise using kick or ban instead of the message, you don't want to punish good players do you?
//Use this script on 0.3z servers or any servers 0.3d or higher that have no lag shooting
//Remember to add "bodypart" to OnPlayerGiveDamage for 0.3z servers
#include <a_samp>
#include <foreach>
#define red 0xFF0000AA
//#define TEST_MOVEMENT
//uncomment this line to use debug, this will send a message to all players OnPlayerUpdate if they are "IN MOTION" or "STOPPED" (returns "STOPPED" in a vehicle) new ammo1, ammo2, ammo3, ammo4, ammo5, ammo6, ammo7, ammo8, ammo9, ammo10, ammo11, weapon, total1A[MAX_PLAYERS], total2A[MAX_PLAYERS], total1B[MAX_PLAYERS], total2B[MAX_PLAYERS], total1C[MAX_PLAYERS], total2C[MAX_PLAYERS], hitsA[MAX_PLAYERS], hitsB[MAX_PLAYERS], hitsC[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
hitsA[playerid] = 0;
hitsB[playerid] = 0;
hitsC[playerid] = 0;
total1A[playerid] = 0;
total2A[playerid] = 0;
total1B[playerid] = 0;
total2B[playerid] = 0;
total1C[playerid] = 0;
total2C[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
hitsA[playerid] = 0;
hitsB[playerid] = 0;
hitsC[playerid] = 0;
total1A[playerid] = 0;
total2A[playerid] = 0;
total1B[playerid] = 0;
total2B[playerid] = 0;
total1C[playerid] = 0;
total2C[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
if(!IsPlayerConnected(playerid)) return 0;
hitsA[playerid] = 0;
hitsB[playerid] = 0;
hitsC[playerid] = 0;
total1A[playerid] = 0;
total2A[playerid] = 0;
total1B[playerid] = 0;
total2B[playerid] = 0;
total1C[playerid] = 0;
total2C[playerid] = 0;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(!IsPlayerConnected(playerid)) return 0;
hitsA[playerid] = 0;
hitsB[playerid] = 0;
hitsC[playerid] = 0;
total1A[playerid] = 0;
total2A[playerid] = 0;
total1B[playerid] = 0;
total2B[playerid] = 0;
total1C[playerid] = 0;
total2C[playerid] = 0;
return 1;
}
public OnPlayerUpdate(playerid)
{
#if defined TEST_MOVEMENT IsPlayerMoving(playerid);
#endif return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
if(!IsPlayerConnected(playerid)) return 0;
if(IsPlayerMoving(damagedid) && hitsA[playerid] == 0 && GetPlayerWeapon(playerid) > 15 && GetPlayerWeapon(playerid) < 28 || IsPlayerMoving(damagedid) && hitsA[playerid] == 0 && GetPlayerWeapon(playerid) > 32 && GetPlayerWeapon(playerid) < 35) //handguns, shotguns, snipers
{
total1A[playerid] = GetPlayerTotalAmmo(playerid);
hitsA[playerid] ++;
}
if(IsPlayerMoving(damagedid) && hitsA[playerid] > 0 && hitsA[playerid] < 12 && GetPlayerWeapon(playerid) > 15 && GetPlayerWeapon(playerid) < 28)
{
hitsA[playerid] ++;
}
if(hitsA[playerid] == 12)
{
total2A[playerid] = GetPlayerTotalAmmo(playerid);
if(total1A[playerid] - total2A[playerid] < 15 && total1A[playerid] - total2A[playerid] >= 0)
{
new name[MAX_PLAYER_NAME], string[192];
GetPlayerName(playerid,name,sizeof(name));
hitsA[playerid] = 0;
format(string, sizeof string, "{FF7D7D}[ATTENTION] {FF0000}%s {FF7D7D}id{FF0000}[%d] {FF7D7D}Needs to be spectated, {FF0000}Reason: {FF7D7D}POSSIBLE AIMBOT.", name, playerid);
foreach (new i : Player)
{
if(IsPlayerAdmin(i)) SendClientMessage(i,red,string);
//will send to rcon admins unless you edit it for your admin script
}
}
else
{
hitsA[playerid] = 0;
}
}
if(IsPlayerMoving(damagedid) && hitsB[playerid] == 0 && GetPlayerWeapon(playerid) == 28 || IsPlayerMoving(damagedid) && hitsB[playerid] == 0 && GetPlayerWeapon(playerid) == 32) //tec 9 and uzi
{
total1B[playerid] = GetPlayerTotalAmmo(playerid);
hitsB[playerid] ++;
}
if(IsPlayerMoving(damagedid) && hitsB[playerid] > 0 && hitsB[playerid] < 26 && GetPlayerWeapon(playerid) == 28 || IsPlayerMoving(damagedid) && hitsB[playerid] > 0 && hitsB[playerid] < 26 && GetPlayerWeapon(playerid) == 32)
{
hitsB[playerid] ++;
}
if(hitsB[playerid] == 26)
{
total2B[playerid] = GetPlayerTotalAmmo(playerid);
if(total1B[playerid] - total2B[playerid] < 30 && total1B[playerid] - total2B[playerid] >= 0)
{
new name[MAX_PLAYER_NAME], string[192];
GetPlayerName(playerid,name,sizeof(name));
hitsB[playerid] = 0;
format(string, sizeof string, "{FF7D7D}[ATTENTION] {FF0000}%s {FF7D7D}id{FF0000}[%d] {FF7D7D}Needs to be spectated, {FF0000}Reason: {FF7D7D}POSSIBLE AIMBOT.", name, playerid);
foreach (new i : Player)
{
if(IsPlayerAdmin(i)) SendClientMessage(i,red,string);
//will send to rcon admins unless you edit it for your admin script
}
}
else
{
hitsB[playerid] = 0;
}
}
if(IsPlayerMoving(damagedid) && hitsC[playerid] == 0 && GetPlayerWeapon(playerid) > 28 && GetPlayerWeapon(playerid) < 32) //MP5, AK47, M4
{
total1C[playerid] = GetPlayerTotalAmmo(playerid);
hitsC[playerid] ++;
}
if(IsPlayerMoving(damagedid) && hitsC[playerid] > 0 && hitsC[playerid] < 20 && GetPlayerWeapon(playerid) > 28 && GetPlayerWeapon(playerid) < 32)
{
hitsC[playerid] ++;
}
if(hitsC[playerid] == 20)
{
total2C[playerid] = GetPlayerTotalAmmo(playerid);
if(total1C[playerid] - total2C[playerid] < 23 && total1C[playerid] - total2C[playerid] >= 0)
{
new name[MAX_PLAYER_NAME], string[192];
GetPlayerName(playerid,name,sizeof(name));
hitsC[playerid] = 0;
format(string, sizeof string, "{FF7D7D}[ATTENTION] {FF0000}%s {FF7D7D}id{FF0000}[%d] {FF7D7D}Needs to be spectated, {FF0000}Reason: {FF7D7D}POSSIBLE AIMBOT.", name, playerid);
foreach (new i : Player)
{
if(IsPlayerAdmin(i)) SendClientMessage(i,red,string);
//will send to rcon admins unless you edit it for your admin script
}
}
else
{
hitsC[playerid] = 0;
}
}
return 1;
}
stock IsPlayerMoving(playerid)
{
new Float:Velocity[3];
GetPlayerVelocity(playerid, Velocity[0], Velocity[1], Velocity[2]);
if(Velocity[0] >= 0.02 || Velocity[1] >= 0.02 || Velocity[2] >= 0.02 || Velocity[0] <= -0.02 || Velocity[1] <= -0.02 //set at 0.02 and -0.02 will detect any on foot movement faster than standing on an escalator || Velocity[2] <= -0.02) //set at 0.07 and -0.07 will detect any on foot movement faster than walking or strafing (running)
{
#if defined TEST_MOVEMENT SendClientMessage(playerid, -1, "IN MOTION");
#endif return true;
}
else
{
#if defined TEST_MOVEMENT SendClientMessage(playerid, red, "STOPPED");
#endif return false;
}
}
stock GetPlayerTotalAmmo(playerid) //fist and melee weaps excluded
{
new totalammo;
GetPlayerWeaponData(playerid, 2, weapon, ammo1);
GetPlayerWeaponData(playerid, 3, weapon, ammo2);
GetPlayerWeaponData(playerid, 4, weapon, ammo3);
GetPlayerWeaponData(playerid, 5, weapon, ammo4);
GetPlayerWeaponData(playerid, 6, weapon, ammo5);
GetPlayerWeaponData(playerid, 7, weapon, ammo6);
GetPlayerWeaponData(playerid, 8, weapon, ammo7);
GetPlayerWeaponData(playerid, 9, weapon, ammo8);
GetPlayerWeaponData(playerid, 11, weapon, ammo9);
GetPlayerWeaponData(playerid, 12, weapon, ammo10);
GetPlayerWeaponData(playerid, 13, weapon, ammo11);
totalammo = ammo1+ammo2+ammo3+ammo4+ammo5+ammo6+ammo7+ammo8+ammo9+ammo10+ammo11;
return totalammo;
}
[/cut]
Кто протестит и кому пригодился, отпишитесь как оно.



Love will set you free!



Не совсем понятно что будет дальше, но ведь так во всём, даже бросая ровно в корзину бумагу, будучи уверенным на все 100%, что попадёшь, в последний момент дуновение ветра может сменить его траекторию.
Только продолжая свой путь, ты можешь зацепиться за жизнь так, что успеешь сделать всё, что задумал. Главное ставить себе цели, которые тебя волную.
Будь не тем, кем пытается сделать тебя жизнь, а тем, кем пытаешься сделать себя ты. Тогда жизнь поможет стать тем, кем хочешь.
Dima-kunДата: Среда, 29.01.2014, 09:46 | Сообщение # 2
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
а если просто игрок меткий?)


Мои работы:
[INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники,
[FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos,
[GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints


Сообщение отредактировал Dima-kun - Среда, 29.01.2014, 09:46
GeryyДата: Среда, 29.01.2014, 11:03 | Сообщение # 3
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Еще один: Autoaim detection script - NOT joypad
http://pastebin.com/eUwspDRN



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.

Сообщение отредактировал Geryy - Среда, 29.01.2014, 11:03
massaoffДата: Среда, 29.01.2014, 17:58 | Сообщение # 4
Местный
Группа: I'm V.I.P.
Сообщений: 535
Награды: 4
Город: Березники
Репутация: 187
Замечания: 40%
Статус:
А если специально стреляют в друг друга
Цитата Dima-kun ()
а если просто игрок меткий?)

А если стреляют например с мп5, гораздо легче попасть 12-15 раз
много этих если



- Учимся рипать сайт
- Memfiso-RPG мод
Оказываю платную помощь, в создании и редактировании(доработка, исправление багов, реализация ваших идей) ваших модов/скриптов выполненных в pawno.
Обращайтесь в скайп: massaoff РАБОТАЮ ТОЛЬКО С 50% ПРЕДОПЛАТОЙ!

AXEДата: Четверг, 30.01.2014, 06:02 | Сообщение # 5
Группа: Администратор
Сообщений: 6575
Награды: 156
Город: Ильичёвск
Репутация: 3907
Статус:
massaoff, если игрок так палит каждый бой, то можно банить. Если сообщение пришло только после 1-2х боёв, то совпадение.


Love will set you free!



Не совсем понятно что будет дальше, но ведь так во всём, даже бросая ровно в корзину бумагу, будучи уверенным на все 100%, что попадёшь, в последний момент дуновение ветра может сменить его траекторию.
Только продолжая свой путь, ты можешь зацепиться за жизнь так, что успеешь сделать всё, что задумал. Главное ставить себе цели, которые тебя волную.
Будь не тем, кем пытается сделать тебя жизнь, а тем, кем пытаешься сделать себя ты. Тогда жизнь поможет стать тем, кем хочешь.
underworkerДата: Понедельник, 03.02.2014, 14:14 | Сообщение # 6
Новенький
Группа: Продвинутые
Сообщений: 21
Награды: 0
Город: Kazan
Репутация: 13
Замечания: 0%
Статус:
Как только перейду на 0.3z поставлю)


Открытие нового проекта
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua