AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [Help] Ham_TakeDamage and Ham_Touch don't work (https://forums.alliedmods.net/showthread.php?t=254210)

Shiina.Mashiro 12-31-2014 05:39

[Help] Ham_TakeDamage and Ham_Touch don't work
 
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 :D Thanks.

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

HamletEagle 12-31-2014 05:44

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
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.

Shiina.Mashiro 12-31-2014 06:15

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
Quote:

Originally Posted by HamletEagle (Post 2242619)
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 :D

Shiina.Mashiro 12-31-2014 06:19

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
Quote:

Originally Posted by HamletEagle (Post 2242619)
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 ?

HamletEagle 12-31-2014 06:23

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
Show me your full code.

Kellan123 12-31-2014 06:27

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
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


Shiina.Mashiro 12-31-2014 07:56

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
Quote:

Originally Posted by HamletEagle (Post 2242647)
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



HamletEagle 12-31-2014 08:01

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
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...

Shiina.Mashiro 12-31-2014 08:07

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
@HamletEagle
it is still not working :(

RateX 12-31-2014 10:24

Re: [Help] Ham_TakeDamage and Ham_Touch don't work
 
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


All times are GMT -4. The time now is 15:27.

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