Map Manager [Modular]

amxx Map Manager [Modular] 3.1.5

Встановлення
  1. Завантажити архів, розпакувати
  2. В addons\amxmodx\configs\plugins-map_manager.ini закоментувати непотрібні модулі
  3. За наявності кастомного чат менеджера, бажано поставити його останнім у plugins-map_manager.ini
  4. Налаштувати залишені модулі. Налаштування розташовуються в .sma та в addons\amxmodx\configs\map_manager.cfg
  5. Скомпілювати плагіни. Інструкція з локальної компіляції тут.
  6. Залити плагін на сервер, дотримуючись структури папок та файлів.
Налаштування
В addons/amxmodx/configs/map_manager.cfg

C++:
echo "Executing Map Manager Configuration File"
// Core
// Префікс перед повідомленнями плагіна.
// !d - default, !t - team, !g - green
// ^1 - default, ^3 - team, ^4 - green
mapm_prefix "^4[MapManager]"
// Число карт у голосуванні.
mapm_votelist_size "5"
// Як відображати стан голосування.
// Якщо вам потрібна зміна зброї, ставити 2. Використання меню блокує зміну зброї.
// 0 - disable, 1 - menu, 2 - hud
mapm_show_result_type "1"
// Виведення повідомлень про вибрану карту
// 0 - disable, 1 - all
mapm_show_selects "1"
// Виведення відсотків у меню голосування
// 0 - disable, 1 - always, 2 - after vote
mapm_show_percent "1"
// Змінює порядок нумерації у меню.
// 0 - disable, 1 - enable
mapm_random_nums "0"
// Час перед голосуванням.
// seconds
mapm_prepare_time "5"
// Час на голосування
// seconds
mapm_vote_time "10"
// Усунення пунктів голосування.
// За замовчуванням пункти починаються з 1, ставте квар рівним 4 і початок буде з 5.
mapm_vote_item_offset "0"

// Scheduler
// Тип зміни карти після голосування.
// 0 - after end vote, 1 - in round end, 2 - after end map
mapm_change_type "1"
// Запуск голосування за N хвилин до кінця картки.
// minutes
mapm_timeleft_to_vote "2"
// Запуск голосування за N раундів до mp_winlimit чи mp_maxrounds.
// Має бути більше нуля.
// rounds
mapm_rounds_to_vote "2"
// Запуск голосування за N-фрагів до mp_fraglimit.
// frags
mapm_frags_to_vote "5"
// Голосування лише на початку нового раунду.
// 0 - disable, 1 - enable
mapm_vote_in_new_round "0"
// Дозволяє дограти раунд після голосування.
// 0 - disable, 1 - enable
mapm_last_round "0"
// Друге голосування з двома картами, які набрали найбільше голосів.
// 0 - disable, 1 - enable
mapm_second_vote "0"
// Якщо карта набирає менше відсотків, ніж у кварі, відбувається друге голосування.
mapm_second_vote_percent "50"
// Якщо вийшов останній гравець, за кілька хвилин змінити на карту за замовчуванням.
// 0 - disable
// minutes
mapm_change_to_default_map "0"
// Карта за замовчуванням.
mapm_default_map "de_dust2"
// Тип продовження картки.
// 0 - minutes, 1 - rounds
mapm_extended_type "0"
// Максимальна кількість продовжень карти mapm_extended_type "0".
mapm_extended_map_max "3"
// Продовження у хвилинах mapm_extended_type "1".
// minutes
mapm_extended_time "15"
// Продовження в раундах для
// rounds
mapm_extended_rounds "3"

// GUI
// Швидкість курсору
mapm_cursor_sens "2.5"

// Blocklist
// Кількість останніх карток, які заблокує від попадання до голосування.
mapm_blocklist_ban_last_maps "10"

// Rtv
// Тип ртв.
// 0 - percents, 1 - players
mapm_rtv_mode "0"
// Змінити карту після голосування від rtv, якщо "mapm_change_type" не нуль.
// 0 - disable, 1 - enable
mapm_rtv_change_after_vote "0"
// Необхідний процент голосів для дострокового голосування.
mapm_rtv_percent "60"
// Необхідна кількість голосів для дострокового голосування.
mapm_rtv_players "5"
//Забороняє ртв на N хвилин після початку карти.
// minutes
mapm_rtv_delay "0"
// Дозволяє продовжувати картку при ртв.
// 0 - disable, 1 - enable
mapm_rtv_allow_extend "0"

// Nomination
// Тип номінації.
// 0 - стандартний, дозволяє гравцям номувати кілька карток, з яких кілька випадкових попадуть в голосування.
// 1 - фіксований, перші гравці забивають слоти номінації та більше ніхто номінувати не може.
mapm_nom_type "0"
// Максимальна кількість номінованих карток у голосуванні.
mapm_nom_maps_in_vote "3"
// Скільки карт може номінувати кожен гравець.
mapm_nom_maps_per_player "3"
// Не закривати меню номінації, якщо гравець номінував максимум карт.
// 0 - disable, 1 - enable
mapm_nom_dont_close_menu "1"
// Захист від спаму номінацією. Забороняє знімати номінацію частіше, ніж зазначено в кварі.
// seconds
mapm_nom_denominate_time "5"
// Виведення карт у випадковому порядку в меню номінації.
// 0 - disable, 1 - enable
mapm_nom_random_sort "0"
// Видаляти карти з номінації, яких немає у новому списку карток.
// 0 - disable, 1 - enable
mapm_nom_remove_maps "1"
// У меню номінації виводити активні списки карток (з advanced lists)
// 0 - disable, 1 - enable
mapm_nom_show_lists "0"
// Online sorter
// Перевіряти номіновані карти на відповідність поточному онлайнові при голосуванні.
// 0 - disable, 1 - enable
mapm_sort_check_nominated_maps "0"

// Effects
// Чорний екран під час голосування.
// 0 - disable, 1 - enable
mapm_black_screen "1"
// Блокування чату під час голосування.
//
// Якщо у вас стоїть чат менеджер, то він має бути прописаний нижче у списку плагінів
// За замовчуванням усі плагіни ММ винесені до окремого plugins.ini, який читає пізніше
// основного, через що ЧС стоїть вище і аддон не може блокувати чат під час голосування.
//
// 0 - disable, 1 - enable
mapm_block_chat "1"
// Блокування голосового чату під час голосування.
// 0 - disable, 1 - enable
mapm_block_voice "1"
// Заморожування гравців під час голосування.
// При mapm_vote_in_new_round "1" використовується mp_freezetime.
// Якщо поставити значення квара "2", то завжди буде використовуватися заморожування за допомогою флагів.
// 0 - disable, 1 - enable, 2 - force use flags
mapm_freeze_in_vote "1"

Документація по файлу maps.ini:
C++:
; Format
; <map name> [min players, def 0] [max players, def 32] [priority, def 100]
; Examples:
; de_nuke
; de_dust 0 10
; de_dust2 5 32 70

Більше інформації у самому файлі.

Документація паків для GUI:
Пак – це спрайт. Ліміт спрайту 255 кадрів, тобто максимум можна додати 255 картинок із картами на пак.
У кожному паку повинні бути присутніми два службові кадри. Нульовий – невідома карта, перший – продовження поточної.
API
Core
C++:
/**
* Load maps from file.
* File loads from configs dir.
*
* @param filename              File name
* @param clearlist             Clear old maplist before new load.
* @param silent                If false then will be call forward mapm_maplist_loaded.
*
* @noreturn
*/
native mapm_load_maplist(filename[], bool:clearlist = true, bool:silent = false);

/**
* Load maps from file.
* File loads from configs dir.
*
* @param array                 Array with item size MapStruct.
* @param filename              File name
*
* @return                      1 if success load, 0 otherwise
*/
native mapm_load_maplist_to_array(Array:array, filename[]);

/**
* Block default load maplist.
* Use before call plugin_cfg().
*
* @noreturn
*/
native mapm_block_load_maplist();

/**
* Add map to maplist
*
* @param name                  Map name
* @param minplayers            Min players for sort
* @param maxplayers            Max players for sort
*
* @return                      0 if invalid map or already in array
*/
native mapm_add_map_to_list(name[], minplayers = 0, maxplayers = 32);

/**
* Get map index in mapslist array.
*
* @param map                   Map name
*
* @return                      Map index or INVALID_MAP_INDEX if map not exist in mapslist
*/
native mapm_get_map_index(map[]);

/**
* Get prefix from core.
*
* @param prefix                Prefix string
* @param len                   String lenght
*
* @noreturn
*/
native mapm_get_prefix(prefix[], len);

/**
* Set value for vote finished variable.
*
* @param value                 Bool value
*
* @noreturn
*/
native mapm_set_vote_finished(bool:value);

/**
* Start vote.
*
* @param type                  Vote type, use const VOTE_BY_*
*
* @noreturn
*/
native mapm_start_vote(type);

/**
* Stop vote.
*
* @noreturn
*/
native mapm_stop_vote();

/**
* Blocks show vote menu from core.
*
* @noreturn
*/
native mapm_block_show_vote();

/**
* Get votelist size const from core.
*
* @return Votelist size
*/
native mapm_get_votelist_size();

/**
* Set max items in vote.
*
* @param value                 Amount items in vote
*
* @noreturn
*/
native mapm_set_votelist_max_items(value);

/**
* Push map in votelist.
*
* @note Use native in forward mapm_prepare_votelist().
*
* @param map                   Map name
* @param type                  Type for addons
* @param ignore_check          Allow ignore some checks, bit sum, use const CHECK_*
*
* @return                      Result of pushing, const PUSH_*
*/
native mapm_push_map_to_votelist(map[], type = PUSH_BY_NATIVE, ignore_check = CHECK_NOT_IGNORED);

/**
* Get amount maps in votelist.
*
* @note Use in mapm_analysis_of_results()
*
* @noreturn
*/
native mapm_get_count_maps_in_vote();

/**
* Get info about votelist item.
*
* @note Use in mapm_analysis_of_results()
*
* @param item                  Index in votelist
* @param map                   Map name
* @param len                   Map name string lenght
*
* @return                      Votes
*/
native mapm_get_voteitem_info(item, map[], len);

/**
* Returns vote type.
*
* @return                      Type of vote, used const VOTE_BY_*
*/
native mapm_get_vote_type();

/**
* Adds votes to vote item.
*
* @note Use while vote continues.
*
* @param item                  Index in votelist
* @param value                 Map name
*
* @return                      1 if success
*/
native mapm_add_vote_to_item(item, value);

/**
* Returns if vote started.
*
* @return                      true/false
*/
native bool:is_vote_started();

/**
* Returns if vote finished.
*
* @return                      true/false
*/
native bool:is_vote_finished();

/**
* Called after load map list.
*
* @param maplist               Array with loaded maps
* @param nextmap               Nextmap after current map in loaded list
*
* @noreturn
*/
forward mapm_maplist_loaded(Array:maplist, const nextmap[]);

/**
* Called after clear maplist.
*
* @noreturn
*/
forward mapm_maplist_unloaded();

/**
* Called every second before vote or in vote.
*
* @param type                  Type of countdown, used const COUNTDOWN_*
* @param time                  Current second of countdown
*
* @noreturn
*/
forward mapm_countdown(type, time);

/**
* Called before vote.
*
* @param type                  Type of vote, used const VOTE_BY_*
*
* @noreturn
*/
forward mapm_prepare_votelist(type);

/**
* Called when core or addons are trying add map in votelist.
*
* @param map                   Map name
* @param type                  Type of vote, used const VOTE_BY_*
* @param index                 Index in mapslist array
*
* @return                      MAP_ALLOWED
*                              MAP_BLOCKED
*/
forward mapm_can_be_in_votelist(const map[], type, index);

/**
* Called for permission to extend current map.
*
* @param type                  Type of vote, used const VOTE_BY_*
*
* @return                      EXTEND_ALLOWED to allow extend current map
*                              EXTEND_BLOCKED to block extend current map
*/
forward mapm_can_be_extended(type);

/**
* Called when core start show menu with vote.
*
* @param type                  Type of vote, used const VOTE_BY_*
*
* @noreturn
*/
forward mapm_vote_started(type);

/**
* Called when core canceled vote.
*
* @param type                  Type of vote, used const VOTE_BY_*
*
* @noreturn
*/
forward mapm_vote_canceled(type);

/**
* Called before vote finish.
*
* @param type                  Type of vote, used const VOTE_BY_*
* @param total_votes           Count of players votes
*
* @return                      ALLOW_VOTE to allow finish vote
*                              ABORT_VOTE to block finish vote, forward mapm_vote_finished() will not be called
*/
forward mapm_analysis_of_results(type, total_votes);

/**
* Called when vote finished.
*
* @note Can be blocked in forward mapm_analysis_of_results()
*
* @param map                   Nextmap
* @param type                  Type of vote, used const VOTE_BY_*
* @param total_votes           Count of players votes
*
* @noreturn
*/
forward mapm_vote_finished(const map[], type, total_votes);

Scheduler
C++:
/**
/**
* Start vote by scheduler, work with own cvars.
*
* @param type                  Type of vote, used const VOTE_BY_*
*
* @noreturn
*/
native map_scheduler_start_vote(type);

/**
* Extend current map time.
*
* @param count                 Extend time param, bonus time = count * cvarnum(extend_time)
*
* @noreturn
*/
native map_scheduler_extend_map(count = 1);

/**
* Returns true if vote will in next round.
*
* @return                      true/false
*/
native bool:is_vote_will_in_next_round();

/**
* Returns true if now is last round.
*
* @return                      true/false
*/
native bool:is_last_round();

BlockList
C++:
/**
* Check map if it in blocklist.
*
* @param map            Map name
*
* @return Blocked count
*/
native mapm_get_blocked_count(map[]);
Угорі