Add enable/disable command in "hs only" plugin

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
robert12
Извън линия
Foreigner
Foreigner
Мнения: 2
Регистриран на: 02 Май 2019, 15:20
Се отблагодари: 1 път
Получена благодарност: 1 път

Add enable/disable command in "hs only" plugin

Мнение от robert12 » 02 Май 2019, 15:31

Hello kindly help me with this plugin .. i want to add cmd like /on and /off in this plugin .. right now this plugin automatically starts after map change

i want to disable that automatically start feature and add cmd like /on /off so when ever admin wants he start and stop this plugin through cmd

Код за потвърждение: Избери целия код

#define USE_REAPI_VERSION
 
 
#include <amxmodx>
 
#if defined USE_REAPI_VERSION
    #include <reapi>
    #define HitHead(%1)                     (get_member(%1, m_LastHitGroup) == HITGROUP_HEAD)
    #define RETURN_CONTINUE                 HC_CONTINUE
    #define RETURN_SUPERCEDE                HC_SUPERCEDE
    #define SET_RESULT_INTEGER(%1)          SetHookChainReturn(ATYPE_INTEGER, %1)
#else
    #include <hamsandwich>
    #include <fakemeta>
    const m_LastHitGroup = 75
    #define HitHead(%1)                     (get_pdata_int(%1, m_LastHitGroup) == HIT_HEAD)
    #define RETURN_CONTINUE                 HAM_IGNORED
    #define RETURN_SUPERCEDE                HAM_SUPERCEDE
    #define SET_RESULT_INTEGER(%1)          SetHamReturnInteger(%1)
#endif
 
#define PL_VERSION              "0.0.2"
 
#define IsPlayer(%1)            (1 <= (%1) <= g_iMaxPlayers)
 
new g_iMaxPlayers
 
public plugin_init()
{
    register_plugin("[ReAPI] Only HeadShot", PL_VERSION, "Vaqtincha")
 
#if defined USE_REAPI_VERSION
    RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", .post = false)
#else
    #if !defined Ham_Item_GetItemInfo
        RegisterHamPlayer(Ham_TakeDamage, "CBasePlayer_TakeDamage", .Post = false) // ham 183
    #else
        RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", .Post = false)
    #endif
#endif
 
    g_iMaxPlayers = get_maxplayers()
}
 
public CBasePlayer_TakeDamage(const pPlayer, const pevInflictor, const pevAttacker, const Float:flDamage, const bitsDamageType)
{
    if(!IsPlayer(pevAttacker) || !(bitsDamageType & DMG_BULLET))
        return RETURN_CONTINUE
   
    if(pevAttacker == pevInflictor && !HitHead(pPlayer) && get_user_weapon(pevAttacker) != CSW_KNIFE)
    {
        SET_RESULT_INTEGER(false)
        return RETURN_SUPERCEDE
    }
   
    return RETURN_CONTINUE
}
Последно промяна от OciXCrom на 02 Май 2019, 15:33, променено общо 1 път.
Причина: Edited title.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Add enable/disable command in "hs only" plugin

Мнение от OciXCrom » 02 Май 2019, 15:33

I edited your title - in the future please use more descriptive titles like this one.

Код за потвърждение: Избери целия код

#define USE_REAPI_VERSION

#include <amxmodx>
#include <amxmisc>
#include <cromchat>

#if defined USE_REAPI_VERSION
	#include <reapi>
	#define HitHead(%1)                     (get_member(%1, m_LastHitGroup) == HITGROUP_HEAD)
	#define RETURN_CONTINUE                 HC_CONTINUE
	#define RETURN_SUPERCEDE                HC_SUPERCEDE
	#define SET_RESULT_INTEGER(%1)          SetHookChainReturn(ATYPE_INTEGER, %1)
#else
	#include <hamsandwich>
	#include <fakemeta>
	const m_LastHitGroup = 75
	#define HitHead(%1)                     (get_pdata_int(%1, m_LastHitGroup) == HIT_HEAD)
	#define RETURN_CONTINUE                 HAM_IGNORED
	#define RETURN_SUPERCEDE                HAM_SUPERCEDE
	#define SET_RESULT_INTEGER(%1)          SetHamReturnInteger(%1)
