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

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

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

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

2 страниц V   1 2

Простейшие функции наказания

, применительно к OpenGL детектору
Статус пользователя mazdan
сообщение 2.6.2013, 13:11
Сообщение #1


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Итак, в связи с растущим числом вопросов предлагаю тут обсудить основные функции относящиеся к наказаниям игроков. На примере OpenGL детектора (не сочтите за рекламу, стараюсь просто избежать кучи одинаковых вопросов)
Итак. В плагине предусмотрен вызов функций при наступлении событий:
client_opengl_detected(id) // - функция которая будет вызвана при обнаружении OpenGL
ogl32_client_cheat_detected(id, cheat) // - функция которая будет вызвана при обнаружении чита (не OpenGL)
ogl32_client_protector_detected(id) // - функция которая будет вызвана при обнаружении протектора.
Простенький пример с наказаниями я сделал
Пример

Код:
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "opengl punish"
#define VERSION "0.1"
#define AUTHOR "kanagava"

forward client_opengl_detected(id) // Объявляем forward - функция которая будет вызвана дургим плагином
forward ogl32_client_cheat_detected(id, cheat) // Объявляем forward - функция которая будет вызвана дургим плагином
forward ogl32_client_protector_detected(id) // Объявляем forward - функция которая будет вызвана дургим плагином
new bool:protector[33]


public plugin_init()
register_plugin(PLUGIN, VERSION, AUTHOR) //Регистрируем плагин


public client_opengl_detected(id) //эта функция будет вызвана при обнаружении opengl32.dll у игрока
{
new uname[32],uip[32],usteam[32]

get_user_name(id,uname,31) //Получаем имя игрока
get_user_authid(id,usteam,31) //Стимайди
get_user_ip(id,uip,31,1) //Айпи

client_print(0,print_chat,"Opengl Detected on Player %s",uname) //Оповещение в чат
//server_cmd("addip 500.0 %s",uip) // Бан по айпи

//Сюда вы можете вписать ваши HUD сообщения, колорчаты и прочую никому не нужную херню
}

public ogl32_client_cheat_detected(id, cheat) //эта функция будет вызвана при обнаружении чита у игрока
{
new uname[32],uip[32],usteam[32]

get_user_name(id,uname,31) //Получаем имя игрока
get_user_authid(id,usteam,31) //Стимайди
get_user_ip(id,uip,31,1) //Айпи

switch(cheat)
{
case 1: // Чит номер 1 (AIM HL1)
{
log_amx("AIM HL1 Detected on Player %s",uname) // запишем в лог
client_print(0,print_chat,"AIM HL1 Detected on Player %s",uname) //Оповещение в чат
//server_cmd("addip 500.0 %s",uip) // Бан по айпи
}
case 2: // Чит номер 2 (EHack)
{
log_amx("EHack Detected on Player %s",uname) // запишем в лог
client_print(0,print_chat,"EHack Detected on Player %s",uname) //Оповещение в чат
//server_cmd("addip 500.0 %s",uip) // Бан по айпи
}
}
//Сюда вы можете вписать ваши HUD сообщения, колорчаты и прочую никому не нужную херню
}

public ogl32_client_protector_detected(id) //эта функция будет вызвана при обнаружении протоектора у игрока
{
new uname[32],uip[32],usteam[32]

get_user_name(id,uname,31) //Получаем имя игрока
get_user_authid(id,usteam,31) //Стимайди
get_user_ip(id,uip,31,1) //Айпи

client_print(0,print_chat,"Protector Detected on Player %s",uname) //Оповещение в чат
protector[id] = true
set_task(10.0, "slap_and_say", id, _, _, "b")
set_task(3 * 60.0, "kick", id) // кик через 3 минуты
//server_cmd("addip 500.0 %s",uip) // Бан по айпи
//Сюда вы можете вписать ваши HUD сообщения, колорчаты и прочую никому не нужную херню
}

public client_connect(id)
{
protector[id] = false
remove_task(id)
}
public client_disconnect(id)
{
protector[id] = false
remove_task(id)
}

public slap_and_say(id)
{
if(protector[id])
{
if(is_user_alive(id)) user_slap(id, 5, -1)
client_print(id, print_chat, "Удалите protector.asi и protector.dll") // выведем в чат
show_motd(id, "protector.txt", "Protector detected") // покажем мотд окно (если не заблокировано протектором)
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, 0.5, 1, 1.0, 5.0 ,0.01, 0.2,-1); // и худ покажем
show_hudmessage(id,"Удалите protector.asi и protector.dll");
set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, 0.4, 1, 1.0, 5.0 ,0.01, 0.2,-1); // или сразу 2!
show_hudmessage(id,"Удалите protector.asi и protector.dll");
}
else
{
remove_task(id)
}


}

public kick(id)
{
server_cmd("kick #%d ^"Protector Detected^"", get_user_userid(id))
}
Таким образом наказания и всё сопровождение в основном плагине можно отключить, а в плагине "пример" вы можете сделать всё что нужно Вам (вывод в чат, hud, dhud, отображение motd, заморозка игрока и т.д.) и два плагина будут работать в связке и всем от этого будет здорово и хорошо =)
Если у вас есть идеи или вопросы - welcom. Сделаем какие-то общие варианты, которые можно будет закомментировать или разкомментировать в плагине "пример".
Кто не умеет писать плагины - научится простым вещам, кто умеет, поможет, посоветует, потом всё соберу и сложу в один плагин и наступит счастье :)


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 6 раз
   Цитировать сообщение
Статус пользователя NeMirofff
сообщение 4.6.2013, 19:41
Сообщение #2
Стаж: 13 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

"И снова я сделал это! ogl32_protector 1 :D" Подскажи что это такое? и для чего..:D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя San4aus
сообщение 4.6.2013, 20:04
Сообщение #3
Стаж: 15 лет

Сообщений: 383
Благодарностей: 237
Полезность: 612

Цитата(NeMirofff @ 4.6.2013, 20:41) *
"И снова я сделал это! ogl32_protector 1 :D" Подскажи что это такое? и для чего..:D


Скрытый текст
_http://kanaga.bget.ru/plugins/index.php
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NeMirofff
сообщение 4.6.2013, 20:13
Сообщение #4
Стаж: 13 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

Цитата(San4aus @ 4.6.2013, 22:04) *
Скрытый текст
_http://kanaga.bget.ru/plugins/index.php

я чёт не понял,надо чёт обновлять или что?или оно само обновляется в плагине OD...я в этом дно :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 4.6.2013, 20:21
Сообщение #5


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Это лог.
Цитата
[CS Injector DETECTED] [mvm ~ Monotox #Dynamic-Art.tv] [95.133.133.100]
[DETECT] Nakazanie: amx_ban 20160 #1263 EHack Detected

А так в бан листе
Цитата
Причина Opengl Detected
почему эта причина?
Это в opengl_detector.cfg
Цитата
// Turn on/off
ogl32_eh "1"
// Punishment - default for amxbans
ogl32_eh_punish "amx_ban 20160 %userid% EHack Detected"


P.S. Плагин до сих пор
Цитата
[ACTIVATED] Plugin Opengl Detector 0.6.5 activated


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NeMirofff
сообщение 4.6.2013, 20:49
Сообщение #6
Стаж: 13 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

у меня так=)
Скрытый текст
L 06/04/2013 - 16:58:59: [ACTIVATED] Plugin Opengl Detector 0.7.4 activated
L 06/04/2013 - 17:36:27: [OPENGL DETECTED] [Swede] [91.215.78.81] [HD_001 : CSF_01]
L 06/04/2013 - 17:36:27: [DETECT] Nakazanie: amx_ban #4055 200000 Opengl
L 06/04/2013 - 18:03:19: [NEW CAVR] ogl32_newdll 1/0 detect new DLL #1
L 06/04/2013 - 18:03:19: [ACTIVATED] Plugin Opengl Detector 0.7.4 activated
L 06/04/2013 - 18:12:18: [OPENGL DETECTED] [hard.|metor1] [95.105.24.147] [HD_001 : CSF_01]
L 06/04/2013 - 18:12:18: [DETECT] Nakazanie: amx_ban #4081 200000 Opengl
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 4.6.2013, 20:53
Сообщение #7


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

grishka444, то что идет в логе после Nakazanie выполняется 1в1 в консоли сервера. Может быть там и то и другое сработало? Я проверю.

Обновится само должно. Обновления проверяются 1 раз в 2-7 дней.
Добавлено обнаружение протектора. Инфу по обновкам я пишу на страничке с плагином. У меня пока тестовый режим - просто в логи пихаю тех кто с протектором. Потом сделаю себе может кик или какое-то наказание вменяемое. Я надеялся что тут будут какие-то идеи плана что делать с протектором.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя se7en2614
сообщение 4.6.2013, 20:56
Сообщение #8


Стаж: 14 лет

Сообщений: 1096
Благодарностей: 126
Полезность: < 0

я походу отсталый человек =) Это типо обновление опенгла дедектора вышло? о_0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 4.6.2013, 20:56
Сообщение #9


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

NeMirofff,
Цитата
ogl32_newdll 1/0 detect new DLL #1
это вы конфиг не обновляли давно уже. Я отказался от информирования в логи - всё равно никто не смотрит, кому интересно смотрят сразу на сайте

se7en2614, да, только тему я делал не о том


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NeMirofff
сообщение 4.6.2013, 20:59
Сообщение #10
Стаж: 13 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

Цитата(mazdan @ 4.6.2013, 21:53) *
grishka444, то что идет в логе после Nakazanie выполняется 1в1 в консоли сервера. Может быть там и то и другое сработало? Я проверю.

Обновится само должно. Обновления проверяются 1 раз в 2-7 дней.
Добавлено обнаружение протектора. Инфу по обновкам я пишу на страничке с плагином. У меня пока тестовый режим - просто в логи пихаю тех кто с протектором. Потом сделаю себе может кик или какое-то наказание вменяемое. Я надеялся что тут будут какие-то идеи плана что делать с протектором.

а конфиг плагина тоже должен обновиться?просто у меня тот же остался...с теми же значениями)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
etkins
сообщение 4.6.2013, 21:00
Сообщение #11
Стаж: 17 лет

Сообщений: 804
Благодарностей: 184
Полезность: < 0

Маздан, я вам писал лс по поводу отлючения протектора сервером, идея не подошла?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NeMirofff
сообщение 4.6.2013, 21:03
Сообщение #12
Стаж: 13 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

Цитата(mazdan @ 4.6.2013, 22:56) *
NeMirofff, это вы конфиг не обновляли давно уже. Я отказался от информирования в логи - всё равно никто не смотрит, кому интересно смотрят сразу на сайте

se7en2614, только тему я делал не о том

а конфиг надо обновлять самому,тоесть с сайта да?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 4.6.2013, 21:05
Сообщение #13


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

etkins, подошла, используется (правда не тестировал)
NeMirofff, да, самому.


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NeMirofff
сообщение 4.6.2013, 21:06
Сообщение #14
Стаж: 13 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

всё)теперь понял)завтра обновлю или ща..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
etkins
сообщение 4.6.2013, 21:08
Сообщение #15
Стаж: 17 лет

Сообщений: 804
Благодарностей: 184
Полезность: < 0

Цитата(mazdan @ 5.6.2013, 1:05) *
etkins, подошла, используется (правда не тестировал)
NeMirofff, да, самому.

Круто, надеюсь сработает, сам не могу пока что протестировать, но думаю обезвреживание протектора таким способом должно сработать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
etkins
сообщение 4.6.2013, 21:21
Сообщение #16
Стаж: 17 лет

Сообщений: 804
Благодарностей: 184
Полезность: < 0

Ах да забыл спросить, как вы ее реализовали? Отсылается команда на отключение, затем проверка(отлючился или нет) затем наказание, если не отлючился протектор?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 4.6.2013, 21:31
Сообщение #17


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

etkins, да, отсылается команда. Не знаю вообще у меня нет такого протектора, наверное, который отключатеся.
Если отключается - хорошо :D В любом случае проверка


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
etkins
сообщение 4.6.2013, 21:42
Сообщение #18
Стаж: 17 лет

Сообщений: 804
Благодарностей: 184
Полезность: < 0

Цитата(mazdan @ 5.6.2013, 1:31) *
etkins, да, отсылается команда. Не знаю вообще у меня нет такого протектора, наверное, который отключатеся.
Если отключается - хорошо :D В любом случае проверка

Понятно, надо будет еще протестировать. Спасибо за поддержку и реализацию. На очереди пополнение базы читов для Аим детектора:-D ну когда я приеду с работы:-)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 9.6.2013, 18:25
Сообщение #19


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Что-то некто не разродился идеями. Вот набросочек. Плагин замораживает игрока, выводит ему в hud и в чат сообщения из текстового файла. После чего кикает.
Наказание за протектор можно убрать или вместо кика прописать что-то своё.

Скрытый текст
Код:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <hamsandwich>

#define PLUGIN "protector punish"
#define VERSION "0.1"
#define AUTHOR "kanagava"

#define info "motd/protector.txt"

forward ogl32_client_protector_detected(id) // Объявляем forward - функция которая будет вызвана дургим плагином
new bool:protector[33]
new g_ScreenFade

new counter[33]


public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR) //Регистрируем плагин
RegisterHam(Ham_Spawn, "player", "player_respawn", 1) //Регистрируем событие spawn игрока
g_ScreenFade = get_user_msgid("ScreenFade");
}

public ogl32_client_protector_detected(id) //эта функция будет вызвана при обнаружении протоектора у игрока
{
protector[id] = true
if(is_user_alive(id)) player_respawn(id)
}

public client_connect(id)
{
protector[id] = false
remove_task(id)
}

public client_disconnect(id)
{
protector[id] = false
remove_task(id)
}

public player_respawn(id)
{
if(protector[id])
{
screenfade(id)
set_task(0.2, "show_string", id)
counter[id] = 0
entity_set_int(id, EV_INT_flags, entity_get_int(id, EV_INT_flags) | FL_FROZEN);
}
}

public screenfade(id) //чей-то код с какого-то сайта...
{
if(is_user_connected(id))
{
message_begin(MSG_ONE, g_ScreenFade, _, id);
write_short(1 << 0);
write_short(1 << 0);
write_short(1 << 2);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(255);
message_end();
}
}

public screenfade_off(id)
{
if(is_user_connected(id))
{
message_begin(MSG_ONE, g_ScreenFade, _, id);
write_short(1 << 12);
write_short(1 << 9);
write_short(1 << 0);
write_byte(0);
write_byte(0);
write_byte(0);
write_byte(0);
message_end();
}
}

public show_string(id)
{
if(is_user_connected(id))
{
if(file_exists(info))
{
static str[256], len
if(read_file(info, counter[id]++, str, 255, len))
{
set_hudmessage(random_num(150,255), random_num(150,255), random_num(150,255), -1.0, (0.15 * (counter[id]%5)), 0, 0.2, 5.0 ,0.2, 0.2,-1); // и худ покажем
show_hudmessage(id,str);
client_print(id, print_chat, str)
//client_cmd(id, "echo %s", str)
set_task(2.5, "show_string", id)
}
else
{
counter[id] = 0
set_task(10.0, "kick",id)
client_print(id, print_chat, "You will be kicked after 10 sec...")
set_task(3.0, "screenfade_off",id)
entity_set_int(id, EV_INT_flags, entity_get_int(id, EV_INT_flags) & ~FL_FROZEN);
}
}
}
}

public kick(id)
{
if(is_user_connected(id))
{
static name[32]
get_user_name(id,name,31)
client_print(0, print_chat,"Игрок %s наказан за протектор",name)
server_cmd("kick #%d ^"Protector Detected^"", get_user_userid(id))
}
}


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 15.6.2013, 23:04
Сообщение #20
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

mazdan,
посмотрел исходник...
пролистал несколько раз не видно не include ничего...
откуда мы вызываем функции

Код
client_opengl_detected(id) // - функция которая будет вызвана при обнаружении OpenGL
ogl32_client_cheat_detected(id, cheat) // - функция которая будет вызвана при обнаружении чита (не OpenGL)
ogl32_client_protector_detected(id) // - функция которая будет вызвана при обнаружении протектора.


как сервер распознает игрока на такие поиски? т.е. как мы находим у игрока OpenGL активность и т.д.?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: