Closed ToxaBes2 closed 7 years ago
Очевидно, что это должно быть на базе. Как вариант оформить это как объект, в нём действие по контекстному меню (по аналогии с дипломатией), которое вызывает ломовейший гуй с интерфейсом выбора карт. Затратно так делать?
Можно в чат писать команды, как это во многих играх сделано. Правда, реализация в Арме мутноватая.
Один человек пишет в чат:
/changemap
У остальных появляется сообщение или окно со списком команд:
/altis
/tanoa
/malden
По таймауту сервер считает количество голосов и решает менять карту или нет.
Либо изначально человек решает какую карту выбрать, а остальные только да или нет могут писать.
Одну из комнат на базе переделываем под "оперативный штаб". Там 3 карты на треноге - алтис, малден, таноа. При подходе к карте появляется меню - голосовать за "%карта%". Если проголосовал то остальные карты не активны. Запоминаем на стороне сервера uid игрока и выбор (1,2,3). На стороне игрока запоминаем факт выбора. Если минимум 2 игрока нажали на карты - сообщение в чат и запуск выборов: есть 10 мин чтобы проголосовать. Если все игроки на сервере проголосовали раньше чем прошло 10 мин то делаем смену карты. Голосов игроков которые не проголосовали автоматически идет за текущую карту.
партизаны не голосуют.
@ToxaBes во, нормуль!
Я тут обнаружил что саму миссию рестартануть скрипом изнутри миссии можно, а безголовые клиенты - нет. Без них все это не имеет смысла. Городить огород с сохранением флага рестарта в БД и опросом этого флага внешним скриптом по крону каждую минуту с целью рестарта безголовых клиентов не вижу смысла, слишком много гемора для такой второстепенной задачи. Тикет отклонен.
3 и больше игроков могут голосовать за текущую карту. Нужно подумать как это лучше сделать.