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

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

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

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

[Мануал] Система опроса

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

Advokat48

Умник
Как-то в голову пришла идея сделать систему опросов. Но все как-то руки не доходили.
Сегодня вспомнил про идею, и написал код.
Вообще, приступим:
Ко всем new:
PHP:
new
	idopr,
	yes,
	no,
	oprosid;
Далее идем в
PHP:
public OnPlayerCommandText(playerid, cmdtext[])
И туда добавляем команды:
PHP:
if(strcmp(cmd, "/opros", true) == 0)
	{
		if(PlayerInfo[playerid][pAdmin] >= 1)//проверку свою ставьте
		{
		    ShowPlayerDialog(playerid, 100, DIALOG_STYLE_INPUT, "Создание опроса", "Введите текст опроса:", "Создать", "Отмена");//id диалога ставьте свои
		}
	    return 1;
	}
	if(strcmp(cmd, "/useopros", true) == 0)
	{
	    if(oprosid == 1)
	    {
		    new strings[144], names[24], string[700];
		    if(GetPVarInt(playerid, "uch") == 1) return SendClientMessage(playerid, COLOR_GREEN, "Вы уже участвовали в опросе");
		    GetPVarString(idopr, "opros", strings, sizeof(strings));
		    GetPlayerName(idopr, names, sizeof(names));
			format(string, sizeof(string), "%s\n\tСоздатель: %s", strings, names);
		    ShowPlayerDialog(playerid, 101, DIALOG_STYLE_MSGBOX, "Опрос", string, "ДА", "НЕТ");//id диалога ставьте свои
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "Нет созданных опросов");
		}
	    return 1;
	}
	if(strcmp(cmd, "/oprosinfo", true) == 0)
	{
	    if(oprosid == 1)
	    {
		    if(PlayerInfo[playerid][pAdmin] >= 1)//проверку свою ставьте
		    {
		        new strings[144], names[24], coordsstring[250];
				new vsego = yes + no;
		        GetPVarString(idopr, "opros", strings, sizeof(strings));
		    	GetPlayerName(idopr, names, sizeof(names));
				new msg[] = "{ffffff}Вопрос: {00ff00}%s\n\t\t{ffffff}Создатель: [ {ff1100}%s {ffffff}]\nПроголосовало:\n\tЗа:[ {00ff00}%d {ffffff}]\n\tПротив:[ {ff1200}%d {ffffff}]\n\nВсего:[ {ff9f00}%d {ffffff}]";
				format(coordsstring, 1000, msg, strings, names, yes, no, vsego);
				ShowPlayerDialog(playerid,102,DIALOG_STYLE_MSGBOX,"Опрос",coordsstring,"Ок","");//id диалога свой
		    }
        }
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "Нет созданных опросов");
		}
	    return 1;
	}
	if(strcmp(cmd, "/killopros", true) == 0)
	{
	    if(oprosid == 1)
	    {
		    if(PlayerInfo[playerid][pAdmin] >= 1)//свою проверку ставьте
		    {
          		SetPVarString(idopr, "opros", "None");
          		SendClientMessage(playerid, COLOR_YELLOW, "Вы удалили опрос");
          		oprosid = 0;
          		yes = 0;
          		no = 0;
		    }
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "Нет созданных опросов");
		}
	}
Такс, команды мы добавили, теперь идем в
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
И туда вставляем диалоги:
PHP:
case 100://id меняем на свой
		{
			if(response)
			{
			    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 100, DIALOG_STYLE_INPUT, "Создание опроса", "Введите текст опроса:", "Создать", "Отмена");//заменить id диалога на свой
			    new string[144], namea[24];
			    SetPVarString(playerid,"opros",inputtext);
			    idopr = playerid;
			    GetPlayerName(playerid, namea, sizeof(namea));
			    format(string, sizeof(string), "Администратор %s создал опрос. Для участия введите /useopros", namea);
			    SendClientMessageToAll(COLOR_GREEN, string);
			    oprosid = 1;
			}
			else
			{
			}
		}
		case 101://id диалога на свой меняем
		{
		    if(response)
		    {
		        yes++;
		    }
		    else
		    {
		        no++;
		    }
		    SetPVarInt(playerid, "uch", 1);
		}
Вот и все, компилируем, радуемся. Код рабочий, если выскочили варнинги или ерроры, значит руки не из того места растут.
Автор: Advokat48, он же N'aiX_X, он же Advokat
При копировании указывайте автора.







 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу