Иконка ресурса

DHUD Adverts 1.0

Нет прав для скачивания
Код:
#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
}
Назад
Верх