1.
package what
{
function Armor::onImpact(%this,%obj,%col,%pos,%speed)
{
new Projectile()
{
dataBlock = what;
initialPosition = %pos;
initialVelocity = "0 0 1";
sourceObject = "";
client = "";
sourceSlot = 0;
originPoint = %pos;
};
Parent::onImpact(%this,%obj,%col,%pos,%speed);
}
};
activatePackage(what);
2. Possibly, if some sort of hack was involved, where you add velocity while the key is down and checks if the player is walking some how.
3. Mentioned by Amade.