HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Shockwave-based spell problem

10-28-2006, 12:16 AM#1
Pyrogasm
I am currently working on a spell that is based off of shockwave that instead turns units ethereal instead of doing damage. The problem is that I gave the spell to a ranged hero (bloodmage), but since shockwave is a melee hero ability, the hero attacks the point the spell is cast on (at least, I think that is the problem). I tried screwing with the "Art - Animation Names" strings, but even if I remove the "attack" and "slam" strings and insert "spell" the hero still uses the attack animation once on the point or unit on which the spell was cast.

Help on what I could do to rectify this would be much appreciated. Also, if there is a better spell I could base this off of that would fix this, please tell me. I was thinking carrion swarm, but that does damage in a cone. Thanks!
10-28-2006, 01:17 AM#2
Joker
Im not quite sure where your going with this..
10-28-2006, 01:24 AM#3
Vexorian
wrong forum, moved to general.

I personally never got issues with shockwave on ranged heroes, and I am having problems understanding what the problem is, try explaining better?
10-28-2006, 04:30 AM#4
zen87
I'm not quite sure, is it because the bloodmage dont have a slam animation to start with ?
10-28-2006, 05:13 AM#5
Nubcookie
Is the spell actually cast?
10-28-2006, 01:50 PM#6
Mystic-Ssj5Goku
I THINK I understand. What he's saying is regardless of what Animation he gives the spell to play, It plays the Attack animation. Personally I think the Attack animation fits the Bloodmage well for what is essentially a released wave of energy.
10-29-2006, 12:04 AM#7
Pyrogasm
Did I post this in the wrong forum? Sorry about that. Anyway, the problem is not just using the attack animation, but that the bloodmage actually sends an attack projectile at the target point, preceeding the spell animation by about .25 seconds. The projectile does no damage, but I can't seem to figure out how to remove it.
My gut instinct says it has something to do with the "Art - Animation Names" part of the ability, but I haven't found anything that stops the bloodmage from sending a projectile at the target point.
10-29-2006, 02:34 AM#8
Vexorian
No, it doesn't attack the target point, it is the sphere ability of the bloodmage, the ability that gives him the flying spheres also adds a missile to the abilities he casts, to fix it you can remove the sphere ability of the bloodmage, or just remove the missile effect of the sphere ability
11-07-2006, 05:03 AM#9
Pyrogasm
I have a new problem regarding this spell. I fixed the animation, made it work like frost nova (target and all units around it are banished), and based it off of banish, doing most of the spell with dummy units; however, that is mostly irrelavant.

The 2 problems I have since run into are these: Number 1, it will always run the triggers for the 3rd level of the spell, even if I only learn "Planar Rift - level 1". The only thing I have found to fix it is to disable the level 3 triggers entirely, but that defeats the purpose of the spell. Problem 2: the number of units the dummy units cast their debuff on usually varies and is never all the units that should be effected by "Planar Rift".

I have uploaded the map, and more specific detail is on the loading screen. Thanks to anyone who wants to help a somewhat amature, non-JASS spell-maker out.
Attached Files
File type: w3xSome Bood Mage Spells.w3x (79.3 KB)
11-08-2006, 09:43 AM#10
Anitarf
Target point of ability being cast - you're using banish, which is a unit targeting spell. There's no target point. Use Position of (target unit of ability being cast) instead.

Casting unit - this is bugged, it can fail after a wait if other spells are cast in the meantime. Use Triggering unit instead.

Begins casting an ability - this event is wrong, it occurs when the unit begins it's spell animation, not when it actualy casts the spell. A player can abuse this by getting the triggered effects of the spell without actualy having to cast it. Use Starts the effect of an ability instead. This would also cause you to no longer need the wait action.

When the hero learns the skill, all learn triggers fire as they are turned on, apparently. You can simply fix this by adding an integer condition to each of them checking the level of the learned ability.

These are your most immediate problems, once they are fixed the spell should work. However, the way you make it work is just terrible. Let's see how we can improove it.

For starters, there's no need to have a seperate trigger, a seperate dummy unit, a seperate ability for each level. You could just have one dummy to rule them all, not just all levels of this one spell, but all spells that ever need to be cast. Then, you would need one dummy banish ability with the same number of levels as the hero ability, and in the end, this one simple trigger:
Trigger:
Planar Rift
Collapse Events
Unit - A unit Starts the effect of an ability
Collapse Conditions
(Ability being cast) Equal to Planar Rift (Banish Based)
Collapse Actions
Set Planar_Rift_Point = (Position of (Target unit of ability being cast))
Set Planar_Rift = (Units within 200.00 of Planar_Rift_Point matching (((Matching unit) is alive) Equal to True))
Collapse For each (Integer A) from 1 to (Number of units in Planar_Rift), do (Actions)
Collapse Loop - Actions
Set Planar_Rift_Unit = (Random unit from Planar_Rift)
Unit Group - Remove Planar_Rift_Unit from Planar_Rift
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(Planar_Rift_Unit has buff Planar Rift ) Equal to True
Collapse Then - Actions
Unit - Cause (Triggering unit) to damage Planar_Rift_Unit, dealing (25.00 + (50.00 x (Real((Level of Planar Rift (Banish Based) for (Triggering unit)))))) damage of attack type Spells and damage type Magic
Collapse Else - Actions
Do nothing
Unit - Create 1 Dummy for (Owner of (Triggering unit)) at Planar_Rift_Point facing Default building facing degrees
Set Planar_Rift_Dummy = (Last created unit)
Unit - Add Dummy Banish (multi level) to Planar_Rift_Dummy
Unit - Set level of Dummy Banish (multi level) for Planar_Rift_Dummy to (Level of Planar Rift (Banish Based) for (Triggering unit))
Unit - Add a 2.00 second Generic expiration timer to Planar_Rift_Dummy
Unit - Order Planar_Rift_Dummy to Human Blood Mage - Banish Planar_Rift_Unit
Custom script: call DestroyGroup( udg_Planar_Rift )
Custom script: call RemoveLocation( udg_Planar_Rift_Point )
Now this is more like it, it even cleans all it's memory leaks. This is a properly done GUI spell.
11-08-2006, 11:12 PM#11
Pyrogasm
I assumed it was a messy trigger, and so it was. Now I see that I just wasn't thinking out of the box enough. I didn't realize that I could add the ability to the dummy unit after it was spawned. That was pretty dumb. Thank you very much Anitarf. +Rep