Raised This Month: $ Target: $400
 0% 

What can I add to script to ignore the m3


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 04-12-2009 , 16:00   Re: What can I add to script to ignore the m3
Reply With Quote #1

Try this version :
(You asked for m3 but not for xm1014 ;)
PHP Code:
/*    AMX Mod X script.
    
    No Headshot With Helmet plugin

    (c) Copyright 2007, Simon Logic '[email protected]'
    This file is provided AS IS (no warranties).

    Info:
        When player has a helmet he can't be killed by headshot.

    Requirements:
        * CS/CZ mod
        * AMX/X 1.7x or higher
        * CStrike module
        * Fakemeta module

    New cvars:
        * amx_superhelmet_when_armor <num> (default=0)
            set armor threshold when helmet acts as shield

    Credits:
        * Cheap_Suit for 'hitgroup 8' idea

    Changelog:
    v1.1.0 [2007-06-22]
    + added cvar 'amx_superhelmet_when_armor'
    + kevlar can act as shield (req. by Stixsmaster)
    * optimized core as XxAvalanchexX suggested (experimental)
    v1.0.0 [2007-06-14]
    * first public release
*/

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define MY_PLUGIN_NAME    "No Headshot With Helmet"
#define MY_PLUGIN_VERSION "1.2.0"
#define MY_PLUGIN_AUTHOR  "Simon Logic"

#define HIT_SHIELD 8

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

new g_iMaxPlayers
new g_cvarSHelmetThreshold

public plugin_init()
{
    
g_iMaxPlayers get_maxplayers()

    
register_plugin(MY_PLUGIN_NAMEMY_PLUGIN_VERSIONMY_PLUGIN_AUTHOR)
    
register_cvar("version_no_headshot_with_helmet"MY_PLUGIN_VERSIONFCVAR_SERVER|FCVAR_SPONLY)

    
g_cvarSHelmetThreshold register_cvar("amx_superhelmet_when_armor""1")

    
RegisterHam(Ham_TraceAttack"player""Player_TraceAttack")
}

