Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSSMultiMod Manager


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
MultiMod Manager (Counter Strike)


Introduction
Hi :3, this is my first post here. I want to share with you this project that I have published for 2 years now on my personal GitHub. A project that arose from the fact of improving old multimod plugins that had few features and limitations. Now I feel more confident to share it with you, since it is in a stable version. The project is open to new ideas and suggestions to continue improving it even more. I want to thank the collaborators who have participated and those who are still participating, both in the development of ideas, in testing and debugging. Special thanks to metita who has been the one who has helped me the most in testing and debugging.

Post in spanish: https://amxmodx-es.com/Thread-MultiMod-Manager--25264

(Not tested in CS:CZ)

Contributors
  • metita
  • Mía
  • Totopizza
  • Roccoxx
  • r0ma
  • Maxi605

Requirements
Features
  • Configurations through JSON file
  • Votemod
  • Votemap
  • Nominations
  • RTV (Rock The Vote)
  • Admin commands
  • Recently played mods and maps

Config file (JSON) (e.g)
addons/amxmodx/configs/multimod_manager/configs.json
Code:

{
        "global_chat_prefix": "!g[MULTIMOD]",
                // !g = ^4 (Green color)
                // !t = ^3 (Team color)
                // !y = ^1 (con_color cvar)

        "adminflags":
        {
                "menu": "u",        // menu access
                "managemods": "a",  // immunity
                "selectmenu": "f",  // amx_map command
                "forcevotemod": "f",// amx_map command
                "votemenu": "j"    // amx_vote and other vote commands
        },

        "rockthevote":
        {
                "enable": true,    // true / false
                "cooldown": 120,    // min = 0 (disabled)
                "minplayers": 3,    // min = 0 (disabled) | max = 32
                "percentage": 75    // min = 0 (disabled) | max = 100
        },

        "nomination":
        {
                "mods": true,      // true / false
                "maps": true        // true / false
        },

        "admin_max_options_in_menu": 9,  // min = 2 | max = 9
        "mods_in_menu": 9,                // min = 2 | max = 9
        "maps_in_menu": 9,                // min = 2 | max = 9

        "max_recent_mods": 5,  // min = 0
        "max_recent_maps": 5,  // min = 0

        "overwrite_mapcycle": true, // true / false (overwrites the mapcycle.txt with the maps of the selected mod)

        "resemiclip_path": "",
                // Path where the add-on is located
                // Leave empty to disable this option ("")
                // If the path does not exist, it will be considered as disabled
                // E.g.: "addons/resemiclip"

        "change_game_description": true, // true / false (Changes the game description with the name of the mod)

        "mods":
        [
                // The first mode will always be the default mode, it cannot be blocked
                {
                        "modname": "GunGame",
                                // Mod name.
                                // E.g.: "GunGame"


                        "mod_tag": "gg",
                                // Mod tag
                                // E.g.: "gg"


                        "mapsfile": "gungame_maps.ini",
                                // Only the file name along with the extension.
                                // The file must be located in "addons/amxmodx/configs/multimod_manager/mapsfiles/"
                                // E.g.: "gungame_maps.ini"


                        "change_map_type": 0,
                                // "change_map_type": 0 (The map will change at the end of the map)
                                // "change_map_type": 1 (The map will change at the end of the round)
                                // "change_map_type": 2 (Allows to play 1 more round and then changes the map)


                        "cvars":
                        [
                                "sv_gravity 900", "sv_alltalk 1"
                        ],
                                // Cvars that are executed when starting the mode, all the ones you want
                                // Each cvar in quotes and separated by commas
                                // E.g.: "cvars": [ "sv_gravity 900", "sv_alltalk 1", "hostname My CS Server", "mp_roundtime 6" ]
                                // Leave "cvars": [ ] // to not load cvars


                        "plugins":
                        [
                                "plugin10.amxx", "plugin20.amxx"
                        ],
                                // Plugins that are needed for this mode, all the ones you want
                                // Each plugin in quotes, separated by commas and with its corresponding extension
                                // E.g.: "plugins": [ "gungame.amxx", "ultimate_sounds.amxx", "csstats.amxx" ]
                                // Leave "plugins": [ ] // to not load cvars

                        "resemiclip_config":
                        {
                                "semiclip": "1",
                                "team": "3", // 0 = all | 1 = T | 2 = CT | 3 = Team
                                "time": "0",
                                "crouch": "0",
                                "effects": "0",
                                "distance": "250",
                                "transparency": "0",
                                "penetfire": "0"
                        }
                },
                {
                        "modname":"DeathMatch",
                        "mod_tag": "dm",
                        "mapsfile":"deathmatch_maps.ini",
                        "change_map_type": 1,
                        "cvars":
                        [
                                "sv_gravity 900", "sv_alltalk 1"
                        ],
                        "plugins":
                        [
                                "plugin11.amxx", "plugin21.amxx", "plugin33.amxx", "plugin44.amxx", "plugin5.amxx"
                        ],
                        "resemiclip_config":
                        {
                                "semiclip": "1",
                                "team": "3",
                                "time": "0",
                                "crouch": "0",
                                "effects": "0",
                                "distance": "250",
                                "transparency": "0",
                                "penetfire": "0"
                        }
                },
                {
                        "modname":"Fruta",
                        "mod_tag": "fr",
                        "mapsfile":"fruta_maps.ini",
                        "change_map_type": 1,
                        "cvars":
                        [
                                "sv_gravity 900", "sv_alltalk 1"
                        ],
                        "plugins":
                        [
                                "plugin12.amxx", "plugin22.amxx", "plugin32.amxx", "plugin42.amxx"
                        ],
                        "resemiclip_config":
                        {
                                "semiclip": "1",
                                "team": "3",
                                "time": "0",
                                "crouch": "0",
                                "effects": "0",
                                "distance": "250",
                                "transparency": "0",
                                "penetfire": "0"
                        }
                },
                {
                        "modname":"Zombie Plague",
                        "mod_tag": "zp",
                        "mapsfile":"zp_maps.ini",
                        "change_map_type": 1,
                        "cvars":
                        [
                                "sv_gravity 900", "sv_alltalk 1"
                        ],
                        "plugins":
                        [
                                "plugin13.amxx", "plugin23.amxx", "plugin33.amxx", "plugin43.amxx", "plugin53.amxx", "plugin63.amxx", "plugin73.amxx"
                        ],
                        "resemiclip_config":
                        {
                                "semiclip": "1",
                                "team": "3",
                                "time": "0",
                                "crouch": "0",
                                "effects": "0",
                                "distance": "250",
                                "transparency": "0",
                                "penetfire": "0"
                        }
                },
                {
                        "modname":"PaintBall",
                        "mod_tag": "pb",
                        "mapsfile":"paintball_maps.ini",
                        "change_map_type": 1,
                        "cvars":
                        [
                                "sv_gravity 900", "sv_alltalk 1"
                        ],
                        "plugins":
                        [
                                "plugin14.amxx", "plugin24.amxx", "plugin34.amxx", "plugin44.amxx"
                        ],
                        "resemiclip_config":
                        {
                                "semiclip": "1",
                                "team": "3",
                                "time": "0",
                                "crouch": "0",
                                "effects": "0",
                                "distance": "250",
                                "transparency": "0",
                                "penetfire": "0"
                        }
                },
                {
                        "modname":"HNS",
                        "mod_tag": "hns",
                        "mapsfile":"hns_maps.ini",
                        "change_map_type": 1,
                        "cvars":
                        [
                                "sv_gravity 900", "sv_alltalk 1"
                        ],
                        "plugins":
                        [
                                "plugin15.amxx", "plugin25.amxx", "plugin35.amxx", "plugin45.amxx"
                        ],
                        "resemiclip_config":
                        {
                                "semiclip": "1",
                                "team": "3",
                                "time": "0",
                                "crouch": "0",
                                "effects": "0",
                                "distance": "250",
                                "transparency": "0",
                                "penetfire": "0"
                        }
                },
                {
                        "modname":"Surf",
                        "mod_tag": "sf",
                        "mapsfile":"surf_maps.ini",
                        "change_map_type": 1,
                        "cvars":
                        [
                                "sv_gravity 900", "sv_alltalk 1"
                        ],
                        "plugins":
                        [
                                "plugin15.amxx", "plugin25.amxx", "plugin35.amxx"
                        ],
                        "resemiclip_config":
                        {
                                "semiclip": "1",
                                "team": "3",
                                "time": "0",
                                "crouch": "0",
                                "effects": "0",
                                "distance": "250",
                                "transparency": "0",
                                "penetfire": "0"
                        }
                }
        ]
}

Say commands
  • recentmods: Opens a list of recently played mods.
  • recentmaps: Opens a list of recently played maps of the current mod.
  • currentmod: Shows the current mod.
  • currentmap: Shows the current map.
  • nextmod: Shows the next voted mod.
  • nextmap: Shows the next voted map.
  • timeleft: Shows the remaining time or remaining rounds.

Console commands
  • amx_multimod: Opens an admin command menu.

API (natives)
PHP Code:

/**
 * Return the current mod index based on JSON position.
 *
 * @return (int)        Index of the current mod.
 */
native mm_get_mod_id();

/**
 * Retrieves mod name.
 *
 * @note If the destination buffer is too small to hold the source string, the 
 *       destination will be truncated.
 *
 * @param iModId        Mod index.
 * @param szOutput      Buffer to copy mod name to.
 * @param iLen          Buffer size.
 *
 * @return (int)        -1 on error.
 *                      >= 0 Number of cells written.
 */
native mm_get_mod_name(const iModIdszOutput[], const iLen);

/**
 * Retrieves mod tag.
 *
 * @note If the destination buffer is too small to hold the source string, the 
 *       destination will be truncated.
 *
 * @param iModId        Mod index.
 * @param szOutput      Buffer to copy mod tag to.
 * @param iLen          Buffer size.
 *
 * @return (int)        -1 on error.
 *                      >= 0 Number of cells written.
 */
native mm_get_mod_tag(const iModIdszOutput[], const iLen);

/**
 * Return the next mod index based on JSON position if nextmod is already chosen.
 *
 * @return (int)        -1 if nextmod is not chosen yet.
 *                      >= 0 Index of the next mod.
 */
native mm_get_nextmod_id();

/**
 * Retrieves next mod name.
 *
 * @note If the destination buffer is too small to hold the source string, the 
 *       destination will be truncated.
 *
 * @param szOutput      Buffer to copy mod name to.
 * @param iLen          Buffer size.
 *
 * @return (int)        -1 on error.
 *                      >= 0 Number of cells written.
 */
native mm_get_nextmod_name(szOutput[], const iLen);

/**
 * Force a votemod.
 *
 * @return (int)        1 on success, 0 otherwise
 */
native mm_force_votemod(); 

Compilation

Download the repository to any folder, open the multimod_manager.sma file and compile from there with your favorite text editor (Sublime Text, VSCode recommended). It is not necessary to copy the .inc files to the includes folder where you have the compiler, but it is recommended if you compile from there.

Repository

https://github.com/FEDERICOMB96/amxx-multimod-manager

Attached Files
File Type: zip amxx-multimod-manager-main.zip (55.4 KB)

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...