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

amxx [GameCMS] Account 1.0

Нет прав для скачивания
Для CS 1.6
Автор
Tako
Исходный код
C++:
#include <amxmodx>
#include <gamecms5>

#pragma semicolon 1
#pragma tabsize 0

#define is_user_valid(%0) (%0 && %0 <= MaxClients)

enum _:DATA_GAMECMS
{
    bool:IS_REG,
    LOGIN[33],
    NAME[33],
    GROUP[65],
    RAIT,
    THANKS,
    REG_DATA[11]
}
new GameCMS_Account[MAX_PLAYERS + 1][DATA_GAMECMS];

public plugin_init()
{
    register_plugin("[GameCMS] Account", "1.0", "Tako");
    register_menucmd(register_menuid("Show_SiteInfoMenu"), 1023, "Handle_SiteInfoMenu");
    register_clcmd("say /account", "ClCmd_ShowAccount");
    register_clcmd("say_team /account", "ClCmd_ShowAccount");
}

public plugin_cfg()
{
    if(is_plugin_loaded("GameCMS_API") == INVALID_PLUGIN_ID)
    {
        log_amx("ERROR: 'GameCMS API' не был установлен! Плагин остановлен.");
        set_fail_state("GameCMS API' не был установлен");
        return;
    }
    get_cvar_string("cms_url", SiteUrl, charsmax(SiteUrl));
}

public plugin_natives()
{
    register_native("gamecms_account_open_menu", "ClCmd_ShowAccount");
    register_native("gamecms_account_is_reg", "gamecms_account_is_reg");
    register_native("gamecms_account_get_login", "gamecms_account_get_login");
    register_native("gamecms_account_get_group", "gamecms_account_get_group");
    register_native("gamecms_account_get_name", "gamecms_account_get_name");
    register_native("gamecms_account_get_thanks", "gamecms_account_get_thanks");
    register_native("gamecms_account_get_raiting", "gamecms_account_get_raiting");
    register_native("gamecms_account_get_money", "gamecms_account_get_money");
    register_native("gamecms_account_get_regdata", "gamecms_account_get_regdata");
    register_native("gamecms_account_siteurl", "gamecms_account_siteurl");
}
public client_disconnected(id) for(new i; i < DATA_GAMECMS; i++) GameCMS_Account[id][i] = 0;

public OnAPISendChatPrefix(id, prefix[], type) copy(GameCMS_Account[id][GROUP], charsmax(GameCMS_Account[][GROUP]), prefix);

public OnAPIMemberConnected(id, memberId, memberName[])
{
    new Data[4];
    GameCMS_Account[id][IS_REG] = true;
    if(!cmsapi_get_forum_data(id, Data, GameCMS_Account[id][NAME], charsmax(GameCMS_Account[][NAME]))) return 0;
    GameCMS_Account[id][THANKS] = Data[0];
    GameCMS_Account[id][RAIT] = Data[2];
    cmsapi_get_user_data(id, eMemberData:MemberLogin, GameCMS_Account[id][LOGIN], charsmax(GameCMS_Account[][LOGIN]));
    cmsapi_get_user_regdate(id, GameCMS_Account[id][REG_DATA], charsmax(GameCMS_Account[][REG_DATA]));
    return 1;
}

public ClCmd_ShowAccount(id) return Show_SiteInfoMenu(id);

Show_SiteInfoMenu(id)
{
    new szString[512];
    strtoupper(SiteUrl);
    if(GameCMS_Account[id][IS_REG])
    {
        new Float:iMoney = cmsapi_get_user_money(id);
        format(szString, charsmax(szString), "\wЛогин: \y%s^n\wГруппа: \y%s^n\wБаланс: \y%.2f руб^n\wРейтинг: \y%d^n\wБлагодарностей: \y%d^n\wЗарегистрирован: \y с %s", GameCMS_Account[id][LOGIN], GameCMS_Account[id][GROUP], iMoney, GameCMS_Account[id][RAIT], GameCMS_Account[id][THANKS], GameCMS_Account[id][REG_DATA]);
    }
    else format(szString, charsmax(szString), "\wВы ещё не зарегистрированы на сайте: \y%s^n^n\wЧтобы появилась информация:^n\d- \wЗарегистрируйтесь на сайте \y%s^n\d- \wВ настройках укажите свой SteamID", SiteUrl, SiteUrl);
   
   
    new szMenu[512], iKeys = (1<<8|1<<9), iLen = formatex(szMenu, charsmax(szMenu), "\wАккаунт на сайте \y[%s]^n^n", SiteUrl);
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "%s^n", szString);
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[0] \wВыход");

    return show_menu(id, iKeys, szMenu, -1, "Show_SiteInfoMenu");
}

public Handle_SiteInfoMenu(id, iKey)
{
    switch(iKey) { case 9: return PLUGIN_HANDLED; }
    return Show_SiteInfoMenu(id);
}

//! Нативы

/**
 * Проверяет, зарегистрирован ли аккаунт игрока на сайте.
 * @param id Индекс игрока
 * @return true если зарегистрирован, иначе false
 */
public gamecms_account_is_reg(id)
{
    if(!is_user_valid(id)) return false;
    return GameCMS_Account[id][IS_REG] ? true : false;
}

/**
 * Возвращает логин игрока на сайте.
 * @param id Индекс игрока
 * @return Строка с логином или пустая строка если не зарегистрирован
 */
public gamecms_account_get_login(id)
{
    if(!is_user_valid(id)) return 0;
    if(!GameCMS_Account[id][IS_REG]) return 0;
    return GameCMS_Account[id][LOGIN];
}

/**
 * Возвращает группу игрока на сайте.
 * @param id Индекс игрока
 * @return Строка с группой или пустая строка если не зарегистрирован
 */
public gamecms_account_get_group(id)
{
    if(!is_user_valid(id)) return 0;
    if(!GameCMS_Account[id][IS_REG]) return 0;
    return GameCMS_Account[id][GROUP];
}

/**
 * Возвращает имя игрока на сайте.
 * @param id Индекс игрока
 * @return Строка с именем или пустая строка если не зарегистрирован
 */
public gamecms_account_get_name(id)
{
    if(!is_user_valid(id)) return 0;
    if(!GameCMS_Account[id][IS_REG]) return 0;
    return GameCMS_Account[id][NAME];
}

/**
 * Возвращает количество благодарностей игрока.
 * @param id Индекс игрока
 * @return Количество благодарностей или 0 если не зарегистрирован
 */
public gamecms_account_get_thanks(id)
{
    if(!is_user_valid(id)) return 0;
    if(!GameCMS_Account[id][IS_REG]) return 0;
    return GameCMS_Account[id][THANKS];
}

/**
 * Возвращает рейтинг игрока на сайте.
 * @param id Индекс игрока
 * @return Рейтинг или 0 если не зарегистрирован
 */
public gamecms_account_get_raiting(id)
{
    if(!is_user_valid(id)) return 0;
    if(!GameCMS_Account[id][IS_REG]) return 0;
    return GameCMS_Account[id][RAIT];
}

/**
 * Возвращает баланс денег игрока на сайте.
 * @param id Индекс игрока
 * @return Баланс в float или 0.0 если не зарегистрирован
 */
public Float:gamecms_account_get_money(id)
{
    if(!is_user_valid(id)) return 0.0;
    if(!GameCMS_Account[id][IS_REG]) return 0.0;
    new Float:iMoney = cmsapi_get_user_money(id);
    return iMoney;
}

/**
 * Возвращает дату регистрации игрока на сайте.
 * @param id Индекс игрока
 * @return Строка с датой или пустая строка если не зарегистрирован
 */
public gamecms_account_get_regdata(id)
{
    if(!is_user_valid(id)) return 0;
    if(!GameCMS_Account[id][IS_REG]) return 0;
    return GameCMS_Account[id][REG_DATA];
}

/**
 * Возвращает URL сайта.
 * @return Строка с URL сайта
 */
public gamecms_account_siteurl() return SiteUrl;
Требования
AmxModX 1.9.0
GameCMS API
Требование ReAPI
Нет
Поддержка русского языка
Да
Совместимость
  1. HLDS
  2. REHLDS
Сверху Снизу