Great system, forced me to learn vjass too.
Anyways I'm having trouble with one thing that I just can't figure out. I want it to be like a "thrown" bouncy ball from a spell, and the velocity is calculated in XYZ, so how would I make the velocity take the ball towards the target?
I'm also trying to make it so any kind of collision will make it bounce, like trees and stuff, but it's tough and will take time. I'm using items (like vexorian did I think) to check it if you are wondering, just the actual Z height of different models is what makes it difficult.
Edit: Okay figured it out. I just did...well this in the creation part (and many other things, like making the trigger into a spell):
static method create takes nothing returns bouncyBall
local bouncyBall b = bouncyBall.allocate()
local location l = GetSpellTargetLoc()
local location l2 = GetUnitLoc(GetTriggerUnit())
local location l3 = PolarProjectionBJ(l2, 600, AngleBetweenPoints(l2, l))
set b.position = vector.create(GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()),75.0)
set b.velocity = vector.create((GetLocationX(l3) - GetLocationX(l2))*MOVE_PERIOD,(GetLocationY(l3) - GetLocationY(l2))*MOVE_PERIOD,600.0*MOVE_PERIOD)
set b.ball = CreateUnit(GetOwningPlayer(GetTriggerUnit()), 'ewsp', 0.0,0.0,0.0)
call UnitAddAbility(b.ball, 'Amrf')
call UnitRemoveAbility(b.ball, 'Amrf')
set balls[ballNum].duration = 0
set l = null
set l2 = null
set l3 = null