Raised This Month: $ Target: $400
 0% 

VoteBan + HD_Ban


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
SivAnOl
Junior Member
Join Date: Jan 2013
Old 01-26-2013 , 09:32   VoteBan + HD_Ban
Reply With Quote #1

Good day!
We have:
There is a source code plugin VoteBan (version and the rest not know for sure).
Plugin without colorchat and so on, in general almost standard.
The plugin is already set up as needed, you just need to rewrite something in the source.
What you need:
Make sure that:
amxx_voteban_type 0 - kick players involved with the reason.
amxx_voteban_type 1 - included a ban players using Hacks Detector with the reason (hd_ban% userid%% time%% reason%).
amxx_voteban_type 2 - included a ban players with the usual ban stating the reason (amx_ban).
amxx_voteban_type 3 - included a ban players with amx_bans indicating the reason.
Source:
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","1.5","RAF")
 register_clcmd("say /voteban","SayIt" )
 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","180")
 gf_Ratio=register_cvar("amxx_voteban_ratio","0.55")
 gf_MinVoters=register_cvar("amxx_voteban_minvoters","0.1")
 gf_BF_Ratio=register_cvar("amxx_voteban_bf_ratio","0.25")
 gi_BanTime=register_cvar("amxx_voteban_bantime","30")
 gi_Disable=register_cvar("amxx_voteban_disable","0")
 gi_BanType=register_cvar("amxx_voteban_type","0")
}

public SayIt(id)
{
 if(get_pcvar_num(gi_Disable))
 {
 client_print(id,print_chat,"VoteBan off.")
 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("VoteBan запустил %s против %s %s.=D.",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 минут voteban'ом.",ga_PlayerName[gi_VoteStarter],get_pcvar_num(gi_BanTime))
 ActualBan(gi_VoteStarter)
 log_amx("[AMXX] %s was 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 минут voteban'ом.",ga_PlayerName[gi_Sellection],get_pcvar_num(gi_BanTime))
 log_amx("[AMXX] %s was Banned for %d minutes.",ga_PlayerAuthID[gi_Sellection],get_pcvar_num(gi_BanTime))
 ActualBan(gi_Sellection)
 }
 else
 {
 client_print(0,print_chat,"Голосование не состоялось.Недостаточно голосов.")
 log_amx("[AMXX] 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 
}
Please help me. Thanks in advance.
SivAnOl is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:41.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode