Назад

Скрипт Голование

Автор: TrojanX: Дата: 10.26.2009

[HTML]prontera.gat,139,180,5 script Голосования 729,{
specialeffect 417;
if ($poll_question$ == "") goto L_NoQuestion;

L_Begin:
mes "^590059<<< Голосование >>>^000000";
mes "^FF0000" + $poll_question$ + "^000000";

if (#pollid != $pollid) goto L_NotVoted;

// Sets bar length
set @PB$[0], " ";
set @PB$[1], "^EFF8FF| ^000000";
set @PB$[2], "^DFF1FF|| ^000000";
set @PB$[3], "^CFEBFF||| ^000000";
set @PB$[4], "^BFE5FF|||| ^000000";
set @PB$[5], "^AFDFFF||||| ^000000";
set @PB$[6], "^9FD8FF|||||| ^000000";
set @PB$[7], "^8FD2FF||||||| ^000000";
set @PB$[8], "^7FCCFF|||||||| ^000000";
set @PB$[9], "^6FC8FF||||||||| ^000000";
set @PB$[10], "^5FC2FF|||||||||| ^000000";
set @PB$[11], "^4FBCFF||||||||||| ^000000";
set @PB$[12], "^3FB6FF|||||||||||| ^000000";
set @PB$[13], "^2FB0FF||||||||||||| ^000000";
set @PB$[14], "^1FAAFF|||||||||||||| ^000000";
set @PB$[15], "^0FA4FF||||||||||||||| ^000000";
set @PB$[16], "^009EFF|||||||||||||||| ^000000";
set @PB$[17], "^0094EF||||||||||||||||| ^000000";
set @PB$[18], "^008BDF|||||||||||||||||| ^000000";
set @PB$[19], "^0081CF||||||||||||||||||| ^000000";
set @PB$[20], "^0077BF||||||||||||||||||||^000000";

// Calculates percentage
set @total,$PA[1]+$PA[2]+$PA[3]+$PA[4]+$PA[5]+$PA[6]+$PA[7]+$PA[8]+$PA[9];
set @PC[1],$PA[1]*100/@total;
set @PC[2],$PA[2]*100/@total;
set @PC[3],$PA[3]*100/@total;
set @PC[4],$PA[4]*100/@total;
set @PC[5],$PA[5]*100/@total;
set @PC[6],$PA[6]*100/@total;
set @PC[7],$PA[7]*100/@total;
set @PC[8],$PA[8]*100/@total;
set @PC[9],$PA[9]*100/@total;

// Displays results
if ($PQ$[1] != "") mes $PQ$[1];
if ($PQ$[1] != "") mes "["+@PB$[@PC[1]/5]+"] " + $PA[1] + " ("+@PC[1]+"%)";
if ($PQ$[2] != "") mes $PQ$[2];
if ($PQ$[2] != "") mes "["+@PB$[@PC[2]/5]+"] " + $PA[2] + " ("+@PC[2]+"%)";
if ($PQ$[3] != "") mes $PQ$[3];
if ($PQ$[3] != "") mes "["+@PB$[@PC[3]/5]+"] " + $PA[3] + " ("+@PC[3]+"%)";
if ($PQ$[4] != "") mes $PQ$[4];
if ($PQ$[4] != "") mes "["+@PB$[@PC[4]/5]+"] " + $PA[4] + " ("+@PC[4]+"%)";
if ($PQ$[5] != "") mes $PQ$[5];
if ($PQ$[5] != "") mes "["+@PB$[@PC[5]/5]+"] " + $PA[5] + " ("+@PC[5]+"%)";
if ($PQ$[6] != "") mes $PQ$[6];
if ($PQ$[6] != "") mes "["+@PB$[@PC[6]/5]+"] " + $PA[6] + " ("+@PC[6]+"%)";
if ($PQ$[7] != "") mes $PQ$[7];
if ($PQ$[7] != "") mes "["+@PB$[@PC[7]/5]+"] " + $PA[7] + " ("+@PC[7]+"%)";
if ($PQ$[8] != "") mes $PQ$[8];
if ($PQ$[8] != "") mes "["+@PB$[@PC[8]/5]+"] " + $PA[8] + " ("+@PC[8]+"%)";
if ($PQ$[9] != "") mes $PQ$[9];
if ($PQ$[9] != "") mes "["+@PB$[@PC[9]/5]+"] " + $PA[9] + " ("+@PC[9]+"%)";
mes "Всего голосов: " + @total;
if (getgmlevel() > 30) menu "Продолжить",-,"Редактировать варианты",L_Edit,"Добавить вариант",L_Add,"Новое Голосование",L_SetQuestion,"Разрешить переголосование",L_ReVote;
close;

// Vote menu
L_NotVoted:
menu $PQ$[1],P1,
$PQ$[2],P2,
$PQ$[3],P3,
$PQ$[4],P4,
$PQ$[5],P5,
$PQ$[6],P6,
$PQ$[7],P7,
$PQ$[8],P8,
$PQ$[9],P9,
"Cancel",L_Cancel;

P1: set @vote,1; goto P_Vote;
P2: set @vote,2; goto P_Vote;
P3: set @vote,3; goto P_Vote;
P4: set @vote,4; goto P_Vote;
P5: set @vote,5; goto P_Vote;
P6: set @vote,6; goto P_Vote;
P7: set @vote,7; goto P_Vote;
P8: set @vote,8; goto P_Vote;
P9: set @vote,9; goto P_Vote;

P_Vote:
if ($PQ$[@vote] == "") goto L_Begin;

set $PA[@vote],$PA[@vote]+1;
set #pollid,$pollid;
next;
mes "^590059<<< Голосование >>>^000000";
mes "Спасибо за ваш голос!";
next;
goto L_Begin;

// No question is set
L_NoQuestion:
mes "^590059<<< Голосование >>>^000000";
mes "Нет вопроса для голосования.";
if (getgmlevel() > 30) goto L_SetQuestion;
close;

// Set question
L_SetQuestion:
set $PQ$[1],"";
set $PQ$[2],"";
set $PQ$[3],"";
set $PQ$[4],"";
set $PQ$[5],"";
set $PQ$[6],"";
set $PQ$[7],"";
set $PQ$[8],"";
set $PQ$[9],"";
set $PA[1],"";
set $PA[2],"";
set $PA[3],"";
set $PA[4],"";
set $PA[5],"";
set $PA[6],"";
set $PA[7],"";
set $PA[8],"";
set $PA[9],"";

next;
mes "^590059<<< Голосование >>>^000000";
mes "Задать вопрос голосования?";
next;
menu "Да",-,"Нет",L_Cancel;

input $poll_question$;
set $pollid,rand (100000,999999);
mes "Вопрос: " + $poll_question$;
next;
mes "^590059<<< Голосование >>>^000000";
mes "Введите варианты ответов";
mes "впишите 'end' для завершения";
next;

P_Set:
input $PQ$[1];
if ($PQ$[1] == "end") goto P_Set; // Disallows no option poll
P_Set2:
input $PQ$[2];
if ($PQ$[2] == "end") goto P_Set2; // Disallows 1 option poll
input $PQ$[3];
set @last,3;
if ($PQ$[3] == "end") goto L_SetEnd;
input $PQ$[4];
set @last,4;
if ($PQ$[4] == "end") goto L_SetEnd;
input $PQ$[5];
set @last,5;
if ($PQ$[5] == "end") goto L_SetEnd;
input $PQ$[6];
set @last,6;
if ($PQ$[6] == "end") goto L_SetEnd;
input $PQ$[7];
set @last,7;
if ($PQ$[7] == "end") goto L_SetEnd;
input $PQ$[8];
set @last,8;
if ($PQ$[8] == "end") goto L_SetEnd;
input $PQ$[9];
set @last,9;
if ($PQ$[9] == "end") goto L_SetEnd;

// Add poll field
L_Add:
next;
mes "^590059<<< Голосование >>>^000000";

if ($PQ$[3] == "") goto PA3;
if ($PQ$[4] == "") goto PA4;
if ($PQ$[5] == "") goto PA5;
if ($PQ$[6] == "") goto PA6;
if ($PQ$[7] == "") goto PA7;
if ($PQ$[8] == "") goto PA8;
if ($PQ$[9] == "") goto PA9;

mes "Извините, вариантов уже слишком много.";
close;

PA3: set @add,3; goto L_Add2;
PA4: set @add,4; goto L_Add2;
PA5: set @add,5; goto L_Add2;
PA6: set @add,6; goto L_Add2;
PA7: set @add,7; goto L_Add2;
PA8: set @add,8; goto L_Add2;
PA9: set @add,9; goto L_Add2;

L_Add2:
mes "Введите название голосования, которое хотите добавить.";
input $PQ$[@add];
next;
mes "Option added";
close;


// Edit poll field
L_Edit:
next;
mes "^590059<<< Голосование >>>^000000";
mes "Какой вариант вы хотите отредактировать?";
next;
menu $PQ$[1],PE1,
$PQ$[2],PE2,
$PQ$[3],PE3,
$PQ$[4],PE4,
$PQ$[5],PE5,
$PQ$[6],PE6,
$PQ$[7],PE7,
$PQ$[8],PE8,
$PQ$[9],PE9,
"Cancel",L_Cancel;

PE1: input $PQ$[1]; goto L_EditSet;
PE2: input $PQ$[2]; goto L_EditSet;
PE3: input $PQ$[3]; goto L_EditSet;
PE4: input $PQ$[4]; goto L_EditSet;
PE5: input $PQ$[5]; goto L_EditSet;
PE6: input $PQ$[6]; goto L_EditSet;
PE7: input $PQ$[7]; goto L_EditSet;
PE8: input $PQ$[8]; goto L_EditSet;
PE9: input $PQ$[9]; goto L_EditSet;

L_EditSet:
mes "^590059<<< Голосование >>>^000000";
mes "Вариант изменен";
close;

L_SetEnd:
Announce "Новое голосование создано!",8;
Announce $poll_question$,8;
set $PQ$[@last],"";
mes "^590059<<< Голосование >>>^000000";
mes "Poll set";
close;

// Allow players to re-cast their vote
L_ReVote:
next;
set $pollid,rand (100000,999999);
mes "^590059<<< Голосование >>>^000000";
mes "Разрешено переголосование";
close;

L_Cancel:
mes "^590059<<< Голосование >>>^000000";
mes "Досвидания.";
close;

OnTouch:
npctalk "Голосуем!!Ващи голоса очень важны для нас!";
emotion rice;
end;
}
[/HTML]

Автор: : Дата: 01.01.1970