Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

История благодарностей участнику sxzar1987 ::: Спасибо сказали: 19
Дата поста: В теме: За сообщение: Спасибо сказали:
30.1.2013, 19:32 Timepass Anticheat
Может путаете со СпидКилл?

Смотрите - у меня наказание за спидХак работает идеально, а вот про СпидКилл сейчас напишу ниже.
СпидКилл - настраивается в advanced_config.cfg
Что это за СпидКилл?
Существует Быстрый СпидХак и Медленный (рывками).
Быстрый палится любым анти-читом и видно сразу, а медленный, если админ новичёк иногда не сразу обратит внимание на такой вид спидхака, да и любой анти-чит не станет его обнаруживать, т.к. могут быть ложные баны лагеров.
Вот поэтому на помощь приходит настройка СпидКилл
СпидКилл = следовательно быстрые убийства.

Рекомендуемые настрофки для ПАБЛИКА:
//Speed Kill detection settings = т.е. это количество убийств за разрешённое время, если убийств будет больше за это кол-во секунд, то последует наказание.
timepass_speedkill_check 5 / убийство кол-ва игроков за секунды установленное кваром speedkill_time
timepass_speedkill_time 2.0 / секунды за которое последует наказание, если убить кол-во игроков установленное кваром speedkill_check.

Т.е. по своему опыту я выставил такое значение, т.е. на Паблике, к примеру играя 16-16 на карте Инферно, можно на коврах умудириться убить за 2 секунды 4-5 игроков (нубов каких-нибудь). Но чтоб убить более 6 игроков за 2 секунды - это уже не реально. Это же всё-таки Паблик. В итоге эти настройки более подходят для читаков использующих новые виды АИМа или непонятных читов. Т.е. зашёл читер - дай думает выпендрюсь - бежит убивает больше 5 игроков за 2 секунды и получает Бан.

Итак, ниже рекомендуемые настройки для ДМ-серверов:
//Speed Kill detection settings = т.е. это количество убийств за разрешённое время, если убийств будет больше за это кол-во секунд, то последует наказание.
timepass_speedkill_check 5 или 6 (смотрите сами) / убийство кол-ва игроков за секунды установленное кваром speedkill_time
timepass_speedkill_time 1.0 / секунды за которое последует наказание, если убить кол-во игроков установленное кваром speedkill_check.

Т.е. у меня стоит нельзя больше 6 за 1 секунду, т.к. неделю тестил по логам (выставив вместо наказания логирование), в итоге понял, что для ДМ серверов лучше значение, что нельзя убивать больше 5 или 6 игроков за 1 секунду.
XyLiGaN
26.1.2013, 17:13 Timepass Anticheat
Цитата(coolman @ 26.1.2013, 15:09) *
Скрытый текст
[mozart scriptpack]
=====> TBoU* gEg J| o X !!!
=====> He cJIe/7uTE KpuBopyKue roPuJIJIb1
====> Dont flash me,dickhead noob
=====> /7ugaPacb1,Cyka ,Bb1py6uTe Hax* 4uTb1 !!! gau*Te /7ourPaTb !!!
=====> 4uTePa -MaJ|oJIeTHue ye6Ku c KPUBb1Mu PyKaMu
=====> Hy /7PocTo /7u3g****
=====> /7u3ga Te6e , CyKa !!!
====> PeaJIbHo 3ae6aJIu Hax***
====> Tb1 /7pocTo N00b ...)
eTo 9! 4uTeP ? lol ,ugu B TeTPuC KaTau* uJIu PyKu PoBH9u*
====> EcJIu 9 4uT, 3Ha4uT Tb1 xy}!{e PODbot`a...
Your mommas fuckin fat! My head fits right through her pussy!
Your mommas so fat I can sleep in her wet, tight pussy! and I do too!
Youre so gay you would fuck my grandpa!
===> /7ugPuJIa Ty/7a9 ,Bb1Py6u 4uT !!!
-= Bce Ha _ A _ =-
-= Bce Ha _ CEHTP _ =-
-= Bce Ha _ B _ =-
Tb1 JIOX ,Cyka 6JI9, /7oH9JI ?????
you are Fuckin gay , man !!!
Dont flash me ,fucking noob !!!

мда супер чит сообщения rofl.gif


Не ну не смейся-))) Я тоже пока не считаю его полностью достойным Анти-читом без клиентской части, но перспективы огромные. Зато нет заедания стрельбы из-за анти-чита, как у других Анти-читов.

Цитата
Сылку где скачывать античит можна? на 8.1


Пока нигде нельзя скачать. Надо войти в доверие и вести активную переписку с автором анти-чита и его командой, тогда он и будет делать подарки. thank_you2.gif
Я могу скинуть версию 8.1, которую скинул мне разработчик без исходника. А без исходника, сами знаете... Нет смысла. Я просто обрадовал новостью.
shaid, XyLiGaN
25.1.2013, 23:57 Timepass Anticheat
Скоро будет новая версия 8.1 - ожидаем! Автор скинул 8.1 версию (активно помогаю тестить анти-чит (переписка от логина: intercs) - мы все там очень просили снизить иногда непонятные скачки нагрузки на ЦПУ). Полёт супер. Нагрузка на ЦПУ стала меньше, пинг чуть стал меньше.
С автором потестили - нагрузка на ЦПУ стала значительно меньше, а пинг стал приятен глазу при игре 15-15.
А также вот какие будут изменения, но они ещё дополнятся к официальному релизу 8.1 версии:

Скрытый текст
View messages: Inbox

Folder is 6% full (3 from 50 messages stored)
Reply to message
Return to Inbox
Previous PM in history
Re: TimePass Anti-Cheat (v8.0)

Sent: Sun Jan 20, 2013 8:03 pm
From: challenge
To: intercs
broo

can you check the load for the upcoming version?

I have optimized few things

Also connection checking is not always silent.
Attachments
TP_aimv8.1.amxx.zip
Version 8.1 beta release 1
(71.64 KiB) Downloaded 1 time
(If you like any post don't forget to press the thank button . Being a non-profitable forum, that's the only inspiration for us. )

Что в переводе на Яндекс-переводчик:
+ Нагрузка на ЦПУ значительно снизилась, за счёт оптимизации кода и + пинг стал меньше.
+ подправлена проверка при подключении, ато до этого она работала криво.
+ доработает и оптимизирует ещё кое-какие вкусности.

Желательно, чтобы те, кому интересен данный анти-чит, помогали его тестировать и, к примеру, с помощью переводчиков-онлайн скидывали автору логи, претензии и советы по улучшению, т.к. автор адекватный и дружелюбный человек с которым кое-как, но можно переписываться с помощью переводчиков-онлайн, если не знаком английский язык.
Анти-чит прогрессирует.
gentoos, Kain_wrath, shaid, XyLiGaN
15.1.2013, 19:20 Timepass Anticheat
Вот объективная оценка данному анти-читу по тестам:

1) Ловит Аим кое-как. Сам разработчик благодаря моим тестам на аим с этим согласился и будет дорабатывать.
Тест был на банальный чит Терминатор.
Как оказалось анти-чит и кое-как ловит старые аим.

Вот переписка (моя = intercs - на ломанном английском, но понимаем друг друга):
http://timepassgamers.co.in/forum/viewtopi...&start=1040

2) СпедХак Ловит точно также как и любой античит. В личной переписке оказалось взято с CSF.
Ловит только фаст СпеедХак, медленные спедХак не ловит.

3) Вообще непонятно как работает проверка на аллиасы, т.к. из аллиас удалил все АВП скрипты и ДаблДаки, выставил на логи, т.к. всё равно какого-то фига начинает наказывать за авп скрипт и даблдак, которые удаленны из аллиас.ини.
Пойду напишу этот баг автору.

4) Нагрузка:
Все обвиняют CSF в нагрузке, а ТимеПасс в отсутствии нагрузки. Но...
Даже пока сам разработчик понять не может почему так.
А дело в том, что:
Берём за основу громоздкий Мод КСДМ 2.1.2 на 32 слота на уже давно хреновом хостинге муарена.

ТимеПасс 8.0 (отключён Блок ВХ) - на сервере 22 игрока = действительно игра вроде становится более глаже, вроде как и прицел быстрее сужается. Но нагрузка на ЦПУ при 22 игроках 89%-93%, чревато отключением сервера из-за перегрева если будут 32 игрока играть.

CSF 1.24b (отключён Блок ВХ) - на сервере 22 игрока = игра чуть так себе, но не заметна нагрузка на игру. Но нагрузка на ЦПУ при 22 игроках 68%-74%, и это НЕ чревато отключением сервера из-за перегрева если будут 32 игрока играть.

В итоге разработчик взялся за оптимизацию кода, т.к. по таким тестам он понял, что да действительно непонятно, почему такие нагрузки бывают.

Вот такие пироги, вроде антчи-чит многообещающий, но пока не ахти. Аим будет дописывать и тд.
Активно веду переписку с автором плагина и скидываю баги и логи.

А плюсы тоже есть:
1) Теперь не нужен плагин на запрет смены ника во время игры на сервере. Т.к. ТимеПасс сразу банит таких чит-фаст-наймов, а это огромный плюс, т.к. школьники любят такие читы где всё в комплекте, лишь бы у тебя онлайн отбить с сервера.
2) Вроде кое-как, но блокирует некоторые виды аим, которые уже никто и не использует. Но не обнаруживает банально новые виды аим.
3) Появились наказания за запрещённые символы в нике типа кодировок + или ` = timepass_name_restriction "+`", хотя они есть и в других анти-читах.

Пока для меня плюсы закончились... Это был объективный тест, с чем и согласился автор по поводу большого кол-ва недоделок. Анти-чит будут полностью оптимизировать и дорабатывать. Поэтому будем ждать...
Но нагрузки непонятные от 8.0 версии существенно есть. Вообще Анти-чит вроде как многообещающий, но кто знает.

Жду и от других таких же тестов на практике и по делу, а не на словах оскорбительного характера.
mazdan, shaid
5.1.2013, 16:49 CSF Anti-Cheat v1.24b
Цитата(imba @ 5.1.2013, 16:44) *
да без проблем.только никаких кваров нет.бан через амхбанс
за спидхак,опенгл и алиасы-перманент
за чите кейс-команда quit
блок дд на скроле и фулапдейта
[attachment=18420:csf.zip]


Чёт глянул, вообще не серьёзно. Я думал там ультра-работа была. В итоге -70% к улыбке...
pulse.
5.1.2013, 13:53 CSF Anti-Cheat v1.24b
Здравствуйте уважаемые скриптеры!
Мне удалось уговорить скинуть исходник анти-чита версии 1.24b (на данныймомент финальная) скриптера и модератора onotole с myarena.ru.
Вот ссылка всем на обозрение на сие уговор, для подтверждения что я не злоумышленник:
http://forum.myarena.ru/index.php?/topic/3...b/page__st__160

Причина: Он классно деделал анти-чит, т.к. создатель анти-чита уже им не занимается. Но у онотоле есть сейчас дела поважнее и у него на данный момент нет вреемени и желания допиливать античт.
Поэтому кое-как уговорили скинуть исходники.

Вопрос: Кто возьмётся за доделку античита?

Вот его недоделки:
Скрытый текст
Онотоле вы так и не переписали проверку на спидхак ?
Ато ошибки идут в лог да к стати тоже заметил что только на карте 35 хп вот такая ошибка

L 11/06/2012 - 13:25:57: Start of error session.
L 11/06/2012 - 13:25:57: Info (map "35hp_2") (file "addons/amxmodx/logs/error_20121106.log")
L 11/06/2012 - 13:25:57: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 11/06/2012 - 13:25:57: [AMXX] Run time error 4: index out of bounds
L 11/06/2012 - 13:25:57: [AMXX] [0] speedhack.inc::func_teleport_check (line 45)
L 11/06/2012 - 13:25:57: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 11/06/2012 - 13:25:57: [AMXX] Run time error 4: index out of bounds
L 11/06/2012 - 13:25:57: [AMXX] [0] speedhack.inc::func_teleport_check (line 45)
L 11/06/2012 - 13:25:57: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 11/06/2012 - 13:25:57: [AMXX] Run time error 4: index out of bounds
L 11/06/2012 - 13:25:57: [AMXX] [0] speedhack.inc::func_teleport_check (line 45)
L 11/06/2012 - 13:25:57: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")


Скрытый текст
Обнаружился баг, совсем недавно.
Поясняю баг:
Сменилась карта и тут вдруг произошло то, что на сервер могли войти только ОНЛИ-СТЕАМ игроки, а 47 протокол и эмулятор стеам_ид не могли...
После перезагрузки сервера, всё стало норм. Выкладываю еррор логи CSF Anti-cheat V1.24b:

onotole найди время пожалуйста и займись этим чудо-античитом!))) Т.к. все уповают только на тебя и этот анти-чит самый лучший для Пабликов. Умоляемс...

L 01/02/2013 - 00:04:09: Start of error session.
L 01/02/2013 - 00:04:09: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20130102.log")
L 01/02/2013 - 00:04:09: Invalid CVAR pointer
L 01/02/2013 - 00:04:09: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:04:09: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:04:09: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:04:34: Invalid CVAR pointer
L 01/02/2013 - 00:04:34: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:04:34: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:04:34: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:04:37: Invalid CVAR pointer
L 01/02/2013 - 00:04:37: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:04:37: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:04:37: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:05:37: Invalid CVAR pointer
L 01/02/2013 - 00:05:37: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:05:37: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:05:37: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:05:48: Invalid CVAR pointer
L 01/02/2013 - 00:05:48: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:05:48: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:05:48: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:07:10: Invalid CVAR pointer
L 01/02/2013 - 00:07:10: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:07:10: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:07:10: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:10:21: Invalid CVAR pointer
L 01/02/2013 - 00:10:21: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:10:21: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:10:21: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:10:31: Invalid CVAR pointer
L 01/02/2013 - 00:10:31: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:10:31: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:10:31: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:10:58: Invalid CVAR pointer
L 01/02/2013 - 00:10:58: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:10:58: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:10:58: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:13:59: Invalid CVAR pointer
L 01/02/2013 - 00:13:59: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:13:59: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:13:59: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:14:06: Invalid CVAR pointer
L 01/02/2013 - 00:14:06: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:14:06: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:14:06: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:15:24: Invalid CVAR pointer
L 01/02/2013 - 00:15:24: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:15:24: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:15:24: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:17:29: Invalid CVAR pointer
L 01/02/2013 - 00:17:29: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:17:29: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:17:29: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:17:49: Invalid CVAR pointer
L 01/02/2013 - 00:17:49: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:17:49: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:17:49: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:19:31: Invalid CVAR pointer
L 01/02/2013 - 00:19:31: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:19:31: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:19:31: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:20:02: Start of error session.
L 01/02/2013 - 00:20:02: Info (map "de_dust2_2x2") (file "addons/amxmodx/logs/error_20130102.log")
L 01/02/2013 - 00:20:02: Invalid CVAR pointer
L 01/02/2013 - 00:20:02: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:20:02: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:20:02: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:20:02: Invalid CVAR pointer
L 01/02/2013 - 00:20:02: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:20:02: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:20:02: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:20:02: Invalid CVAR pointer
L 01/02/2013 - 00:20:02: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:20:02: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:20:02: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:20:02: Invalid CVAR pointer
L 01/02/2013 - 00:20:02: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:20:02: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:20:02: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)
L 01/02/2013 - 00:20:02: Invalid CVAR pointer
L 01/02/2013 - 00:20:02: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 01/02/2013 - 00:20:02: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 01/02/2013 - 00:20:02: [AMXX] [0] csf_anticheat.sma::client_connect (line 339)


Скрытый текст
И ещё одно но выявил:

// CVAR Guard

csf_ac_cvarguard "1"

csf_ac_cvarguard_lock "1"
НЕ блокирует почему-то игроков c Реальным STEAM_ID и у игроков, с Эммулированным STEAM_ID (+35 патч). Т.е. к примеру cl_bobcycle 0.8 присваивается, но в консоле пишешь cl_bobcycle 0 и она работает и даже не блокируется...
А вот у VALVE_ID_LAN (ниже 35 патча) = блокируется... Непонятки...

csf_ac_cvarguard_multitest "1"


Скрытый текст
я заметил что только на карте 35хп такое

L 07/08/2012 - 21:51:30: [AMXX] [0] speedhack.inc::func_teleport_check (line 45)
L 07/08/2012 - 21:51:30: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 07/08/2012 - 21:51:30: [AMXX] Run time error 4: index out of bounds
L 07/08/2012 - 21:51:30: [AMXX] [0] speedhack.inc::func_teleport_check (line 45)
L 07/08/2012 - 21:51:30: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 07/08/2012 - 21:51:30: [AMXX] Run time error 4: index out of bounds
L 07/08/2012 - 21:51:30: [AMXX] [0] speedhack.inc::func_teleport_check (line 45)


Скрытый текст
L 07/12/2012 - 12:15:22: [AMXX] Run time error 4: index out of bounds
L 07/12/2012 - 12:15:22: [AMXX] [0] speedhack.inc::func_touch_entity (line 38)
L 07/12/2012 - 12:15:22: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 07/12/2012 - 12:15:22: [AMXX] Run time error 4: index out of bounds
L 07/12/2012 - 12:15:22: [AMXX] [0] speedhack.inc::func_touch_entity (line 38)
L 07/12/2012 - 12:20:05: Start of error session.
L 07/12/2012 - 12:20:05: Info (map "de_kabul") (file "addons/amxmodx/logs/error_20120712.log")
L 07/12/2012 - 12:20:05: Invalid player id 0
L 07/12/2012 - 12:20:05: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 07/12/2012 - 12:20:05: [AMXX] Run time error 10: native error (native "get_user_info")
L 07/12/2012 - 12:20:05: [AMXX] [0] cdhack_ffx.inc::myactest_cdhack (line 17)
L 07/12/2012 - 12:25:05: Invalid player id 0
L 07/12/2012 - 12:25:05: [AMXX] Displaying debug trace (plugin "csf_anticheat.amxx")
L 07/12/2012 - 12:25:05: [AMXX] Run time error 10: native error (native "query_client_cvar")
L 07/12/2012 - 12:25:05: [AMXX] [0] video_renderer.inc::video_renderer_newdetect (line 47)
Вот еще наборчик для лечения


Некоторые возможно уже испрвил онотоле на момент выкладывания исходника плагина.
Отследить все ошибки можно тут: http://forum.myarena.ru/index.php?/topic/3...ti-cheat-v124b/

Анти-чит этот счиаю самым стабильным по моим тестам из всех существующих (Без клиентской части). Т.к. ложные баны онотоле исправил в корень. Вообщем спс ему, но допиливать анти-чит что-то он пока не желает, а ведь он многим помог с ковырянием этого анти-чита... Но надо его доковырять дружно.
XyLiGaN
22.10.2012, 22:54 voteban от Alka (Процентный вотебан - довёл до ума Safety1st)
Ты король мира кросафчеГ!
Король плаигинов! Я не думал, что так оперативно ты все сделаешь... Когда банят в табличке и в консоль пишет куда писать претензии по разбану! Классно! Я к те ещё обращусь кстати...

