CMS Give Flags Registration

Add-on CMS Give Flags Registration 1.0

Нет прав для скачивания
C++:
#include <amxmodx>
#include <gamecms5>

new szPluginInfo[][] = { "CMSGive_RegFlags", "1.0", "ApXuTekToR" };

new szLogFileName[] = "CMSGive_RegFlags.log"    // Название лог файла
enum E_CvarCreate
{
    g_AddFlags[16],
    g_AwardName[128],
    g_IgnoreFlags[16],
    g_TimeFlags,
    g_LogingOn
};
new cvars[E_CvarCreate];

public plugin_init()
{
    register_plugin(szPluginInfo[0], szPluginInfo[1], szPluginInfo[2]);

    if(is_plugin_loaded("GameCMS_API") == INVALID_PLUGIN_ID)
    {
        log_amx("GameCMS API is not loaded...");
        pause("ad");
        return;
    }

    register_cvar("CMSGive_RegFlags_LogingOn",        "1"                        );
    register_cvar("CMSGive_RegFlags_TimeFlags",        "24"                    );
    register_cvar("CMSGive_RegFlags_AddFlags",        "t"                        );
    register_cvar("CMSGive_RegFlags_IgnoreFlags",    "t"                        );
    register_cvar("CMSGive_RegFlags_AwardName",        "Награда за регистрацию");

    new cfgFilePath[PLATFORM_MAX_PATH];
    new const fileName[64] = "/gamecms/CMSGive_RegFlags.cfg";
    get_localinfo("amxx_configsdir", cfgFilePath, charsmax(cfgFilePath));
    add(cfgFilePath, charsmax(cfgFilePath), fileName);
    if(file_exists(cfgFilePath)) {
        server_cmd("exec %s", cfgFilePath);
        server_exec();
        InitCvars();
    } else {
        server_print("[Error] [Config file not found (%s)] [Plugin stopped]", cfgFilePath);
        set_fail_state("[Config file not found (%s)]", cfgFilePath);
    }
}

InitCvars()
{
    cvars[g_LogingOn]    = get_cvar_num("CMSGive_RegFlags_LogingOn");
    cvars[g_TimeFlags]    = get_cvar_num("CMSGive_RegFlags_TimeFlags");
    get_cvar_string("CMSGive_RegFlags_AddFlags",    cvars[g_AddFlags],        charsmax(cvars[g_AddFlags]));
    get_cvar_string("CMSGive_RegFlags_AwardName",    cvars[g_AwardName],        charsmax(cvars[g_AwardName]));
    get_cvar_string("CMSGive_RegFlags_IgnoreFlags",    cvars[g_IgnoreFlags],    charsmax(cvars[g_IgnoreFlags]));
}

public OnAPIMemberConnected(id, memberId, memberName[])
{
    if(cvars[g_IgnoreFlags])
    {
        if(checkAccess(id, cvars[g_IgnoreFlags]))
            return;
    }

    new get_EndTime = cvars[g_TimeFlags] - cmsapi_get_user_gametime(id)/3600;

    static RegDate[32];
    cmsapi_get_user_regdate(id, RegDate, charsmax(RegDate), false);

    if((cmsapi_get_user_regdate(id) + cvars[g_TimeFlags]*60*60) > get_systime()) {
        cmsapi_set_user_flags(id, cvars[g_AddFlags], -1, cvars[g_AwardName], true);
        client_print_color(id, 0, "^3[^4Reg Vip^3] ^4%n^1, до окончания услуги осталось ^3[^4%d^3] ^1часов^4!", id, get_EndTime);
        if(cvars[g_LogingOn] == 1) {
            log_to_file(szLogFileName, "----------------- User Login: %s", memberName);
            log_to_file(szLogFileName, "User ID:   ^"%d^" ", memberId);
            log_to_file(szLogFileName, "RegData:   ^"%s^" ", RegDate);
            log_to_file(szLogFileName, "TimeLeft:  ^"%d^" ", get_EndTime);
            log_to_file(szLogFileName, "-----------------------------------------", get_EndTime);
        }
    }
}

checkAccess(id, const flags[])
{
    return (get_user_flags(id) & read_flags(flags));
}
Назад
Сверху