Всем здарова, вот есть плагин Admin Menu for CSDM , установил на сервер (amx 1.8.2), но что то не работает, меню открывается и показывает время с начала карты через которое можно воспользоваться пунктами, но по истечению этого времени не работает команды, т.е нажимаю 1 или 2 и нечего не происходит и там где ограничение на количество использования за карту стоит 0, может кто подсказать вчем проблема? вот сам плагин
есть кто живой?
Код:
#include <amxmodx>
#include <fakemeta>
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#endif
#define ADMIN_ACCESS ADMIN_LEVEL_A
#define VIP_ACCESS ADMIN_LEVEL_H
#define X -1.0 // Координата икс
#define Y 0.25 // Координата игрик
#define HOLDTIME 10.0 // Интервал обновления сообщения
#define FADEOUTTIME 3.0 // Время плавного исчезновения сообщения (не должен привышать половины времени от HOLDTIME)
#define FADEINTIME 3.0 // Время плавного появления сообщения (не должен привышать половины времени от HOLDTIME)
#if cellbits == 32
#define OFFSET_CSMONEY 115
#else
#define OFFSET_CSMONEY 140
#endif
new g_iStartPlugin, g_pMoneyDelay;
new CountHpAp[33], CountMoney[33];
new Trie:g_tMoney;
new Trie:g_tHpAp;
public plugin_init()
{
#define PLUGIN "Admin Menu"
#define VERSION "1.0.4"
register_plugin(PLUGIN, VERSION, "Realution");
register_clcmd("menu_admin", "Check_Player");
register_clcmd("menu_vip", "Check_Player");
g_pMoneyDelay = register_cvar("am_money_delay", "5");
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");
register_menucmd(register_menuid(PLUGIN), MENU_KEY_1|MENU_KEY_2|MENU_KEY_0, "HandleMenu");
g_iStartPlugin = get_systime();
g_tMoney = TrieCreate();
g_tHpAp = TrieCreate();
}
public client_disconnect(id)
{
new auth_id[32];
get_user_authid(id, auth_id, 31);
TrieSetCell(g_tMoney, auth_id, CountMoney[id]);
TrieSetCell(g_tHpAp, auth_id, CountHpAp[id]);
CountHpAp[id] = 0;
CountMoney[id] = 0;
}
public client_authorized(id)
{
new name[32]; get_user_name(id, name, 31);
new auth_id[32]; get_user_authid(id, auth_id, 31);
if(get_user_flags(id) & VIP_ACCESS && get_user_flags(id) & ADMIN_ACCESS)
{
set_dhudmessage(209, 0, 255, X, Y, 0, 0.0, HOLDTIME-FADEINTIME-FADEOUTTIME, FADEINTIME, FADEOUTTIME);
show_dhudmessage(0, "Админ + Вип [ ^4%s^1 ] зашел на сервер!", name);
if(TrieKeyExists(g_tMoney, auth_id))
{
TrieGetCell(g_tMoney, auth_id, CountMoney[id]);
}
else
{
CountMoney[id] = 10;
}
if(TrieKeyExists(g_tHpAp, auth_id))
{
TrieGetCell(g_tHpAp, auth_id, CountHpAp[id]);
}
else
{
CountHpAp[id] = 25;
}
}
else if(get_user_flags(id) & ADMIN_ACCESS)
{
set_dhudmessage(255, 0, 0, X, Y, 0, 0.0, HOLDTIME-FADEINTIME-FADEOUTTIME, FADEINTIME, FADEOUTTIME);
show_dhudmessage(0, "Админ [ ^4%s^1 ] зашел на сервер!", name);
if(TrieKeyExists(g_tMoney, auth_id))
{
TrieGetCell(g_tMoney, auth_id, CountMoney[id]);
}
else
{
CountMoney[id] = 5;
}
if(TrieKeyExists(g_tHpAp, auth_id))
{
TrieGetCell(g_tHpAp, auth_id, CountHpAp[id]);
}
else
{
CountHpAp[id] = 15;
}
}
else if(get_user_flags(id) & VIP_ACCESS)
{
set_dhudmessage(0, 255, 0, X, Y, 0, 0.0, HOLDTIME-FADEINTIME-FADEOUTTIME, FADEINTIME, FADEOUTTIME);
show_dhudmessage(0, "Вип [ ^4%s^1 ] зашел на сервер!", name);
if(TrieKeyExists(g_tMoney, auth_id))
{
TrieGetCell(g_tMoney, auth_id, CountMoney[id]);
}
else
{
CountMoney[id] = 5;
}
if(TrieKeyExists(g_tHpAp, auth_id))
{
TrieGetCell(g_tHpAp, auth_id, CountHpAp[id]);
}
else
{
CountHpAp[id] = 15;
}
}
}
public Check_Player(id)
{
if(!is_user_alive(id))
return ChatColor(id, "^1[^4%s^1] ^1Вы должны быть живы, чтобы использовать меню!", PLUGIN, PLUGIN);
if(!(get_user_flags(id) & (ADMIN_ACCESS | VIP_ACCESS)))
return ChatColor(id, "^1[^4%s^1] ^1Прежде купите^3 Админку^1 или^3 Випку^1. Скайп:^4 ilyha778", PLUGIN);
return AdminMenu(id);
}
public AdminMenu(id)
{
new szMenu[512], szName[32], iLen, iKeys = MENU_KEY_0;
get_user_name(id, szName, 31)
iLen = formatex(szMenu, charsmax(szMenu), "\rМеню привелегий^n\wДля\d: \r%s^n^n", szName);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \wВзять \r[\y255 жизни + брони\r] \d[\r%d\d]^n", CountHpAp[id]);
if(get_systime() - g_iStartPlugin < get_pcvar_num(g_pMoneyDelay) * 60)
{
new iMin = 1 + (get_pcvar_num(g_pMoneyDelay) * 60 - (get_systime() - g_iStartPlugin)) / 60;
new szMin[16]; get_ending(iMin, "минут", "минута", "минуты", szMin, charsmax(szMin));
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \wВзять \r[\y16000$\r] \d[\rподождите: %d %s\d]^n^n", iMin, szMin);
}
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \wВзять \r[\y16000$\r] \d[\r%d\d]^n^n", CountMoney[id]);
iKeys |= MENU_KEY_2;
}
iKeys |= MENU_KEY_1;
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r0. \wВыход");
return show_menu(id, iKeys, szMenu, -1, PLUGIN);
}
public HandleMenu(id, iKey)
{
switch(iKey)
{
case 0:
{
if(CountHpAp[id] == 0) return AdminMenu(id);
fm_set_user_health(id, 255);
fm_set_user_armor(id, 255);
CountHpAp[id] = CountHpAp[id]-1;
ChatColor(id, "^1[^4%s^1] ^1Вы взяли ^4жизни и броню^1! Осталось раз: ^4%d^1.", PLUGIN, CountHpAp[id]);
AdminMenu(id);
}
case 1:
{
if(CountMoney[id] == 0) return AdminMenu(id);
fm_set_user_money(id, fm_get_user_money(id) + 16000);
CountMoney[id] = CountMoney[id]-1;
ChatColor(id, "^1[^4%s^1] ^1Вы взяли^4 16000$^1! Осталось раз: ^4%d^1.", PLUGIN, CountMoney[id]);
AdminMenu(id);
}
}
return PLUGIN_HANDLED;
}
public MessageScoreAttrib(iMsgId, iDest, iReceiver)
{
if(get_user_flags(get_msg_arg_int(1)) & VIP_ACCESS && !get_msg_arg_int(2))
set_msg_arg_int(2, ARG_BYTE, 4);
}
stock fm_set_user_armor(id, armor)
{
set_pev(id, pev_armorvalue, float(armor));
return 1;
}
stock fm_set_user_health(id, health)
{
health > 0 ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id);
return 1;
}
stock fm_set_user_money(id, money, flash = 0)
{
set_pdata_int(id, OFFSET_CSMONEY, money, 5);
message_begin(MSG_ONE, get_user_msgid("Money"), {0,0,0}, id);
write_long(money);
write_byte(flash);
message_end();
}
stock fm_get_user_money(id)
return get_pdata_int(id, OFFSET_CSMONEY, 5);
stock get_ending(num, const a[], const b[], const c[], output[], lenght)
{
new num100 = num % 100, num10 = num % 10;
if(num100 >=5 && num100 <= 20 || num10 == 0 || num10 >= 5 && num10 <= 9) format(output, lenght, "%s", a);
else if(num10 == 1) format(output, lenght, "%s", b);
else if(num10 >= 2 && num10 <= 4) format(output, lenght, "%s", c);
}
stock ChatColor(const id, const szMessage[], any:...)
{
static pnum, players[32], szMsg[190], IdMsg;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
if(!IdMsg) IdMsg = get_user_msgid("SayText");
if(id)
{
players[0] = id;
pnum = 1;
}
else get_players(players, pnum, "ch");
for(new i; i < pnum; i++)
{
message_begin(MSG_ONE, IdMsg, .player = players[i]);
write_byte(players[i]);
write_string(szMsg);
message_end();
}
return 1;
}
Вложения
-
13.7 KB Просмотры: 29
Последнее редактирование модератором: