TraderVoteMut

Тема в разделе "Мутаторы", создана пользователем Arckon., 2 мар 2018.

  1. Arckon.

    Arckon. Соучастник

    Предыстория:
    Существует мутатор, который позволяет пропускать время Торговца, набрав в консоли команду *skiptrader*. Хотелось бы увидеть его реализацию, так сказать, в более удобном формате для игрока, зашедшего на сервер. Подобное можно встретить, однако востребованность имеется по сей день.

    Концепция реализации:
    За основу можно взять вышеупомянутый мутатор SkipTraderMut. Нам необходимо реализовать выведение сообщения о том, что время Торговца можно пропустить. Сделаем следующее: нет надобности захламлять строку выведения игровых сообщений слева внизу экрана (ClientMessage); выведем сообщение вверху экрана по центру, которое будет отображаться n-секунд с момента открытия Торговца (ReceiveLocalizedMessage), например, при использовании мутатора AllTradersMut и будет выглядеть примерно таким образом. Информацию в сообщении вывести в *.ini-файл конфигурации будущего мутатора.

    Зашедший игрок понимает, что можно пропустить время Торговца. Прописывать в консоли — нас не устраивает. На основе выведенного сообщения, можно назначить требуемую клавишу для функции накопления голоса за пропуск времени Торговца, например *Press F10 to close the Trader*. Было бы интересно узнать, возможно ли это вшить в Game Type. Альтернативный вариант: сделать отдельной вкладкой в esc-меню игры, где, собственно, будет красивая клавиша, например *Press to close the Trader* также, как происходит реализация функций в мутаторе ReloadOptionsMut.

    Результат: время торговца; выводится принудительно сообщение всем игрокам о возможности голосования за пропуск времени Торговца; игроки жмут клавишу (заходят в esc-меню и нажимают клавишу в отдельной вкладке); далее процесс накопления голосов за пропуск времени Торговца; Торговец закрывается; начинается новая волна.

    Примерный файл конфигурации:

    1) OnlyAdminsAllowed — укажем *true*, если возможность предоставляется только администраторам, при этом накопление голосов не будет, а будет сразу новая волна.
    2) RequiredVotes — укажем процент, необходимый, чтобы сработала функция пропуска времени Торговца, например, 50%.
    3) EnableChatMessage — укажем *true*, если хотим, чтобы выводило в чат в игре, какой именно игрок (игроки) проголосовали за закрытие торговца. Это необходимо для того, чтобы избежать троллей, которые могут не дать совершить покупку другим игрокам, которые, например, не успели добежать из-за того, что им заварили двери до магазина. Потом можно просмотреть логи чата и обнаружить, кто сделал нехорошие вещи.
    4) ChatMesage — укажем сообщение, которое будет выводиться в чат при голосовании, например: *%Player has voted to close the Trader*.
    5) TraderMessage — укажем сообщение, которое будет выводиться всем во время закупочного времени вверху экрана на основе вышеупомянутой концепции, например: *Vote in the ESC-Menu to close the Trader*.
    6) TraderMessageTime — укажем время, в течение которого будет выводиться надпись в пункте 5 на экране.

    Заключение:
    Возможно, очень муторно разъяснил принцип работы, однако всем будет понятно, что и как происходит. В плане того, будет ли рубить данный мутатор прокачку — не столь важно, но можно пользоваться обычной версией без наворотов. Надеюсь, это можно реализовать для классики, не только для SP.
     
    Последнее редактирование: 2 мар 2018