Добро пожаловать в наше сообщество TopForo.ru

Станьте частью чего-то великого, присоединяйтесь сегодня!

  • Автоматическая публикация тем

    Автоматическая публикация тем

    Новые темы в данном разделе создаются автоматически при загрузке файла в Менеджер ресурсов.

    Ручное создание тем недоступно.

    Безопасность вложений

    Все загружаемые файлы проходят обязательную проверку на наличие вредоносного кода с использованием VirusTotal — надежного инструмента для обеспечения безопасности.

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

GameCMS Informer 2.3 API_5

Нет прав для скачивания
Регистрация
16 Мар 2024
Сообщения
468
Решения
1
Реакции
848
RUB
9.707
DetectorDevil добавил(а) новый ресурс:

GameCMS Informer - Простенький информер для игроков. Отображает различную информацию из профиля.

Простенький информер для игроков. Все видно на скринах- поэтому, нечего описывать)

За возможность бесплатного использования не забудьте выразить благодарность участникам, которые в свое время оказали финансовую поддержку в виде покупок.

Требования:
* сайт на движке GameCMS
* плагин GameCMS API

Для получения информации об игроке у него должен быть заполнен Профиль (поле SteamID)

* интеграция с плагином...

Узнать больше об этом ресурсе...
 
вот вам английская версия + добавлен CVAR - CHAT_PREFIX , CURRENCY


C++:
Expand Collapse Copy
#include <amxmodx>
#include <fakemeta>
#include <gamecms5>

#define PLUGIN "GameCMS_Informer"
#define VERSION "2.3 API5"
#define AUTHOR "zhorzh78"

#define MAX_PLAYERS    32
#define HUD_OFFSET    5478
#define hudUpdateInterval    5.0

// Don`t forget edit this 2 lines...
#define CHAT_PREFIX "^4[^3AMXX^4]^1"
#define CURRENCY "RUB"

#define SHOW_REGDATE


#if AMXX_VERSION_NUM < 183
    #include <colorchat>
#endif
#if !defined AMXX_VERSION_RELEASE
#define client_disconnected client_disconnect
#endif


enum _:InfoSetup
{
    bool:is_registered,
    hud_active,
    uName[33],
    uMsgNum,
    uGroup[65],
    uThanks,
    #if defined SHOW_REGDATE
    uRegDate[11],
    #endif
    uRatings
}
new HUD_Setup[MAX_PLAYERS+1][InfoSetup]

new informerSyncObj
new bool:user_gladmin[MAX_PLAYERS+1];
new map_valid, bool:gamecms_wallet, bool:shop_loaded, bool:reg_loaded

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("say /offinfo","HUD_Off")
    
    informerSyncObj = CreateHudSyncObj()
    
    set_task(200.0, "anons", _, _, _, "b")
}

public anons()
{
    for(new i = 1; i <= MAX_PLAYERS; i++)
    {
        if(HUD_Setup[i][is_registered] || !is_user_connected(i))
            continue

        client_print_color(i, 0, "%s ^1Enter your SteamID in your profile on the site ^4%s ^1and get bonuses for playing", CHAT_PREFIX, SiteUrl)
        client_print_color(i, 0, "%s ^1For turn off the registration informer, write ^4/offinfo", CHAT_PREFIX)
    }
}
    
public plugin_cfg()
{
    get_cvar_string("cms_url", SiteUrl, charsmax(SiteUrl))
    if(is_plugin_loaded("GameCMS_Registration") != -1)
        reg_loaded = true;
}

public OnAPIPluginStop()
{
    log_amx("Plugin paused. GameCMS_API is not loaded");
    pause("a");
}

// ========= привязка к GameCMS Shop
public map_validate(is_map_valid)
{
    gamecms_wallet = true;
    shop_loaded = true;
    map_valid = is_map_valid;
}
// =========

public HUD_Off(id)
{
    HUD_Setup[id][hud_active] = 0
}

public client_putinserver(id)
{
    if(task_exists(HUD_OFFSET + id))
        remove_task(HUD_OFFSET + id);
    arrayset(HUD_Setup[id], 0, InfoSetup);

    HUD_Setup[id][hud_active] = 1;
    set_task(hudUpdateInterval,"Show_Hud_Informer",HUD_OFFSET + id,.flags="b");
    
    if(get_user_flags(id) & ADMIN_RCON)
        user_gladmin[id] = true;
}

