@name SuperPunch_Follow_V7
@persist Owner:entity Range Damage LastPunch WeaponClass:string
@trigger all
if (first()) {
Owner = owner()
Range = 110 #
Damage = 30 #
WeaponClass = "weapon_fists"
LastPunch = 0
#
entity():setAlpha(0)
entity():propNotSolid(1)
timer("logic", 50)
}
if (clk("logic")) {
# 1. ( )
# : 80
entity():setPos(Owner:pos() + vec(0, 0, 80))
# 2.
if (Owner:keyAttack1() && Owner:weapon():getClass() == WeaponClass) {
if (curtime() > LastPunch + 0.5) {
Forward = Owner:eyeAngles():forward()
rangerFilter(Owner)
#
Trace = rangerOffset(Range, Owner:shootPos(), Forward)
Targ = Trace:entity()
if (Targ:isValid() && Targ != Owner) {
#
Targ:takeDamage(Damage, Owner, entity())
# ( )
soundPlay(1, 0, "physics/body/body_medium_break" + randint(2,4) + ".wav")
soundPlay(2, 0, "physics/body/body_medium_impact_hard" + randint(1,6) + ".wav")
LastPunch = curtime()
}
}
}
timer("logic", 50)
}