Plugin pozwala na określanie z jakiego pliku ma ładować kolejność map od danej godziny do danej godziny.
Dodatkowa opcja to say /mapcycle
Instalacja:
Wiek: 14 lat +
Standardowa
Pliki z rotacjami map w katalogu cstrike/
w pliku konfiguracji serwera, domyślnie server.cfg NIE OKREŚLAĆ PARAMETRU mapcyclefile, pozwolić pluginowi działać!
#include <amxmodx> #include <amxmisc> #define PLUGIN "Mapcykl matkoj**ca" #define VERSION "1.0" #define AUTHOR "graczu" #define iloscm 3 new mapcycles[iloscm][3][] = {{"mapcycle-rano.txt", "08", "mapcykl poranny"}, {"mapcycle-dzien.txt", "13", "mapcykl dzienny"}, {"mapcycle-noc.txt", "23", "mapcykl nocny"}} new cum, lastread[3] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /mapcycle", "cmdSayMapcycle", 0, "- wyswietla aktualny mapcykl") get_localinfo("lastcnum", lastread, 2) cum = str_to_num(lastread) set_localinfo("lastcnum", "") sprawdz_mapcycle() return PLUGIN_CONTINUE } public sprawdz_mapcycle() { new today_str[8], cmd[48] get_time("%H",today_str,8) new today = str_to_num(today_str) for(new i = 0; i <= (iloscm - 1); i++){ if(today >= str_to_num(mapcycles[i][1])){ cum = i } } new currentfile[32] get_cvar_string("mapcyclefile", currentfile, 31) if(!equali(currentfile, mapcycles[cum][0])){ format(cmd, 48 ,"mapcyclefile %s", mapcycles[cum][0]) server_cmd(cmd) log_amx("** Setting new mapcyclefile: %s - %s!", currentfile, mapcycles[cum][0]) new czytajplik[128], line[192], txtsize = 0 format(czytajplik, 127, "%s", mapcycles[cum][0]) new lineread = file_size(czytajplik, 1) read_file(czytajplik, (lineread - 1), line, 191, txtsize) if (txtsize > 1 && line[0] != ';') { format(cmd, 48 ,"amx_nextmap %s", line) server_cmd(cmd) log_amx("** Setting new MAP NEXTMAP: %s!", line) } else { log_amx("** Setting new MAP NEXTMAP: ERROR LINE IS EMPTY!!") } } else { log_amx("** Mapcyclefile: %s - %s!", currentfile, mapcycles[cum][0]) } return PLUGIN_HANDLED } public cmdSayMapcycle(id){ client_print(id, print_chat, "* Aktualnie Gramy: %s, wcisnij TYLDE by zobaczyc liste map.", mapcycles[cum][2]) client_print(id, print_console, "************* Aktualna Rotacja Map:") new line[192], lines = 0, txtsize = 0, i = 1 new czytajplik[128] format(czytajplik, 127, "%s", mapcycles[cum][0]) if(file_exists(czytajplik)){ while ((lines = read_file(czytajplik, lines, line, 191, txtsize)) != 0) { if (line[0] == ';') continue; client_print(id, print_console, "* Pozycja: %i : %s", i, line) i++ } } client_print(id, print_console, "**********************************") } public plugin_end() { new lastcycle[3] num_to_str(cum, lastcycle, 2) set_localinfo("lastcnum", lastcycle) }
Co i jak:
#define iloscm 3 new mapcycles[iloscm][3][] = {{"mapcycle-rano.txt", "08", "mapcykl poranny"}, {"mapcycle-dzien.txt", "13", "mapcykl dzienny"}, {"mapcycle-noc.txt", "23", "mapcykl nocny"}}
Tutaj określamy pliki oraz czas ładowanych plików z rotacjami map, trzeba pamiętać by dobrze określać godzinę dla danej rotacji, godziny lecą po kolei.
Update:
Dodałem set_localinfo w przypadku gdyby ostatnia ustalona rotacja była o 23, a początkowa o 8 (Tak by między 23 a 8 rano pokazywało dobrze jaka jest aktualna rotacja mapy).
Update2:
Zmieniłem nazwę wartość localinfo bo gryzła się z nextmap.sma.
Dodałem mały debug, i dodałem by po załadowaniu nowego mapcykla ustawiał nextmape już z nowego pliku.