Bref...
La meilleure solution à mon avis est de stoquer dans le cache. Il n'existe malheureusement aucune fonction qui puisse aller chercher le path du modèle en se fiant uniquement avec GetUnitTypeId(), il faut alors le stoquer dans le cache comme suis:
call SetString(H2S('XXXX'),"PathModele","units\\undead\\Abomination\\Abomination.mdl" )
où 'XXXX' est le code en entier de l'unité.
Avec ça tu peux stoquer facilement tous les unités qui sont passibles d'êtres attrapées. Ensuite, tu peux aller chercher dans le cache la valeur avec call GetString(H2S(GetUnitTypeId(GetTriggerUnit())),"PathModele" ) et ça va te renvoyer le modèle du path correspondant au type de l'unité. De là tu as ta valeur.
Ensuite avec ça, tu ne peux malheureusement bouger un effet spécial de façon esthétique. Le mieux est d'utiliser une unité bidon ayant comme modèle .mdx (null) et d'ensuite ajouter comme effet spécial à cette unité le modèle de l'unité attaqué en question. Après là il faut un minimum de connaissance en JASS pour pouvoir utiliser un système de projectile/missile (plus missile dans ton cas) pour bouger l'unité périodiquement suivant une trajectoire et dommager tous les unités sur la ligne.
call HideUnit(GetTriggerUnit(),true) fonctionne normalement, je ne vois pas ce qui ne fonctionne pas.
La carte que tu parles est celle de Bryce, c'est écrit en vJass. C'est très bien fait mais il faut peut-être commencer par des choses plus faciles pour en arriver là.
Bonne chance.