Raised This Month: $ Target: $400
 0% 

[Help] Ham_TakeDamage and Ham_Touch don't work


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Shiina.Mashiro
Senior Member
Join Date: Sep 2014
Location: Vietnam
Old 12-31-2014 , 05:39   [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #1

Hi guys, this is my code:
PHP Code:
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
RegisterHam(Ham_Touch"armoury_entity""FwdHamPickupWeapon")
RegisterHam(Ham_Touch"weaponbox""FwdHamPickupWeapon")
public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if(
victim != attacker && is_user_connected(attacker))
    {
        if(
cs_get_user_team(attacker) == CS_TEAM_T)
        {
            if(
get_user_weapon(attacker) == CSW_KNIFE)
            {
                
SetHamParamFloat(4damage 0.5)
            }
        }
    }
}
public 
FwdHamPickupWeapon(ident)
{
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        return 
HAM_SUPERCEDE
    
}
    return 
HAM_IGNORED

and when i tested it, the terrorist's knife damage is still the same, and they still can pick up weapons.

Can you guys detected any problem in my code Thanks.

p/s: Can you guys show me how to block the message with player name and health when drag cursor to player ?
__________________

Last edited by Shiina.Mashiro; 12-31-2014 at 05:40.
Shiina.Mashiro is offline
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 12-31-2014 , 05:44   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #2

PHP Code:
public FwdHamPickupWeapon(ident
->
PHP Code:
public FwdHamPickupWeapon(entid
The first index if the touched and the second is the toucher.

For Ham_TakeDamage return HAM_HANDLED after you change the param.
__________________
HamletEagle is offline
Shiina.Mashiro
Senior Member
Join Date: Sep 2014
Location: Vietnam
Old 12-31-2014 , 06:15   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #3

Quote:
Originally Posted by HamletEagle View Post
PHP Code:
public FwdHamPickupWeapon(ident
->
PHP Code:
public FwdHamPickupWeapon(entid
The first index if the touched and the second is the toucher.

For Ham_TakeDamage return HAM_HANDLED after you change the param.
thanks, i will try it
__________________
Shiina.Mashiro is offline
Shiina.Mashiro
Senior Member
Join Date: Sep 2014
Location: Vietnam
Old 12-31-2014 , 06:19   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #4

Quote:
Originally Posted by HamletEagle View Post
PHP Code:
public FwdHamPickupWeapon(ident
->
PHP Code:
public FwdHamPickupWeapon(entid
The first index if the touched and the second is the toucher.

For Ham_TakeDamage return HAM_HANDLED after you change the param.

tried your way but still the same any idea ?
__________________
Shiina.Mashiro is offline
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 12-31-2014 , 06:23   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #5

Show me your full code.
__________________
HamletEagle is offline
Shiina.Mashiro
Senior Member
Join Date: Sep 2014
Location: Vietnam
Old 12-31-2014 , 07:56   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #6

Quote:
Originally Posted by HamletEagle View Post
Show me your full code.
PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <engine>

#define PLUGIN "Ghost-beta"
#define VERSION "1.0"
#define AUTHOR "S.M"

#define V_MODEL "models/v_blurred_knife.mdl"

new g_ghost[33]
new 
g_invis[33]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_forward(FM_CmdStart"FMCmdStart")
    
register_event("CurWeapon""CurWeapon""be""1=1")
    
register_event("ResetHUD""newround""b")
    
RegisterHam(Ham_Spawn"player""HamSpawn"1)
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
RegisterHam(Ham_Touch"armoury_entity""FwdHamPickupWeapon")
    
RegisterHam(Ham_Touch"weaponbox""FwdHamPickupWeapon")
    
    
set_msg_block(get_user_msgid("ShadowIdx"), BLOCK_SET// remove shadow
}
public 
plugin_precache()
{
    
precache_model(V_MODEL)
}
public 
FMCmdStart(iduc_handlerandseed//handle user speed
{
    new 
Floatfmove
    
new Floatsmove
    get_uc
(uc_handleUC_ForwardMovefmove)
    
get_uc(uc_handleUC_SideMovesmove)
    new 
Floatmaxspeed
    pev
(idpev_maxspeedmaxspeed)
    new 
Floatwalkspeed = (0.52 maxspeed)
    
fmove floatabs(fmove)
    
smove floatabs(smove)
    if(
fmove <= walkspeed && smove <= walkspeed//player is walking
    
{
        
set_task(0.0"task_walking"id)
    }
    else 
//player is running
    
{
        
set_task(0.0"task_running"id)
    }
}
public 
CurWeapon(id)
{
    new 
weapon read_data(2)
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        if(
weapon == CSW_KNIFE)
        {
            new 
vModel[56]
            
format(vModel55V_MODEL)
            
entity_set_string(idEV_SZ_viewmodelvModel)
            
set_user_maxspeed(id500.0)
        }
        else
        {
            
strip_user_weapons(id)
            
give_item(id"weapon_knife")
        }
    }
}
public 
task_walking(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        
set_user_rendering(idkRenderFxNone000kRenderTransTexture0)
        
set_user_footsteps(id1)
        
set_pev(idpev_viewmodel0)
        
g_invis[id] = 1
    
}
}
public 
task_running(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        
set_user_rendering(idkRenderFxNone000kRenderTransTexture25)
        
set_user_footsteps(id1)
        new 
vModel[56]
        
format(vModel55V_MODEL)
        
entity_set_string(idEV_SZ_viewmodelvModel)
        
g_invis[id] = 0
    
}
}
public 
newround(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        
set_user_health(id50)
        
set_user_armor(id200)
        
g_ghost[id] = 1
        set_task
(3.0"set_speed"id)
    }
    else
    {
        
set_user_health(id100)
        
set_user_armor(id100)
        
g_ghost[id] = 0
        set_user_maxspeed
(id250.0)
    }
}
public 
set_speed(id)
{
    
set_user_maxspeed(id500.0)
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if(
victim != attacker && is_user_connected(attacker))
    {
        if(
cs_get_user_team(attacker) == CS_TEAM_T)
        {
/*            if(g_invis[attacker] == 1)
            {
                SetHamParamFloat(4, damage * 0.4)
            }
            if(g_invis[attacker] == 0)
            {
                SetHamParamFloat(4, damage * 0.6)
            }
*/
            
if(get_user_weapon(attacker) == CSW_KNIFE)
            {
                
SetHamParamFloat(4damage 0.5)
            }
        }
    }
    return 
HAM_HANDLED
}
public 
FwdHamPickupWeapon(entid)
{
    if(
is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
    {
        return 
HAM_SUPERCEDE
    
}
    return 
HAM_IGNORED

__________________
Shiina.Mashiro is offline
Kellan123
AlliedModders Donor
Join Date: Aug 2012
Old 12-31-2014 , 06:27   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #7

PHP Code:
if(cs_get_user_team(id) == CS_TEAM_T
>

PHP Code:
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T

Last edited by Kellan123; 12-31-2014 at 06:28.
Kellan123 is offline
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 12-31-2014 , 08:01   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #8

PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <engine>

#define PLUGIN "Ghost-beta"
#define VERSION "1.0"
#define AUTHOR "S.M"

#define V_MODEL "models/v_blurred_knife.mdl"

new g_ghost[33]
new 
g_invis[33]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_forward(FM_CmdStart"FMCmdStart")
    
register_event("CurWeapon""CurWeapon""be""1=1")
    
register_event("ResetHUD""newround""b")
    
RegisterHam(Ham_Spawn"player""HamSpawn"1)
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
RegisterHam(Ham_Touch"armoury_entity""FwdHamPickupWeapon")
    
RegisterHam(Ham_Touch"weaponbox""FwdHamPickupWeapon")
    
    
set_msg_block(get_user_msgid("ShadowIdx"), BLOCK_SET// remove shadow
}
public 
plugin_precache()
{
    
precache_model(V_MODEL)
}
public 
FMCmdStart(iduc_handlerandseed//handle user speed
{
    new 
Floatfmove
    
new Floatsmove
    get_uc
(uc_handleUC_ForwardMovefmove)
    
get_uc(uc_handleUC_SideMovesmove)
    new 
Floatmaxspeed
    pev
(idpev_maxspeedmaxspeed)
    new 
Floatwalkspeed = (0.52 maxspeed)
    
fmove floatabs(fmove)
    
smove floatabs(smove)
    if(
fmove <= walkspeed && smove <= walkspeed//player is walking
    
{
        
set_task(0.0"task_walking"id)
    }
    else 
//player is running
    
{
        
set_task(0.0"task_running"id)
    }
}
public 
CurWeapon(id)
{
    new 
weapon read_data(2)
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        if(
weapon == CSW_KNIFE)
        {
            new 
vModel[56]
            
format(vModel55V_MODEL)
            
entity_set_string(idEV_SZ_viewmodelvModel)
            
set_user_maxspeed(id500.0)
        }
        else
        {
            
strip_user_weapons(id)
            
give_item(id"weapon_knife")
        }
    }
}
public 
task_walking(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        
set_user_rendering(idkRenderFxNone000kRenderTransTexture0)
        
set_user_footsteps(id1)
        
set_pev(idpev_viewmodel0)
        
g_invis[id] = 1
    
}
}
public 
task_running(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        
set_user_rendering(idkRenderFxNone000kRenderTransTexture25)
        
set_user_footsteps(id1)
        new 
vModel[56]
        
format(vModel55V_MODEL)
        
entity_set_string(idEV_SZ_viewmodelvModel)
        
g_invis[id] = 0
    
}
}
public 
newround(id)
{
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        
set_user_health(id50)
        
set_user_armor(id200)
        
g_ghost[id] = 1
        set_task
(3.0"set_speed"id)
    }
    else
    {
        
set_user_health(id100)
        
set_user_armor(id100)
        
g_ghost[id] = 0
        set_user_maxspeed
(id250.0)
    }
}
public 
set_speed(id)
{
    
set_user_maxspeed(id500.0)
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if(
victim != attacker && is_user_connected(attacker))
    {
        if(
cs_get_user_team(attacker) == CS_TEAM_T)
        {
/*            if(g_invis[attacker] == 1)
            {
                SetHamParamFloat(4, damage * 0.4)
            }
            if(g_invis[attacker] == 0)
            {
                SetHamParamFloat(4, damage * 0.6)
            }
*/
            
if(get_user_weapon(attacker) == CSW_KNIFE)
            {
                
SetHamParamFloat(4damage 0.5)
        return 
HAM_HANDLED
            
}
        }
    }
    return 
HAM_IGNORED
}
public 
FwdHamPickupWeapon(entid)
{
    if(
is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
    {
        return 
HAM_SUPERCEDE
    
}
    return 
HAM_IGNORED

Try...
__________________
HamletEagle is offline
Shiina.Mashiro
Senior Member
Join Date: Sep 2014
Location: Vietnam
Old 12-31-2014 , 08:07   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #9

@HamletEagle
it is still not working
__________________
Shiina.Mashiro is offline
RateX
Veteran Member
Join Date: Jun 2012
Location: 0o. SEA .o0
Old 12-31-2014 , 10:24   Re: [Help] Ham_TakeDamage and Ham_Touch don't work
Reply With Quote #10

It's because Ham_Spawn's function is not found, so any function after it is not registered, including fw_TakeDamage.
BTW, some tips:
1.Why using set_task when you can call a function directly?
2.Use Ham_spawn instead of ResetHUD

Last edited by RateX; 12-31-2014 at 10:37.
RateX 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 15:27.


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