Русское сообщество по скриптингу

Map Manager by Mistrick[1.2.2][23.06.2014]

Плагины для AMX Mod X, которые не удовлетворяют правилам оформления.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Map Manager by Mistrick[1.2.2][23.06.2014]

Сообщение Mistrick » 27 окт 2013, 19:14

Автор: Mistrick
Версия: 1.2.2

Описание:
Расширенный менеджер карт

Возможности:
- Досрочное голосование(rtv)
- Номинация карт
- Продление карты
- Вывод меню со списком карт
- Блокировка прошлых карт

Требования:
- АМХХ 1.8.2 и выше

Квары:
  • mm_loadmapstype(def: 1) - тип загрузки карт, 0 - берет все карты из папки maps, 1 - берет карты из файла(указывается в переменной FILE_MAPS)
  • mm_changemap(def: 1) - когда менять карту после голосования, 0 - сразу после, 1 - в конце раунда, 2 - в конце карты(timeleft == 0)
  • mm_changemap_rounds(def: 0) - через сколько раундов вызвать голосование, 0 - выключить
  • mm_timestartvote_before_end(def: 2) - за сколько минут перед концом карты вызвать голосование
  • mm_timestartvote(def: 20) - через сколько минут вызвать госование, если время карты неограничено(mp_timelimit 0)
  • mm_showselects(def: 0) - вывод в чат информации о голосовании, 0 - выключить, 1 - всем, 2 - только себе
  • mm_show_result_aftervote(def: 1) - продолжать показывать информацию, после того как игрок проголосует, 0 - выключить
  • mm_showresulttype(def: 0) - как выводить информацию, после того как игрок проголосует, 0 - меню, 1 - худ
  • mm_extendedtime(def: 15) - время подления карты в минутах
  • mm_extendedmap_max(def: 3) - максимальное число раз продления карты
  • mm_menustopvote(def: 0) - позволяет админу отменить голосование в меню выбора карты, 0 - выключить, 1 - включить
  • mm_rtv_enable(def: 1) - включить/выключить досрочное голосование
  • mm_rtv_percent(def: 60) - количество игроков, необходимое для досрочного голосования, в процентах
  • mm_rtv_change(def: 0) - когда менять карту после rtv, 0 - сразу после, 1 - в конце раунда
  • mm_rtv_delay(def: 0) - задержка для возможности досрочного голосования в минутах
  • mm_rtv_beforeendblock(def: 0) - блокировка рвт в конце карты за N минут
  • mm_rtv_show(def: 1) - вывод информации о том, кто хочет досрочное госование, 0 - всем, 1 - себе
  • mm_debug(def: 0) - логирование действий плагина, 0 - выключить, 1 - включить

Настраиваемые макросы:
  • #define SELECT_MAPS 5 - число карт в голосовании(максимум: 8)
  • #define VOTE_TIME 15 - время голосования в секундах
  • #define SOUND_TIME 10 - отсчет до голосования в секундах
  • #define NOMINATE_MAX 3 - число номинированных карт в голосовании
  • #define NOMINATE_PLAYER_MAX 3 - максимальное количество карт, которые может номинировать игрок
  • #define MAP_BLOCK 10 - число, на которое блокируется прошлая карта от голосования
  • #define HUD_RESULT_COLOR 0, 55, 255 - цвет худа при mm_showresulttype 1
  • new g_szPrefixes[][] = {"deathrun_", "speedrun_", "de_", "surf_"}; - префиксы для быстрой номинации

Команды:
  • nextmap, currentmap, timeleft, rtv, ff(чат)
  • maps(чат) - вывод меню со списком карт
  • mm_startvote(консоль) - запуск голосования администратором
  • mm_stopvote(консоль) - отмена голосования администратором

История версий:
1.2.2
- Добавлен квар: mm_rtv_beforeendblock
- Фикс таймера после отмены голосования

1.2.1
- Недокументированные правки

1.2.0
- Добавлен макрос: SOUND_TIME(def: 10)
- Добавлен квар: mm_menustopvote(def: 0)

1.1.0 - 1.1.4
- Добавлены форварды для сабплагинов: mapmanager_startvote(), mapmanager_finishvote()
- Добавлен квар: mm_debug(def: 0)
- Убран квар mm_timelimit
- Добавлена команда отмены голосования(mm_stopvote)
- Фикс потенциальных повисаний сервера
- Добавлен квар mm_rtv_enable(def: 1)
- Фикс номинации
- Правка ртв
- Правка отмены голосования
- Правка загрузки карт

1.0.1 - 1.0.3
- Смена расположения файла для блокировки карт
- Добавлена команда ff
- Изменены координаты худа для мертвых игроков

1.0[Выход из беты]
- Добавлен квар "mm_show_result_aftervote" "1"//0 - disable, 1 - enable
Позволяет выключить вывод результатов после голосования
- Добавлена возможность убрать номинацию(опять написав карту в чат или через команду maps)
- Добавлен отсчет перед сменой карты(при mm_changemap 2)
- Совместимость с ColorChat(AMXX 1.8.3)
- Фикс отображения процентов(при mm_showresulttype 1)
- Убран словарь

1.8beta
- Фикс ошибок и оптимизация.

1.7beta
- Добавлен квар
"mm_rtv_show" "1"//0 - all, 1 - self(вывод сообщений при рвт)
- Фикс логических ошибок

1.6beta
- Добавлены квары:
"mm_showresulttype" "0"//Тип вывода информации после голосования 0 - menu, 1 - hud(проценты не показывает, а формировать отдельный текст не хочу)
"amx_nextmap"
- Изменил смену карты, берет из квара "amx_nextmap", а не по индексу массива
- Фиксы и логические правки

1.5beta
- Добавлен квар
"mm_timestartvote_before_end" "2"//minutes
время с конца карты, когда начать голосование(def: за 2 минуты)
- Фикс: номинация текущей карты
- Фикс: зацикливание при числе заблокированных карт > числа загруженных карт
- И другие мелкие фиксы

1.4beta
- Оптимизация и мелкие фиксы

1.3beta
- Добавил timeleft, currentmap, nextmap
- Блокировка прошедших карт(#define MAP_BLOCK 10)
- Мелкие фиксы

1.2beta
- Добавлен мультиланг

1.1beta
- Фикс: возможность номинирования текущей карты
- Сменил переключение карты на новый раунд
- Добавил меню карт для номинации
- Мелкие логические фиксы
- Добавлены квары:
- "mm_showselects" "0"//0 - disable, 1 - all, 2 - self
- "mm_changemap_rounds" "0"// 0 - disable

1.0beta
- Первый релиз

Примечание:
Компилировать локально с прикрепленным инклюдом цветного чата, если у вас АМХХ 1.8.3 последних версий, то инклюд не потребуется.
Не забудьте выключить прочие менеджеры карт и пару стандартных плагинов.
Код: Выделить всё
; Map related
;nextmap.amxx; displays next map in mapcycle
;mapchooser.amxx; allows to vote for next map
;timeleft.amxx; displays time left on map

Скрин:
maps1.png

Если вас беспокоит блокировка выбора оружия поставте значения кваров либо mm_show_result_aftervote 0, либо mm_show_result_aftervote 1, mm_showresulttype 1.

mapmanager_ru.sma

Пример использования форвардов основного плагина, замораживает игроков во время голосования, не обязателен.
mapmanager_subplugin.sma

colorchat.inc



Не утверждено. Прекращена поддержка этой версии //Leonidddd
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Mistrick 23 июн 2014, 15:28, всего редактировалось 36 раз(а).
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Map Manager by Mistrick

Сообщение Bartman » 27 окт 2013, 19:56

Для себя делал?
Аватара пользователя
Bartman
 
Сообщения: 196
Зарегистрирован: 01 авг 2013, 13:13
Благодарил (а): 36 раз.
Поблагодарили: 23 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Map Manager by Mistrick

Сообщение Mistrick » 27 окт 2013, 20:12

Bartman, ну делается под мои нужды, если сможете предложить то, что мне понравится по возможности добавлю.
Плагин тестировался в одно лицо, так что жду отзывы о работе.
Кстати, я не тестировал смену в конце раунда, т.к. у меня на спидране один раунд :-D
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Map Manager by Mistrick

Сообщение qpAHToMAS » 28 окт 2013, 01:44

Очень интересно. Я как раз планирую начать использовать Galileo в угоду стандартному Mapchooser'у.

Очень надеюсь, что предложения принимаются:
  • Вставить ссылку на оф. тему Colorchat инклуда (для его скачивания) в исходник. По моему эта: Вы должны зарегистрироваться, чтобы видеть ссылки. не знаю оф. или нет.
  • "Карта сменится в конце раунда" — по-моему здесь надо учитывать еще и начало нового раунда. Если к примеру произошел рестарт раунда.
  • Использовать spk cmd, а не emit_sound.
  • Поддержка LANG файла, изначальный язык — Английский. Правда не знаю как быть с уже реализованными тобой окончаниями ("секунд", "секунда", "секунды"), специфичными только для русского, может быть, добавить define для их включения/исключения во время компиляции?
  • -сохранение прошлых карт, чтобы исключить их повторение в течение нескольких следующих карт

    Очень бы хотелось видеть такую фичу:
    Если карты берутся из файла (mm_loadmapstype 0), то в файле сделать такой "синтаксис":
    Код: Выделить всё
    de_nuke
    de_dust2 de_dust2_remake
    de_inferno
    de_train

    Т.е. если предыдущая карта была de_dust2, то de_dust2_remake на голосование ни в коем случае не выводится (или только в случае номинации), и наоборот.
    И если предыдущая карта совсем другая (de_nuke к примеру), то в голосовании не должно быть одновременно de_dust2 и de_dust2_remake. Это можно сделать опционально.
  • Поддержка списка карт для пустого сервера.
  • Поддержка ночного списка карт.
  • Квар, что бы нельзя было номинировать карты, которые не находятся в "maps.ini" (при mm_loadmapstype 0). Здесь в идеале есть связь с ночным списком карт.
  • Не понял как голосовать за продление карты.
Вот такой беглый взгляд. Если нужна помощь, то пиши, есть небольшой опыт.
Аватара пользователя
qpAHToMAS
 
Сообщения: 707
Зарегистрирован: 02 ноя 2009, 18:45
Благодарил (а): 79 раз.
Поблагодарили: 204 раз.
Языки программирования: CStrike

Re: Map Manager by Mistrick

Сообщение Mistrick » 28 окт 2013, 05:10

qpAHToMAS, mm_loadmapstype 0 - это сканирование папки мапс и добавление их в список доступных карт. mm_loadmapstype 1 - чтение карт из файла, можно указать в дефайне.
За продление можно голосовать, если идет не ртв(если написали ртв, значит явно хотят сменить, а не продлевать), т.е. либо через mm_startvote, либо ждать 2-х минут до конца карты(при timelimit > 2).
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Map Manager by Mistrick

Сообщение qpAHToMAS » 28 окт 2013, 07:18

За продление можно голосовать, если идет не ртв(если написали ртв, значит явно хотят сменить, а не продлевать), т.е. либо через mm_startvote, либо ждать 2-х минут до конца карты(при timelimit > 2).

Понял, я оказывается проверял так:
Код: Выделить всё
mm_timelimit 0
mm_timestartvote 1

А если timelimit 0, то куда уж тут продлевать :).
Аватара пользователя
qpAHToMAS
 
Сообщения: 707
Зарегистрирован: 02 ноя 2009, 18:45
Благодарил (а): 79 раз.
Поблагодарили: 204 раз.
Языки программирования: CStrike

Re: Map Manager by Mistrick

Сообщение qpAHToMAS » 28 окт 2013, 11:29

Добавил mm_showselects 0/1 квар, что бы отображать в чате кто какую карту выбирает:

Только вопрос, в одном сообщении можно использовать красный и синий цвет? Была идея подкрашивать ник в зависимости от команды игрока, а не просто синим.

Update:
emit_sound заменил на spk, добавил блокировку votemap команды.

Update:
Добавил say команды nextmap & currentmap в плагин.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось qpAHToMAS 28 окт 2013, 12:42, всего редактировалось 1 раз.
Аватара пользователя
qpAHToMAS
 
Сообщения: 707
Зарегистрирован: 02 ноя 2009, 18:45
Благодарил (а): 79 раз.
Поблагодарили: 204 раз.
Языки программирования: CStrike

Re: Map Manager by Mistrick

Сообщение Bartman » 28 окт 2013, 11:48

Молодцы парни продолжайте, было бы не плохо если реализуете карту по раундам.
Аватара пользователя
Bartman
 
Сообщения: 196
Зарегистрирован: 01 авг 2013, 13:13
Благодарил (а): 36 раз.
Поблагодарили: 23 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: Map Manager by Mistrick

Сообщение Mistrick » 28 окт 2013, 12:41

qpAHToMAS, будет проблематично мне синхронизировать свои мелкие фиксы с твоими, в чем смысл замены emit_sound на spk?
На счет цвета, в одном сообщении можно использовать (синий или красный или серый) и зеленый и обычный. Ограничение движка.
Если есть какие советы и предложения по коду, кидай вставкой какой был и на что заменил или что добавил.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Map Manager by Mistrick

Сообщение qpAHToMAS » 28 окт 2013, 12:54

qpAHToMAS, будет проблематично мне синхронизировать свои мелкие фиксы с твоими

Да, я думал об этом. Посмотри на файлы через Compare в Notepad++:
Вы должны зарегистрироваться, чтобы видеть ссылки. ... f45shu.jpg
Стараюсь писать код в твоём стиле, всё аккуратно и в нужных местах.

Но если тебе всё-таки будет проще так:
Если есть какие советы и предложения по коду, кидай вставкой какой был и на что заменил или что добавил.

То ок.

в чем смысл замены emit_sound на spk?

emit_sound как бы создает звук "на игроке". В итоге получается что ты бежишь по карте, слышишь звуки, проигрывающиеся на себе и еще от всех остальных игроков. spk — проигрывает "локально" у каждого игрока, это правильно, так сделано в стандартном mapchooser'е и galileo.
Аватара пользователя
qpAHToMAS
 
Сообщения: 707
Зарегистрирован: 02 ноя 2009, 18:45
Благодарил (а): 79 раз.
Поблагодарили: 204 раз.
Языки программирования: CStrike

След.

Вернуться в Неутвержденные плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9