HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Shoot while moving

09-10-2007, 09:42 PM#1
-= U.I.O.P =-
ok, this might be the wrong place to ask, but your system is really great and I was wondering if anyone can help me use it to create a good solution for a problem I have...

I'm making a map that rely on masses of trainable units that should be able to shoot while they are moving. I know that this could be done with a Phoenix Fire ability (if I just remove the burn duration), but the problem I have is that Phoenix Fire counts as a spell and therefore ignores damage reduction gained from hardened skin (an ability almost every unit in my map will have).

Is there a possibility to write an efficient code (most probably using your caster system), that will mimic the phoenix fire ability. In order to allow units to "auto-attack" while moving, without ignoring hardened skin?

I have no problem with having the units display damage 0-0, and having a dummy ability that tells the player the damage they really inflicts.

(In either case I will use your Caster System anyway, as that will work great for having my Siege units projectiles deviate from their intended targets )
09-10-2007, 11:11 PM#2
Vexorian
"Efficiently" is a wide word, if you make a super optimized turret system it would not cause lag to your map yet it wouldn't be called efficient by some since it requires a constant time.

I think this thread would do better in triggers and scripts. Bassically, it depends on the kind of attack you want, for example a tank-like thing could just use a turret, a knight should even customize the movement itself...
09-11-2007, 06:16 AM#3
botanic
as for the actual ability you could do something like this

event
every x gametime
condition
action
pick every unit with ability w/e
set U = random unit within 600 of picked unit
order picked unit to damage S for x damage of type w/e
call removeunit(udgU)

just add the special effect and change the specific values
09-11-2007, 12:21 PM#4
Tide-Arc Ephemera
You could always make a dummy unit to attack if you wanted to add a model to it... less effort and more customizable that way.
09-11-2007, 12:48 PM#5
botanic
dummy unit... humm ya do that, forget what I said earlier :P
09-11-2007, 01:21 PM#6
erwtenpeller
The problem is having attack animation and walking animations at the same time, something that is barely doable in wc3, and virtually impossible without custom models.
09-11-2007, 04:32 PM#7
botanic
the easy war is a custom model that has a walk2 animation the hard (and worse looking) way is to make the unit play the animation while you "slide" it
09-11-2007, 04:56 PM#8
erwtenpeller
Even with a walk2 it's only be able to shoot forwards, and sincing the shooting with actually attacking would be hard as hell. I think the best way would actually be to make two models, one for the legs, and one for the torso. You can then have the torso play attack animations and slightly turn to sides for a strafing effect, and you can have the legs move normally. This would however require really close cooperation between animator and coder.
09-11-2007, 08:50 PM#9
botanic
humm maby have a set of 4 animations (attack 3-7 or w/e) that are a moving attack that is 90 degrees off the other one.

@erw - that would cause lots of problems with selection and the preview camera. The only feesable fix i can think of would be to make the legs invunerable and have locust, as well as make the legs also take all move orders that the torso takes... i must say tho it would be a pain to animate/model something that precise... but i suppose it COULD be done.
09-11-2007, 10:21 PM#10
-= U.I.O.P =-
Whoa! Heh, I'm thinking of just scaling down the models and add some special effects to them when they are shooting (or something like that).
The important thing will be to get it working, there is no need for it to look fancy ;-P

At first I didn't like the "every x gametime" event type, as it will make all units fire at the same time, but it seems like a reasonable option.
I am thinking of either creating a dummy unit and have it fire a standard attack against the target or to use the DamagingProjectileLaunchTargetLoc(...) from Vexorian's system.

What would be the most efficient of those two?

A third option would be to create an invisible unit (with their animation backswing point set to zero) over the head of every newly spawned unit, and instantly move them to the position of the unit at short intervals.
But how would I then know what "invisible unit" I would need to move to what "moving unit"?
And how would I know which "invisible unit" to destroy when their "moving unit" dies?
09-11-2007, 10:55 PM#11
botanic
pick all unit with ability w/e
pick unit within x of picked unit
09-12-2007, 04:46 PM#12
-= U.I.O.P =-
yeah, but then there will not be a projectile (and that might look a bit strange, as that will be the only obvious thing that tells the player that his units are actually shooting).

There does not seem to be any way to detect when a "Phoenix Fire" attack hits a target, and I guess that there is no way around this

I'll try to use Vex function for my projectiles for now.
09-12-2007, 04:56 PM#13
botanic
ok well here is the whole thing of what I ment then

pick all unit with ability w/e
set U = random unit within x of picked unit
create Dummy at position of picked unit
order dummy to attack U
09-12-2007, 05:07 PM#14
erwtenpeller
Quote:
Originally Posted by -= U.I.O.P =-
The important thing will be to get it working, there is no need for it to look fancy ;-P
Its not a matter of looking fancy, its a matter of looking like its working.
09-12-2007, 05:42 PM#15
SeruK
Quote:
Originally Posted by erwtenpeller
Even with a walk2 it's only be able to shoot forwards, and sincing the shooting with actually attacking would be hard as hell. I think the best way would actually be to make two models, one for the legs, and one for the torso. You can then have the torso play attack animations and slightly turn to sides for a strafing effect, and you can have the legs move normally. This would however require really close cooperation between animator and coder.
Actually you could make the torso lock trough animation triggers.