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

 



 
          





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





Последние Файлы 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
Модератор форума: 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
Репутация: 0
Замечания: 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 из 1
  • 1
Поиск:





 


 


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