this won't work.
since you set sub events - they will fire the same tick / next, and attacks animation won't end for let's say - 2.3 sec, and you don't know if it will hit, how long it flies and stuff. depends what kind of attack it is - melee or range?
the solution is next:
add local variable to attack named "didHit" with value 0.
when you activate the hit with some key (for example space) - set the animation on and wait till it ends. if it collided somewhere set didHit = 1.
once the animation ends - check if didHit is = 1, if it's 0 - kill player, otherwise don't do anything.
now this applies good for melee attacks, but what if you want a range projectile to check if it collided? add the same variable to the fired projectile.
on destroyed check if didHit is 0, if it is kill player, if not then nothing. ofcourse you will have to check if projectile collided and have a way to "terminate" projectile on miss... for example - starts with speed 400 and deceleration 100, after ~6seconds it will stop - therefore you destroy it when it reaches speed 0, which will trigger checking didHit. and ofcourse if collision happend you destroy it in that moment it hits (and set didHit to 1ofc)