Nister_Just
Умник
Проблема в том , что ник нарушителя того кого кикнуло не видно помогите это исправить и когда голосование нет или закончилась можно и дальше вводить /yes /no то есть проверки нету что голосование не запущена . Как сделать , чтобы команда /yes /no была не доступна когда голосование нет!
Весь код!
Весь код!
PHP:
new bool:VoteOn = false,
bool:HasVoted[MAX_PLAYERS] = false,
VoteAgainst = -1,
VoteReason[64],
VoteTimer,
YesVotes,
NoVotes;
CMD:votekick(playerid, params[])
{
if(pInfo[playerid][pXP] >= 5000)
{
if(VoteOn) return SendClientMessage(playerid, 0xCC0000AA, "Уже идёт голосование!");
if(GetPVarInt(playerid,"AnFvote") > gettime()) return SendClientMessage(playerid,-1,"Команду можно использовать раз в 1 минуту!");
SetPVarInt(playerid,"AnFvote",gettime() + 60);
if(sscanf(params, "rS(None)[64]", params[0], params[2])) return SendClientMessage(playerid, 0xCC0000AA, "/votekick [ID игрока] [Причина]");
if(pInfo[params[0]][pAdmin] > 0 || pInfo[params[0]][pVipLevel] > 6)
{
SendClientMessage(playerid, COLOR_CYAN, "Вы не можете кикнуть этого игрока! (Админ/VIP!)");
return 1;
}
VoteAgainst = params[0];
format(VoteReason, sizeof(VoteReason), "%s", params[2]);
VoteTimer = SetTimer("VoteEnd", 30_000, false);
format(S_String, sizeof(S_String), ""WH_C"Игрок:"AC_C" %s"WH_C" хочет кикнуть игрока: %s"RD_C" Причина: %s",PlayerName(playerid),PlayerName(params[0]), VoteReason);
SendClientMessageToAll(0x00CCCC, S_String);
SendClientMessageToAll(-1, ""GY_C"Чтобы проголосовать за кик игрока, За- /yes Против /no");
}
else return SendClientMessage(playerid, 0xCC0000AA, "Что бы начать голосование, Ваш уровень должен быть 25000XP");
return 1;
}
CMD:yes(playerid)
{
if(HasVoted[playerid]) return SendClientMessage(playerid, 0xCC0000AA, "Вы уже проголосовали!");
YesVotes++;
HasVoted[playerid] = true;
format(S_String, sizeof(S_String), ""WH_C"Игрок:"AC_C" %s | "GY_C"За: %i "BR_C"Против: %i", PlayerName(playerid),YesVotes, NoVotes);
SendClientMessageToAll(0x00CCCCAA, S_String);
return 1;
}
CMD:no(playerid)
{
if(HasVoted[playerid]) return SendClientMessage(playerid, 0xCC0000AA, "Вы уже проголосовали!");
NoVotes++;
HasVoted[playerid] = true;
format(S_String, sizeof(S_String), ""WH_C"Игрок:"AC_C" %s | "GY_C"За: %i "BR_C"Против: %i", PlayerName(playerid),YesVotes, NoVotes);
SendClientMessageToAll(0x00CCCCAA, S_String);
return 1;
}
forward VoteEnd();
public VoteEnd()
{
new string[128];
if(YesVotes == NoVotes) format(string, sizeof(string), "Голосование окончено. За: %i Против: %i", YesVotes, NoVotes);
else if(YesVotes > NoVotes)
{
format(string, sizeof(string), "За: %i Против: %i Нарушитель был(а) кикнут(а) Причина: %s", YesVotes, NoVotes, VoteReason);
KickEx(VoteAgainst);
}
else format(string, sizeof(string), "Голосование окончено. За: %i Против: %i", YesVotes, NoVotes);
SendClientMessageToAll(COLOR_ZONA, string);
VoteAgainst = -1;
VoteReason = "\0";
YesVotes = 0; NoVotes = 0;
foreach(Player,i) if(HasVoted[i]) HasVoted[i] = false;
VoteOn = false;
KillTimer(VoteTimer);
}
