UCP иммунитет против /voteban
|
|
soap | Дата: Вторник, 10.01.2012, 09:48 | Сообщение # 1 |
- Сообщения: 100
- Награды: 0
- Замечания:
|
Здравствуите ! Установил на сервер античи UCP, помогите сделать иммунитет против /voteban для игроков с клиентскои частью античита ! voteban.sma Code #include <amxmodx> #include <amxmisc>
#define MAX_players 32 #define MAX_menudata 1024
new ga_PlayerName[MAX_players][32] new ga_PlayerAuthID[MAX_players][35] new ga_PlayerID[MAX_players] new ga_PlayerIP[MAX_players][16] new ga_MenuData[MAX_menudata] new ga_Choice[2] new gi_VoteStarter new gi_MenuPosition new gi_Sellection new gi_TotalPlayers new gi_SysTimeOffset = 0 new i //pcvars new gi_LastTime new gi_DelayTime new gf_Ratio new gf_MinVoters new gf_BF_Ratio new gi_BanTime new gi_Disable new gi_BanType
public plugin_init() { register_plugin("voteban menu","1.2","hjvl") register_clcmd("say /voteban","SayIt" ) register_menucmd(register_menuid("ChoosePlayer"), 1023, "ChooseMenu") register_menucmd(register_menuid("VoteMenu"), 1023, "CountVotes")
gi_LastTime=register_cvar("amx_voteban_lasttime","0") gi_DelayTime=register_cvar("amxx_voteban_delaytime","300") gf_Ratio=register_cvar("amxx_voteban_ratio","0.60") gf_MinVoters=register_cvar("amxx_voteban_minvoters","0.0") gf_BF_Ratio=register_cvar("amxx_voteban_bf_ratio","0.0") gi_BanTime=register_cvar("amxx_voteban_bantime","60") gi_Disable=register_cvar("amxx_voteban_disable","0") gi_BanType=register_cvar("amxx_voteban_type","2") }
public SayIt(id) { if(get_pcvar_num(gi_Disable)) { client_print(id,print_chat,"amx_voteban выключен") return 0 }
new Elapsed=get_systime(gi_SysTimeOffset) - get_pcvar_num(gi_LastTime) new Delay=get_pcvar_num(gi_DelayTime)
if( (Delay > Elapsed) && !is_user_admin(id) ) { new seconds = Delay - Elapsed client_print(id,print_chat,"Подождите %d секунд(ы) до нового голосования за Бан", seconds) return 0 }
get_players( ga_PlayerID, gi_TotalPlayers ) for(i=0; i<gi_TotalPlayers; i++) { new TempID = ga_PlayerID[i] if( is_user_admin(TempID)) { if(!is_user_admin(id)) { client_print(id,print_chat,"Админ на сервере. Voteban выключен!") return 0 } }
if(TempID == id) gi_VoteStarter=i
get_user_name( TempID, ga_PlayerName[i], 31 ) get_user_authid( TempID, ga_PlayerAuthID[i], 34 ) get_user_ip( TempID, ga_PlayerIP[i], 15, 1 ) }
gi_MenuPosition = 0 ShowPlayerMenu(id) return 0 }
public ShowPlayerMenu(id) { new arrayloc = 0 new keys = (1<<9)
arrayloc = format(ga_MenuData,(MAX_menudata-1),"VoteBAN меню ^n") for(i=0; i<8; i++) if( gi_TotalPlayers>(gi_MenuPosition+i) ) { arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"%d. %s^n", i+1, ga_PlayerName[gi_MenuPosition+i]) keys |= (1<<i) } if( gi_TotalPlayers>(gi_MenuPosition+8) ) { arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"^n9. Больше") keys |= (1<<8) } arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"^n0. НазадВыход")
show_menu(id, keys, ga_MenuData, 20, "ChoosePlayer") return PLUGIN_HANDLED }
public ChooseMenu(id, key) { switch(key) { case 8: { gi_MenuPosition=gi_MenuPosition+8 ShowPlayerMenu(id) } case 9: { if(gi_MenuPosition>=8) { gi_MenuPosition=gi_MenuPosition-8 ShowPlayerMenu(id) } else return 0 } default: { gi_Sellection=gi_MenuPosition+key new Now=get_systime(gi_SysTimeOffset) set_pcvar_num(gi_LastTime, Now)
run_vote() return 0 } } return PLUGIN_HANDLED }
public run_vote() { log_amx("%s начал голосование за Бан %s %s", ga_PlayerName[gi_VoteStarter], ga_PlayerName[gi_Sellection], ga_PlayerAuthID[gi_Sellection]) format(ga_MenuData,(MAX_menudata-1),"Забанить %s на %d минут(ы)?^n1. Да^n2. Нет",ga_PlayerName[gi_Sellection], get_pcvar_num(gi_BanTime)) ga_Choice[0] = 0 ga_Choice[1] = 0 show_menu( 0, (1<<0)|(1<<1), ga_MenuData, 15, "VoteMenu" ) set_task(15.0,"outcom") return 0 }
public CountVotes(id, key) { ++ga_Choice[key] return PLUGIN_HANDLED }
public outcom() { new TotalVotes = ga_Choice[0] + ga_Choice[1] new Float:result = (float(ga_Choice[0]) / float(TotalVotes))
if( get_pcvar_float(gf_MinVoters) >= ( float(TotalVotes) / float(gi_TotalPlayers) ) ) { client_print(0,print_chat,"Недостаточно проголосовавших чтобы забанить %s!", ga_PlayerName[gi_Sellection]) return 0 } else { if( result < get_pcvar_float(gf_BF_Ratio) ) { client_print(0,print_chat,"Голосование за бан %s закончилось, он забанен на %d минут(ы)", ga_PlayerName[gi_VoteStarter], get_pcvar_num(gi_BanTime)) ActualBan(gi_VoteStarter) log_amx("[AMXX] The vote back fired at %s, he is banned for %d minutes", ga_PlayerName[gi_VoteStarter], get_pcvar_num(gi_BanTime)) }
if( result >= get_pcvar_float(gf_Ratio) ) { client_print(0,print_chat,"Голосование успешно!!!, %s забанен на %d минут(ы)", ga_PlayerName[gi_Sellection], get_pcvar_num(gi_BanTime)) log_amx("[AMXX] The vote succeeded: %s is banned for %d minutes", ga_PlayerAuthID[gi_Sellection], get_pcvar_num(gi_BanTime)) ActualBan(gi_Sellection) } else { client_print(0,print_chat,"Голосование безуспешно.") log_amx("The voteban dit not sucseed.") } } client_print(0,print_chat,"Всего проголосовали %d игрок(ов), %d за.", gi_TotalPlayers, ga_Choice[0])
return 0 }
public ActualBan(Selected) { new Type = get_pcvar_num(gi_BanType) switch(Type) { case 1: server_cmd("addip %d %s", get_pcvar_num(gi_BanTime), ga_PlayerIP[Selected]) case 2: server_cmd("amx_ban %d %s Voteban", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected]) default: server_cmd("banid %d %s kick", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected]) } return 0 }
|
|
| |
SMaster | Дата: Вторник, 10.01.2012, 16:02 | Сообщение # 2 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
soap, Сейчас на это времени точно нет. Как появится возможно сделаю.
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
soap | Дата: Вторник, 10.01.2012, 17:52 | Сообщение # 3 |
- Сообщения: 100
- Награды: 0
- Замечания:
|
SMaster, буду очень признателен )
|
|
| |
SMaster | Дата: Четверг, 12.01.2012, 10:08 | Сообщение # 4 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
soap, Прочитай на официальном сайте про новый клиент UCP. Автор данного античита полностью заблокировал все плагины NO UCP. Следовательно добавление имунитета против вотебана теперь смысла не имеет. Все обязаны установить античит чтобы играть.
--Вырезка с официального сайта 02.01.12 Новая версия UCP 7.4 * Заблокированы NO-UCP плагины * Поддержка Steam Community HL1. Новая система защиты от читов, которые не внедряются в процесс игры HL1. Поддержка модуля MetaHook 2.1 HL2. Добавлены базу текстуры карты de_maya
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
soap | Дата: Четверг, 12.01.2012, 11:40 | Сообщение # 5 |
- Сообщения: 100
- Награды: 0
- Замечания:
|
Я на сервер поставил версию 7.0 с NO-UCP плагином, не обязательно ставить 7.4 на сервер , но клиент можно скачать ! Он заходит на сервера не ниже 7.0 ! Смысл есть в вотебане и будет всегда )
|
|
| |
SMaster | Дата: Четверг, 12.01.2012, 13:57 | Сообщение # 6 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Держи свой плагин с иммунитетом.
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
soap | Дата: Четверг, 12.01.2012, 19:03 | Сообщение # 7 |
- Сообщения: 100
- Награды: 0
- Замечания:
|
Что то на тестовом сервере попробовал unknown ! Или он только на сервер с UCP работает?!
|
|
| |
SMaster | Дата: Четверг, 12.01.2012, 19:50 | Сообщение # 8 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
soap, Да
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
soap | Дата: Четверг, 12.01.2012, 22:19 | Сообщение # 9 |
- Сообщения: 100
- Награды: 0
- Замечания:
|
Спасибо тебе ) Не сочти за наглость но ты не мог бы переделать что бы вот так было ?)
|
|
| |
SMaster | Дата: Пятница, 13.01.2012, 04:24 | Сообщение # 10 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Держи меню с дополненной надписью [Античит]
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
soap | Дата: Среда, 01.02.2012, 01:38 | Сообщение # 11 |
- Сообщения: 100
- Награды: 0
- Замечания:
|
блин SMaster, огромное тебе спасибо ты мне во многом помог !
Добавлено (13.01.2012, 14:42) --------------------------------------------- Блин мне и так сойдет, но если тебе не лень сделай еще + что бы у кого античит на них нельзя было нажать как на картинке и что бы игроки без античита ме могли пользоваться вотебанои и писалось "Скачайте античит что бы пользоваться вотебан ! И причина самого бана : Установите античит игроки негодуют !:greedy:
Добавлено (31.01.2012, 11:49) --------------------------------------------- SMaster, будет время ответь мне )
Добавлено (01.02.2012, 01:38) --------------------------------------------- Я вот нашел как причину добавить, добавил ! А остальное нигде не нашел, SMaster, добавь пожалуста что бы у кого античит на них нельзя было нажать как на картинке и что бы игроки без античита ме могли пользоваться вотебанои и писалось "Скачайте античит что бы пользоваться вотебан ! И что то не компилируется у меня хотя фаил укп.инк в инклюды кинул ! Code #include <amxmodx> #include <amxmisc> #include <ucp> #define MAX_players 32 #define MAX_menudata 1024 new ga_PlayerName[MAX_players][32] new ga_PlayerAuthID[MAX_players][35] new ga_PlayerID[MAX_players] new ga_PlayerIP[MAX_players][16] new ga_MenuData[MAX_menudata] new ga_Choice[2] new gi_VoteStarter new gi_MenuPosition new gi_Sellection new gi_TotalPlayers new gi_SysTimeOffset = 0 new i //pcvars new gi_LastTime new gi_DelayTime new gf_Ratio new gf_MinVoters new gf_BF_Ratio new gi_BanTime new gi_Disable new gi_BanType public plugin_init() { register_plugin("voteban menu","1.2","hjvl") register_clcmd("say /voteban","SayIt" ) register_menucmd(register_menuid("ChoosePlayer"), 1023, "ChooseMenu") register_menucmd(register_menuid("VoteMenu"), 1023, "CountVotes") gi_LastTime=register_cvar("amx_voteban_lasttime","0") gi_DelayTime=register_cvar("amxx_voteban_delaytime","600") gf_Ratio=register_cvar("amxx_voteban_ratio","0.70") gf_MinVoters=register_cvar("amxx_voteban_minvoters","0.0") gf_BF_Ratio=register_cvar("amxx_voteban_bf_ratio","0.0") gi_BanTime=register_cvar("amxx_voteban_bantime","5") gi_Disable=register_cvar("amxx_voteban_disable","0") gi_BanType=register_cvar("amxx_voteban_type","1") } public SayIt(id) { if(get_pcvar_num(gi_Disable)) { client_print(id,print_chat,"amx_voteban выключен") return 0 } new Elapsed=get_systime(gi_SysTimeOffset) - get_pcvar_num(gi_LastTime) new Delay=get_pcvar_num(gi_DelayTime) if( (Delay > Elapsed) && !is_user_admin(id) ) { new seconds = Delay - Elapsed client_print(id,print_chat,"Подождите %d секунд(ы) до нового голосования за Бан", seconds) return 0 } get_players( ga_PlayerID, gi_TotalPlayers ) for(i=0; i<gi_TotalPlayers; i++) { new TempID = ga_PlayerID[i] if( is_user_admin(TempID)) { if(!is_user_admin(id)) { client_print(id,print_chat,"Админ на сервере. Voteban выключен!") return 0 } } if(TempID == id) gi_VoteStarter=i get_user_name( TempID, ga_PlayerName[i], 31 ) get_user_authid( TempID, ga_PlayerAuthID[i], 34 ) get_user_ip( TempID, ga_PlayerIP[i], 15, 1 ) } gi_MenuPosition = 0 ShowPlayerMenu(id) return 0 } public ShowPlayerMenu(id) { new arrayloc = 0 new keys = (1<<9) arrayloc = format(ga_MenuData,(MAX_menudata-1),"VoteBAN меню ^n") for(i=0; i<8; i++) if( gi_TotalPlayers>(gi_MenuPosition+i) ) { new idSelect = get_user_index(ga_PlayerName[gi_MenuPosition+i]); new szUcpId[9]; ucp_id(idSelect, szUcpId); if(equali(szUcpId,"")) arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"%d. %s^n", i+1, ga_PlayerName[gi_MenuPosition+i]) else arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"%d. %s [Античит]^n", i+1, ga_PlayerName[gi_MenuPosition+i]) keys |= (1<<i) } if( gi_TotalPlayers>(gi_MenuPosition+8) ) { arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"^n9. Больше") keys |= (1<<8) } arrayloc += format(ga_MenuData[arrayloc],(MAX_menudata-1-arrayloc),"^n0. НазадВыход") show_menu(id, keys, ga_MenuData, 20, "ChoosePlayer") return PLUGIN_HANDLED } public ChooseMenu(id, key) { switch(key) { case 8: { gi_MenuPosition=gi_MenuPosition+8 ShowPlayerMenu(id) } case 9: { if(gi_MenuPosition>=8) { gi_MenuPosition=gi_MenuPosition-8 ShowPlayerMenu(id) } else return 0 } default: { gi_Sellection=gi_MenuPosition+key new Now=get_systime(gi_SysTimeOffset) set_pcvar_num(gi_LastTime, Now) run_vote(id) return 0 } } return PLUGIN_HANDLED } public run_vote(id) { new idSelect = get_user_index(ga_PlayerName[gi_Sellection]); new szUcpId[9]; ucp_id(idSelect, szUcpId); if(equali(szUcpId,"")) { log_amx("%s начал голосование за Бан %s %s", ga_PlayerName[gi_VoteStarter], ga_PlayerName[gi_Sellection], ga_PlayerAuthID[gi_Sellection]) format(ga_MenuData,(MAX_menudata-1),"Забанить %s на %d минут(ы)?^n1. Да^n2. Нет",ga_PlayerName[gi_Sellection], get_pcvar_num(gi_BanTime)) ga_Choice[0] = 0 ga_Choice[1] = 0 show_menu( 0, (1<<0)|(1<<1), ga_MenuData, 15, "VoteMenu" ) set_task(15.0,"outcom") } else { client_print(id,print_chat,"У игрока %s установлен Античит !",ga_PlayerName[gi_Sellection]); } return 0 } public CountVotes(id, key) { ++ga_Choice[key] return PLUGIN_HANDLED } public outcom() { new TotalVotes = ga_Choice[0] + ga_Choice[1] new Float:result = (float(ga_Choice[0]) / float(TotalVotes)) if( get_pcvar_float(gf_MinVoters) >= ( float(TotalVotes) / float(gi_TotalPlayers) ) ) { client_print(0,print_chat,"Недостаточно проголосовавших чтобы забанить %s!", ga_PlayerName[gi_Sellection]) return 0 } else { if( result < get_pcvar_float(gf_BF_Ratio) ) { client_print(0,print_chat,"Голосование за бан %s закончилось, он забанен на %d минут(ы)", ga_PlayerName[gi_VoteStarter], get_pcvar_num(gi_BanTime)) ActualBan(gi_VoteStarter) log_amx("[AMXX] The vote back fired at %s, he is banned for %d minutes", ga_PlayerName[gi_VoteStarter], get_pcvar_num(gi_BanTime)) } if( result >= get_pcvar_float(gf_Ratio) ) { client_print(0,print_chat,"Голосование успешно!!!, %s забанен на %d минут(ы)", ga_PlayerName[gi_Sellection], get_pcvar_num(gi_BanTime)) log_amx("[AMXX] The vote succeeded: %s is banned for %d minutes", ga_PlayerAuthID[gi_Sellection], get_pcvar_num(gi_BanTime)) ActualBan(gi_Sellection) message_begin( MSG_ONE, SVC_DISCONNECT, _, id ); write_string( "Установите античит ! Игроки негодуют ^"www.war3ft.tk"^") message_end( ) } else { client_print(0,print_chat,"Голосование безуспешно.") log_amx("The voteban dit not sucseed.") } } client_print(0,print_chat,"Всего проголосовали %d игрок(ов), %d за.", gi_TotalPlayers, ga_Choice[0]) return 0 } public ActualBan(Selected) { new Type = get_pcvar_num(gi_BanType) switch(Type) { case 1: server_cmd("addip %d %s", get_pcvar_num(gi_BanTime), ga_PlayerIP[Selected]) case 2: server_cmd("amx_ban %d %s Voteban", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected]) default: server_cmd("banid %d %s kick", get_pcvar_num(gi_BanTime), ga_PlayerAuthID[Selected]) } return 0 }
Сообщение отредактировал soap - Среда, 01.02.2012, 01:39 |
|
| |
SMaster | Дата: Среда, 01.02.2012, 05:37 | Сообщение # 12 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
soap, Твой код с ошибками. Я старый взял,который выше прикреплен. Добавил что написано,но на этот раз без проверки. UCP нет желания искать и ставить снова.
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
soap | Дата: Среда, 01.02.2012, 23:08 | Сообщение # 13 |
- Сообщения: 100
- Награды: 0
- Замечания:
|
SMaster, ты просто, хороший человек спс ) А скажи почему у меня не компилируется ? ucp.inc в инклудах есть, может он не такой?!
|
|
| |
SMaster | Дата: Четверг, 02.02.2012, 00:39 | Сообщение # 14 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Возможно конечно что не такой. Со старой версии какой-нибудь. Замени его.
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
soap | Дата: Четверг, 02.02.2012, 10:47 | Сообщение # 15 |
- Сообщения: 100
- Награды: 0
- Замечания:
|
Все, получилось компилятором из версии 1.4
|
|
| |
rustamo | Дата: Пятница, 17.02.2012, 20:26 | Сообщение # 16 |
- Сообщения: 3
- Награды: 0
- Замечания:
|
SMaster, а подскажи пожалуйста, этот вотебан совместим с amxbans 1.6 ? Добавлено (17.02.2012, 20:24) ---------------------------------------------
Quote (rustamo) SMaster, а подскажи пожалуйста, этот вотебан совместим с amxbans 1.6 ?
Совместим, проверил. )))Добавлено (17.02.2012, 20:26) --------------------------------------------- И еще, те кто играет со Steam , как к ним то отнестись, они ведь не могут воспользоваться командой /voteban и причем еще на них действует сам /voteban. Что то нужно сделать с этим, помоги пожалуйста.
|
|
| |
SMaster | Дата: Пятница, 17.02.2012, 23:53 | Сообщение # 17 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Quote (rustamo) И еще, те кто играет со Steam , как к ним то отнестись, они ведь не могут воспользоваться командой /voteban и причем еще на них действует сам /voteban. Что то нужно сделать с этим, помоги пожалуйста.
Тут вряд ли что-то изменить можно т.к. и NoNSteam идет уже со своим ID. Поэтому сложно определить кто играет со стим или без него. Я пока не вижу к чему можно привязаться и определить кто со стим или без него.
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
rustamo | Дата: Суббота, 18.02.2012, 00:08 | Сообщение # 18 |
- Сообщения: 3
- Награды: 0
- Замечания:
|
А вот в таблице где показаны очки, фраги , пинг, тот кто играет со стим, у того по любому есть аватар, да даже если нету, то за место него идет пустота в виде вопросика. К этому никак нельзя прицепится? Добавлено (18.02.2012, 00:08) --------------------------------------------- А еще я заметил что, у кого лицуха стим то у того выглядит ИД таким образом STEAM_0:1:******** А тот у кого NoNSteam выглядит вот так STEAM_0:0:********
|
|
| |
SMaster | Дата: Суббота, 18.02.2012, 00:16 | Сообщение # 19 |
- Сообщения: 2189
- Награды: 46
- Замечания:
|
Какой смысл выгораживать игроков со стимом если читов для него уже как грязи? Пусть ставят себе UCP и играют спокойно.
Наша группа вконтакте http://vk.com/nano_world_cs
Контакты: ICQ 607786179 Skype xonahead
|
|
| |
rustamo | Дата: Суббота, 18.02.2012, 00:21 | Сообщение # 20 |
- Сообщения: 3
- Награды: 0
- Замечания:
|
Quote (SMaster) Какой смысл выгораживать игроков со стимом если читов для него уже как грязи?
Честно, не знал )))
|
|
| |