Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
/*
This plugin serves as an alternative implementation of the MegaGrenade weapon for the 'AES' and 'BonusMenu RBS' systems
Данный плагин служит альтернативным вариантом реализации оружия MegaGrenade для систем 'AES' и 'BonusMenu RBS'
*/
/*
How to use:
* AES:
On your server go to 'amxmodx/configs/aes/bonus.ini', find pointBonus_GiveMegaGrenade and change in current block
plugin = aes_bonus_cstrike.amxx
to
plugin = exitem_megagrenade.amxx
* BonusMenu RBS:
Scroll down to SRVCMD_BONUSMENU_RBS
Инструкция:
* AES:
На сервере в 'amxmodx/configs/aes/bonus.ini' найдите pointBonus_GiveMegaGrenade и замените в данном блоке
plugin = aes_bonus_cstrike.amxx
на
plugin = exitem_megagrenade.amxx
* BonusMenu RBS:
Пролистайте вниз до SRVCMD_BONUSMENU_RBS
*/
/* Changelog:
1.0 (23.02.2023) by mx?!:
* First release
1.1 (23.02.2023) by mx?!:
* Added autoequip feature (cvars 'exitem_mgren_autoequip_flags', 'exitem_mgren_autoequip_min_round', and 'exitem_mgren_autoequip_per_round')
1.2 (24.02.2023) by mx?!:
* Added autoequip by GameCMS privileges
1.3 (01.03.2023) by mx?!:
* Added beamtrail (throw) and beamcylinder (explosion) effects as cvar 'exitem_mgren_effects'
* Added autoequip delay feature (csdm stip+equip compatibility) as cvar 'exitem_mgren_autoequip_delay'
* Added buy time cooldown as cvar 'exitem_buy_cooldown'
* EXITEMS__BUY_COOLDOWN lang key added to dictionary (you need to update data/lang/exitems.txt)
* AUTO_CFG functuion replaced by CFG_PATH
1.4 (08.03.2023) by mx?!:
* Forward OnAPIPostAdminCheck() replaced by OnAPIAdminConnected()
1.5 (16.05.2023) by mx?!:
* Dupe fix
*/
new const PLUGIN_NAME[] = "ExItem: MegaGrenade";
new const PLUGIN_VERSION[] = "1.5";
#pragma semicolon 1
// Debug mode. Should be commented.
//
// Режим отладки. Должен быть закомментирован.
//#define DEBUG
// Config file path inside 'amxmodx/configs'
//
// Путь к конфигу относительно 'amxmodx/configs'
new const CFG_PATH[] = "plugins/plugin-exitem_megagrenade.cfg";
// Weapon impulse value. Must me unique for each type of custom weapon.
//
// Импульс. Должен быть уникальным для каждого типа кастомного оружия.
const WEAPON_IMPULSE = 6776231;
// Custom weapon models. Uncomment the required ones, and enter the path to the .mdl
//
// Нестандартные модели оружия. Раскомментриуйте требуемые, и впишите путь к .mdl
//new const V_MODEL[] = "models/v_hegrenade.mdl";
//new const P_MODEL[] = "models/p_hegrenade.mdl";
//new const W_MODEL_FLOOR[] = "models/w_hegrenade.mdl";
//new const W_MODEL_THROW[] = "models/w_hegrenade.mdl";
// Throw and explosion effects support. Comment to disable.
//
// Поддержка эффектов броска и взрыва. Закомментируйте для отключения.
#define EFFECTS_SUPPORT
// Base weapon
//
// Оружие-основа
new const WEAPON_NAME[] = "weapon_hegrenade";
// 'BonusMenu RBS' support:
У вас нет разрешения на просмотр ссылки. Вход или Регистрация
//
// Серверная команда для внешней выдачи через 'BonusMenu RBS'
// Формат "Команда #%userid% цена мин_раунд куллдаун доступ"
//
// Куллдаун - Задержка повторной покупки в раундах. Например, поставьте 1 чтобы можно было покупать один раз за раунд.
// Доступ - Флаги доступа, при наличии любого из которых игрок может совершить покупку. Поставьте 0 чтобы доступ был для всех.
//
// Чтобы добавить оружие в BonusMenu RBS
// Вам необходимо добавить в bonusmenu_rbs.ini (где "666" в обоих случаях - цена предмета; поставьте своё значение)
// "srvcmd" "666" "!mgren_bmrbs #%userid% 666 1 1 0" "" "0" "0" "Мега граната \r(\y+300%% урона\r)"
//
new const SRVCMD_BONUSMENU_RBS[] = "mgren_bmrbs";
new g_eCvar[CVAR_ENUM];
new g_iWeaponSlot = INVALID_SLOT;
new any:g_iWeaponId;
new g_iCooldown[MAX_PLAYERS + 1];
new bool:g_bByGameCMS[MAX_PLAYERS + 1];
new g_szGameCmsPriv[8][32], g_iPrivCount;
stock g_iTrailSpriteID, g_iCylinderSpriteID;
new g_iLastBuyTime[MAX_PLAYERS + 1];
public plugin_precache() {
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, "mx?!");
/*register_dictionary("aes.txt");
register_dictionary("bonusmenu_rbs.txt");*/
register_dictionary("exitems.txt");
#if defined DEBUG
register_clcmd("give_mgren", "pointBonus_GiveMegaGrenade");
#endif
bind_cvar_num( "exitem_mgren_buy_anywhere", "-1",
.desc = "Возможность покупки не только в buyzone^n\
-1 - Подчиняться квару mp_buy_anywhere (см. game.cfg)^n\
0 - выкл.^n\
1 - обе команды^n\
2 - только ТТ^n\
3 - только КТ",
.bind = g_eCvar[CVAR__BUY_ANYWHERE_SELF]
);
bind_cvar_num( "exitem_mgren_obey_buytime", "-2",
.desc = "Время на покупку^n\
-2 - Подчиняться квару mp_buytime^n\
-1 - Без ограничений^n\
0 - Выкл. покупку^n\
1 и более - Время в секундах",
.bind = g_eCvar[CVAR__BUY_TIME]
);
bind_cvar_num( "exitem_buy_cooldown", "0",
.desc = "Для CSDM. Не давать покупать чаще одного раза каждые # секунд (0 - без ограничения)",
.bind = g_eCvar[CVAR__BUY_COOLDOWN]
);
bind_cvar_string( "exitem_mgren_autoequip_flags", "t",
.desc = "Флаги автоматической экипировки при спавне. Требуется любой из. (^"^" - для всех)",
.bind = g_eCvar[CVAR__AUTOEQUIP_FLAGS], .maxlen = charsmax(g_eCvar[CVAR__AUTOEQUIP_FLAGS])
);
// 1.5 dupe fix (mp_nadedrops pickup right after throwing / buying default grenade right after throwing megagrenade)
set_entvar(pWeapon, var_impulse, 0);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW);
write_short(pGrenade);
write_short(g_iTrailSpriteID);
write_byte(10); // life in 0.1's
write_byte(3); // line width in 0.1's
write_byte(iColor[0]); // r
write_byte(iColor[1]); // g
write_byte(iColor[2]); // b
write_byte(192); // brightness
message_end();
}
#endif
public plugin_natives() {
set_native_filter("native_filter");
}
/* trap - 0 if native couldn't be found, 1 if native use was attempted * @note The handler should return PLUGIN_CONTINUE to let the error through the * filter (which will throw a run-time error), or return PLUGIN_HANDLED */
public native_filter(const szNativeName[], iNativeID, iTrapMode) {
return !iTrapMode;
}