У МЕНЯ НА СЕРВАКЕ ТЕПЕРЬ В ОТСУТСТВИЕ АДМИНОВ ИГРОКИ ТЕРЬ ДОВОЛЬНЫ!!!-))) 20% надо всего (проценты менять можно), к примеру 20 игроков играют и надо чтоб всего-то 4 игрока прописали вотебан и выбрали один и от же ник... Классссс плагин! ЛУЧШИЙ ВОТЕБАН В МИРЕ ТЕПЕРЬ!

Кстати как поставлю себе на днях Супер бан - надо будет сделать этот плагин бан по супер бану... Я уже писал, что я заплачу тебе за идею бана по = супер_бан.
Kirby Magicman, pulse., Safety1st
21.10.2012, 19:55 voteban от Alka (Процентный вотебан - довёл до ума Safety1st)
Информация
i
Уведомление:
Новый релиз плагина от Safety1st - https://c-s.net.ua/forum/index.php?showtopic=46185


ЭТО ЕЩЁ ПОКА НЕ ОФИЦИАЛЬНЫЙ РЕЛИЗ ОТ Safety1st. ПЛАГИН ПО ХОДУ ОБНАРУЖЕНИЙ ОШИБОК БУДЕТ ДОРАБАТЫВАТЬСЯ! ПОЭТОМУ СЛЕДИМ ЗА ТЕМОЙ И ОБНОВЛЯЕМСЯ!!!
ССЫЛКА НА ПЛАГИН ВСЕГДА ОБНОВЛЯЕТСЯ МНОЮ...


Благодаря Safety1st, который взялся за этот плагин по моей просьбе мы имеет по моему мнениею лучший /voteban на любом сервере.
ПЛЮСЫ ПЛАГИНА ПЕРЕД ДРУГИМИ:
1) настраиваемый процент голоса за бан.
2) плагин работает методом - зашел читер и к примеру играют на сервере 10 человек, а процент за бан выставлен 20% = следовательно надо всего 2 человека из 10, чтобы прописали /voteban и выбрали ник читера.
Это хорошо тем, что если стоит другой вотебан, то иногда читер заходит и специально прописывает /voteban, тем самым блокируя вотебан другум.
3) удобное меню.
4) можно выставить ограничение времени за выбор ников.
5) при выборе ника, меню автоматически скрывается.
6) Если Вы случайно выбрали не тот ник, то можно отменить свой голос - выбрав тот же ник.
По моему это лучший /voteban.


CVAR'ы в amxx.cfg:
voteban_percent "20" / процент голосов для бана (т.е. если стоит "20" = 20% от всех на сервере, то следовательно из 10 играющих это 2 человека, из 20 это 4 чел., из 30 это 6 чел.. Поэтому ставьте по своему процент).
voteban_type "0" / (тип бана), "0" - автовыбор, стоит по умолчанию, т.е. при бане плагин сам выбирает бан по SteamID или по IP. "1" - баны по SteamID. "2" - баны по IP.
voteban_time "30" / на сколько будет игрок забанен.
voteban_reason " 3a6aHeH /voteban'om Ha %time% MuH.! Pa36aH TyT: ВАШ САЙТ" / причина бана, выводимая забаненому после бана и куда обращаться за разбаном.

Примечание:
- по умолчанию иммунитет у voteban'а для флагов 'a' и 'd'. Если захочется изменить иммунитет флагов от voteban'a, то настраивается в sma (исходнике).

Исходник в студию:
Скрытый текст
Код
/*
*    Vote Ban 2
*      Every player are able to vote for ban somebody.
*
*    Last update:
*      11/02/2012
*
*/

#include <amxmodx>

#define PLUGIN "Vote Ban 2"
#define VERSION "0.97beta"
#define AUTHOR "Safety1st/Alka"

// customizable parameters
#define MAX_PLAYERS 32
#define IMMUNITY_FLAG ( ADMIN_IMMUNITY | ADMIN_BAN )    /* flags 'a' & 'd', separate by '|' */
new gszPrefix[] = "[VOTEBAN]"    // set prefix for all chat messages; for example ">"
// end of customizable parameters

new giVotedPlayers[MAX_PLAYERS]    // player's voteban targets
new giVotes[MAX_PLAYERS]    // count of votes for ban that player
new giVoted[MAX_PLAYERS]    // count of votes for ban by that player

// macro; %1 - variable being modified, %2 - player id
#define CheckFlag(%1,%2)    ( %1 &   ( 1 << (%2-1) ) )
#define AddFlag(%1,%2)        ( %1 |=  ( 1 << (%2-1) ) )
#define RemoveFlag(%1,%2)    ( %1 &= ~( 1 << (%2-1) ) )

enum _:Labels {
    CVAR_PERCENT = 0,
    CVAR_BANTYPE,
    CVAR_BANTIME,
    CVAR_LIMIT,
    CVAR_REASON,
}
new pCvar[Labels]

enum _:Types {
    AUTO = 0,
    STEAMID,
    IP,
    AMXBAN,
    AMXBANS5,
    SUPERBAN
}

enum _:LogRecords {
    UNVOTE = 0,
    VOTE
}

new gszLogRecords[LogRecords][] = {
    "Player '%s' has canceled vote for banning '%s'",
    "Player '%s' has been voted for banning by '%s'"
}

public plugin_init() {
    register_plugin( PLUGIN, VERSION, AUTHOR )
    register_dictionary( "voteban.txt" )
    register_cvar( "voteban2", VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED )

    register_saycmd( "voteban", "VoteBanMenu" )

    pCvar[CVAR_PERCENT] = register_cvar( "voteban_percent", "60" )
    pCvar[CVAR_BANTYPE] = register_cvar( "voteban_type", "0" )
    pCvar[CVAR_BANTIME] = register_cvar( "voteban_time", "20" )
    pCvar[CVAR_LIMIT] = register_cvar( "voteban_limit", "3" )
    pCvar[CVAR_REASON] = register_cvar( "voteban_reason", " 3a6aHeH /voteban'om Ha %time% MuH.! Pa36aH TyT: http://example.ru" )
}

register_saycmd( saycommand[], function[] ) {
    new szTemp[64]
    formatex( szTemp, charsmax(szTemp) - 1, "say %s", saycommand )
    register_clcmd( szTemp, function )
    formatex( szTemp, charsmax(szTemp) - 1, "say_team %s", saycommand )
    register_clcmd( szTemp, function )
    formatex( szTemp, charsmax(szTemp) - 1, "say /%s", saycommand )
    register_clcmd( szTemp, function )
    formatex( szTemp, charsmax(szTemp) - 1, "say .%s", saycommand )
    register_clcmd( szTemp, function )
    formatex( szTemp, charsmax(szTemp) - 1, "say_team /%s", saycommand )
    register_clcmd( szTemp, function )
    formatex( szTemp, charsmax(szTemp) - 1, "say_team .%s", saycommand )
    register_clcmd( szTemp, function )
}

public client_disconnect(id) {
    static iPlayers[32], iPlayersNum, i, iPlayer

    // check whether there were votes for ban by that player
    if ( giVoted[id] ) {
        get_players( iPlayers, iPlayersNum, "ch" )    // skip bots and HLTV
        for ( i = 0; i < iPlayersNum; i++ ) {
            iPlayer = iPlayers[i]
            if ( CheckFlag( giVotedPlayers[id], iPlayer ) )
                giVotes[iPlayer]--
        }
        giVotedPlayers[id] = 0
        giVoted[id] = 0
    }

    // check whether there were votes for ban that player
    if ( giVotes[id] ) {
        get_players( iPlayers, iPlayersNum, "ch" )    // skip bots and HLTV
        for ( i = 0; i < iPlayersNum; i++ ) {
            iPlayer = iPlayers[i]
            if ( CheckFlag( giVotedPlayers[iPlayer], id ) ) {
                RemoveFlag( giVotedPlayers[iPlayer], id )
                giVotes[id]--
                giVoted[iPlayer]--
            }
            if ( !giVotes[id] )
                break
        }
        giVotes[id] = 0    // just in case
    }
}

public VoteBanMenu(id) {
    static iPlayers[32], iPlayersNum, i, iPlayer

    get_players( iPlayers, iPlayersNum, "ch" )    // skip bots and HLTV
    if ( iPlayersNum < 3 ) {
        ColorPrint( id, "^4%s %L", gszPrefix, id, "VOTEBAN_NEED3" )
        return PLUGIN_HANDLED
    }

    // create and show menu
    new szTempString[64], szName[32], szInfo[3]
    formatex( szTempString, charsmax(szTempString) - 1, "%L\y:", id, "VOTEBAN_MENU" )
    new iMenu = menu_create( szTempString, "MenuHandle", .ml = 1 )
    new iCallback = menu_makecallback( "CallbackMenu" )
    menu_setprop( iMenu, MPROP_NUMBER_COLOR, "\r" )
    menu_setprop( iMenu, MPROP_EXIT, MEXIT_ALL )
    formatex( szTempString, charsmax(szTempString) - 1, "%L", id, "VOTEBAN_EXIT" )
    menu_setprop( iMenu, MPROP_EXITNAME, szTempString )
    formatex( szTempString, charsmax(szTempString) - 1, "%L", id, "VOTEBAN_NEXT" )
    menu_setprop( iMenu, MPROP_NEXTNAME, szTempString )
    formatex( szTempString, charsmax(szTempString) - 1, "%L", id, "VOTEBAN_BACK" )
    menu_setprop( iMenu, MPROP_BACKNAME, szTempString )

    for ( i = 0; i < iPlayersNum; i++ ) {
        iPlayer = iPlayers[i]
        get_user_name( iPlayer, szName, 31 )
        num_to_str( iPlayer, szInfo, charsmax(szInfo) )
        if ( get_user_flags(iPlayer) & IMMUNITY_FLAG ) {
            formatex( szTempString, charsmax(szTempString) - 1, "%s", szName )
            // don't set info[] if player has immunity
            menu_additem( iMenu, szTempString, "", .callback = iCallback )
        }
        else {
            new iPercent = get_percent( giVotes[iPlayer], iPlayersNum )
            if ( giVotes[iPlayer] && CheckFlag( giVotedPlayers[id], iPlayer ) )
                formatex( szTempString, charsmax(szTempString) - 1, "%s \d(\r%d%%\d) \y%L", szName, iPercent, id, "VOTEBAN_VOTED" )
            else
                formatex( szTempString, charsmax(szTempString) - 1, "%s \d(\r%d%%\d)", szName, iPercent )
            num_to_str( iPlayer, szInfo, charsmax(szInfo) )
            menu_additem( iMenu, szTempString, szInfo, .callback = iCallback )
        }
    }

    menu_display( id, iMenu )

    return PLUGIN_CONTINUE
}

public CallbackMenu( id, menu, item ) {
    new access, info[3], callback, szTempString[64]
    menu_item_getinfo( menu, item, access, info, charsmax(info) - 1, szTempString, charsmax(szTempString) - 1, callback )

    if ( info[0] == 0 )
        // player has immunity
        return ITEM_DISABLED

    new iPlayer = str_to_num(info)
    if ( iPlayer == id )
        return ITEM_DISABLED

    return ITEM_ENABLED
}

public MenuHandle( id, menu, item ) {
    if ( item == MENU_EXIT ) {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }

    new access, info[3], callback
    menu_item_getinfo( menu, item, access, info, charsmax(info) - 1, .callback = callback )
    menu_destroy(menu)

    new iTarget = str_to_num(info)

    if ( !is_user_connected(iTarget) ) {
        VoteBanMenu(id)
        return PLUGIN_HANDLED
    }

    if ( CheckFlag( giVotedPlayers[id], iTarget ) ) {
        RemoveFlag( giVotedPlayers[id], iTarget )
        giVoted[id]--
        giVotes[iTarget]--

        new szName[32], szTargetName[32]
        get_user_name( id, szName, 31 )
        get_user_name( iTarget, szTargetName, 31 )
        MsgToLog( gszLogRecords[UNVOTE], szName, szTargetName )
        ColorPrint( 0, "^4%s %L", gszPrefix, LANG_SERVER, "VOTEBAN_UNVOTE", szName, szTargetName )
        client_print( id, print_center, "%L", id, "VOTEBAN_CLEAR" )
        return PLUGIN_HANDLED
    }

    new iLimit = get_pcvar_num( pCvar[CVAR_LIMIT] )
    if ( giVoted[id] >= iLimit ) {
        // don't let vote too much;)
        client_print( id, print_center, "%L", id, "VOTEBAN_LIMIT", iLimit )
        return PLUGIN_HANDLED
    }

    client_print( id, print_center, "%L", id, "VOTEBAN_SET" )
    giVoted[id]++
    giVotes[iTarget]++
    AddFlag( giVotedPlayers[id], iTarget )

    CheckVotes( iTarget, id )

    return PLUGIN_HANDLED
}