public 
Player_TraceAttack(idiAttackerFloat:flDamageFloat:vecDir[3], ptriDamageType)
{
    if( 
IsPlayer(iAttacker) && get_user_weapon(iAttacker) != CSW_M3 )
    {
        new 
CsArmorType:tArmoriArmor cs_get_user_armor(idtArmor)
        if(
iArmor && tArmor == CS_ARMOR_VESTHELM    && get_tr2(ptrTR_iHitgroup) == HIT_HEAD)
        {
            
set_tr2(ptrTR_iHitgroupget_pcvar_num(g_cvarSHelmetThreshold) ? HIT_SHIELD HIT_GENERIC)
            return 
HAM_HANDLED
        
}
    }
    return 
HAM_IGNORED

__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
smgcz
Member
Join Date: Nov 2008
Old 04-15-2009 , 01:01   Re: What can I add to script to ignore the m3
Reply With Quote #2

Awesome Ty Connor I have been trying it out on my server for the last few days and it seems to work well. I tested it out on an enemy with full kevlar and a helmet & was able to get a head shot like normal at close range. I have noticed though that the awp for some reason with the plugin in general will not from time to time register any damage from an awp when you aim for the head. I see blood, but no damage is done. Not really sure why.

I noticed you asked why I didnt have the auto shotty ignored and it got me thinking what other weapons that are low on head shots could be added to the list for this specific plugin. Is there a format based on what you wrote I can follow to say add the t & ct awp and scout? Thanks, smgcz
smgcz is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 04-15-2009 , 01:12   Re: What can I add to script to ignore the m3
Reply With Quote #3

Not sure if I understand you correctly but this is how you can add additional weapons.

PHP Code:
public Player_TraceAttack(idiAttackerFloat:flDamageFloat:vecDir[3], ptriDamageType)
{
    new 
iWeapon get_user_weapon(iAttacker)
    
    if( 
IsPlayer(iAttacker) && ( iWeapon != CSW_M3 ) && ( iWeapon != CSW_SCOUT ) && ( iWeapon != CSW_AWP ) )
    {
        new 
CsArmorType:tArmoriArmor cs_get_user_armor(idtArmor)
        if(
iArmor && tArmor == CS_ARMOR_VESTHELM    && get_tr2(ptrTR_iHitgroup) == HIT_HEAD)
        {
            
set_tr2(ptrTR_iHitgroupget_pcvar_num(g_cvarSHelmetThreshold) ? HIT_SHIELD HIT_GENERIC)
            return 
HAM_HANDLED
        
}
    }
    return 
HAM_IGNORED

__________________

Last edited by Bugsy; 04-15-2009 at 01:14.
Bugsy is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 04-15-2009 , 04:00   Re: What can I add to script to ignore the m3
Reply With Quote #4

Best way (most efficient in my mind) to add weapons is to make a bitsum :

PHP Code:
const WEAPONS_BITSUM = (1<<CSW_M3)|(1<<CSW_XM1014
Then in the function make this check :

instead of
PHP Code:
if iWeapon == CSW_M3 
PHP Code:
if( WEAPONS_BITSUM & (1<<iWeapon) ) 
->
PHP Code:
public Player_TraceAttack(idiAttackerFloat:flDamageFloat:vecDir[3], ptriDamageType)
{
    if( 
IsPlayer(iAttacker) &&  WEAPONS_BS & (1<<get_user_weapon(iAttacker)) )
    {
        new 
CsArmorType:tArmoriArmor cs_get_user_armor(idtArmor)
        if(
iArmor && tArmor == CS_ARMOR_VESTHELM    && get_tr2(ptrTR_iHitgroup) == HIT_HEAD)
        {
            
set_tr2(ptrTR_iHitgroupget_pcvar_num(g_cvarSHelmetThreshold) ? HIT_SHIELD HIT_GENERIC)
            return 
HAM_HANDLED
        
}
    }
    return 
HAM_IGNORED

This way you have only 1 check in the function instead of multiples ones.
__________________
- tired and retired -

- my plugins -

Last edited by ConnorMcLeod; 04-16-2009 at 04:53.
ConnorMcLeod is offline
smgcz
Member
Join Date: Nov 2008
Old 04-15-2009 , 15:07   Re: What can I add to script to ignore the m3
Reply With Quote #5

so is this what it would look like with bitsum if I want the plugin to ignore the m3, awp, and scout?

PHP Code:
/*    AMX Mod X script.
    
    No Headshot With Helmet plugin

    (c) Copyright 2007, Simon Logic '[email protected]'
    This file is provided AS IS (no warranties).

    Info:
        When player has a helmet he can't be killed by headshot.

    Requirements:
        * CS/CZ mod
        * AMX/X 1.7x or higher
        * CStrike module
        * Fakemeta module

    New cvars:
        * amx_superhelmet_when_armor <num> (default=0)
            set armor threshold when helmet acts as shield

    Credits:
        * Cheap_Suit for 'hitgroup 8' idea

    Changelog:
    v1.1.0 [2007-06-22]
    + added cvar 'amx_superhelmet_when_armor'
    + kevlar can act as shield (req. by Stixsmaster)
    * optimized core as XxAvalanchexX suggested (experimental)
    v1.0.0 [2007-06-14]
    * first public release
*/

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define MY_PLUGIN_NAME    "No Headshot With Helmet"
#define MY_PLUGIN_VERSION "1.2.0"
#define MY_PLUGIN_AUTHOR  "Simon Logic"

#define HIT_SHIELD 8

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

new g_iMaxPlayers
new g_cvarSHelmetThreshold

public plugin_init()
{
    
g_iMaxPlayers get_maxplayers()

    
register_plugin(MY_PLUGIN_NAMEMY_PLUGIN_VERSIONMY_PLUGIN_AUTHOR)
    
register_cvar("version_no_headshot_with_helmet"MY_PLUGIN_VERSIONFCVAR_SERVER|FCVAR_SPONLY)

    
g_cvarSHelmetThreshold register_cvar("amx_superhelmet_when_armor""1")

    
RegisterHam(Ham_TraceAttack"player""Player_TraceAttack")
}

public 
Player_TraceAttack(idiAttackerFloat:flDamageFloat:vecDir[3], ptriDamageType)
{
    const 
WEAPONS_BITSUM = (1<<CSW_M3)|(1CSW_AWP)|(1CSW_SCOUT)
    if( 
WEAPONS_BITSUM & (1<<iWeapon) )
    if( 
IsPlayer(iAttacker) &&  WEAPONS_BS & (1<<get_user_weapon(iAttacker)) )
    {
        new 
CsArmorType:tArmoriArmor cs_get_user_armor(idtArmor)
        if(
iArmor && tArmor == CS_ARMOR_VESTHELM    && get_tr2(ptrTR_iHitgroup) == HIT_HEAD)
        {
            
set_tr2(ptrTR_iHitgroupget_pcvar_num(g_cvarSHelmetThreshold) ? HIT_SHIELD HIT_GENERIC)
            return 
HAM_HANDLED
        
}
    }
    return 
HAM_IGNORED

smgcz is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 04-15-2009 , 15:54   Re: What can I add to script to ignore the m3
Reply With Quote #6

Declare the bitsum at the top of the .sma, with other global vars.
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
smgcz
Member
Join Date: Nov 2008
Old 04-15-2009 , 16:29   Re: What can I add to script to ignore the m3
Reply With Quote #7

like such ?


PHP Code:
/*    AMX Mod X script.
    
    No Headshot With Helmet plugin

    (c) Copyright 2007, Simon Logic '[email protected]'
    This file is provided AS IS (no warranties).

    Info:
        When player has a helmet he can't be killed by headshot.

    Requirements:
        * CS/CZ mod
        * AMX/X 1.7x or higher
        * CStrike module
        * Fakemeta module

    New cvars:
        * amx_superhelmet_when_armor <num> (default=0)
            set armor threshold when helmet acts as shield

    Credits:
        * Cheap_Suit for 'hitgroup 8' idea

    Changelog:
    v1.1.0 [2007-06-22]
    + added cvar 'amx_superhelmet_when_armor'
    + kevlar can act as shield (req. by Stixsmaster)
    * optimized core as XxAvalanchexX suggested (experimental)
    v1.0.0 [2007-06-14]
    * first public release
*/

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define MY_PLUGIN_NAME    "No Headshot With Helmet"
#define MY_PLUGIN_VERSION "1.2.0"
#define MY_PLUGIN_AUTHOR  "Simon Logic"
#define WEAPONS_BITSUM = (1<<CSW_M3)|(1CSW_AWP)|(1CSW_SCOUT)

#define HIT_SHIELD 8

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

new g_iMaxPlayers
new g_cvarSHelmetThreshold

public plugin_init()
{
    
g_iMaxPlayers get_maxplayers()

    
register_plugin(MY_PLUGIN_NAMEMY_PLUGIN_VERSIONMY_PLUGIN_AUTHOR)
    
register_cvar("version_no_headshot_with_helmet"MY_PLUGIN_VERSIONFCVAR_SERVER|FCVAR_SPONLY)

    
g_cvarSHelmetThreshold register_cvar("amx_superhelmet_when_armor""0")

    
RegisterHam(Ham_TraceAttack"player""Player_TraceAttack")
}

public 
Player_TraceAttack(idiAttackerFloat:flDamageFloat:vecDir[3], ptriDamageType)
{
    if( 
WEAPONS_BITSUM & (1<<iWeapon) )
    if( 
IsPlayer(iAttacker) &&  WEAPONS_BS & (1<<get_user_weapon(iAttacker)) )
    {
        new 
CsArmorType:tArmoriArmor cs_get_user_armor(idtArmor)
        if(
iArmor && tArmor == CS_ARMOR_VESTHELM    && get_tr2(ptrTR_iHitgroup) == HIT_HEAD)
        {
            
set_tr2(ptrTR_iHitgroupget_pcvar_num(g_cvarSHelmetThreshold) ? HIT_SHIELD HIT_GENERIC)
            return 
HAM_HANDLED
        
}
    }
    return 
HAM_IGNORED

smgcz is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 02:26.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode