Skip to content

Commit

Permalink
Add HealthNade_ReplaceSmokegren cvar
Browse files Browse the repository at this point in the history
  • Loading branch information
Giferns committed Jul 18, 2023
1 parent ac314b3 commit caa41b6
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 1 deletion.
2 changes: 2 additions & 0 deletions amxmodx/data/lang/HealthNade.ini
Expand Up @@ -9,6 +9,7 @@ HEALTHNADE_CVAR_GIVE=Выдавать ли хилку при спавне.
HEALTHNADE_CVAR_GIVE_ACCESS_FLAGS=Флаги доступа для получения гранаты при спавне. Оставить пустым, чтобы выдавать всем.
HEALTHNADE_CVAR_GIVE_MIN_ROUND=С какого раунда будет выдаваться граната.
HEALTHNADE_CVAR_EQUIP_DELAY=Задержка выдачи (в секундах)
HEALTHNADE_CVAR_REPLACE_SG=Подменять дымовую гранату?
HEALTHNADE_CVAR_MSG_USAGE_HINT=Показывать подсказку по использованию гранаты.
HEALTHNADE_CVAR_MSG_FULL_HP=Показывать сообщение при попытке вылечиться с полным ХП.
HEALTHNADE_CVAR_NADE_DROP=Тип дропа^n0 - выкл | 1 - вкл | 2 - учитывать квар `mp_nadedrops`
Expand All @@ -25,6 +26,7 @@ HEALTHNADE_CVAR_GIVE=Whether to give a grenade when player spawned.
HEALTHNADE_CVAR_GIVE_ACCESS_FLAGS=Access flags for giving a grenade when spawn. Leave blank to share with everyone.
HEALTHNADE_CVAR_GIVE_MIN_ROUND=From which round will the grenade be given.
HEALTHNADE_CVAR_EQUIP_DELAY=Equip delay (in seconds)
HEALTHNADE_CVAR_REPLACE_SG=Replace smoke grenade?
HEALTHNADE_CVAR_MSG_USAGE_HINT=Show a tooltip for using a grenade.
HEALTHNADE_CVAR_MSG_FULL_HP=Show message when trying to heal with full HP.
HEALTHNADE_CVAR_NADE_DROP=Drop type^n0 - off | 1 - on | 2 - allow cvar `mp_nade drops`
Expand Down
44 changes: 43 additions & 1 deletion amxmodx/scripting/reapi_healthnade.sma
Expand Up @@ -28,9 +28,11 @@
* Добавлен квар HealthNade_SlotId
0.0.10f:
* Добавлен квар HealthNade_EquipDelay
0.0.11f
* Добавлен квар HealthNade_ReplaceSmokegren
*/

new const PLUGIN_VERSION[] = "0.0.10f";
new const PLUGIN_VERSION[] = "0.0.11f";

#pragma semicolon 1

Expand All @@ -55,6 +57,7 @@ enum E_Cvars {
Cvar_Give_AccessFlags[16],
Cvar_Give_MinRound,
Float:Cvar_EquipDelay,
bool:Cvar_ReplaceSmokegren,
bool:Cvar_Msg_FullHp,
bool:Cvar_Msg_UsageHint,
E_NadeDropType:Cvar_NadeDrop,
Expand Down Expand Up @@ -150,6 +153,9 @@ public plugin_init() {

RegisterHookChain(RG_CBasePlayer_ThrowGrenade, "CBasePlayer_ThrowGrenade_Pre", false);

RegisterHookChain(RG_CBasePlayer_AddPlayerItem, "CBasePlayer_AddPlayerItem_Pre");
RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "CBasePlayer_HasRestrictItem_Pre");

MsgIdAmmoPickup = get_user_msgid("AmmoPickup");
MsgIdStatusIcon = get_user_msgid("StatusIcon");
MsgIdScreenFade = get_user_msgid("ScreenFade");
Expand Down Expand Up @@ -497,6 +503,36 @@ public CBasePlayer_ThrowGrenade_Pre(const id, const item, const Float:vecSrc[3],
return HC_SUPERCEDE;
}

public CBasePlayer_AddPlayerItem_Pre(const id, const item) {
if(!Cvar(ReplaceSmokegren) || is_nullent(item) || get_member(item, m_iId) != WEAPON_SMOKEGRENADE || !is_user_alive(id)) {
return HC_CONTINUE;
}

set_entvar(item, var_flags, FL_KILLME);

giveNade(id);

SetHookChainReturn(ATYPE_INTEGER, 0);
return HC_SUPERCEDE;
}

public CBasePlayer_HasRestrictItem_Pre(id, ItemID:item, ItemRestType:rest_type) {
if(!Cvar(ReplaceSmokegren)) {
return HC_CONTINUE;
}

if(item ==ITEM_SMOKEGRENADE && rg_get_player_item(id, ITEM_CLASSNAME, ITEM_SLOT)) {
if(rest_type == ITEM_TYPE_BUYING) {
client_print(id, print_center, "#Cstrike_TitlesTXT_Cannot_Carry_Anymore");
}

SetHookChainReturn(ATYPE_BOOL, true);
return HC_SUPERCEDE;
}

return HC_CONTINUE;
}

public GrenadeTouch(const grenade, const other) {
if (!is_nullent(grenade)) {
explodeNade(grenade);
Expand Down Expand Up @@ -691,6 +727,12 @@ InitCvars() {
true, 0.0
), Cvar(EquipDelay));

bind_pcvar_num(create_cvar(
"HealthNade_ReplaceSmokegren", "0.0", FCVAR_NONE,
LangS("HEALTHNADE_CVAR_REPLACE_SG"),
true, 0.0, true, 1.0
), Cvar(ReplaceSmokegren));

bind_pcvar_num(create_cvar(
"HealthNade_Msg_UsageHint", "1", FCVAR_NONE,
LangS("HEALTHNADE_CVAR_MSG_USAGE_HINT"),
Expand Down

0 comments on commit caa41b6

Please sign in to comment.