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

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

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

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

Система выборов.

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

Gressie

Мастер
- V I P -
Пользователь
Регистрация
17 Май 2011
Сообщения
4,171
Лучшие ответы
64
Репутация
1,379
Награды
4
Ко всем командам:
PHP:
CMD:getpick(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return 1;
    if(PlayerInfo[playerid][pAdmin] < 1) return 1;
    if(Pick == false) return SendClientMessage(playerid, COLOR_GREY, "В штате нет выборов!");
	GetPick(playerid);
	return 1;
}

CMD:pick(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 4) return 1;
    ShowPlayerDialog(playerid, D_PICK+3, 2, "Выборы", "Начать выборы\nЗакончить выоборы\nИзменить имена кандидатов", "Принять", "Отмена");
	return 1;
}

CMD:picklist(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return 1;
	if(Pick == true) return SendClientMessage(playerid, COLOR_GREY, "В штате не закончены выборы!");
	GetPick(playerid);
	return 1;
}
Ко всем дефайнам:
PHP:
#define D_PICK 			20 // выборы
#define TABLE_PICK          "mayor"
#define D_NULL 			0 // Информационный диалог
ко всем new:
PHP:
new PickNames[256],PickName[7][32],PickDate,PickTimes[128],PickTime[7];
Ко всем стокам:
PHP:
stock GetPick(playerid)
{
	new str[256], srrt[256], full = 0;
	for(new i = 0; i < 7; i++)
	{
 		if(strcmp(PickName[i],"None",false))
   		{
			format(str, sizeof(str), "{ffffff}Кандидат №%i - {33AAFF}%s {ffffff}(Голосов: {33AAFF}%d{ffffff})\n",i+1, PickName[i], PickTime[i]);
			strcat(srrt, str);
			full++;
		}
	}
	if(full == 0) strcat(srrt, "Кандидатов нет");
	ShowPlayerDialog(playerid, D_NULL, 0, "Выборы", srrt, "Закрыть", "");
	return true;
}

stock ResetPick()
{
	for(new i; i < GetMaxPlayers(); i++)
	{
		if(!IsPlayerConnected(i)) continue;
	 	PlayerInfo[i][pPick] = 0;
	}
    mysql_query("UPDATE "TABLE_ACCOUNT" SET pick = '0'");
    mysql_query("UPDATE "TABLE_PICK" SET pick = '0'");
    Pick = false;
    PickDate = 0;
    return true;
}
В сток LoadPick:
PHP:
PickNames,
PickDate,
PickTimes,
Pick,
Чуть ниже:
PHP:
sscanf(PickNames, "p<,>s[32]s[32]s[32]s[32]s[32]s[32]s[32]",PickName[0],PickName[1], PickName[2], PickName[3], PickName[4], PickName[5], PickName[6]);
sscanf(PickTimes, "p<,>a<i>[7]",PickTime);
Ко всем пикапам:
PHP:
if(pickupid == Pickup[0])
	{
		if(Pick == false) return SendClientMessage(playerid, COLOR_GREY, "В штате нет выборов!");
		if(PlayerInfo[playerid][pPick] > 0) return SendClientMessage(playerid, COLOR_GREY, "Вы уже голосовали на этих выборах!");
		new str[256], srrt[256], full = 0;
		for(new i = 0; i < 7; i++)
		{
 			if(strcmp(PickName[i],"None",false))
   			{
				format(str, sizeof(str), "Проголосовать за - %s\n", PickName[i]);
				strcat(srrt, str);
				full++;
			}
  		}
  		if(full == 0) strcat(srrt, "Кандидатов нет"), ShowPlayerDialog(playerid, D_NULL, 0, "Выборы", srrt, "Закрыть", "");
  		else ShowPlayerDialog(playerid, D_PICK, DIALOG_STYLE_LIST, "Выборы", srrt, "Принять", "Отмена");
  		return 1;
	}
