RSSy MYGO.pl Opublikowano Lipiec 24, 2020 o 20:01 RSSy Udostępnij Opublikowano Lipiec 24, 2020 o 20:01 Hi!, I use this .sma but I would like that instead of using the maps.ini file, to create my own list of maps inside the same .sma, I don't know if it's possible PHP Code: #include <amxmodx> #define DATA_FLAG "s" new Array:g_mapName; new g_mapNums; new g_lastMap[32] public plugin_init() { register_plugin("Random Map Change", "1.0", "siriusmd99") g_mapName=ArrayCreate(32); get_localinfo("lastMap", g_lastMap, 31) set_localinfo("lastMap", "") new maps_ini_file[64] get_localinfo("amxx_configsdir",maps_ini_file,63); format(maps_ini_file, 63, "%s/maps.ini", maps_ini_file); if (!file_exists(maps_ini_file)) get_cvar_string("mapcyclefile", maps_ini_file, 63) if (loadSettings(maps_ini_file)) register_clcmd("say /randomgo", "change_random_map") } public change_random_map() { if (has_flag(id, DATA_FLAG)) { //server_cmd( "changelevel de_dust2_largo" ) client_cmd(id, "amx_map %a", ArrayGetStringHandle(g_mapName, random(g_mapNums))); } return PLUGIN_CONTINUE } stock bool:ValidMap(mapname[]) { if ( is_map_valid(mapname) ) return true; new len = strlen(mapname) - 4; if (len < 0) return false; if ( equali(mapname[len], ".bsp") ) { mapname[len] = '^0'; if ( is_map_valid(mapname) ) return true; } return false; } loadSettings(filename[]) { if (!file_exists(filename)) return 0 new szText[32] new currentMap[32] new buff[256]; get_mapname(currentMap, 31) new fp=fopen(filename,"r"); while (!feof(fp)) { buff[0]='^0'; szText[0]='^0'; fgets(fp, buff, charsmax(buff)); parse(buff, szText, charsmax(szText)); if (szText[0] != ';' && ValidMap(szText) && !equali(szText, g_lastMap) && !equali(szText, currentMap)) { ArrayPushString(g_mapName, szText); ++g_mapNums; } } fclose(fp); return g_mapNums } public plugin_end() { new current_map[32] get_mapname(current_map, 31) set_localinfo("lastMap", current_map) } Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi