Raised This Month: $ Target: $400
 0% 

fw_TakeDamage, about armor/health/zombies (Not ZP)


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
SkumTomteN
Veteran Member
Join Date: Oct 2013
Location: Asgard
Old 06-12-2014 , 09:58   fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #1

So i want that if the human got armor, zombies need to reduce the armor to infect the player, but i don't know correct the method for it. if somebody could teach me, or simply correct the code.

i will not post full code, you do not need it and its private.

i want it pretty much like zp 4.3.

PHP Code:
public fw_TakeDamage(VictimInflictorAttackerFloat:DamageDamageType)
{
    if(!
g_Game_Start)
        return 
HAM_SUPERCEDE
    
if(Victim == Attacker)
        return 
HAM_IGNORED
    
if(!is_user_alive(Attacker))
        return 
HAM_IGNORED
    
    
if(Get_BitVar(g_IsZombieVictim) && !Get_BitVar(g_IsZombieAttacker)) // Human -> Zombie
    
{
        if(
DamageType DMG_HEGRENADESetHamParamFloat(4Damage float(D_GrenadePower))
        else {
            
Damage *= g_fDamageMulti[g_Level[Attacker]]
            
            
// Zombie Victim Evolution Code Here!!!
            
if(g_Level[Victim] < 3)
            {
                
g_Evolution[Victim] += (g_Level[Victim] < 2) ? Damage 2000.0 Damage 1000.0
                UpdateLevelZombie
(Victim0)
            }
            
            
// Set Damage
            
SetHamParamFloat(4Damage)
        }
    } else if(!
Get_BitVar(g_IsZombieVictim) && Get_BitVar(g_IsZombieAttacker) { // Zombie -> Human
        
if(DamageType DMG_HEGRENADE)
            return 
HAM_SUPERCEDE
        
if(Damage <= 0.0)
    
        
// Set Zombie
        
set_user_zombie(VictimAttacker00)
        
        return 
HAM_SUPERCEDE
    
}
    
    return 
HAM_HANDLED

So i need something like get_user_armor. but more advanced.

the user cannot get infected if the user have any sort of armor, but zombies can reduce the armor, but not the health.

hope you understand, got any questions post them below

Thank you.
__________________
Contact: Steam
Videos: Youtube

Last edited by SkumTomteN; 06-12-2014 at 10:08.
SkumTomteN is offline
Flick3rR
Veteran Member
Join Date: Feb 2014
Location: Bulgaria, Stara Zagora
Old 06-12-2014 , 10:34   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #2

PHP Code:
if(Damage <= 0.0
What? I think that means there is no damage received, therefore ham takedamage is not called.
__________________
Flick3rR is offline
Send a message via Skype™ to Flick3rR
SkumTomteN
Veteran Member
Join Date: Oct 2013
Location: Asgard
Old 06-12-2014 , 12:14   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #3

Quote:
Originally Posted by Flick3rR View Post
PHP Code:
if(Damage <= 0.0
What? I think that means there is no damage received, therefore ham takedamage is not called.
Edit: No, its for Attack power. Attack power for humans increase when humans shoot zombies.
__________________
Contact: Steam
Videos: Youtube

Last edited by SkumTomteN; 06-12-2014 at 12:20.
SkumTomteN is offline
<VeCo>
Veteran Member
Join Date: Jul 2009
Location: Bulgaria
Old 06-13-2014 , 03:43   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #4

Quote:
Originally Posted by Flick3rR View Post
PHP Code:
if(Damage <= 0.0
What? I think that means there is no damage received, therefore ham takedamage is not called.
It is, when you attack a teammate.
<VeCo> is offline
simanovich
AlliedModders Donor
Join Date: Jun 2012
Location: Israel
Old 06-15-2014 , 13:40   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #5

Quote:
Originally Posted by Flick3rR View Post
PHP Code:
if(Damage <= 0.0
What? I think that means there is no damage received, therefore ham takedamage is not called.
ham takedamage is called when ever an entity got damaged, even if the entity didn't lose any health.

It's even called if a player hits a teammate even if ff (Friendly Fire) is off
__________________
simanovich is offline
Flick3rR
Veteran Member
Join Date: Feb 2014
Location: Bulgaria, Stara Zagora
Old 06-12-2014 , 16:14   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #6

Yes, that's why the upper part of the code is doing. But I was talking about that check, what do you think? It checks if the damage is 0.0, therefore there is no damage received.
__________________
Flick3rR is offline
Send a message via Skype™ to Flick3rR
SkumTomteN
Veteran Member
Join Date: Oct 2013
Location: Asgard
Old 06-12-2014 , 18:01   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #7

Quote:
Originally Posted by Flick3rR View Post
Yes, that's why the upper part of the code is doing. But I was talking about that check, what do you think? It checks if the damage is 0.0, therefore there is no damage received.
Alright, can't hurt if i try

Edit:

Took a code from zp 4.3. but do not know how to add it in the code. because i suck.

PHP Code:
public fw_TakeDamage(VictimInflictorAttackerFloat:DamageDamageType)
    {
    if(!
g_Game_Start)
        return 
HAM_SUPERCEDE
    
if(Victim == Attacker)
        return 
HAM_IGNORED
    
if(!is_user_alive(Attacker))
        return 
HAM_IGNORED
    
    
if(Get_BitVar(g_IsZombieVictim) && !Get_BitVar(g_IsZombieAttacker)) // Human -> Zombie
        
{
        if(
DamageType DMG_HEGRENADESetHamParamFloat(4Damage float(D_GrenadePower))
        else {
            
Damage *= g_fDamageMulti[g_Level[Attacker]]
            
            
// Zombie Victim Evolution Code Here!!!
            
if(g_Level[Victim] < 3)
                {
                
g_Evolution[Victim] += (g_Level[Victim] < 2) ? Damage 2000.0 Damage 1000.0
                UpdateLevelZombie
(Victim0)
            }
            
            
// Set Damage
            
SetHamParamFloat(4Damage)
        }
        } else if(!
Get_BitVar(g_IsZombieVictim) && Get_BitVar(g_IsZombieAttacker)) { // Zombie -> Human
        
if(DamageType DMG_HEGRENADE)
            return 
HAM_SUPERCEDE
        
        
// Get victim armor
        
static Float:armor
        pev
(Victimpev_armorvaluearmor)
        
        
// If he has some, block the infection and reduce armor instead
        
if (armor 0.0)
            {
            if (
armor damage 0.0)
                
set_pev(victimpev_armorvaluearmor damage)
            else
            
cs_set_user_armor(victim0CS_ARMOR_NONE)
            
            return 
HAM_SUPERCEDE;
            
        }      
        
// Set Zombie
        
set_user_zombie(VictimAttacker00)
        
        return 
HAM_SUPERCEDE
    
}
    
    return  
HAM_HANDLED

__________________
Contact: Steam
Videos: Youtube

Last edited by SkumTomteN; 06-12-2014 at 18:19.
SkumTomteN is offline
Compidence
Junior Member
Join Date: Feb 2014
Old 06-12-2014 , 19:40   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #8

You need to reword your question. What do you need help with exactly?

PHP Code:
        // Get victim armor 
        
static Float:armor 
        pev
(Victimpev_armorvaluearmor
         
        
// If he has some, block the infection and reduce armor instead 
        
if (armor 0.0
            { 
            if (
armor damage 0.0
                
set_pev(victimpev_armorvaluearmor damage
            else 
            
cs_set_user_armor(victim0CS_ARMOR_NONE
             
            return 
HAM_SUPERCEDE
             
        }       
        
// Set Zombie 
        
set_user_zombie(VictimAttacker00
Is that part not working? It looks fine to me.
Compidence is offline
aron9forever
Veteran Member
Join Date: Feb 2013
Location: Rromania
Old 06-13-2014 , 00:56   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #9

Quote:
Originally Posted by Compidence View Post
You need to reword your question. What do you need help with exactly?

PHP Code:
        // Get victim armor 
        
static Float:armor 
        pev
(Victimpev_armorvaluearmor
         
        
// If he has some, block the infection and reduce armor instead 
        
if (armor 0.0
            { 
            if (
armor damage 0.0
                
set_pev(victimpev_armorvaluearmor damage
            else 
            
cs_set_user_armor(victim0CS_ARMOR_NONE
             
            return 
HAM_SUPERCEDE
             
        }       
        
// Set Zombie 
        
set_user_zombie(VictimAttacker00
Is that part not working? It looks fine to me.
there's one issue, the fact that the first time the player is hit and his armor drops below 0 he doesn't become a zombie until the next hit
also, I don't recall cs_set_user_armor using float
aron9forever is offline
SkumTomteN
Veteran Member
Join Date: Oct 2013
Location: Asgard
Old 06-13-2014 , 02:47   Re: fw_TakeDamage, about armor/health/zombies (Not ZP)
Reply With Quote #10

Quote:
Originally Posted by Compidence View Post
You need to reword your question. What do you need help with exactly?

PHP Code:
        // Get victim armor 
        
static Float:armor 
        pev
(Victimpev_armorvaluearmor
         
        
// If he has some, block the infection and reduce armor instead 
        
if (armor 0.0
            { 
            if (
armor damage 0.0
                
set_pev(victimpev_armorvaluearmor damage
            else 
            
cs_set_user_armor(victim0CS_ARMOR_NONE
             
            return 
HAM_SUPERCEDE
             
        }       
        
// Set Zombie 
        
set_user_zombie(VictimAttacker00
Is that part not working? It looks fine to me.
I did it wrong, so i get errors...

Edit: I was tired, and fixed the code, but now i get loose intendtion, even though i have intended it.

PHP Code:
public fw_TakeDamage(VictimInflictorAttackerFloat:DamageDamageType)
    {
    if(!
g_Game_Start)
        return 
HAM_SUPERCEDE
    
if(Victim == Attacker)
        return 
HAM_IGNORED
    
if(!is_user_alive(Attacker))
        return 
HAM_IGNORED
    
    
if(Get_BitVar(g_IsZombieVictim) && !Get_BitVar(g_IsZombieAttacker)) // Human -> Zombie
        
{
        if(
DamageType DMG_HEGRENADESetHamParamFloat(4Damage float(D_GrenadePower))
        else {
            
Damage *= g_fDamageMulti[g_Level[Attacker]]
            
            
// Zombie Victim Evolution Code Here!!!
            
if(g_Level[Victim] < 3)
                {
                
g_Evolution[Victim] += (g_Level[Victim] < 2) ? Damage 2000.0 Damage 1000.0
                UpdateLevelZombie
(Victim0)
            }
            
            
// Set Damage
            
SetHamParamFloat(4Damage)
        }
        } else if(!
Get_BitVar(g_IsZombieVictim) && Get_BitVar(g_IsZombieAttacker)) { // Zombie -> Human
        
if(DamageType DMG_HEGRENADE)
            return 
HAM_SUPERCEDE
        
        
// Get victim armor
        
static Float:armor
        pev
(Victimpev_armorvaluearmor)
        
        
// If he has some, block the infection and reduce armor instead
        
if (armor 0.0)
            {
            if (
armor Damage 0.0)
                
set_pev(Victimpev_armorvaluearmor Damage)
            else
            
cs_set_user_armor(Victim0CS_ARMOR_NONE)
            
            return 
HAM_SUPERCEDE;
        }
        
        
// Set Zombie
        
set_user_zombie(VictimAttacker00)
        
        return 
HAM_SUPERCEDE
    
}
    
    return  
HAM_HANDLED

Edit: It works now!, don't know why i get loose intendtion though. but atleast it works.
__________________
Contact: Steam
Videos: Youtube

Last edited by SkumTomteN; 06-13-2014 at 02:57.
SkumTomteN 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 21:14.


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