Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #define PLUGIN "Vote kick"
- #define VERSION "1.0"
- #define AUTHOR "Sugisaki"
- #define TASK_ID 55541
- new keys = MENU_KEY_0 | MENU_KEY_1 | MENU_KEY_2
- new g_countdown
- new voter
- new voted
- new yes
- new no
- new bool:is_active_vote
- new bool:user_vote[33]
- new g_razon[20]
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- register_menucmd(register_menuid("VoteKick"), keys, "pfn_mh_votekick")
- register_clcmd(".votekick", "pfn_vote_callbegin")
- }
- public pfn_vote_callbegin(id)
- {
- if(!is_user_connected(id))
- return PLUGIN_HANDLED
- if(is_active_vote)
- {
- client_print(id, print_chat, "[VOTEKICK] Hay una votacion en curso, debes esperar a que termine")
- return PLUGIN_HANDLED
- }
- new arg[20]
- read_argv(1, arg, 19)
- new target = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
- if(!target)
- return PLUGIN_HANDLED
- if(get_user_team(id) != get_user_team(target))
- {
- console_print(id, "[VOTEKICK] Solo puedes hacer vote a los de tu mismo equipo")
- return PLUGIN_HANDLED
- }
- read_argv(2, g_razon, 19)
- if(!g_razon[0])
- formatex(g_razon, 19, "Sin Especificar")
- g_countdown = 11
- voted = target
- voter = id
- yes = 0
- no = 0
- for(new i = 1 ; i <= get_maxplayers() ; i++)
- {
- user_vote[i] = false
- }
- yes++
- no++
- user_vote[voted] = true
- user_vote[voter] = true
- pfn_task_make_menu()
- set_task(1.0, "pfn_task_make_menu", TASK_ID, _, _, "b")
- is_active_vote = false
- return PLUGIN_HANDLED
- }
- public pfn_task_make_menu()
- {
- g_countdown--
- for(new i = 1 ; i <= get_maxplayers() ; i++)
- {
- if(!is_user_connected(i))
- continue
- if(get_user_team(i) != get_user_team(voter))
- continue
- make_menu(i, g_razon)
- }
- if(!g_countdown)
- {
- remove_task(TASK_ID)
- fn_vote_reject()
- }
- }
- public make_menu(id, const razon[])
- {
- static menu[150], name[32]
- get_user_name(voted, name, 31)
- formatex(menu, charsmax(menu), "\yExpulsar a %s | Razon: %s^n^n", name, razon)
- if(yes)
- format(menu, charsmax(menu), "%s\r1. \wSi | \y%i^n", menu, yes)
- else
- format(menu, charsmax(menu), "%s\r1. \wSi^n", menu)
- if(no)
- format(menu, charsmax(menu), "%s\r2. \wNo | \y%i^n^n", menu, no)
- else
- format(menu, charsmax(menu), "%s\r2. \wNo^n^n", menu)
- format(menu, charsmax(menu), "%s\wTiempo restante: \y%i", menu, g_countdown)
- show_menu(id, keys, menu, 2, "VoteKick")
- }
- public pfn_mh_votekick(id, key)
- {
- if(!g_countdown)
- return PLUGIN_HANDLED
- if(user_vote[id])
- {
- make_menu(id, g_razon)
- return PLUGIN_HANDLED
- }
- switch(key)
- {
- case 0 : yes++
- case 1 : no++
- }
- if(yes == 4)
- {
- fn_vote_accept()
- remove_task(TASK_ID)
- }
- else if(no == 4)
- {
- fn_vote_reject()
- remove_task(TASK_ID)
- }
- else
- {
- for(new i = 1 ; i <= get_maxplayers() ; i++)
- {
- if(!is_user_connected(i))
- continue
- if(get_user_team(i) != get_user_team(voter))
- continue
- make_menu(i, g_razon)
- }
- }
- user_vote[id] = true
- return PLUGIN_HANDLED
- }
- fn_vote_accept()
- {
- server_cmd("kick #%i Has sido desconectado de la sesion", get_user_userid(voted))
- static menu[150], name[32]
- get_user_name(voted, name, 31)
- formatex(menu, charsmax(menu), "\yExpulsar a %s | Razon: %s^n^n", name, g_razon)
- if(yes)
- format(menu, charsmax(menu), "%s\r1. \wSi | \y%i^n", menu, yes)
- else
- format(menu, charsmax(menu), "%s\r1. \wSi^n", menu)
- if(no)
- format(menu, charsmax(menu), "%s\r2. \wNo | \y%i^n^n", menu, no)
- else
- format(menu, charsmax(menu), "%s\r2. \wNo^n^n", menu)
- format(menu, charsmax(menu), "%s\yVotacion aceptada", menu)
- for(new i = 1 ; i <= get_maxplayers() ; i++)
- {
- if(!is_user_connected(i))
- continue
- if(get_user_team(i) != get_user_team(voter))
- continue
- show_menu(i, keys, menu, 10, "NONEEEE")
- }
- is_active_vote = false
- }
- fn_vote_reject()
- {
- static menu[150], name[32]
- get_user_name(voted, name, 31)
- formatex(menu, charsmax(menu), "\yExpulsar a %s | Razon: %s^n^n", name, g_razon)
- if(yes)
- format(menu, charsmax(menu), "%s\r1. \wSi | \y%i^n", menu, yes)
- else
- format(menu, charsmax(menu), "%s\r1. \wSi^n", menu)
- if(no)
- format(menu, charsmax(menu), "%s\r2. \wNo | \y%i^n^n", menu, no)
- else
- format(menu, charsmax(menu), "%s\r2. \wNo^n^n", menu)
- format(menu, charsmax(menu), "%s\rVotacion rechazada", menu)
- for(new i = 1 ; i <= get_maxplayers() ; i++)
- {
- if(!is_user_connected(i))
- continue
- if(get_user_team(i) != get_user_team(voter))
- continue
- show_menu(i, keys, menu, 10, "NONEEEE")
- }
- is_active_vote = false
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement