Raised This Month: $ Target: $400
 0% 

Ham_TakeDamage, SetHamParamFloat


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 05-10-2009 , 13:40   Ham_TakeDamage, SetHamParamFloat
Reply With Quote #1

Wtf why the damage won't multiplier?

PHP Code:
public Fw_PlayerDamaged(idinflictorattackerdamagedamagebits)
{
    if ( !(
<= attacker <= g_iMaxPlayers) )
        return 
HAM_IGNORED;
    
    if ( 
get_user_weapon(attacker) == CSW_KNIFE && PlayerClassCT[attacker] == LUKE && get_user_team(attacker) == )
    {
        
SetHamParamFloat(4damage get_pcvar_float(luke_damage))
        return 
HAM_HANDLED;
    }
    if ( 
get_user_weapon(attacker) == CSW_KNIFE && PlayerClassCT[id] == OBI_VAN && get_user_team(attacker) == )
    {
        
set_pdata_float(id1081.0)
        return 
HAM_HANDLED;
    }
    if ( 
random_num(099) < 50 && get_user_weapon(attacker) == CSW_KNIFE )
    {
        
client_print(idprint_chat"Damage!");
        
SetHamParamFloat(4damage 5.0)
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;

xbatista is offline
Send a message via Skype™ to xbatista
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 05-10-2009 , 14:02   Re: Ham_TakeDamage, SetHamParamFloat
Reply With Quote #2

I see nothing wrong. So the problem is probably not here.
Arkshine is offline
xPaw
Retired AMX Mod X Moderator
Join Date: Jul 2008
Old 05-10-2009 , 14:09   Re: Ham_TakeDamage, SetHamParamFloat
Reply With Quote #3

does Damage! prints?
__________________
xPaw is offline
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 05-10-2009 , 14:12   Re: Ham_TakeDamage, SetHamParamFloat
Reply With Quote #4

Yes
P.S. no errors in log, good compiling.
I've set also multiplier to 10.0 to test it better, but won't multiplier only prints message.

Okey here you code :
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fun>

#define PLUGIN    "Star Wars"
#define AUTHOR    "xbatista"
#define VERSION    "1.0"

#define JABBA_SPEED 175.0
#define DARTH_MAUL_SPEED 390.0
#define OBIVAN_SPEED 360.0

#define m_flNextSecondaryAttack 47
#define fm_cs_set_user_nobuy(%1)    set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0) ) // no weapon buy

new PlayerClassT[33];
new 
PlayerClassCT[33];

const 
m_pClientActiveItem 374;

enum // Dark side class numbers
{
    
JABBA 0,
    
DARTH_VADER,
    
SITH_LORD,
    
DARTH_MAUL
};
enum // Light side class numbers
{
    
YODA 0,
    
OBI_VAN,
    
LUKE,
    
SKY_TROOPER
};
new const 
DARK_V_SABER[] = "models/starwars/red_saber2.mdl";    
new const 
LIGHT_V_SABER[] = "models/starwars/blue_saber2.mdl";

new const 
g_saber_hit[][] = 

    
"starwars/hit1.wav"
    
"starwars/hit2.wav",
    
"starwars/hit3.wav" 
}    
new const 
g_saber_miss[][] = 

    
"starwars/miss1.wav"
    
"starwars/miss2.wav"
}    

new 
jabba_hp,darth_vader_hpsith_hpdarth_vader_visiblesith_gravity,
darth_maul_gravity// Dark side abbilities

new yoda_regenluke_hpluke_damageyoda_gravity// Light side abbilities

new g_freezetimeg_iMaxPlayers;
new 
g_iCurWeapon[33];

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Dark side class abbility
    
jabba_hp register_cvar("sw_jabba_hp""255")
    
    
darth_vader_hp register_cvar("sw_vader_hp""140")
    
darth_vader_visible register_cvar("sw_vader_visible""4.0")
    
    
sith_hp register_cvar("sw_sith_hp""130")
    
sith_gravity register_cvar"sw_sith_gv""300" );
    
    
darth_maul_gravity register_cvar"sw_maul_gv""500" );
    
// Light side class abbility
    
yoda_regen register_cvar("sw_yoda_regen""1")
    
yoda_gravity register_cvar"sw_yoda_gv""300" );
    
    
luke_hp register_cvar("sw_luke_hp""150")
    
luke_damage register_cvar("sw_luke_damage""1.7")
    
    
register_logevent("Logevent_Round_Start"2"1=Round_Start");
    
register_event("HLTV""Event_New_Round""a""1=0""2=0");
    
register_event("CurWeapon",    "Ev_CurWeapon",    "be""1=1");
    
    
RegisterHam(Ham_Spawn"player""Fw_PlayerSpawn"1);
    
RegisterHam(Ham_TakeDamage"player""Fw_PlayerDamaged"1)
//    RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "Knife_SecondaryAttack")
    
    
register_forward(FM_CmdStart"Forward_CmdStart" );
    
register_forward(FM_EmitSound"Fw_EmitSound")
    
    
register_message(get_user_msgid("StatusIcon"),    "Message_StatusIcon")
    
    
g_iMaxPlayers get_maxplayers();
}
public 
plugin_precache()  
{
    new 
iNum;
    for (
iNum 0iNum sizeof g_saber_missiNum++)
        
engfunc(EngFunc_PrecacheSoundg_saber_miss[iNum])
    for (
iNum 0iNum sizeof g_saber_hitiNum++)
        
engfunc(EngFunc_PrecacheSoundg_saber_hit[iNum])
    
    
engfunc(EngFunc_PrecacheModelDARK_V_SABER);
    
engfunc(EngFunc_PrecacheModelLIGHT_V_SABER);
}
public 
Message_StatusIcon(iMsgIdMSG_DESTid

    static 
szIcon[5
    
get_msg_arg_string(2szIcon4
    if( 
szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z' 
    { 
        if( 
get_msg_arg_int(1)) 
        { 
            
fm_cs_set_user_nobuy(id
            return 
PLUGIN_HANDLED;
        } 
    }  
    
    return 
PLUGIN_CONTINUE;
}
public 
Fw_EmitSound(idchannelsample[], Float:volumeFloat:attnflagpitch)
{
    if(!
is_user_connected(id))
        return 
FMRES_IGNORED
    
    
if (sample[0] == 'w' && sample[1] == 'e' && sample[8] == 'k' && sample[9] == 'n')
    {
        switch(
sample[17])
        {
            case 
'l'
                return 
FMRES_SUPERCEDE
                
            
case 's''w':
            {
                
emit_sound(idCHAN_WEAPONg_saber_miss[random(sizeof g_saber_miss)], volumeattnflagpitch)
                return 
FMRES_SUPERCEDE;
            }
            case 
'b''1''2''3''4':
            {
                
emit_sound(idCHAN_WEAPONg_saber_hit[random(sizeof g_saber_hit)], volumeattnflagpitch)
                return 
FMRES_SUPERCEDE;
            }
        }
    }
    
    return 
FMRES_IGNORED;
}
/*public Knife_SecondaryAttack( iEnt ) 

    set_pdata_float(iEnt, m_flNextSecondaryAttack, 20.0, 4) 
    return HAM_SUPERCEDE 
} */
public Forward_CmdStartiduc_handleseed )
{
    static 
Buttons Buttons get_ucuc_handleUC_Buttons );
    
    if( ( 
Buttons IN_ATTACK2 ) && get_user_weaponid ) == CSW_KNIFE 
    {
        
set_ucuc_handleUC_ButtonsButtons & ~IN_ATTACK2 )
        return 
FMRES_HANDLED
    
}
    return 
FMRES_IGNORED

public 
Fw_PlayerSpawn(id)
{
    if ( !
is_user_alive(id) )
        return;
    
    
set_user_rendering(id); // Set rendering None.
    
strip_user_weapons(id); // Strip user weapons.
    
give_item(id"weapon_knife"); // And give him knife.
    
    // Dark side class random
    
PlayerClassT[id] = random_num(03)
    
// Light side class random
    
PlayerClassCT[id] = random_num(03)
    
    if ( 
get_user_team(id) == // User team Dark
    
{
        if ( 
PlayerClassT[id] == JABBA // Set Jabba health
        
{
            
set_user_health(idget_pcvar_num(jabba_hp));
        }
        else if ( 
PlayerClassT[id] == DARTH_VADER // Set Darth vader health and invisibility
        
{
            
set_user_health(idget_pcvar_num(darth_vader_hp));
            
            
dar_vader_visible(id)
        }
        else if ( 
PlayerClassT[id] == SITH_LORD // Set Sith Lord health,gravity
        
{
            
set_user_health(idget_pcvar_num(sith_hp));
            
            
set_pevidpev_gravityget_pcvar_floatsith_gravity ) / 800.0 ); 
        }
        else if ( 
PlayerClassT[id] == DARTH_MAUL // Set Darth Maul gravity
        
{
            
set_pevidpev_gravityget_pcvar_floatdarth_maul_gravity ) / 800.0 ); 
        }
        
    }
    else if ( 
get_user_team(id) == // User team Light
    
{
        if ( 
PlayerClassCT[id] == YODA // Set Yoda gravity and regen
        
{
            
yoda_regeneration(id)
            
            
set_pevidpev_gravityget_pcvar_floatyoda_gravity ) / 800.0 ); 
        }
        else if ( 
PlayerClassCT[id] == LUKE // Set Darth vader health and invisibility
        
{
            
set_user_health(idget_pcvar_num(luke_hp));
        }
    }
//    client_print(id, print_chat, "xxx");
}
public 
Fw_PlayerDamaged(idinflictorattackerdamagedamagebits)
{
    if ( !(
<= attacker <= g_iMaxPlayers) )
        return 
HAM_IGNORED;
    
    if ( 
get_user_weapon(attacker) == CSW_KNIFE && PlayerClassCT[attacker] == LUKE && get_user_team(attacker) == )
    {
        
SetHamParamFloat(4damage get_pcvar_float(luke_damage))
        return 
HAM_HANDLED;
    }
    if ( 
get_user_weapon(attacker) == CSW_KNIFE && PlayerClassCT[id] == OBI_VAN && get_user_team(attacker) == )
    {
        
set_pdata_float(id1081.0)
        return 
HAM_HANDLED;
    }
    if ( 
random_num(099) < 50 && get_user_weapon(attacker) == CSW_KNIFE )
    {
        
client_print(idprint_chat"Damage!");
        
SetHamParamFloat(4damage 10.0)
        return 
HAM_HANDLED;
    }
    
    return 
HAM_IGNORED;
}
public 
Ev_CurWeapon(id)
{
    if(!
is_user_alive(id))
        return;
    
    new 
weapon read_data(2)
        
    if( 
g_iCurWeapon[id] == weapon )
    {
        
// player hasn't changed his weapon
        // he has just fired or reloaded or zoomed
        // don't add speed to him
        
return;
    }
    
    
g_iCurWeapon[id] = weapon
    
    
if ( get_user_team(id) == // User team Dark
    
{
        if ( 
weapon == CSW_KNIFE )
        {
            
set_pev(idpev_viewmodel2DARK_V_SABER)
        }
        
        if ( !
g_freezetime )
        {
            if ( 
PlayerClassT[id] == JABBA // Set Jabba speed
            
{
                
set_pev(idpev_maxspeedJABBA_SPEED)
            }
            else if ( 
PlayerClassT[id] == DARTH_MAUL // Set Darth maul speed
            
{
                
set_pev(idpev_maxspeedDARTH_MAUL_SPEED)
            }
        }
    }
    else if ( 
get_user_team(id) == )
    {
        if ( 
weapon == CSW_KNIFE )
        {
            
set_pev(idpev_viewmodel2LIGHT_V_SABER)
        }
        
        if ( !
g_freezetime )
        {
            if ( 
PlayerClassCT[id] == OBI_VAN // Set Obi van speed
            
{
                
set_pev(idpev_maxspeedOBIVAN_SPEED)
            }
        }
    }
}
public 
Event_New_Round()
{
    
g_freezetime true;
}
public 
Logevent_Round_Start()
{
    
g_freezetime false;
    
    for(new 
id 1id <= g_iMaxPlayersid++)
    {
        if( 
is_user_alive(id) )
        {
            
g_iCurWeapon[id] = 0
            
// This should trigger a CurWeapon event
            
set_pdata_cbase(idm_pClientActiveItem, -15)
        }
    }
}
public 
dar_vader_invisible(id)
{
    if( 
PlayerClassT[id] == DARTH_VADER && get_user_team(id) == )
    {
        
set_user_rendering(idkRenderFxGlowShell000kRenderTransAlpha0)
        
set_task(get_pcvar_float(darth_vader_visible), "dar_vader_visible"id)
    }
}
public 
dar_vader_visible(id)
{
    if( 
PlayerClassT[id] == DARTH_VADER && get_user_team(id) == )
    {
        
set_user_rendering(idkRenderFxGlowShellrandom_num(100,255), random_num(100,255), random_num(100,255), kRenderTransAlpha70)
        
set_taskget_pcvar_float(darth_vader_visible), "dar_vader_invisible"id)
    }
}
public 
yoda_regeneration(id)
{
    if( 
PlayerClassCT[id] == YODA && get_user_team(id) == && get_user_health(id) < 255)
    {
        
set_user_health(id,get_user_health(id) + get_pcvar_num(yoda_regen))
        
set_task(1.0"yoda_regeneration"id)
    }


Last edited by xbatista; 05-10-2009 at 14:20.
xbatista is offline
Send a message via Skype™ to xbatista
Hunter-Digital
Veteran Member
Join Date: Aug 2006
Location: In the Game [ro]
Old 05-11-2009 , 11:03   Re: Ham_TakeDamage, SetHamParamFloat
Reply With Quote #5

Quote:
Originally Posted by xbatista View Post
PHP Code:
RegisterHam(Ham_TakeDamage"player""Fw_PlayerDamaged"1
It's registered in POST, as in AFTER the damage was dealt, you can not modify something after it was done, remove the , 1 or set it to 0 and it should work

if not, do that and use HAM_OVERRIDE instead of HAM_HANDLED
__________________

Last edited by Hunter-Digital; 05-11-2009 at 13:10.
Hunter-Digital is offline
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 05-11-2009 , 12:01   Re: Ham_TakeDamage, SetHamParamFloat
Reply With Quote #6

Thanks that works ;)
xbatista is offline
Send a message via Skype™ to xbatista
xbatista
Veteran Member
Join Date: Mar 2008
Location: Lithuania
Old 05-11-2009 , 09:36   Re: Ham_TakeDamage, SetHamParamFloat
Reply With Quote #7

I've added a code, may someone check it please? ;)
Maybe I mess something :\
xbatista is offline
Send a message via Skype™ to xbatista
Reply


Thread Tools
Display Modes

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 01:31.


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