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

 



 
        
Подвиcание SA-MP (1)
JasonGordon 20.02.2017 10:26
MYSQL Донат (2)
JasonGordon 08.02.2017 10:39
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы 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
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
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: Dima-kun 
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [Tutorial] Античит на Aim (программа перчик / Joypad)
[Tutorial] Античит на Aim (программа перчик / Joypad)
SatelliteДата: Пятница, 30.03.2012, 18:01 | Сообщение # 1
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
Здравствуйте! В этом теме я опубликую свой античит на Aim. Собственно, в нашем случае Aim'ом является режим управления через Joypad или программа (альтернатива) Aim (перчик на ярлыке).

Алгоритм: При использовании данного типа прицеливания у игрока отключён прицел, но есть круглая обводка, которая постоянно наведена на нашу цель. Во время выстрелов (видны только тому, кто стреляет, пули попадут в цель лишь тогда, если у цели пинг < 30 или он стоит на месте) мы проверяем, на кого наведён прицел. Если выстрел произошел, а прицела нет — игрок использует наш вышеупомянутый «аим».

Code
#define MAX_AIM_TICKS 3 // Требуемое кол-во выстрелов, чтобы определить чит
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid) { // Автовызываемая ф-ция, которая отвечает за то, что игрок в своём клиенте пытается дать урон другому игроку  
  if(damagedid == INVALID_PLAYER_ID || !CheckFireArm(GetPlayerWeapon(playerid)) || GetPlayerTargetPlayer(playerid) != INVALID_PLAYER_ID) return 1; // Если игрок ни в кого не стреляет / стреляет не с огнестрельного оружия / не прицелился в цель  
  new count = GetPVarInt(playerid, "aimcount"), ticks = GetPVarInt(playerid, "aimtick"), currtick = GetTickCount(); // Переменные для кол-ва выстрелов; время последнего выстрела относительно запуска сервера; текущего время относительно запуска сервера
  if(currtick - ticks <= 10000 && count + 1 >= MAX_AIM_TICKS) { // Если интервал между выстрелами меньше или равен 10 секунд и кол-во выстрелов больше или равно требуемому кол-ву выстрелов, чтобы определить чит
   new msg[144], name[MAX_PLAYER_NAME];  // Массивы для сообщения и хранения никнейма игрока
   GetPlayerName(playerid, name, MAX_PLAYER_NAME); // Узнаём никнейм игрока
   format(msg, 144, "%s[%i] кикнут по подозрению на использование Aim / Joypad.", name, playerid); // Форматируем сообщение
   SendClientMessageToAll(-1, msg); // Отправляем сообщение всем игрокам
   Kick(playerid); // Кикаем читера
   // ПРИМЕЧАНИЕ! Если Вы замените кик на другое наказание (к примеру, сообщение) — добавьте сюда удаление PVAR'ов и ануллирование переменной count (как в коде после оператора else if ниже)
  }
  else if(currtick - ticks > 10000) { // Если условие выше не выполнилось и интервал между выстрелами больше 10 секунд
   DeletePVar(playerid, "aimcount"); // Удаляем PVar, который хранит кол-во выстрелов
   DeletePVar(playerid, "aimtick"); // Удаляем PVar, который хранит время относительно включения сервера
   count = 0; // Ануллируем переменную count
   currtick = GetTickCount(); // Обновляем время относительно запуска сервера
  }
  SetPVarInt(playerid, "aimcount", count + 1); // Записываем кол-во выстрелов
  SetPVarInt(playerid, "aimtick", currtick); // Записываем время последнего выстрела относительно запуска сервера (в милисекундах)
     return 1;
}

CheckFireArm(weaponid) { // Ф-ция, которая определяет, огнестрельное ли оружие (weaponid)
  switch(weaponid) {
   case 16..39, 41..43: return 1; // Условие, если ID оружие в указанном диапазоне — ф-ция возвращает 1
   default: return 0; // Если оружие вне указанного выше диапазона — ф-ция возвращает 0
  }
  return 0;
}


Автор скрипта: Snoowker

Копирование материала на посторонние ресурсы без разрешения автора строго запрещено!



Сообщение отредактировал Satellite - Суббота, 31.03.2012, 00:40
Kr[A]zДата: Пятница, 30.03.2012, 18:46 | Сообщение # 2
Советчик
Группа: Пользователи
Сообщений: 1203
Награды: 18
Город: Барнаул
Репутация: 1794
Замечания: 80%
Статус:
А разве не целясь нельзя попасть?
SatelliteДата: Пятница, 30.03.2012, 19:06 | Сообщение # 3
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
Хорошо подметил. Как включат в доме электричество - добавлю условие на несколько таких выстрелов подряд с GetTickCount.
[RD]ChezДата: Пятница, 30.03.2012, 19:06 | Сообщение # 4
Мастер джэдай
Группа: Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 64
Замечания: 20%
Статус:
можно :D
автор, это не туториал, это - "я пиарюсь" зовется



1 час моей работы стоит минимум 800 рублей для срочных работ.
Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS.
Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы.
Немного ассемблер.
Ох**тельный верстальщик какб.

Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^

chezrd@gmail.com
lance@chez-lab.ru
SatelliteДата: Суббота, 31.03.2012, 00:42 | Сообщение # 5
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
Обновил первое сообщение, немного переписал античит.

Quote (|RD|Chez)
автор, это не туториал, это - "я пиарюсь" зовется

Если ты простой урок / туториал считаешь «пиаром» — дело твоё, но ведь это не значит, что это так есть.

Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [Tutorial] Античит на Aim (программа перчик / Joypad)
Страница 1 из 11
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM