#include <amxmodx>
#include <dhudmessage>
#define INTERVAL 10.0 //Интервал между сообщениями (Время показа одного сообщения).
#define DEATH_PLAYERS //Раскомментируйте, если хотите показывать сообщения только мертвым игрокам.
new Array:g_apMessages, g_iCounter, g_iArraySize, g_pcvar_hostname;
public plugin_init()
{
register_plugin("DHUD Advert.", "2.0", "DUKKHAZ0R");
g_pcvar_hostname = get_cvar_pointer("hostname");
g_apMessages = ArrayCreate(128);
}
public plugin_cfg()
{
new szFile[] = "addons/amxmodx/configs/advert_hud.ini";
new szHostname[64], szIP[32];
get_user_ip(0, szIP, charsmax(szIP));
get_pcvar_string(g_pcvar_hostname, szHostname, 63);
new fp, szLine[256];
fp = fopen(szFile, "rt");
if(!fp)
set_fail_state("Enable to open ^"addons/amxmodx/configs/dhud_advert.ini^"");
while(!feof(fp))
{
fgets(fp, szLine, charsmax(szLine));
if(szLine[0] && szLine[0] != ';' && strlen(szLine) < 128)
{
replace_all(szLine, charsmax(szLine), "%ip%", szIP);
replace_all(szLine, charsmax(szLine), "%hostname%", szHostname);
replace_all(szLine, charsmax(szLine), "%new%", "^n");
ArrayPushArray(g_apMessages, szLine);
}
}
g_iArraySize = ArraySize(g_apMessages);
fclose(fp);
set_task(INTERVAL, "ShowAdvert", .flags="b");
}
public ShowAdvert()
{
static i, apPlayers[32], iPlayers;
#if defined DEATH_PLAYERS
get_players(apPlayers, iPlayers, "bch");
#else
get_players(apPlayers, iPlayers, "ch");
#endif
static szMessage[150], szName[32];
ArrayGetString(g_apMessages, g_iCounter, szMessage, charsmax(szMessage));
set_dhudmessage(random_num(1, 255), random_num(1, 255), random_num(1, 255), 0.28, 0.79, 0, 2.0, INTERVAL, 0.1, 0.1, false);
for(i = 0; i < iPlayers; i++)
{
replace_all(szMessage, charsmax(szMessage), szName, "%name%");
get_user_name(apPlayers[i], szName, charsmax(szName));
replace_all(szMessage, charsmax(szMessage), "%name%", szName);
show_dhudmessage(apPlayers[i], szMessage);
}
if(++g_iCounter >= g_iArraySize)
g_iCounter = 0;
}