Simple extend (amx plugin)

Od HLDS.pl
Wersja Trawiator (dyskusja | edycje) z dnia 14:17, 20 cze 2008
(różn.) ← poprzednia wersja | zobacz aktualną wersję (różn.) | następna wersja → (różn.)
Skocz do: nawigacji, wyszukiwania

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
}
Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia