Garry's Mod
Coding help with entity specific damage in ZS gamemode?
Submitted by tklodis, 28-02-2020, 06:21 AM, Thread ID: 160388
Thread Closed
Zombie Survival is a gamemode made by JetBoom where humans either run or barricade to survive 6 waves of zombies. Specifically they use props found either lying around or doors hinged to frames to use for barricading entrances.
Doors, however must be damaged for a considerable amount (1000) of damage before breaking and the 15 damage swing of a barricader's hammer will take forever to break the door, which is an entity (prop_door_rotating).
Using the code for the hammerprovided, how do I make only doors receive 10x damage when struck by a hammer, and not striking a zombie?
Doors, however must be damaged for a considerable amount (1000) of damage before breaking and the 15 damage swing of a barricader's hammer will take forever to break the door, which is an entity (prop_door_rotating).
Using the code for the hammerprovided, how do I make only doors receive 10x damage when struck by a hammer, and not striking a zombie?
Code:
SWEP.Base = "weapon_zs_basemelee"
SWEP.PrintName = "Carpenter's Hammer"
SWEP.Description = "A simple but extremely useful tool. Allows you to hammer in nails to make barricades.\nPress SECONDARY FIRE to hammer in nail. It will be attached to whatever is behind it.\nPress RELOAD to take a nail out.\nUse PRIMARY FIRE to bash zombie brains or to repair damaged nails.\nYou get a point bonus for repairing damaged nails but a point penalty for removing another player's nails."
SWEP.DamageType = DMG_CLUB
SWEP.ViewModel = "models/weapons/v_hammer/c_hammer.mdl"
SWEP.WorldModel = "models/weapons/w_hammer.mdl"
SWEP.UseHands = true
SWEP.Primary.ClipSize = 1
SWEP.Primary.Automatic = true
SWEP.Primary.Ammo = "GaussEnergy"
SWEP.Primary.Delay = 1
SWEP.Primary.DefaultClip = 16
SWEP.Secondary.ClipSize = 1
SWEP.Secondary.DefaultClip = 1
SWEP.Secondary.Ammo = "dummy"
--SWEP.MeleeDamage = 35 -- Reduced due to instant swing speed
SWEP.MeleeDamage = 15
SWEP.MeleeRange = 50
SWEP.MeleeSize = 0.875
SWEP.UseMelee1 = true
SWEP.NoPropThrowing = true
SWEP.HitGesture = ACT_HL2MP_GESTURE_RANGE_ATTACK_MELEE
SWEP.MissGesture = SWEP.HitGesture
SWEP.HealStrength = 1
SWEP.NoHolsterOnCarry = true
SWEP.NoGlassWeapons = true
SWEP.AllowQualityWeapons = true
GAMEMODE:SetPrimaryWeaponModifier(SWEP, WEAPON_MODIFIER_FIRE_DELAY, -0.04)
GAMEMODE:AttachWeaponModifier(SWEP, WEAPON_MODIFIER_MELEE_RANGE, 3, 1)
function SWEP:SetNextAttack()
local owner = self:GetOwner()
local armdelay = owner:GetMeleeSpeedMul()
self:SetNextPrimaryFire(CurTime() + self.Primary.Delay * (owner.HammerSwingDelayMul or 1) * armdelay)
end
function SWEP:PlayHitSound()
self:EmitSound("weapons/melee/crowbar/crowbar_hit-"..math.random(4)..".ogg", 75, math.random(110, 115))
end
function SWEP:PlayRepairSound(hitent)
hitent:EmitSound("npc/dog/dog_servo"..math.random(7, 8)..".wav", 70, math.random(100, 105))
end
Users browsing this thread: 2 Guest(s)