public OnAPISendChatPrefix(id, prefix[], type)
    copy(HUD_Setup[id][uGroup], charsmax(HUD_Setup[][uGroup]), prefix);

public OnAPIMemberConnected(id, memberId, memberName[])
{
    HUD_Setup[id][is_registered] = true;
    
    new Data[4];
    if(!cmsapi_get_forum_data(id, Data, HUD_Setup[id][uName], charsmax(HUD_Setup[][uName])))
        return;
    
    HUD_Setup[id][uMsgNum] = Data[3];
    HUD_Setup[id][uThanks] = Data[0];
    HUD_Setup[id][uRatings] = Data[2];
    #if defined SHOW_REGDATE
    cmsapi_get_user_regdate(id, HUD_Setup[id][uRegDate], charsmax(HUD_Setup[][uRegDate]));
    #endif
}

public client_disconnected(id)
{
    if(task_exists(HUD_OFFSET + id))
        remove_task(HUD_OFFSET + id);
    arrayset(HUD_Setup[id], 0, InfoSetup);
}

public Show_Hud_Informer(taskId)
{
    new id = taskId - HUD_OFFSET;
    
    if(!HUD_Setup[id][hud_active])
        return;
    
    new watchId = id;
    new isAlive = is_user_alive(id);
    
    if(!is_user_connected(id))
    {
        remove_task(taskId);
        return;
    }

    if(informerSyncObj != 0)
        ClearSyncHud(id,informerSyncObj);

    if(!isAlive)
    {
        watchId = pev(id, pev_iuser2);
        
        if(!watchId)
            return;
    }

    new hudMessage[350], len;
    new Float:wallet = cmsapi_get_user_money(watchId);
    
    switch(isAlive)
    {
        case 1:
        if(HUD_Setup[id][is_registered])
        {
            if(HUD_Setup[id][uMsgNum] > 0)
                len += formatex(hudMessage[len], charsmax(hudMessage) - len, "^nNew Messages: %d", HUD_Setup[id][uMsgNum]);
            if(map_valid)
            {
if(gamecms_wallet)
len += formatex(hudMessage[len], charsmax(hudMessage) - len, "^nWallet: %.2f %s.", _:wallet >= 0 ? wallet + 0.005 : wallet - 0.005, CURRENCY);
if(shop_loaded)
                    len += formatex(hudMessage[len], charsmax(hudMessage) - len, "^nShop: / shop");
            }
        }
        else len += formatex(hudMessage[len], charsmax(hudMessage) - len, "Do you want to receive bonuses?^nRegister ^non the website %s%s^nTurn off this information-^nwrite /offinfo", SiteUrl,
        reg_loaded ? "^nFor register from server ^nwrite /regme" : "");


        case 0:
        if(HUD_Setup[watchId][is_registered])
        {
            len += formatex(hudMessage[len], charsmax(hudMessage) - len, "Group: %s^n", HUD_Setup[watchId][uGroup]);
            len += formatex(hudMessage[len], charsmax(hudMessage) - len, "Name: %s^n", HUD_Setup[watchId][uName]);
            len += formatex(hudMessage[len], charsmax(hudMessage) - len, "Rating: %d^n", HUD_Setup[watchId][uRatings]);
            len += formatex(hudMessage[len], charsmax(hudMessage) - len, "Thanks: %d^n", HUD_Setup[watchId][uThanks]);
            if(user_gladmin[id])
                len += formatex(hudMessage[len], charsmax(hudMessage) - len, "Wallet: %.2f %s.^n", wallet, CURRENCY);
            #if defined SHOW_REGDATE
            len += formatex(hudMessage[len], charsmax(hudMessage) - len, "RegDate: %s", HUD_Setup[watchId][uRegDate]);
            #endif
        }
        else len += formatex(hudMessage[len], charsmax(hudMessage) - len, "^nPlayer ^nis not registered");
    }
    ClearSyncHud(id, informerSyncObj);
    set_hudmessage(250, 100, 100, 0.75 , 0.52, .holdtime = hudUpdateInterval, .channel = 4);
    ShowSyncHudMsg(id, informerSyncObj, hudMessage);
}
 
Назад
Назад
Сверху Снизу