Gressie
Мастер
Автор и разработчик: Rex_Doberman
Скрины:
И так, под волной энтузиазма я решил опять скопировать что-нибудь у "старого,не много зажравшегося друга" Flazy и Co пару примочек. Данная системка позволит нам создавать Голосования во время игры, что очень удобно. Тем самым вы можете легко проводить: Выборы Мэра, опросы и Конкурсы.
Как происходит голосование:
ВНИМАНИЕ! ДЛЯ РАБОТОСПОСОБНОСТИ ТРЕБУЕТСЯ:
Приступим:
1.Ко всем new добавляем:
В enum pInfo добавим:
и в OnPlayerConnect допишем
2.Добавляем новые команды в конец мода (требуется ZCMD):
3. В public OnDialogResponse(...)
В public OnPlayerPickUpDynamicPickup(playerid, pickupid) добавляем:
Скрины:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Как происходит голосование:
- Администратор добавляет вопрос
- Администратор конфигурирует ответы на вопрос
- Администратор расставляет Пикапы Голосования на тер-рии штата
- Человек встает на пикап и делает свой выбор
- Администратор выводит результаты голосования и удаляет все пикапы одной командой
ВНИМАНИЕ! ДЛЯ РАБОТОСПОСОБНОСТИ ТРЕБУЕТСЯ:
- SPD защита встроенная в мод
- Поддержка в моде ZCMD
- Поддержка streamer plugin
Приступим:
1.Ко всем new добавляем:
PHP:
new LPick[20];
new idgols;
enum IGolos
{
Variant[128],
Golosov,
};
new Golosovan[10][IGolos];
new Text3D:GLT[20];
enum GG
{
NameGolos[128],
bool:goloson,
};
new pickupalla;
new GL2[GG];
PHP:
progolos,
PHP:
PlayerInfo[playerid][progolos] = 0;
PHP:
COMMAND:addgolosov(playerid,params[])
{
if(GL2[goloson] == true) return SendClientMessage(playerid,COLOR_GREY,"Голосование уже созданно");
SPD(playerid,32,1,"Создание голосования","Введите вопрос для голосования:","Далее","Отмена");
pickupalla = 0;
return 1;
}
COMMAND:addgpickup(playerid,params[])
{
if(GL2[goloson] == false) return SendClientMessage(playerid,COLOR_GREY,"Ошибка!");
new Float:pox,Float:poy,Float:poz;
new z = pickupalla;
GetPlayerPos(playerid,pox,poy,poz);
LPick[z] = CreateDynamicPickup(19134,23,pox,poy,poz);
GLT[z] = CreateDynamic3DTextLabel("Внимание! Голосование",0x03c03cBB, pox, poy, poz + 0.63,10);
pickupalla++;
return 1;
}
COMMAND:stopgolos(playerid,params[]) //Подсчет результатов и очистка буфера
{
new str[256];
SendClientMessage(playerid,COLOR_WHITE,"Голосование остоновлено");
SendClientMessageToAll(COLOR_WHITE,"По итогам Голосования:");
for(new i;i<idgols;i++)
{
format(str,sizeof(str),"%s набирает %d голосов",Golosovan[i][Variant],Golosovan[i][Golosov]);
SendClientMessageToAll(COLOR_WHITE,str);
}
for(new j;j<20;j++) // Уничтожение пикапов
{
DestroyDynamicPickup(LPick[j]);
DestroyDynamic3DTextLabel(GLT[j]);
}
for(new g;g<GetMaxPlayers();g++) //Обнуление голосования
{
PlayerInfo[g][progolos] = false;
}
idgols = 0;
pickupalla = 0;
return 1;
}
PHP:
case 35:
{
if(!response) return 1;
new str[256];
for(new h;h<10;h++)
{
new str2[64];
format(str2,sizeof(str2),"%s\n",Golosovan[h][Variant]);
strcat(str,str2,128);
}
SPD(playerid,34,2,GL2[NameGolos],str,"Выбор","Отмена");
}
case 34:
{
if(!response) return 1;
if(PlayerInfo[playerid][progolos] == true) return SendClientMessage(playerid,COLOR_GREY,"Вы не можете проголосовать больше одного раза");
Golosovan[listitem][Golosov] ++;
PlayerInfo[playerid][progolos] = true;
SendClientMessage(playerid,COLOR_GREY,"Ваш голос защитан, Спасибо");
}
case 32:
{
if(!strlen(inputtext)) return 1;
strmid(GL2[NameGolos],inputtext,0,128,256);
format(string,sizeof(string),"Успешно.Название голосования - %s.",inputtext);
SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
GL2[goloson] = true;
SPD(playerid,33,1,"Создание вариантов ответа","Введите Вариант №1","Далее","");
}
case 33:
{
if(!strlen(inputtext)) return 1;
strmid(Golosovan[idgols][Variant],inputtext,0,128,256);
SPD(playerid,33,1,"Создание вариантов ответа","Введите следующий вариант","Далее","");
idgols++;
}
PHP:
new str[512];
for(new i; i < 20; i++)
{
if(pickupid == LPick[i])
{
if(PlayerInfo[playerid][progolos] == true) return SendClientMessage(playerid,COLOR_GREY,"Вы не можете проголосовать больше одного раза");
new str[256];
format(str,sizeof(str),"%s",GL2[NameGolos]);
SPD(playerid,35,0,"Голосования",str,"Далее","Отмена");
}
}
Для МОДЕРАТОРОВ не нашёл категорию [Мануал] прошу поставить![]()
Последнее редактирование:
