Simple extend (amx plugin)
Od HLDS.pl
Opis
Poniższy kod źródłowy należy skopiować i wkleić np. do notatnika oraz zapisać jako simple_extend.sma
Po zapisaniu trzeba plik przekopiować do podkatalogu scripting w amxx oraz postąpić zgodnie z instrukcjami zawartymi w poradniku o AMX Mod X na temat kompilacji i instalacji nowych pluginów.
/********************************************************** Prosty pluginek do przedluzania mapy o 10 minut. Plugin ma dzialac w nastepujacy sposob: - Gdy timeleft jest mniejsze od 5ciu minut gracz moze wpisac vote_extend, teraz pojawia sie glosowanie z pytaniem czy rozszerzyc mape o 10 minut. Gdy wynik bedzie pozytywny mp_timelimit jest zwiekszane o 10 w przeciwnym wypadku nie podejmowana jest zadna akcja. Po zakonczeniu glosowania nastepuje blokada aby nie pozwolic na spam gloswan. UWAGA: Plugin do poprawnego dzialania wymaga aktywnego pluginu TIMELEFT.AMXX UWAGA 2: W wypadku gdy po zmianie mapy timelimit zostal zwiekszony o XX minut nalezy do amxx.cfg dodac nastepujacy wpis: mp_timelimit ZZ gdzie ZZ to czas po jakim nastepuje zmiana map. Historia: - 0.1 - Zamysl, pierwsze 'szkice'. Pewnie nic nie zadziala. - 0.2 - Generalnie jakies pierdoly. Nowa wersja bo za pierwszym razem wszystko dziala! Jestem ku**a zaj***ty :P - 0.3 - Specjalnie cos dla Ciebie Ogoor! - Poprawki bledow w pisowni! HA! - 0.4 - Dodalem logowanie kto odpalil glosowanie oraz jaki byl wynik glosowania. Do zrobienia: - Obsluga jezykow obcych (multilingual) ************************************************************/ #include <amxmodx> #include <amxmisc> new glosy[2] public plugin_init() { register_plugin("Vote ExtendMap","0.4","trawiator") register_clcmd("say vote_extend","vote_ext",0,"- rozpoczyna glosowanie na rozszerzenie mapy") register_clcmd("say /vote_extend","vote_ext",0,"- rozpoczyna glosowanie na rozszerzenie mapy") register_menucmd(register_menuid("Przedluzyc_Mape?"),(1<<0)|(1<<1),"licznik_glosow") register_cvar("amx_last_extend_voting","0") register_cvar("amx_vote_extend_delay","290") set_cvar_float("amx_last_extend_voting", 0.0) return PLUGIN_CONTINUE } public vote_ext(id) { new Float:glosowanie = get_cvar_float("amx_last_extend_voting") if (glosowanie > get_gametime()) { client_print(id,print_chat,"* Glosowanie juz trwa...") return PLUGIN_HANDLED } if (glosowanie && glosowanie + get_cvar_float("amx_vote_extend_delay") > get_gametime()) { client_print(id,print_chat,"* Nie mozna teraz glosowac...") return PLUGIN_HANDLED } new Float:czasdokonca = get_cvar_float("amx_timeleft") if (czasdokonca > 4.0 ) { client_print(id,print_chat,"* Mozna glosowac dopiero, gdy zostanie conajmniej 5 minut do konca mapy...") return PLUGIN_HANDLED } new menu_pok[256] format(menu_pok,255,"yAMXX Przedluzyc_Mape?w^n^n1. Tak^n2. Nie") new Float:czas_glosowania = get_cvar_float("amx_vote_time") + 2.0 set_cvar_float("amx_last_extend_voting", get_gametime() + czas_glosowania ) show_menu(0,(1<<0)|(1<<1),menu_pok,floatround(czas_glosowania)) set_task(czas_glosowania,"spr_glosow") client_print(0,print_chat,"* Glosowanie rozpoczete...") glosy[0]=glosy[1]=0 new authid[32],name[32] get_user_authid(id,authid,31) get_user_name(id,name,31) log_amx("VoteExtend: %s - <%s> rozpoczol glosowanie na rozszerzenie mapy", name,authid) return PLUGIN_HANDLED } public licznik_glosow(id,key) { if ( get_cvar_float("amx_vote_answers") ) { new name[32] get_user_name(id,name,31) client_print(0,print_chat,"* %s %s przedluzenia mapy.", name, key ? "NIE CHCE" : "CHCE" ) } ++glosy[key] return PLUGIN_HANDLED } public spr_glosow(id) { client_print(0,print_chat,"VoteExtend: Tak - %d Nie - %d", glosy[0], glosy[1]) log_amx("VoteExtend: Tak - %d Nie - %d", glosy[0], glosy[1]) if (glosy[0] > glosy[1]) { new Float:rozciagniecie = get_cvar_float("mp_timelimit") set_cvar_float( "mp_timelimit" , rozciagniecie + 10.0 ) client_print(0,print_chat,"* Mapa zostanie przedluzona o 10 minut!") } else { client_print(0,print_chat,"* Mapa nie zostanie przedluzona...") } return PLUGIN_CONTINUE }