Steam GSClient Bonus

Плагин АМХХ Steam GSClient Bonus 1.0.5

Нет прав для скачивания
C++:
#include <amxmodx>
#include <authemu>
#include <reapi>
/* Настройки */
// Время через которое будет выдана награда после входа игрока на сервер
#define BONUS_TIME      5.0
// Выдавать флаги только тем игрокам, у которых нет никаких других флагов (Игрок имеет флаг "z" - тогда выдаетются флаги)
// Закомментируйте, если нужно выдавать даже игрокам с другими флагами
#define ACCESS_FLAGS    ADMIN_USER
/* Тип интеграции со система ранга
NOTE: Закомментируйте, если не нужна поддержка ранг системы
1 - Army Ranks Ultimate
2 - Advanced Expirience System
3 - CMSStats Ranks
4 - OciXCroms Rank System (Награждать может только опытом, из-за отстутствия бонсоной системы) */
#define TYPE_JOB        2
/* Далее настроек нет */
#if defined TYPE_JOB
    #if TYPE_JOB == 1
        native ar_set_user_addxp(id, addxp);
        native ar_add_user_anew(admin, player, anew);
    #elseif TYPE_JOB == 2
        #include <aes_v>
    #elseif TYPE_JOB == 3
        native cmsranks_set_user_addxp(id, value);
        native cmsranks_add_user_anew(id, value);
    #elseif TYPE_JOB == 4
        #include <crxranks>
    #endif
#endif
public plugin_init() {
    register_plugin("Steam_GSClient_Bonus", "1.0.5", "ApXuTekToR");
    RegisterHookChain(RG_CBasePlayer_SetClientUserInfoName, "CBasePlayer_SetUserFlags")
    register_cvar("sgsc_bonus_type",    "1");
    register_cvar("sgsc_bonus_money",   "500");
    register_cvar("sgsc_bonus_flags",   "t");
    #if defined TYPE_JOB
        register_cvar("sgsc_bonus_exp",     "1");
        #if TYPE_JOB != 4
        register_cvar("sgsc_bonus_anew",    "1");
        #endif
    #endif
    new szConfigsDir[256];
    get_localinfo("amxx_configsdir", szConfigsDir, charsmax(szConfigsDir));
    server_cmd("exec %s/Steam_GSClient_Bonus.cfg", szConfigsDir);
    server_exec();
    register_srvcmd("SGSCBonus_lockmap", "Check_LockMap");
}
public client_putinserver(id) {
    set_task(BONUS_TIME, "GiveBonus", id);
}
public GiveBonus(id) {
    if(!is_user_connected(id))
        return;
    static c_BonusType, c_GiveMoney, c_GiveFlags[16];
#if defined TYPE_JOB
    static c_GiveExp;
    #if TYPE_JOB != 4
    static c_GiveAnew;
    #endif
#endif
    c_BonusType = get_cvar_num("sgsc_bonus_type");
    c_GiveMoney = get_cvar_num("sgsc_bonus_money");
    get_cvar_string("sgsc_bonus_flags", c_GiveFlags, charsmax(c_GiveFlags));
#if defined TYPE_JOB
    c_GiveExp = get_cvar_num("sgsc_bonus_exp");
    #if TYPE_JOB != 4
    c_GiveAnew = get_cvar_num("sgsc_bonus_anew");
    #endif
#endif
    if(is_user_steam(id) || is_user_authemu(id)) {
        if(c_BonusType == 1) {
            rg_add_account(id, c_GiveMoney, AS_ADD, true);
            client_print_color(id, print_team_default, "^3[^4SGSC^3] ^1Вы получили ^3[^4%d ^1$^3] ^1за ^4Лицензионную ^1сборку", c_GiveMoney);
        } else if(c_BonusType == 2) {
            #if defined ACCESS_FLAGS
            if(get_user_flags(id) & ACCESS_FLAGS) {
                set_user_flags(id, read_flags(c_GiveFlags));
                client_print_color(id, print_team_default, "^3[^4SGSC^3] ^1Вы получили ^3[^4Флаги^3] ^1за ^4Лицензионную ^1сборку");
            }
            #else
                set_user_flags(id, read_flags(c_GiveFlags));
                client_print_color(id, print_team_default, "^3[^4SGSC^3] ^1Вы получили ^3[^4Флаги^3] ^1за ^4Лицензионную ^1сборку");
            #endif
        }
        #if defined TYPE_JOB
        else if(c_BonusType == 3) {
            PlayerGivePlayerEXP(id, c_GiveExp);
            client_print_color(id, print_team_default, "^3[^4SGSC^3] ^1Вы получили ^3[^4%d ^1Exp^3] ^1за ^4Лицензионную ^1сборку", c_GiveExp);
        }
        #if TYPE_JOB != 4
        else if(c_BonusType == 4) {
            PlayerGivePlayerAnew(id, c_GiveAnew);
            client_print_color(id, print_team_default, "^3[^4SGSC^3] ^1Вы получили ^3[^4%d ^1Anew^3] ^1за ^4Лицензионную ^1сборку", c_GiveAnew);
        }
        #endif
        #endif
    }
    return;
}
public CBasePlayer_SetUserFlags(const Id, infobuffer[], szNewName[]) {
    if(!is_user_connected(Id)) return;
    new szOldName[32], c_GiveFlags[16], c_BonusType;
    get_entvar(Id, var_netname, szOldName, charsmax(szOldName));
    c_BonusType = get_cvar_num("sgsc_bonus_type");
    get_cvar_string("sgsc_bonus_flags", c_GiveFlags, charsmax(c_GiveFlags));
    if(strcmp(szOldName, szNewName) && c_BonusType == 2) {
        #if defined ACCESS_FLAGS
        if(get_user_flags(Id) & ACCESS_FLAGS)
            return;
        #endif
        set_user_flags(Id, read_flags(c_GiveFlags));
    }
}
#if defined TYPE_JOB
stock PlayerGivePlayerEXP(index, count) {
    #if TYPE_JOB == 1
    ar_set_user_addxp(index, count);
    #elseif TYPE_JOB == 2
    aes_add_player_exp_f(index, count);
    #elseif TYPE_JOB == 3
    cmsranks_set_user_addxp(index, count);
    #elseif TYPE_JOB == 4
    crxranks_give_user_xp(index, count);
    #endif
}
#if TYPE_JOB != 4
stock PlayerGivePlayerAnew(index, count) {
    #if TYPE_JOB == 1
    ar_add_user_anew(-1, index, count);
    #elseif TYPE_JOB == 2
    aes_add_player_bonus_f(index, count);
    #elseif TYPE_JOB == 3
    cmsranks_add_user_anew(index, count);
    #endif
}
#endif
#endif
public Check_LockMap() {
    new getmap[32], map[32];
    read_args(getmap, charsmax(getmap));
    remove_quotes(getmap);
    get_mapname(map, charsmax(map));
    if(!strcmp(getmap, map, true)) {
        pause("ad");
    }
}
Назад
Сверху