#endif

#define PL_VERSION              "0.0.2+cmd"

#define IsPlayer(%1)            (1 <= (%1) <= g_iMaxPlayers)
#define ADMIN_FLAG              ADMIN_BAN

new g_iMaxPlayers
new bool:g_bEnabled = false

public plugin_init()
{
	/*
		Edit by OciXCrom @ amxx-bg.info/forum:
		- added /on and /off command
	*/

	register_plugin("[ReAPI] Only HeadShot", PL_VERSION, "Vaqtincha")
	register_clcmd("say /on", "Cmd_Enable", ADMIN_FLAG)
	register_clcmd("say_team /on", "Cmd_Enable", ADMIN_FLAG)
	register_clcmd("say /off", "Cmd_Disable", ADMIN_FLAG)
	register_clcmd("say_team /off", "Cmd_Disable", ADMIN_FLAG)

#if defined USE_REAPI_VERSION
	RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", .post = false)
#else
	#if !defined Ham_Item_GetItemInfo
		RegisterHamPlayer(Ham_TakeDamage, "CBasePlayer_TakeDamage", .Post = false) // ham 183
	#else
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", .Post = false)
	#endif
#endif

	g_iMaxPlayers = get_maxplayers()
	CC_SetPrefix("&x04[HSOnly]")
}

public Cmd_Enable(id, iLevel, iCid)
{
	if(!cmd_access(id, iLevel, iCid, 1))
	{
		return PLUGIN_HANDLED
	}

	if(g_bEnabled)
	{
		CC_SendMessage(id, "&x07Headshot Only mode is already enabled!")
	}
	else
	{
		g_bEnabled = true

		new szName[32]
		get_user_name(id, szName, charsmax(szName))
		CC_SendMessage(0, "ADMIN &x04%s &x06enabled &x01Headshot Only mode!")
	}

	return PLUGIN_HANDLED
}

public Cmd_Disable(id, iLevel, iCid)
{
	if(!cmd_access(id, iLevel, iCid, 1))
	{
		return PLUGIN_HANDLED
	}

	if(!g_bEnabled)
	{
		CC_SendMessage(id, "&x07Headshot Only mode is already disabled!")
	}
	else
	{
		g_bEnabled = false

		new szName[32]
		get_user_name(id, szName, charsmax(szName))
		CC_SendMessage(0, "ADMIN &x04%s &x07disabled &x01Headshot Only mode!")
	}

	return PLUGIN_HANDLED
}

public CBasePlayer_TakeDamage(const pPlayer, const pevInflictor, const pevAttacker, const Float:flDamage, const bitsDamageType)
{
	if(!g_bEnabled || !IsPlayer(pevAttacker) || !(bitsDamageType & DMG_BULLET))
	{
		return RETURN_CONTINUE
	}

	if(pevAttacker == pevInflictor && !HitHead(pPlayer) && get_user_weapon(pevAttacker) != CSW_KNIFE)
	{
		SET_RESULT_INTEGER(false)
		return RETURN_SUPERCEDE
	}

	return RETURN_CONTINUE
}
I set the admin flag to d (ADMIN_BAN). You can change it in the #define ADMIN_FLAG line.

If you don't have cromchat.inc, you can download it from here.

Аватар
robert12
Извън линия
Foreigner
Foreigner
Мнения: 2
Регистриран на: 02 Май 2019, 15:20
Се отблагодари: 1 път
Получена благодарност: 1 път

Add enable/disable command in "hs only" plugin

Мнение от robert12 » 02 Май 2019, 15:39

OciXCrom написа: 02 Май 2019, 15:33 I edited your title - in the future please use more descriptive titles like this one.

Код за потвърждение: Избери целия код

#define USE_REAPI_VERSION

#include <amxmodx>
#include <amxmisc>
#include <cromchat>

#if defined USE_REAPI_VERSION
	#include <reapi>
	#define HitHead(%1)                     (get_member(%1, m_LastHitGroup) == HITGROUP_HEAD)
	#define RETURN_CONTINUE                 HC_CONTINUE
	#define RETURN_SUPERCEDE                HC_SUPERCEDE
	#define SET_RESULT_INTEGER(%1)          SetHookChainReturn(ATYPE_INTEGER, %1)
#else
	#include <hamsandwich>
	#include <fakemeta>
	const m_LastHitGroup = 75
	#define HitHead(%1)                     (get_pdata_int(%1, m_LastHitGroup) == HIT_HEAD)
	#define RETURN_CONTINUE                 HAM_IGNORED
	#define RETURN_SUPERCEDE                HAM_SUPERCEDE
	#define SET_RESULT_INTEGER(%1)          SetHamReturnInteger(%1)
#endif

#define PL_VERSION              "0.0.2+cmd"

#define IsPlayer(%1)            (1 <= (%1) <= g_iMaxPlayers)
#define ADMIN_FLAG              ADMIN_BAN

new g_iMaxPlayers
new bool:g_bEnabled = false

public plugin_init()
{
	/*
		Edit by OciXCrom @ amxx-bg.info/forum:
		- added /on and /off command
	*/

	register_plugin("[ReAPI] Only HeadShot", PL_VERSION, "Vaqtincha")
	register_clcmd("say /on", "Cmd_Enable", ADMIN_FLAG)
	register_clcmd("say_team /on", "Cmd_Enable", ADMIN_FLAG)
	register_clcmd("say /off", "Cmd_Disable", ADMIN_FLAG)
	register_clcmd("say_team /off", "Cmd_Disable", ADMIN_FLAG)

#if defined USE_REAPI_VERSION
	RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", .post = false)
#else
	#if !defined Ham_Item_GetItemInfo
		RegisterHamPlayer(Ham_TakeDamage, "CBasePlayer_TakeDamage", .Post = false) // ham 183
	#else
		RegisterHam(Ham_TakeDamage, "player", "CBasePlayer_TakeDamage", .Post = false)
	#endif
#endif

	g_iMaxPlayers = get_maxplayers()
	CC_SetPrefix("&x04[HSOnly]")
}

public Cmd_Enable(id, iLevel, iCid)
{
	if(!cmd_access(id, iLevel, iCid, 1))
	{
		return PLUGIN_HANDLED
	}

	if(g_bEnabled)
	{
		CC_SendMessage(id, "&x07Headshot Only mode is already enabled!")
	}
	else
	{
		g_bEnabled = true

		new szName[32]
		get_user_name(id, szName, charsmax(szName))
		CC_SendMessage(0, "ADMIN &x04%s &x06enabled &x01Headshot Only mode!")
	}

	return PLUGIN_HANDLED
}

public Cmd_Disable(id, iLevel, iCid)
{
	if(!cmd_access(id, iLevel, iCid, 1))
	{
		return PLUGIN_HANDLED
	}

	if(!g_bEnabled)
	{
		CC_SendMessage(id, "&x07Headshot Only mode is already disabled!")
	}
	else
	{
		g_bEnabled = false

		new szName[32]
		get_user_name(id, szName, charsmax(szName))
		CC_SendMessage(0, "ADMIN &x04%s &x07disabled &x01Headshot Only mode!")
	}

	return PLUGIN_HANDLED
}

public CBasePlayer_TakeDamage(const pPlayer, const pevInflictor, const pevAttacker, const Float:flDamage, const bitsDamageType)
{
	if(!g_bEnabled || !IsPlayer(pevAttacker) || !(bitsDamageType & DMG_BULLET))
	{
		return RETURN_CONTINUE
	}

	if(pevAttacker == pevInflictor && !HitHead(pPlayer) && get_user_weapon(pevAttacker) != CSW_KNIFE)
	{
		SET_RESULT_INTEGER(false)
		return RETURN_SUPERCEDE
	}

	return RETURN_CONTINUE
}
I set the admin flag to d (ADMIN_BAN). You can change it in the #define ADMIN_FLAG line.

If you don't have cromchat.inc, you can download it from here.
thanx for solving my request in such fast way :) and from next time i will make sure to add more simple and specific titles

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 11 госта