←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak wykonać komendę z opóźnieniem

Zablokowany

  • +
  • -
ciemny - zdjęcie ciemny 19.09.2009

Witam,
chciałbym przerobić pewnego antycheata tak żeby przed wlepieniem bana nagrywał demko. Potrafię rozpocząć nagrywanie ale niestety nie wiem jak Ja zakończyć po określonym czasie. Potrzebuję coś w rodzaju set_task, tylko żeby wykonywał komendę raz i po określonym czasie.
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 19.09.2009

public jakas_funkcja(id)

{

	client_cmd(id, "record nazwa_dema") //nagrywanie dema

	

	new parametr[1] //deklaracja tablicy

	parametr[0] = id //wstawienie id gracza do tablicy

	set_task(60.0, "stop_demo", id, parametr, 1) //60.0 - czas w sekundach, id - numer taska, przy przesyłaniu id w tablicy może być dowolny, parametr - przekazanie wartości do funkcji uruchomionej przez set_task

}

public stop_demo(parametr[])

{

	new id = parametr[0] //pobranie do zmiennej id wcześniejszej wartości

	client_cmd(id, "stop") //zatrzymanie demka

	banuj_gracza(get_user_userid(id)) //uruchomienie jakiejś funkcji banującej

}
Odpowiedz

  • +
  • -
ciemny - zdjęcie ciemny 19.09.2009

Dzięki :)
Odpowiedz

  • +
  • -
Portek - zdjęcie Portek 19.09.2009

Jakbyś nie miał sił pracować nad tym pluginem możesz sprawdzić ten:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Rec Dem"
#define VERSION "1.0"
#define AUTHOR "PortuS"

new player
new ip[32]
new timestamp
new adminname
new site 
new reason
new czas
new name
new id

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_concmd("amx_demo", "demos", ADMIN_BAN, "<authid, nick lub #userid>")
	
	site = register_cvar("amx_demo_site","www.Cserwerek.pl")
	reason = register_cvar("amx_demo_reason","Wrzuc_demko_na_")
	czas = register_cvar("amx_demo_ban","0")
}

public demos()
{
	new player
	new id
   
	new timestamp[32], name[32], adminname[32]
	get_time("%d/%m/%Y - %H:%M:%S", timestamp, 31)
	get_user_name(player, name, 31)
	get_user_name(id, adminname, 31)
	get_user_ip(player, ip, 31)
	
	client_cmd(player, "record cserwerek_^"%s^"", timestamp)
	
	set_task(30.0,"demos2",id);
}

public demos2()
{
	console_print(id, "** Demko nagrane graczowi ^"%s^" przez admina ^"%s^" (%s) **", name, adminname, timestamp )
	client_cmd(player, "kill")
	set_task(30.0,"ban",id);
}

public ban()
{
new name[32]
new forum[51]
new powod[41]
new time[41]

get_pcvar_string(site,forum,50)
get_pcvar_string(reason,powod,40)
get_pcvar_string(czas,time,40)
get_user_name(player, name, 31)
server_cmd("amx_ban %s %s %s%s", time, name, powod, forum);
set_task(5.0,"info",id);
}	

public info()
{
console_print(player, "********************************************************")
console_print(player, "** Admin ^"%s^" z powodu podejrzen o oszustwo nagral Ci demo **",adminname)
console_print(player, "** Demo znajdziesz w katalogi cstrike/cstrike_polish                     **")
console_print(player, "** W celu odbanowania koniecznie wrzuc je na %s                 **", site)
console_print(player, "********************************************************")
}
Kiedyś na własne potrzeby to napisałem (czyt. skleciłem), ale wreszcie doszło do tego że nie sprawdziłem czy działa ^^
Odpowiedz
Zablokowany