Участник
Пользователь
- Сообщения
- 264
- Реакции
- 80
- Помог
- 1 раз(а)
Доброго дня форумчане! Задача, избавится от надписи в чате, когда VIP игрок берёт оружие.
Вот решил спросить, дабы не напортачить.. Подскажите пожалуйста.
Я так понимаю, что-бы не писало нужно закоментировать? Или лучше удалить?
Вот решил спросить, дабы не напортачить.. Подскажите пожалуйста.
Я так понимаю, что-бы не писало нужно закоментировать? Или лучше удалить?
Код:
#define MSG_GIVE "^1[^4LWS^1] Вы выбрали: ^3%s"
client_print_color(id, print_team_default, MSG_GIVE, g_arrMenuData[iPos][NAME]);
Код:
#include <amxmodx>
#include <reapi>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
#define PLUGIN "Lite Vip System"
#define VERSION "1.3"
#define AUTHOR "Hypa_[KZ]"
enum _:SPAWN_DATA { ITEM_S[20], VALUE_S };
enum _:MENU_DATA { NAME[64], ITEM_M[20], VALUE_M };
/* Настройки */
#define ACCESS_FLAGS ADMIN_LEVEL_G
// Флаг Вип клиента
#define SPAWN_ROUND 2
// Раунд для выдачи аммуниции
// Закоментируйте если не требуется выдача аммуниции
#define MENU_ROUND 3
// Раунд для доступа VIP меню
// Закоментируйте если не требуется VIP меню
//#define ADMIN_LOADER
// Выводить срок до конца админки с Admin Loader by Neugomon
// Закоментируйте если не требуется вывод срока
//#define AUTO_MENU
// Авто-открытие VIP меню
// Закоментируйте если не требуется авто-открытие VIP меню
#define USE_NUM 2
// Сколько раз возможно открыть VIP меню за раунд
// Закоментируйте если не требуется
#define BUY_TIME 15
// Сколько секунд можно использовать VIP меню
// Закоментируйте если не требуется
//#define VIP_TAB
// Тег VIP в TABe
// Закоментируйте если не требуется тег VIP в TABe
//#define BLOCK_MAPS "awp_", "35hp_", "aim_", "$_"
// Блокируемые карты
// Закоментируйте если не требуется блокировка карты
//#define MOTD_INFO
// Информация о покупке
// Закоментируйте если не требуется информация о покупке
//#define CONNECT_INFO
// Информация при заходе V.I.P-ки
// Закоментируйте если не требуется информация при заходе V.I.P-ки
#if defined SPAWN_ROUND
new g_arrSpawnData[][SPAWN_DATA] = // Настройка аммуниции
{
// "оружие/жизнь/броня/деньги/щипцы" "патроны/кол-во"
{ "armor", 100 },
{ "weapon_hegrenade", 1 },
{ "weapon_flashbang", 2 },
{ "weapon_smokegrenade", 1 },
{ "weapon_deagle", 35 }
};
#endif
#if defined MENU_ROUND
new g_arrMenuData[][MENU_DATA] = // Настройка VIP меню
{
// "название" "оружие/жизнь/броня/деньги/щипцы" "патроны/кол-во"
{ "AK-47", "weapon_ak47", 90 },
{ "M4A1", "weapon_m4a1", 90 },
{ "AWP", "weapon_awp", 30 }
};
#endif
/* Словарь */
#define MSG_ALIVE "^1[^4LWS^1] Доступно только ^3живым ^4игрокам^1!"
#define MSG_ACCESS "^1[^4LWS^1] Доступно только ^3VIP ^4игрокам^1!"
#define MSG_ROUND "^1[^4LWS^1] Доступно только с ^3%d ^4раунда^1!"
#define MSG_USE "^1[^4LWS^1] Доступно только ^3%d раз(а) ^4за раунд^1!"
#define MSG_BUYTIME "^1[^4LWS^1] Время выбора оружия ^3%d секунд ^4истекли^1!"
#define MSG_GIVE "^1[^4LWS^1] Вы выбрали: ^3%s"
#define MSG_MAP "^1[^4Vip System^1] На этой карте ^3меню ^4не доступно^1!"
#define MSG_CONNECT "^1[^4Vip System^1] ^3[V.I.P клиент] ^4%s ^1- зашёл на сервер!"
#define MENU_TITLE "\yМеню Оружейки"
#define MENU_LEFT "\wОсталось \r%d \wдней"
#define MENU_LAST "\rПоследний \wдень"
#define MENU_NOTLIMIT "\wПрава \yне ограничены"
/* Массивы, не трогать */
#if !defined MAX_PLAYERS
const MAX_PLAYERS = 32;
#endif
#if defined MENU_ROUND
new g_iMenuSize;
new g_iMenuPage[MAX_PLAYERS + 1];
#if defined ADMIN_LOADER
native admin_expired(index);
#endif
#if defined USE_NUM
new g_iMenuUse[MAX_PLAYERS + 1];
#endif
#if defined BUY_TIME
new g_iBuyTime;
#endif
#endif
#if defined VIP_TAB
new g_mScoreAttrib;
#endif
#if defined BLOCK_MAPS
new bool:g_bBlockMaps;
#endif
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
#if defined SPAWN_ROUND || defined MENU_ROUND || defined VIP_TAB
RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", true);
#endif
#if defined MENU_ROUND
register_clcmd("lws", "CmdVipMenu");
register_clcmd("say /lws", "CmdVipMenu");
register_clcmd("say_team /lws", "CmdVipMenu");
register_menucmd(register_menuid("Vip Menu"), 1023, "Menu_Handler");
g_iMenuSize = sizeof g_arrMenuData;
#endif
#if defined VIP_TAB
g_mScoreAttrib = get_user_msgid("ScoreAttrib");
#endif
#if defined BLOCK_MAPS
new szMap[32]; rh_get_mapname(szMap, charsmax(szMap));
new szBlockMaps[][] = { BLOCK_MAPS };
for(new i; i < sizeof szBlockMaps; i++)
{
if(containi(szMap, szBlockMaps[i]) != -1)
g_bBlockMaps = true;
}
#endif
#if defined MOTD_INFO
register_clcmd("say /adminka", "CmdAdminKa");
register_clcmd("say_team /adminka", "CmdAdminKa");
register_clcmd("say /vipka", "CmdVipKa");
register_clcmd("say_team /vipka", "CmdVipKa");
#endif
}
#if defined CONNECT_INFO
public client_putinserver(id)
{
if(get_user_flags(id) & ACCESS_FLAGS)
{
new szName[32]; get_user_name(id, szName, charsmax(szName));
client_print_color(id, print_team_default, MSG_CONNECT, szName);
}
}
#endif
#if defined SPAWN_ROUND || defined MENU_ROUND || defined VIP_TAB
public CBasePlayer_Spawn(const id)
{
#if defined BLOCK_MAPS
if(!g_bBlockMaps && is_user_alive(id) && get_user_flags(id) & ACCESS_FLAGS)
#else
if(is_user_alive(id) && get_user_flags(id) & ACCESS_FLAGS)
#endif
{
#if defined SPAWN_ROUND
if(get_member_game(m_iTotalRoundsPlayed) >= SPAWN_ROUND - 1)
{
for(new i; i < sizeof g_arrSpawnData; i++)
GiveItem(id, g_arrSpawnData[i][ITEM_S], g_arrSpawnData[i][VALUE_S]);
}
#endif
#if defined MENU_ROUND
#if defined AUTO_MENU
if(get_member_game(m_iTotalRoundsPlayed) >= MENU_ROUND - 1)
{
g_iMenuPage[id] = 0;
ShowMenu(id, g_iMenuPage[id]);
}
#endif
#if defined USE_NUM
g_iMenuUse[id] = 0;
#endif
#if defined BUY_TIME
g_iBuyTime = get_systime();
#endif
#endif
#if defined VIP_TAB
message_begin(MSG_BROADCAST, g_mScoreAttrib);
write_byte(id);
write_byte(4);
message_end();
#endif
}
}
#endif
#if defined MENU_ROUND
public CmdVipMenu(const id)
{
#if defined BLOCK_MAPS
if(g_bBlockMaps)
return client_print_color(id, print_team_default, MSG_MAP);
#endif
if(!is_user_alive(id))
return client_print_color(id, print_team_default, MSG_ALIVE);
if(~get_user_flags(id) & ACCESS_FLAGS)
return client_print_color(id, print_team_default, MSG_ACCESS);
if(get_member_game(m_iTotalRoundsPlayed) < MENU_ROUND - 1)
return client_print_color(id, print_team_default, MSG_ROUND, MENU_ROUND);
#if defined USE_NUM
if(g_iMenuUse[id] >= USE_NUM)
return client_print_color(id, print_team_default, MSG_USE, USE_NUM);
#endif
#if defined BUY_TIME
if(get_systime() >= (g_iBuyTime + BUY_TIME))
return client_print_color(id, print_team_default, MSG_BUYTIME, BUY_TIME);
#endif
g_iMenuPage[id] = 0;
ShowMenu(id, g_iMenuPage[id]);
return PLUGIN_HANDLED;
}
ShowMenu(id, iPos)
{
new szMenu[512], iLen, iKeys = MENU_KEY_0;
new iStart = iPos * 8;
new iEnd = iStart + 8;
if(iStart >= g_iMenuSize)
iStart = iPos = g_iMenuPage[id] = 0;
if(g_iMenuSize == 9 || iEnd > g_iMenuSize)
iEnd = g_iMenuSize;
#if defined ADMIN_LOADER
new iExp = admin_expired(id);
if(iExp > 0)
{
new iSysTime = get_systime();
if(iExp - iSysTime > 0)
{
if((iExp - iSysTime) / 86400 > 0)
iLen = formatex(szMenu, charsmax(szMenu), "%s^n%s^n^n", MENU_TITLE, MENU_LEFT, ((iExp - iSysTime) / 86400));
else iLen = formatex(szMenu, charsmax(szMenu), "%s^n%s^n^n", MENU_TITLE, MENU_LAST);
}
}
else if(iExp == 0) iLen = formatex(szMenu, charsmax(szMenu), "%s^n%s^n^n", MENU_TITLE, MENU_NOTLIMIT);
#else
iLen = formatex(szMenu, charsmax(szMenu), "%s^n^n", MENU_TITLE);
#endif
for(new i = iStart, a; i < iEnd; i++)
{
iKeys |= (1 << a);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r%d. \w%s^n", ++a, g_arrMenuData[i][NAME]);
}
if(iEnd != g_iMenuSize)
{
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r9. \yДалее^n\r0. %s", iPos ? "Назад" : "Выход");
iKeys |= MENU_KEY_9;
}
else formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\r0. %s", iPos ? "Назад" : "Выход");
return show_menu(id, iKeys, szMenu, -1, "Vip Menu");
}
public Menu_Handler(id, iKey)
{
switch(iKey)
{
case 9: if(g_iMenuPage[id]) ShowMenu(id, --g_iMenuPage[id]);
default:
{
if(iKey == 8 && g_iMenuSize > 9)
ShowMenu(id, ++g_iMenuPage[id]);
else
{
#if defined BUY_TIME
if(get_systime() >= (g_iBuyTime + BUY_TIME))
return client_print_color(id, print_team_default, MSG_BUYTIME, BUY_TIME);
#endif
new iPos = g_iMenuPage[id] * 8 + iKey;
GiveItem(id, g_arrMenuData[iPos][ITEM_M], g_arrMenuData[iPos][VALUE_M]);
client_print_color(id, print_team_default, MSG_GIVE, g_arrMenuData[iPos][NAME]);
#if defined USE_NUM
g_iMenuUse[id]++;
#endif
}
}
}
return PLUGIN_HANDLED;
}
#endif
#if defined SPAWN_ROUND || defined MENU_ROUND
GiveItem(id, szItem[], iValue)
{
switch(szItem[0])
{
case 'w':
{
rg_give_item(id, szItem, iValue < 3 ? GT_APPEND : GT_REPLACE);
rg_set_user_bpammo(id, rg_get_weapon_info(szItem, WI_ID), iValue);
}
case 'h': set_entvar(id, var_health, Float:float(iValue));
case 'a': rg_set_user_armor(id, iValue, ARMOR_VESTHELM);
case 'm': rg_add_account(id, iValue, AS_ADD);
case 'd':
{
if(get_member(id, m_iTeam) == TEAM_CT)
rg_give_defusekit(id);
}
}
}
#endif
#if defined MOTD_INFO
public CmdAdminKa(const id) show_motd(id, "adminka.txt", "Покупка Админки");
public CmdVipKa(const id) show_motd(id, "vipka.txt", "Покупка V.I.P-ки");
#endif