• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

A fireball missile unit and ground target

Level 12
Joined
Oct 28, 2019
Messages
479
Hi everyone, Im making a warlock of fire that casts fireballs
The fireball rules the missile projectile system (detonates when find unit or tree for ex)

I´ve not tried yet, I will do this today,

Would know if is possible, the fireball have two ways of target
1) ground - it explodes when reach the target point ground or unit or tree
and
2) Target Unit, in this case the fireball will chase the unit.

anyways was this TY to all!
 
Level 12
Joined
Oct 28, 2019
Messages
479
Very good! Worked, any suggestion of special effects at the moment that the fireball explode?
Im using the projectile Red Dragon Missile, the explosion the Mortal Dwarf explosion, and Mark of death sound at moment of casting the fireball

Other thing, the fireball after X seconds expires and explode even without hit anyone
 
Last edited:
Level 12
Joined
Oct 28, 2019
Messages
479
Need make one more thing here,
the fireball is working via Missile system. But has other issue, If the target is a unit, the fireball will search the enemy, but after X seconds the fireball must explode

Ive tried via countdown timer, but not working

I have Unit colision event, Tree colision event, and End event

  • Timer Fireball
    • Events
      • Time - TimerFireball expires
    • Conditions
    • Actions
      • Set VariableSet Fireball_position = (Position of Missile__Dummy)
      • Unit - Create 1 Dwarf Dummy Fireball for Neutral Passive at Fireball_position facing Default building facing degrees
      • Unit - Add a 10.00 second Generic expiration timer to (Last created unit)
      • Unit - Order (Last created unit) to Attack Ground Fireball_position
      • Set VariableSet Missile__WantDestroy = True
      • Custom script: call RemoveLocation(udg_Fireball_position)
 
Level 25
Joined
Sep 26, 2009
Messages
2,381
a single timer would break this if it needs to be MUI. Dynamic timers would be more usable, but is a more advanced topic, as you would basically have to have a timer pool where you keep your registered timers are recycle them (since you can add new timer event, but you cannot unregisters events).

If the missile system you use allows you to set trigger that should execute when the missile reaches the target, then you can easily just use timed life:
  • On missile's creation, give it a timed life of X seconds
  • Create a trigger that reacts to when the missile dies - do here whatever you want to do when fireball explodes mid-flight
  • When the missile system detects that the fireball reached its target then turn off the previous point's trigger, then do whatever you do when fireball reaches the target, then kill the fireball and finally turn back on the previous point's trigger
 
Level 12
Joined
Oct 28, 2019
Messages
479
a single timer would break this if it needs to be MUI. Dynamic timers would be more usable, but is a more advanced topic, as you would basically have to have a timer pool where you keep your registered timers are recycle them (since you can add new timer event, but you cannot unregisters events).

If the missile system you use allows you to set trigger that should execute when the missile reaches the target, then you can easily just use timed life:
  • On missile's creation, give it a timed life of X seconds
  • Create a trigger that reacts to when the missile dies - do here whatever you want to do when fireball explodes mid-flight
  • When the missile system detects that the fireball reached its target then turn off the previous point's trigger, then do whatever you do when fireball reaches the target, then kill the fireball and finally turn back on the previous point's trigger
Ok, but dont know how do this. This case, the fireball will explode, if the target unit evades the fireball, and the fireball will try to seek the target, but after a while it will explode

  • Missile Fireball
    • Events
      • Unit - A unit owned by Player 1 (Red) Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fireball (Warlock of Fire)
    • Actions
      • Sound - Play MarkOfChaos <gen> at 100.00% volume, located at (Position of (Casting unit)) with Z offset 0.00
      • Countdown Timer - Start TimerFireball as a One-shot timer that will expire in 5.00 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Target unit of ability being cast) Equal to No unit
        • Then - Actions
          • Trigger - Run Missile Configurate <gen> (ignoring conditions)
          • Set VariableSet Missile__TempLoc = (Target point of ability being cast)
          • Set VariableSet MissileFireball = (Target point of ability being cast)
          • Set VariableSet Missile__Source = (Casting unit)
          • Set VariableSet Missile__Owner = Player 1 (Red)
          • Set VariableSet Missile__Origin = (Position of Missile__Source)
          • Set VariableSet Missile__Impact = (Target point of ability being cast)
          • Set VariableSet Missile__ImpactZ = 50.00
          • Set VariableSet Missile__OriginZ = 50.00
          • Set VariableSet Missile__Speed = 300.00
          • Set VariableSet Missile__Collision = 15.00
          • Set VariableSet Missile__Arc = 0.00
          • Set VariableSet Missile__Model = Abilities\Weapons\RedDragonBreath\RedDragonMissile.mdl
          • Set VariableSet Missile__OnCollideDestructable = Missile Collision Tree Fireball <gen>
          • Set VariableSet Missile__OnCollideUnit = Missile Collision Unit Fireball <gen>
          • Set VariableSet Missile__OnFinish = Missile End Fireball <gen>
          • Trigger - Run Missile <gen> (ignoring conditions)
          • Custom script: call RemoveLocation(udg_Missile__TempLoc)
        • Else - Actions
          • Trigger - Run Missile Configurate <gen> (ignoring conditions)
          • Set VariableSet Missile__OriginZ = 50.00
          • Set VariableSet Missile__ImpactZ = 50.00
          • Set VariableSet Missile__Speed = 300.00
          • Set VariableSet Missile__Collision = 30.00
          • Set VariableSet Missile__Model = Abilities\Weapons\RedDragonBreath\RedDragonMissile.mdl
          • Set VariableSet Missile__Target = (Target unit of ability being cast)
          • Set VariableSet Missile__Turn = 0.60
          • Set VariableSet Missile__Source = (Casting unit)
          • Set VariableSet Missile__Owner = Player 1 (Red)
          • Set VariableSet Missile__Origin = (Position of Missile__Source)
          • Set VariableSet Missile__OnCollideDestructable = Missile Collision Tree Fireball <gen>
          • Set VariableSet Missile__OnCollideUnit = Missile Collision Unit Fireball <gen>
          • Set VariableSet Missile__OnFinish = Missile End Fireball <gen>
          • Trigger - Run Missile <gen> (ignoring conditions)
          • Custom script: call RemoveLocation(udg_Missile__TempLoc)
 
Top