Bien recientemente me dispuse a finalmente aprender algo de vJass, aunque para ser sincero con suerte entiendo las funciones private , constant, y la diferencia entre Library y Scope.
El punto esta en que tuve que arreglar algo en este mapa debido a que existian funciones que retornaban "null", y eso no permitia que funcionara.
https://www.hiveworkshop.com/threads/system-custom-projectiles.162121/
Aun asi por si alguien desea echarle un vistazo dejo el link.
A mi parecer se ve bastante util, aunque no es bastante optimo ya que probe el mapa con 200 projectiles en el aire, y efectivamente se lagea bastante, aunque no creo tener mas de 100 proyectiles en mi mapa.
Los errores fueron corregidos aqui.
[Jass]static method projectionVector takes vector projected, vector direction returns vector
local vector v = vector.allocate()
local real l = direction.x*direction.x+direction.y*direction.y+direction.z*direction.z
if l == 0.0 then
call v.destroy()
debug call BJDebugMsg("Attempted to project onto a vector with no length!")
return 0
endif
set l = (projected.x*direction.x+projected.y*direction.y+projected.z*direction.z) / l
set v.x = direction.x*l
set v.y = direction.y*l
set v.z = direction.z*l
return v
endmethod
//------
static method projectionPlane takes vector projected, vector normal returns vector
local vector v = vector.allocate()
local real l = normal.x*normal.x+normal.y*normal.y+normal.z*normal.z
if l == 0.0 then
call v.destroy()
debug call BJDebugMsg("Attempted to project onto an undefined plane!")
return 0
endif
set l = (projected.x*normal.x+projected.y*normal.y+projected.z*normal.z) / l
set v.x = projected.x - normal.x*l
set v.y = projected.y - normal.y*l
set v.z = projected.z - normal.z*l
return v
endmethod[/Jass]
Si alguien porfavor pudiese probar el mapa, decirme que ocurre con esa extraña advertencia.