Плагин позволяющий выбрать: Продлить ли карту или закончить. После того как большенство продлевает, карта продолжается еще на некоторое время а потом голосование за выбор карты. А если большенство не продливают карту, то через 15 сек должно идти голосование за карту. Этот вопрос поднимался но там не было определенного ответа и тему закрыли.
В той теме указан вот этот плагин, но при совмесном использовании его и Мапменеджера, выбор карты и вопрос о продлении выводиться одновременно и выбор карты имеет приоритет над голосованием за продление. Дайте ссылку на готовый плагин или поправьте код этого:
Код
#include <amxmodx>
#include <amxmisc>
#define TASKID1 164843
#define MENU_KEYS ((1<<0)|(1<<1))
new bool:g_bShowVote = true
new g_iVotes
new bool:g_bCstrike
new g_szMapName[32]
new g_pcvarRatio, g_pcvarMax, g_pcvarStep, g_pcvarAnswers, mp_timelimit
public plugin_init(){
register_plugin("Map Extend Vote", "1.0b", "Rzeznik")
g_pcvarRatio = register_cvar("amx_extendmap_ratio", "0.6")
g_pcvarMax = register_cvar("amx_extendmap_max", "30")
g_pcvarStep = register_cvar("amx_extendmap_step", "3")
g_pcvarAnswers = register_cvar("amx_vote_answers", "0")
register_menucmd(register_menuid("Extend map"), MENU_KEYS, "vote_count")
}
public plugin_cfg()
{
set_task(15.0, "Vote_Extend", TASKID1, _, _, "b")
get_mapname(g_szMapName, 31)
mp_timelimit = get_cvar_pointer("mp_timelimit")
g_bCstrike = bool:cstrike_running()
}
public check_votes(){
new iPlayers[32], iNum
get_players(iPlayers, iNum, "ch")
new Float:fStepTime = get_pcvar_float(g_pcvarStep)
new Float:fTimeLimit = get_pcvar_float(mp_timelimit)
new Float:fVoteRatio = get_pcvar_float(g_pcvarRatio)
new Float:fResult = iNum ? (float(g_iVotes) / float(iNum)) : 0.0
if (fResult >= fVoteRatio)
{
client_print(0, print_chat, "* Voting successful. Map will be extended to next %.0f minutes", fStepTime)
new Float:fNewTime = fTimeLimit + fStepTime
set_pcvar_float(mp_timelimit, fNewTime)
if(fNewTime + fStepTime < get_pcvar_float(g_pcvarMax))
g_bShowVote = true
else
remove_task(TASKID1)
}
else {
remove_task(TASKID1)
client_print(0, print_chat, "* Voting failed. Map won't be extended")
}
}
public vote_count(id, key)
{
if (get_pcvar_float(g_pcvarAnswers))
{
new szName[32]
get_user_name(id, szName, 31)
client_print(0, print_chat, "* %s voted for %s", szName, key ? "no-extend" : "extend")
}
if(!key)
{
++g_iVotes
}
}
public Vote_Extend(){
new iTimeleft = get_timeleft()
if(!g_bShowVote)
return
if (iTimeleft > 0 && iTimeleft < 120)
{
g_bShowVote = false
g_iVotes = 0
new szMenu[256]
if (g_bCstrike) formatex(szMenu, 255, "\yExtend map %s?\w^n^n1. Yes^n2. No", g_szMapName)
else formatex(szMenu, 255, "Extend map %s?^n^n1. Yes^n2. No", g_szMapName)
show_menu(0, MENU_KEYS, szMenu, 15)
set_task(15.0, "check_votes")
client_cmd(0, "spk Gman/Gman_Choose2")
client_print(0, print_chat, "* Voting for the map extending started...")
}
else if(iTimeleft <= 135 && iTimeleft > 120)
{
client_print(0, print_chat, "* Votemap will start in 15 seconds")
}
}