#include <amxmodx>
#include <amxmisc>
#define ADVERT_INTERVAL 11.0 // интервал между сообщениями (НЕ ДОЛЖЕН быть меньше времени показа)
#define ADVERT_HOLDTIME 10.0 // время показа сообщения
#define MAX_ADVERTS 128
#define MAX_LEN 192
new g_Adverts[MAX_ADVERTS][MAX_LEN]
new g_AdvertCount
new g_CurrentAdvert
public plugin_init()
{
register_plugin("DHUD Adverts", "1.0", "Inc.")
load_adverts()
if (g_AdvertCount > 0)
{
set_task(ADVERT_INTERVAL, "show_advert", .flags = "b")
}
}
load_adverts()
{
new path[128]
get_configsdir(path, charsmax(path))
add(path, charsmax(path), "/dhud_adverts.ini")
if (!file_exists(path))
{
log_amx("DHUD Adverts: файл %s не найден", path)
return
}
new file = fopen(path, "rt")
if (!file)
return
new buffer[MAX_LEN]
while (!feof(file) && g_AdvertCount < MAX_ADVERTS)
{
fgets(file, buffer, charsmax(buffer))
trim(buffer)
if (!buffer[0] || buffer[0] == ';')
continue
copy(g_Adverts[g_AdvertCount], charsmax(g_Adverts[]), buffer)
g_AdvertCount++
}
fclose(file)
log_amx("DHUD Adverts: загружено %d сообщений", g_AdvertCount)
}
public show_advert()
{
if (g_AdvertCount <= 0)
return
new r = random(256)
new g = random(256)
new b = random(256)
set_dhudmessage(
r, g, b,
-1.0, 0.20,
0,
0.0,
ADVERT_HOLDTIME,
0.5,
0.5
)
show_dhudmessage(0, "%s", g_Adverts[g_CurrentAdvert])
g_CurrentAdvert++
if (g_CurrentAdvert >= g_AdvertCount)
g_CurrentAdvert = 0
}