public gamecms_promo_load(pId, PromoString[], Product_Key)
{
UTIL_SayText(pId, "!g[%s] !yУспешно активировал промокод %d, %s", PREFIX, Product_Key, PromoString);
}
//Ловим Успешный активированный промокод
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;
}
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");
}
}
#include <amxmodx>
#include <reapi>
#include <gamecms5>
#include <fakemeta>
#include <cstrike>
new gmodels[][] =
{
"vip_model",
"vip_sonic"
}
//native jbe_set_user_2data(pId, iType);
//native jbe_is_user_2data(pId);
#define FormatMain(%0) (iLen = formatex(szMenu, charsmax(szMenu), %0))
#define FormatItem(%0) (iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, %0))
new g_iUserSelect[MAX_PLAYERS + 1];
public plugin_init()
{
//RegisterHookChain(Ham_Spawn, "Ham_PlayerSpawn_Post", true);
RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawn_Post", true);
register_menucmd(register_menuid("Show_UserMainMenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9), "Handle_UserMainMenu");
register_clcmd("say /skinmenu", "UserPromoMenu"); //меню для игрока
}
public UserPromoMenu(pId) return Show_UserMainMenu(pId);
public client_disconnected(pId)
{
g_iUserSelect[pId] = 0;
}
public plugin_precache()
{
for(new i; i < sizeof(gmodels); i++)
{
new str[128];
formatex(str, charsmax(str), "models/player/%s/%s.mdl", gmodels[i], gmodels[i]);
precache_model(str);
}
}
Show_UserMainMenu(pId)
{
new szMenu[512], iBitKeys, iLen;
FormatMain("\yВыбор модели^n^n");
if(cmsapi_get_user_services(pId, "", "_store_ded", 0))
if(g_iUserSelect[pId] == 1)
FormatItem("\y1. \rVIP^n");
else FormatItem("\y1. \wVIP^n"), iBitKeys |= (1<<0);
else FormatItem("\y1. \dVIP \rНе актвивирован^n");
if(cmsapi_get_user_services(pId, "", "_storepi", 0))
if(g_iUserSelect[pId] == 2)
FormatItem("\y2. \rSonic^n");
else FormatItem("\y2. \wSonic^n"), iBitKeys |= (1<<1);
else FormatItem("\y2. \dSonic \rНе актвивирован^n");
FormatItem("^n^n\y0. \wВыход"), iBitKeys |= (1<<9);
return show_menu(pId, iBitKeys, szMenu, -1, "Show_UserMainMenu");
}
public Handle_UserMainMenu(pId, iKeys)
{
if(iKeys <= 7)
{
g_iUserSelect[pId] = iKeys + 1;
//jbe_set_user_2data(pId, g_iUserSelect[pId]);
if(g_iUserSelect[pId] == 1)
{
UTIL_SayText(pId, "!g• !yВы выбрали модельку !g[VIP] !y, поменяется при при возраждение");
}
else
if(g_iUserSelect[pId] == 2)
{
UTIL_SayText(pId, "!g• !yВы выбрали модельку !g[Sonic] !y, поменяется при при возраждение");
}
return PLUGIN_HANDLED;
}
if(iKeys == 9) return PLUGIN_HANDLED;
return Show_UserMainMenu(pId);
}
public gamecms_promo_load(pId, PromoString[], Product_Key)
{
switch(Product_Key)
{
case 1: //ТУТ ДОЛЖЕН БЫТЬ НОМЕР АЙДИ ОТ DIGATELEСТОРЕ
{
new iDay = 30; // Дней
new Time = (60 * 24 * iDay);
new iServiceId = 12; //ТОТ ДОЛЖЕН БЫТЬ АЙДИ УСЛУГИ УСЛУГИ
cmsapi_add_account(pId, "ce", Time, "", "", iServiceId);
UTIL_SayText(0, "!g• !yИгрок!g %n !yактивировал промокод на !gGraffiti первой категории", pId);
}
case 2: //
{
new iDay = 30; // Дней
new Time = (60 * 24 * iDay);
new iServiceId = 13;
cmsapi_add_account(pId, "ce", Time, "", "", iServiceId);
UTIL_SayText(0, "!g• !yИгрок!g %n !yактивировал промокод на !gGraffiti второй категории", pId);
}
}
}
public fwdPlayerSpawn_Post(pId)
{
if(!is_user_alive(pId))
return;
//g_iUserSelect[pId] = jbe_is_user_2data(pId);
//if(g_iUserSelect[pId] == 0)
// return;
set_task(0.5, "task_player", pId);
}
public task_player(pId)
{
new TeamName:iTeam = get_member(pId, m_iTeam);
if(cmsapi_get_user_services(pId, "", "_store_ded", 0) && g_iUserSelect[pId] == 1)
{
//cs_reset_user_model(pId);
switch(iTeam)
{
case TEAM_CT: cs_set_user_model(pId, gmodels[0]);
case TEAM_TERRORIST: cs_set_user_model(pId, gmodels[1]);
}
return;
}
if(cmsapi_get_user_services(pId, "", "_storepi", 0) && g_iUserSelect[pId] == 2)
{
//cs_reset_user_model(pId);
switch(iTeam)
{
case TEAM_CT: cs_set_user_model(pId, gmodels[0]);
case TEAM_TERRORIST: cs_set_user_model(pId, gmodels[1]);
}
return;
}
}
const MsgId_SayText = 76;
stock UTIL_SayText(pPlayer, const szMessage[], any:...)
{
new szBuffer[190];
if(numargs() > 2) vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
else copy(szBuffer, charsmax(szBuffer), szMessage);
while(replace(szBuffer, charsmax(szBuffer), "!y", "^1")) {}
while(replace(szBuffer, charsmax(szBuffer), "!t", "^3")) {}
while(replace(szBuffer, charsmax(szBuffer), "!g", "^4")) {}
switch(pPlayer)
{
case 0:
{
for(new iPlayer = 1; iPlayer <= MaxClients; iPlayer++)
{
if(!is_user_connected(iPlayer)) continue;
engfunc(EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, MsgId_SayText, {0.0, 0.0, 0.0}, iPlayer);
write_byte(iPlayer);
write_string(szBuffer);
message_end();
}
}
default:
{
engfunc(EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, MsgId_SayText, {0.0, 0.0, 0.0}, pPlayer);
write_byte(pPlayer);
write_string(szBuffer);
message_end();
}
}
}