I have a hero (active object) that launches an attack (active object)

The attack object is supposed to be launched from action point

The attack object has static movement. initial direction (nothing checked).

so my event is

+ Anim 51 of hero is playing
+ current frame = 2
-> Launch attack object at 0,0 from hero object action point
But the attack object is launched at the top of the hero (several pixels above the hero).

It's weird because I don't know why this is happening. The hero's hot spot is the bottommost pixel, so it is not the hotspot position it is launching to.

I also have an event like this (Note: the hero doesn't change direct

+Always
-> Set attack's direction to hero's direction
I checked the direction of the attack and the hero using 2 editbox objects

+Always
-> Set text "Dir CLSN = "+Str$(Val(Str$(Dir( "Attack" ))))

+Always
-> Set text "Dir CLSN = "+Str$(Val(Str$(Dir( "hero" ))))
Based on the testing, the hero's direction is just either 0 or 16. But when I launched the attack, the direction of the attack is 24.

Please help

Edit:

I found the answer to the action point part of my problem. The attack object is being launched at the action point of frame 0. so I changed the action point of frame0 (1st frame) to the same position as action point of frame2 (3rd frame) and it fixed the position problem. But I would like to question why it happened when I specifically added a condition "Current frame = 2" in the event? please answer

As for the direction of attack object being 24, still nothing comes up why it is that way.