iWors
Эксперт
Vote Manager - этот скрипт управляет любыми опросами с различными вариантами ответов. votemap, votekick, votekill и voteban встроены.
Встроенные опросы
votemap (начинает голосование за выбранные случайным образом карты (до 9), совместимые с модом, если он запущен)
votemap gamemode (начинает голосование за выбранные случайным образом карты (до 9), совместимые с указанным модом)
votemap gamemode map (начинает голосование за указанные мод и карту)
votemap map (начинает голосование за смену карты, если таковая запущена, на указанную)
votemode (начинает голосование за выбранные случайным образом моды (до 9). по окончании голосования и старте мода, атоматичсеки начинается 'votemap gamemode')
votekick player (начинает голосование за кик указанного игрока)
votekill player (начинает голосование за убийство указанного игрока сервером)
voteban player (начинает голосование за бан указанного игрока)
Серверные функции
startPoll
startPoll
PHP:
bool, int startPoll ( table pollData )
- pollData
PHP:
{
string optionName,
string eventToTrigger,
[element triggerFrom = getRootElement()],
default = [bool isDefaultOption = false],
var argument1,
var argument2,
...
}
Если голосов недостаточно, будет выполнена опция по умолчанию, если таковая имеется.
Образец:
PHP:
local playerToKill = getRandomPlayer()
local notEnoughVotesMessage = "Not enough votes to kill "..getPlayerName(playerToKill).."."
startPoll {
--start settings (dictionary part)
title="Kill "..getPlayerName(playerToKill).."?",
percentage=75,
timeout=30,
allowchange=false,
maxnominations=3,
visibleTo=getRootElement(),
--start options (array part)
[1]={"Yes", "doKillPlayer", playerToKill},
[2]={"No", "doOutputChatBox", notEnoughVotesMessage, getRootElement(), vR, vG, vB; default=true},
}
- title (требуется): заголовок опроса, который увидят клиенты на GUI менеджера
- percentage (опционально, по умолчанию - default.percentage): нужный % для победы опции в номинации
- timeout (опционально, по умолчанию - default.timeout): время опроса в секундах
- allowchange (опционально, по умолчанию - default.allowchange): отвечает за возможность изменять свой голос
- maxnominations (опционально, по умолчанию - default.maxnominations): отвечает за максимальное количество номинаций в случае ничьи
- visibleTo (опционально, по умолчанию - getRootElement()): таблица игроков, которым будет виден опрос, или элемент, который содержит игроков.
Если это root (корень), игроки, зашедшие уже после старта опроса смогут проголосовать.
Умолчания из voteconfig.xml будут использованы для пропущенных опциональных параметров.
stopPoll
PHP:
bool, int stopPoll ( )
voteMap
PHP:
bool, int voteMap ( string mapName )
voteBetweenMaps
PHP:
bool, int voteBetweenMaps ( resource map1, resource map2, [ resource map3, ... ] )
voteKick
PHP:
bool, int voteKick ( player thePlayer )
voteKill
PHP:
bool, int voteKill ( player thePlayer )
voteBan
PHP:
bool, int voteBan ( player thePlayer )
Серверные события
onPollStarting
PHP:
void onPollStarting ( table pollData )
onPollModified
PHP:
void onPollModified ( table pollData )
onPollStart
PHP:
void onPollStart ( )
onPollStop
PHP:
void onPollStop ( )
onPollEnd
PHP:
void onPollEnd ( chosenOption )
chosenOption: Возвращает номер выбранной опции.
onPollDraw
PHP:
void onPollDraw ( )
onClientSendVote
PHP:
void onClientSendVote ( int vote )
Настройки по умолчанию
PHP:
<settings>
<setting name="*color" value="#DF6464" />
<setting name="*log_votes" value="[true]" />
<setting name="*default.timeout" value="[30]"/>
<setting name="*default.allowchange" value="[false]"/>
<setting name="*default.percentage" value="[75]"/>
<setting name="*default.maxnominations" value="[3]"/>
<setting name="*votemap.enabled" value="[true]"/>
<setting name="*votemap.timeout" value="[30]"/>
<setting name="*votemap.locktime" value="[60]"/>
<setting name="*votemap.percentage" value="[70]"/>
<setting name="*votemap.allowchange" value="[true]"/>
<setting name="*votekick.enabled" value="[true]"/>
<setting name="*votekick.timeout" value="[30]"/>
<setting name="*votekick.locktime" value="[120]"/>
<setting name="*votekick.percentage" value="[75]"/>
<setting name="*votekick.allowchange" value="[true]"/>
<setting name="*voteban.enabled" value="[false]"/>
<setting name="*voteban.timeout" value="[30]"/>
<setting name="*voteban.locktime" value="[120]"/>
<setting name="*voteban.percentage" value="[85]"/>
<setting name="*voteban.allowchange" value="[true]"/>
<setting name="*votekill.enabled" value="[true]"/>
<setting name="*votekill.timeout" value="[30]"/>
<setting name="*votekill.locktime" value="[120]"/>
<setting name="*votekill.percentage" value="[75]"/>
<setting name="*votekill.allowchange" value="[true]"/>
</settings>
