Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » AMX Mod X » Статьи / фрагменты кода » Создание меню для голосования
Создание меню для голосования
extazyДата: Суббота, 17.03.2012, 16:44 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 18
Репутация: 10000
Статус: Offline
#include <amxmodx>

// Для хранения меню голсоований
new g_VoteMenu
// Для хранения голосов за каждую опцию
new g_Votes[2]
// Для проверки, если голосование уже запущено
new g_Voting

public plugin_init()
{
register_clcmd("start_vote", "StartVote")
}

public StartVote(id)
{
// Если голосование уже запущено, то выходим
if (g_Voting)
{
client_print(id, print_chat, "There is already a vote going.")
// Мы возвращаем PLUGIN_HANDLED, чтобы в консоли игрока не было сообщения unknown command
return PLUGIN_HANDLED
}

g_VoteMenu = menu_create("\rVote Menu:", "menu_handler")

menu_additem(g_VoteMenu, "Vote Option 1", "0", 0)
menu_additem(g_VoteMenu, "Vote Option 2", "1", 0)

new s_Players[32], i_Num, i_Player
get_players(s_Players, i_Num)

for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]

menu_display(i_Player, g_VoteMenu, 0)

// Увеличиваем, чтобы узнать сколько игроков голосуют
g_Voting++
}

// Останавливаем голосование через 10 секунд
set_task(10.0, "EndVote")

return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
return PLUGIN_HANDLED

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

// Полчаем информацию о том, какая опция была выбрана
new i_Vote = str_to_num(s_Data)

// Увеличиваем количество голосов по данной опции
g_Votes[i_Vote]++

return PLUGIN_HANDLED
}

public EndVote()
{
// Если первая опция набрала больше голосов, чем вторая
if (g_Votes[0] > g_Votes[1])
client_print(0, print_chat, "First option recieved most votes (%d)", g_Votes[0])
// Иначе если вторая опция набрала больше голосов, чем первая
else if (g_Votes[1] > g_Votes[0])
client_print(0, print_chat, "Second option recieved most votes (%d)", g_Votes[1])
// Иначе равное кол-во голосов
else
client_print(0, print_chat, "The vote tied at %d votes each.", g_Votes[0])

menu_destroy(g_VoteMenu)

// Сбрасываем информацию о том, что игроки голосуют
g_Voting = 0
}


Смотри, не получи бан!)
 
Форум » AMX Mod X » Статьи / фрагменты кода » Создание меню для голосования
  • Страница 1 из 1
  • 1
Поиск: