Physgun Wiki

roleplay.Vote.Start

 roleplay.Vote.Start( string id, string text, number delay, function callback, table excludePlayers, function onFailCallback )

Запускает голосование среди всех игроков на сервере (кроме excludePlayers). Каждый получает попап с текстом text и delay секунд на ответ (F1 — за, F2 — против, см. voting/cl_init.lua). Голосование завершается досрочно, если проголосовали все, либо по таймеру.

Побеждает большинство (yes > no): вызывается callback(yes, no). При ничьей или перевесе «против» — onFailCallback(yes, no), если он передан. Используется для устройства на профессию с JOB_FLAG_NEED_VOTE и для /demote (sv_jobs.lua).

Аргументы

1 string id
Уникальный ID голосования. Повторный roleplay.Vote.Start с тем же id, пока предыдущее не завершилось, вернёт false.
2 string text
Текст, показываемый голосующим.
3 number delay
Время на голосование, секунд.
4 function callback
(yes, no), вызывается при победе «за».
5 table excludePlayers
Игроки, которых не звать голосовать (например, инициатор).
6 function onFailCallbacknil
(yes, no), вызывается при поражении.

Возвращает

1 boolean
false, если голосование с таким id уже идёт или голосовать некому (все в excludePlayers).

Пример

roleplay.Vote.Start('my_vote', "Открыть ворота?", 15, function(yes, no) print("Голосование выиграно: " .. yes .. " против " .. no) end, {}, function(yes, no) print("Голосование провалено") end)