• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Bombard Spell

Status
Not open for further replies.
Level 10
Joined
Nov 5, 2008
Messages
536
Hello!

Every player on my map has a "fortress" that starts upon a hill. I would like to give the fortress some kind of bombard spell, which fires one or many projectiles over an area, dealing AOE-damage.


I have tried to base this spell on Cluster Rockets, but when I type in cast range to 2000, the rockets move incredible fast, even thought I lower the missile speed. I want the enemy to be able to avoid these missiles if he micro fast enought.

Anyone know how to make a bombard spell?
 
Level 16
Joined
Jul 21, 2008
Messages
1,121
You can make it with dummy units that cast Flame Strike at random points.

Add custom ''Sphere'' ability to units because sphere can add missile (Art - Missile Art) to any spell (blink, entangling roots...).


You can add new conditions and change area of effect. Modify Marked Numbers.

Set TempPoint = (Random point in (Region centered at (Position of (Triggering unit)) with size (800.00, 800.00)))

  • Bombard
    • Events
      • Unit - A unit Finishes casting an ability
    • Conditions
      • (Ability being cast) Equal to <Bombard>
    • Actions
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Set TempPoint = (Position of (Triggering unit))
          • Unit - Create 1 Footman for (Owner of (Triggering unit)) at TempPoint facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_TempPoint)
          • Set TempPoint = (Random point in (Region centered at (Position of (Triggering unit)) with size (800.00, 800.00)))
          • Unit - Order (Last created unit) to Human Blood Mage - Flame Strike TempPoint
          • Custom script: call RemoveLocation(udg_TempPoint)
 
Level 10
Joined
Nov 5, 2008
Messages
536
Thanks for the trigger!

If I get this correct: A spell creates a unit at a position and the unit casts flamestrike on the ground. The sphere ability makes it look like a missile is fired from the Fortress to the point where the dummy-unit is created.
But I wonder which spell is most efficent to base Bombard on?
 
Level 16
Joined
Jul 21, 2008
Messages
1,121
You can base it on every AOE spell. You can bese it on Flame Strke (if you want ''bomb'' to burn fround), Inferno (if ''bomb'' will stun), Rain of Fire, Blizzard etc.... But most efficient would be triggered channel or Rain of Fire.

I would make it with Rain of Fire. You ccan modifi effect and damage, Even overtime damage.
 
Level 10
Joined
Nov 5, 2008
Messages
536
Hmm.. Three tiny problems occur:

-The spawned dummy units spawns at the location of the caster, not at the targeted area.
-The dummy-unit does not cast any spell even if I order it via trigger to do so.
-Sphere does not show any missle when I cast the spell. The missile is very important, I want the destruction to begin when the missile hits it's targeted area.

  • Bombard
    • Events
      • Unit - A unit Finishes casting an ability
    • Conditions
      • (Ability being cast) Equal to Bombard (Rain of fire)
    • Actions
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Set BombardPosition = (Position of (Triggering unit))
          • Unit - Create 1 Dummy-unit for (Owner of (Triggering unit)) at BombardPosition facing Default building facing degrees
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_BombardPosition)
          • Set BombardPosition = (Random point in (Region centered at (Position of (Triggering unit)) with size (400.00, 400.00)))
          • Unit - Order (Last created unit) to Human Blood Mage - Flame Strike BombardPosition
Anyone has any clue what I am doing wrong?
 
Tiny problem 1)
  • Set BombardPosition = (Position of (Triggering unit))
    • Unit - Create 1 Dummy-unit for (Owner of (Triggering unit)) at BombardPosition facing Default building facing degrees
Of course it will spawn at the position of the caster, since you create it there. I haven't seen the Target Point of ability being cast stored anywhere.

Tiny problem 2)
You might want to check the mana cost of the spell and the range of it.

Tiny problem 3)
Huh?

P.S. Why exactly do you use Integer A? You don't seem to really use it. I don't see any [IntegerA].
 
Level 10
Joined
Nov 5, 2008
Messages
536
Thanks for your answear Pharaoh_

1) How do I change so the dummy-unit is spawned at the targeted area?

2) since I use this line:
  • Unit - Order (Last created unit) to Human Blood Mage - Flame Strike BombardPosition
Perhaps the line only refers to the original flame strike hero ability, and thereby the trigger does not relate to my custom flame strike?

You can make it with dummy units that cast Flame Strike at random points.

Add custom ''Sphere'' ability to units because sphere can add missile (Art - Missile Art) to any spell (blink, entangling roots...).

3) I thought that meant that when the spell is casted, a missile is created in some way?

4) Integer A.. Well, is there anythiing better to replace it with?

Ps. perhaps I am takeing a wrong turn with this spell. The original idea is that I want the fortress to fire one or many missiles over an area, dealing AOE-damage. The missiles shall be able to avoid if the enemy has good micro and is fast enought.
 
1) Set TargetPoint = (Target point of ability being cast)
Unit - Order (Last created unit) to Human Blood Mage - Flame Strike TargetPoint
Custom script: call RemoveLocation (udg_TargetPoint)
2) No, don't be that naive. If the spell has the ability ID unmodified, it will work normally. Don't forget to make it "Stats - Hero ability -> False".
3) Give the dummy a model of the missile?
4) Integer A. Just don't add it, why should you replace it?

The triggers should go like this:
  • Bombard
  • Events
    • Unit - A unit starts the effect of an ability
  • Conditions
    • (Ability being cast) Equal to (Bombard (Rain of fire))
  • Actions
    • Set Caster = (Triggering unit)
    • Set TargetPosition = (Target point of ability being cast)
    • Unit - Create 1 Dummy-unit for (Owner of (Caster)) at TargetPosition facing default building degrees
    • Set Dummy = (Last created unit)
    • Trigger - Turn on (arrow move <gen>)
  • arrowmove
  • Events
    • Time - Every 0.03 seconds of game-time
  • Conditions
  • Actions
    • Set Point1 = (Position of (Dummy))
    • Set BombardPosition = (Position of (Caster))
    • Set Point2 = ((Point1) offset by 10.00 towards (Angle from (BombardPosition) to (TargetPosition)
    • Unit - Move (Dummy) to Point2 facing (TargetPosition)
    • If/ Then/ Else
      • If (Conditions)
        • ((Distance between (Point1) and (TargetPosition)) Less than Or Equal to 40.00
      • Then (Actions)
        • Set Point3 = (Random point in (Region centered at (BombardPosition)) with size (400.00, 400.00)))
        • Unit - Order Dummy to Human Blood Mage - Flame Strike (Point3)
        • Custom script: call RemoveLocation (udg_Point3)
        • Custom script: call RemoveLocation (udg_TargetPosition)
      • Else (Actions)
    • Custom script: call RemoveLocation (udg_Point1)
    • Custom script: call RemoveLocation (udg_Point2)
    • Custom script: call RemoveLocation (udg_BombardPosition)
  • Trigger3
  • Events
    • Unit - A unit starts the effect of an ability
  • Conditions
    • (Ability being cast) Equal to <your dummy ability>
  • Actions
    • Unit - Add a 2.20 second generic expiration timer to (Triggering unit)
 
Status
Not open for further replies.
Top