Ко всем Кейсам:
PHP:
case D_PICK:
		{
		    if(!response) return 1;
      		if(!strcmp(sendername(playerid),PickName[listitem],true)) return SendClientMessage(playerid, COLOR_GREY, "Ты не можешь проголосовать за себя!");
			PickTime[listitem]++, SendMes(playerid, COLOR_BLUE, "Вы проголосовали за: %s", PickName[listitem]);
	    	format(PickTimes,128,"%d,%d,%d,%d,%d,%d,%d",PickTime[0],PickTime[1],PickTime[2],PickTime[3],PickTime[4],PickTime[5],PickTime[6]);
			format(query, sizeof(query), "UPDATE "TABLE_PICK" SET times='%s'",PickTimes);
			mysql_query(query);
		    PlayerInfo[playerid][pPick] = 1;
		}
		case D_PICK+1:
		{
		    if(!response) return 1;
		    format(string, 90, "Введите имя кандидата на слот номер №%i:", listitem);
		    ShowPlayerDialog(playerid, D_PICK+2, 1, "Кандидат", string, "Принять", "Отмена");
		    SetPVarInt(playerid, "NumberPick", listitem);
		}
		case D_PICK+2:
		{
			if(!response) { DeletePVar(playerid, "NumberPick"); return 1; }
			new c = GetPVarInt(playerid, "NumberPick");
			if(sscanf(inputtext,"s[32]",PickName[c])) { format(string, 90, "Введите имя кандидата на слот номер №%i:", c); return ShowPlayerDialog(playerid, D_PICK+2, 1, "Кандидат", string, "Принять", "Отмена"); }
			format(PickNames, 256, "%s, %s, %s, %s, %s, %s, %s",PickName[0], PickName[1], PickName[2], PickName[3], PickName[4], PickName[5], PickName[6]);
			format(query, sizeof(query), "UPDATE "TABLE_PICK" SET Name = '%s'", PickNames);
    		mysql_query(query);
    		SendMes(playerid, COLOR_ORANGE, "Вы добавили в кандидаты: %s",PickName[c]);
    		DeletePVar(playerid, "NumberPick");
		}
		case D_PICK+3:
		{
			if(!response) return 1;
			switch(listitem)
			{
			    case 0:
			    {
			        if(Pick == true) return SendClientMessage(playerid, COLOR_GREY, "В штате уже проходят выборы!");
					SendClientMessageToAll(0xBC331AFF, "Внимание! В штате начались выборы. Длительность 6 часов");
					PickDate = gettime()+21600;
					Pick = true;
					format(query, sizeof(query),"UPDATE "TABLE_PICK" SET pick ='1', name='None, None, None, None, None, None, None', times='0,0,0,0,0,0,0',time = %d", PickDate);
					mysql_query(query);
					for(new i = 0; i < 7; i++) { strmid(PickName[i],"None",0,strlen("None"),MAX_PLAYER_NAME); PickTime[i] = 0; }
			    }
			    case 1:
			    {
       				if(Pick == false) return SendClientMessage(playerid, COLOR_GREY, "В штате нет выборов!");
				    SendClientMessageToAll(0xBC331AFF, "Внимание! Выборы отменены администратором сервера!");
				    ResetPick();
			    }
			    case 2:
			    {
			        if(Pick == false) return SendClientMessage(playerid, COLOR_GREY, "В штате нет выборов!");
				    new str[255],sttr[255];
				    for(new i = 0; i <= 6; i++)
				    {
				    	format(str,sizeof(str),"Слот №%i - %s\n",i, PickName[i]);
					    strcat(sttr, str);
				    }
					ShowPlayerDialog(playerid, D_PICK+1, 2, "Кандидаты", sttr,"Принять", "Отмена");
			    }
			}
		}
Ко всему Update();
PHP:
if(PickDate <= gettime() && Pick == true) ResetPick(), SendClientMessageToAll(0xBC331AFF, "Внмание! В штате закончились выборы. Посмотреть результаты: /picklist");
Внимание: Система для модов с MYSQL.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу