Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

votekick

Статус
В этой теме нельзя размещать новые ответы.

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);
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу