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

Плагин АМХХ Digital Store Online 1.0

Нет прав для скачивания
Для установки промо-кодов, достаточно в модуле "Магазин цифровых товаров" указать только сам промокод:


При успешной активации вызывается форвард:
gamecms_promo_load(pId, PromoString[], Product_Key)

Например:
Код:
public gamecms_promo_load(pId, PromoString[], Product_Key)
{
    UTIL_SayText(pId, "!g[%s] !yУспешно активировал промокод %d, %s", PREFIX, Product_Key, PromoString);
}

Мануал как выдать модельку
1)Создаем услугу _access_skin в АЦ
2)
C++:
//Ловим Успешный активированный промокод
public gamecms_promo_load(pId, PromoString[], Product_Key)
{
    //При создание промо для начало узнаем айди промо, Узнать можно выводом в чат этой данной
    //UTIL_SayText(pId, "!g[%s] !yУспешно активировал промокод !g%d", PREFIX, Product_Key);
    switch(Product_Key)
    {
        case 1:
        {
            //Проверяем, имеется ли у игрока данная услуга?
            if(cmsapi_get_user_services(pId, "",  "_access_skin", 0))
            {
                //Имеем?, прекращаем дальнейшие действие
                return PLUGIN_HANDLED;
            }
       
            //в Нашем случая прописываем услугу по нику
            new szName[32]; get_user_name(pId, szName, charsmax(szName));
            //Генерируем пароль в диапазоне от 100000 до 600000
            new Password[32]
       
            //форматируем числовой генерацию в строковую
            formatex(Password, charsmax(Password), "%d", random_num(100000, 600000));

            //Выдаем услугу 43200 минут = 1 месяц
            /**
            *    Добаление аккаунтов в базу данных
            *
            *    @iClient        Индекс игрока
            *    @szAuthType[]    Тип авторизации (смотри amxconst.inc: Admin authentication behavior flags)
            *    @szFlags[]        Флаги (уровни) доступа (смотри amxconst.inc: Admin level constants)
            *    @iTime            Время в минутах, 0- навсегда (если время не указано, значит 0)
            *    @szPasswd[]        Пароль доступа (если нужен)
            *    @iServiceId        Номер услуги на сайте (если известен)
            *    @check_params    Проверка введенных данных (true- включить).
            *
            *    @note            При отключеной функции check_params существует вероятность ошибок со стороны пользователя
            *
            *    @note            Пример:
            *                    cmsapi_add_account(id, "a", "180", "parol", "prt", 0, false)
            *                    игроку №id с его ником выданы флаги "prt" на 180 минут, пароль- "parol"
            */
            cmsapi_add_account(pId, "a", 43200,  Password , "_access_skin",  0, false)

       
            //Уведомляем игроку что тот купил услугу, и выводим Ник и Пароль
       
            UTIL_SayText(pId, "!g[%s] !yУспешно активировал промокод !g%d", PREFIX, Product_Key);
            UTIL_SayText(pId, "!g[%s] !yВаш Ник к серверу: !g%s", PREFIX, szName);
            UTIL_SayText(pId, "!g[%s] !yВаш Пароль к серверу: !g%s", PREFIX, Password);
            UTIL_SayText(pId, "!g[%s] !yПароль можете сменить в личном кабинете на форуме", PREFIX);
        }
        case 2: return PLUGIN_HANDLED;
        case 3: return PLUGIN_HANDLED;
    }
    return PLUGIN_HANDLED;
}
3) дальше делаем проверку при спавне:
C++:
public plugin_init()
{
    RegisterHam(Ham_Spawn,             "Ham_PlayerSpawn_Post", true)
}
//ловим спавн игрока
public Ham_PlayerSpawn_Post(pId)
{
    //Проверяем, имеется ли у игрока услуга
    if(cmsapi_get_user_services(pId, "",  "_access_skin", 0))
    {
        //Выдаем ему свою модельку
        cs_set_user_model(id, "vipmodel");

    }
}
Сверху