#include <amxmodx>

#define PLUGIN "Hirdetesek"
#define VERSION "1.1"
#define AUTHOR "DeRoiD"

#define MAXUZENETEK 20
#define UZENETID 933207

#pragma semicolon 1

new OsszesHirdetes[MAXUZENETEK][512], ElozoHirdetes = UZENETID;
new FajlUt[] = "addons/amxmodx/configs/hirdetesek.cfg";
new HirdetesiEffectHang[] = "hirdetesek/effect";
new OsszesSor, KovetkezoSor = 0;

new HirdetesiIdo, HirdetesiEffect;

public plugin_precache() {
	new Hang[64];
	format(Hang, 63, "%s.wav", HirdetesiEffectHang);
	precache_sound(Hang);
}
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	if(file_exists(FajlUt))
	{
		HirdetesiIdo = register_cvar("HirdetesiIdo", "120.0");
		HirdetesiEffect = register_cvar("HirdetesiEffect", "1");
		HirdetesekBetoltese();
	}
	else
	{
		set_fail_state("HIBA: Nem talalhato a hirdetesek.cfg fajl!");
	}
}
public HirdetesekBetoltese() {
	new Sor, Lekeres[512], SorEllenorzes[32];
	OsszesSor = file_size(FajlUt, 1);
	for(new SorSzam; SorSzam < OsszesSor; SorSzam++)
	{
		read_file(FajlUt, SorSzam, Lekeres, 511, Sor);
		format(SorEllenorzes, 1, "%s", Lekeres);
		if(equal(";", SorEllenorzes) || equal("", SorEllenorzes))
		{
			continue;
		}
		remove_quotes(Lekeres);
		KovetkezoSor++;
		format(OsszesHirdetes[KovetkezoSor], 511, "%s", Lekeres);
	}
	if(KovetkezoSor > 0)
	{
		set_task(get_pcvar_float(HirdetesiIdo), "Hirdetesek", UZENETID, _, _, "b");
		log_amx("Hirdetesek v1.0 by: DeRoiD");
		log_amx("Hirdetesek szama: %d | Hirdetesi Ido: %3.1f", KovetkezoSor, get_pcvar_float(HirdetesiIdo));
	}
}
public Hirdetesek() {
	new VeletlenszeruSzam = random_num(1, KovetkezoSor);
	if(VeletlenszeruSzam == ElozoHirdetes || equal(OsszesHirdetes[KovetkezoSor], ""))
	{
		set_task(0.1, "Hirdetesek");
	}
	else
	{
		ElozoHirdetes = VeletlenszeruSzam;
		new OsszesJatekos[32], Jatekosok;
		get_players(OsszesJatekos, Jatekosok, "c");
		for(new Jatekos; Jatekos < Jatekosok; Jatekos++)
		{
			HirdetesUzenetek(OsszesJatekos[Jatekos], OsszesHirdetes[VeletlenszeruSzam], get_pcvar_num(HirdetesiEffect));
		}
	}
}
public HirdetesUzenetek(id, const UzenetAdat[], Hang) {
	if(Hang == 1)
	{
		new Hang[64];
		format(Hang, 63, "%s.wav", HirdetesiEffectHang);
		client_cmd(id, "spk %s", Hang);
	}
	static Uzenet[512];
	vformat(Uzenet, 511, UzenetAdat, 3);
	replace_all(Uzenet, 511, "!g", "^4");
	replace_all(Uzenet, 511, "!n", "^1");
	replace_all(Uzenet, 511, "!t", "^3");
	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, id);
	write_byte(id);
	write_string(Uzenet);
	message_end();
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
*/
