Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature currently requires accessing the site using the built-in Safari browser.
Уважаемые пользователи!
За решением проблем с работой плагинов, компиляцией, падением сервера и прочими обращайтесь в раздел Помощи!
Данная тема предназначена для обсуждения плагина, его функционала, принципа работы и предложений.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Как привязать модель игрока к модулю digital_store на движке GAMECMS?
ообщем я скопировал эту строчку в gamecms_digital_store начинаю компилировать 4 ошибки
public gamecms_promo_load(pId, PromoString[], Product_Key)
{
switch(Product_Key)
{
case 1:
{
cmsapi_set_user_flags(pId, _skin_access, 30, "Модель игроку")
UTIL_SayText(pId, "!g[%s] !yАктивировал промокод - %s и получил Префикс на свой профиль", PREFIX);
}
}
}
public Handle_MainMenu(pId, iKey)
{
switch(iKey)
{
case 0:
{
client_cmd(pId, "messagemode ^"promokod^"")
UTIL_SayText(pId, "!g[%s] !yВведите промокод который вы купили на форуме", PREFIX);
}
case 1:
{
if(cmsapi_is_user_member(pId))
{
HANDLE_user(pId);
}
else
{
UTIL_SayText(pId, "!g[%s] !yК сожелению вы не зарегитрированы на форуме или не указали STEAM ID", PREFIX);
return PLUGIN_HANDLED;
}
}
case 9: return PLUGIN_HANDLED;
}
return Show_MainMenu(pId);
Я так понял в этом файле digital_store
и нужно добавлять
public gamecms_promo_load(pId, PromoString[], Product_Key)
{
switch(Product_Key)
{
case 1:
{
cmsapi_set_user_flags(pId, _skin_access, 30, "Модель игроку")
UTIL_SayText(pId, "!g[%s] !yАктивировал промокод - %s и получил Префикс на свой профиль", PREFIX);
}
}
}
uspex, так идите в раздел заказов, заказывайте плагин, который будет выдавать модель после активации промокода!
Дигитал только даёт возможность считать промокод и апи для будущих плагинов.
Вам нужен плагин, который будет выдавать модель чего-то там по активации промокода.
вот пример выставление по услугу, в нашем случая модельки,
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;
}
дальше делаем проверку при спавне:
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");
}
}
Limbooc, единственное, что лучше написать систему, которая будет читать промокоды и по ним давать модельку или что там нужно, т.е чтобы это делалось автоматически через кфг, чтобы прописывать туда "промокод" "путь к модельке" и например "срок", чтобы так же была временная услуга, как и ВИПка
Limbooc, единственное, что лучше написать систему, которая будет читать промокоды и по ним давать модельку или что там нужно, т.е чтобы это делалось автоматически через кфг, чтобы прописывать туда "промокод" "путь к модельке" и например "срок", чтобы так же была временная услуга, как и ВИПка
так вся суть Модуля "Магазин Цифровых товаров" то что он все настраивается через АЦ движка.И по сути данный модуль отлично подойдет для "единоразового" применение (активировал промокод, получил деньги/опыт и тп), к тому же, CMS_SkinManager аналог вашему запросу
Limbooc, у меня запросов нет, я просто подумал сразу за будущее. Что, мол, написать плагин, который выдаёт сразу несколько вещей, а вещи зависят от промокода, т.е в конфиге прописал промокод и тип того, что нужно выдать и количество или же просто путь к модельке.
Покупать целую систему для единоразового применения, это понятно, но весь смысл в том, чтобы разнообразить возможности свои, через него.
p.s. Или в модуле уже указывается тип товара и можно прописать значения, путь к моделям? Я просто не пользовался, не шарю.
Да, в модули создаешь раздел
Из них:
1-ый раздел, 50 промокодов с деньгами
2-ой раздел, 50 промокодов с модельками
3-ий раздел, 250 промокодов с опытами