CheckVotes( target, voter ) {
    new szName[32], szTargetName[32]
    get_user_name( voter, szName, 31 )
    get_user_name( target, szTargetName, 31 )

    MsgToLog( gszLogRecords[VOTE], szTargetName, szName )
    ColorPrint( 0, "^4%s %L", gszPrefix, LANG_SERVER, "VOTEBAN_VOTE", szName, szTargetName )

    new iPlayers[32], iPlayersNum
    get_players( iPlayers, iPlayersNum, "ch" )    // skip bots and HLTV

    if ( get_percent( giVotes[target], iPlayersNum ) < get_pcvar_num( pCvar[CVAR_PERCENT] ) )
        return

    new iUserid = get_user_userid(target)
    new iType = get_pcvar_num( pCvar[CVAR_BANTYPE] )
    new iBanTime = get_pcvar_num( pCvar[CVAR_BANTIME] )
    new szReason[256]
    static szAuthid[32]
    get_pcvar_string( pCvar[CVAR_REASON], szReason, charsmax(szReason) - 1 )

    switch ( iType ) {
        case AMXBAN, AMXBANS5, SUPERBAN : {
            // clear unused template
            replace( szReason, 255, "%time%", " " )
        }
        default : {
            new szBanTime[4]
            num_to_str( iBanTime, szBanTime, 3 )
            // set actual ban time in the reason
            replace( szReason, 255, "%time%", szBanTime )
            static szHostname[64]
            if ( !szHostname[0] )
                get_cvar_string( "hostname", szHostname, 63 )
            get_user_authid( target, szAuthid, charsmax(szAuthid) - 1 )
            log_amx( "Ban: ^"%s<0><><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^") (reason ^"Voteban^")", szHostname, szTargetName, iUserid, szAuthid, iBanTime )
            ColorPrint( 0, "^4%s %L", gszPrefix, LANG_SERVER, "VOTEBAN_BAN", szTargetName, iBanTime )
        }
    }

    switch ( iType ) {
        case STEAMID :
            server_cmd( "kick #%d %s;wait;wait;wait;banid %d %s", iUserid, szReason, iBanTime, szAuthid )
        case IP : {
            new szIp[32]
            get_user_ip( target, szIp, charsmax(szIp) - 1, 1 /* without_port */ )
            server_cmd( "kick #%d %s;wait;wait;wait;addip %d %s", iUserid, szReason, iBanTime, szIp )
        }
        case AMXBAN :
            server_cmd( "amx_ban #%d %d ^"%s^"", iUserid, iBanTime, szReason )
        case AMXBANS5 :
            server_cmd( "amx_ban %d #%d ^"%s^"", iBanTime, iUserid, szReason )
        case SUPERBAN :
            server_cmd( "amx_superban #%d %d ^"%s^"", iUserid, iBanTime, szReason )
        default : {     // AUTO
            /* AMXX base plugin 'plmenu.amxx', code by MistaGee
            IF AUTHID STEAM_ID_LAN OR VALVE_ID_LAN OR HLTV, BAN PER IP TO DON'T BAN EVERYONE */
            if ( equal( "STEAM_ID_LAN", szAuthid ) || equal( "VALVE_ID_LAN", szAuthid ) || equal( "HLTV", szAuthid ) ) {
                new szIp[32]
                get_user_ip( target, szIp, charsmax(szIp) - 1, 1 /* without_port */ )
                server_cmd( "kick #%d %s;wait;wait;wait;addip %d %s", iUserid, szReason, iBanTime, szIp )
            }
            else
                server_cmd( "kick #%d %s;wait;wait;wait;banid %d %s", iUserid, szReason, iBanTime, szAuthid )
        }
    }
}

get_percent( value, tvalue ) {
    return floatround( floatmul( float(value) / float(tvalue) , 100.0 ) )
}

MsgToLog( szRawMessage[], any:... ) {
    static szLogFile[192] = "", szTime[32], fp
    if ( !szLogFile[0] ) {
        new szLogsDir[64], szDate[16]
        get_time ( "%Y%m", szDate, charsmax(szDate) )
        get_localinfo( "amxx_logs", szLogsDir, 63 )
        formatex( szLogFile, charsmax(szLogFile), "%s/voteban_%s.log", szLogsDir, szDate )
    }

    new szMessage[192]
    vformat( szMessage, charsmax( szMessage ), szRawMessage, 2 )

    get_time( "%m/%d/%Y - %H:%M:%S", szTime, 31 )
    fp = fopen( szLogFile, "a" )
    fprintf( fp, "L %s: %s^n", szTime, szMessage )
    fclose(fp)
}

ColorPrint( iReceiver, const szRawMessage[ ], any:... ) {
    static iMsgSayText = 0
    if( !iMsgSayText )
        iMsgSayText = get_user_msgid( "SayText" )

    new szMessage[192], iPlayers[32], iPlayersNum = 1, iPlayer
    vformat( szMessage, charsmax(szMessage) - 1, szRawMessage, 3 )
    replace_all( szMessage, charsmax(szMessage) - 1, "!n", "^1" )
    replace_all( szMessage, charsmax(szMessage) - 1, "!t", "^3" )
    replace_all( szMessage, charsmax(szMessage) - 1, "!g", "^4" )
    if ( szMessage[0] != '^1' || szMessage[0] != '^3' || szMessage[0] != '^4' )
        format( szMessage, charsmax(szMessage) - 1, "^1%s", szMessage )    // we must set initial default color if it is not provided explicitly

    if ( iReceiver )
        iPlayers[0] = iReceiver
    else {
        get_players( iPlayers, iPlayersNum, "ch" )    // skip bots and HLTV
        if ( !iPlayersNum )
            return    // don't print useless message
    }

    for ( new i = 0; i < iPlayersNum; i++ ) {
        iPlayer = iPlayers[i]
        if ( !is_user_connected(iPlayer) )
            continue

        message_begin( MSG_ONE_UNRELIABLE, iMsgSayText, _, iPlayer )
        write_byte(iPlayer)    // use target player as sender to see colors at all (and his own team color for ^3)
        write_string(szMessage)
        message_end()
    }
}
CannibaL, vovanrus