• 🏆 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!

Draco Tank Drone v1.2

  • Like
Reactions: deepstrasz
DRACO TANK DRONE
IMPORT GUIDE :
1. You will need latest Reforged patch if you want to use the map, but you can mimic the GUI easily with patches above 1.29 manually
2. Copy the Variables, then Requirements Folder to your map if you don't have them on your map yet (I would recommend download from their official source here) [You can skip this if the unit used is guaranteed to be an air unit with proper air unit settings]
3. Copy the Draco Tank Drone Folder to your map
4. Configure the DTD Config to your needs, but first of all, MAKE SURE THAT THE LOOP TRIGGER IS SET PROPERLY!
5. Read how to register units into the system, examples provided in the map
DESCRIPTION :
The Siege Engine releases a drone from its body upon death, attacking the enemy from the air after a short delay. The drone is permanent but weak against anti-airs.
INFORMATION :
Based on Mental Omega APYR Draco Tanks' on death behavior. One can argue that this entry (for 1.1 onward) looks similar to Hydra's ability. The whole difference is that the drone is delayed when released from the tank, which means there's a short delay before they are actually part of the combat (and with settings, one can shot down the drone before they deal any damage).
MEDIA SHOWCASE :
CHANGELOG :
1.2: Another Overhaul
- Extended the system to support multiple unit pairs
1.1: Major Overhaul
- This is no longer a joke entry
- The mechanic is reworked to fit the Draco Tank Drone mechanic better
- Added configurable items, cause you'll need them now
1.0: Release
CREDIT :
Mentalmeister - Mental Omega APYR
@ProxyCakey - Port Idea
Contents

Draco Tank Drone v1.2 (Map)

Reviews
Wrda
It's preferable to use the condition BlzGroupGetSize(DTD_DroneGroup) == 0 instead of "(Number of units in DTDDroneGroup) Equal to 0" when turning off trigger, since it doesn't loop through all units internally. The same could be said when turning on...
Level 21
Joined
Mar 29, 2020
Messages
1,237
categorically speaking this might make more sense as a mini tutorial (since that is in essence what you are going for) than in the spell section.

It's funny how underwhelming this is compared to all of your really impressive spells... :wink:
 
categorically speaking this might make more sense as a mini tutorial (since that is in essence what you are going for) than in the spell section.

It's funny how underwhelming this is compared to all of your really impressive spells... :wink:
I doubt it fits there either, to be honest. I'm planning to rework this to mimic the logic better since in the original reference the drone has a 'fly' delay before combat functional, but dunno when I can actually get to that.

Yeah, it is like the broken chord in my collection of spells. I need to rework this if I'm planning to keep it and clean up my collection.

EDIT:

Reworked the entry
 
Last edited:

Wrda

Spell Reviewer
Level 25
Joined
Nov 18, 2012
Messages
1,870
Honestly, this one looks underwhelming. It doesn't really look like a spell, more like a system, which only allows one unit type, it's also quite restrictive.
I don't understand why you need Unit Indexer at all, nor know why you need array variables here. Each unit's parameters can already be accessed independently, thus replacing the variables:
DTDDroneCurrentHeight = current unit flying height (and the start height)
DTDDroneAscendTime = checking reaching unit's default height (if currentheight + speed > defaultheight then stop and set the current height to default one)
So fly speed would be calculated on loop instead on initialization.
Also, regarding DTDDroneDelay, why is it part of the flying speed calculation? If it's supposed to be activation delay, it doesn't make sense to be there.

All in all, it's useful.
 
Honestly, this one looks underwhelming. It doesn't really look like a spell, more like a system, which only allows one unit type, it's also quite restrictive.
I don't understand why you need Unit Indexer at all, nor know why you need array variables here. Each unit's parameters can already be accessed independently, thus replacing the variables:
DTDDroneCurrentHeight = current unit flying height (and the start height)
DTDDroneAscendTime = checking reaching unit's default height (if currentheight + speed > defaultheight then stop and set the current height to default one)
So fly speed would be calculated on loop instead on initialization.
Also, regarding DTDDroneDelay, why is it part of the flying speed calculation? If it's supposed to be activation delay, it doesn't make sense to be there.

All in all, it's useful.
I think I need to re-read my whole code again and check the base reference (Mental Omega) why I do it like that. Been quite a while since last checking this one.
 

Wrda

Spell Reviewer
Level 25
Joined
Nov 18, 2012
Messages
1,870
It's preferable to use the condition BlzGroupGetSize(DTD_DroneGroup) == 0 instead of
"(Number of units in DTDDroneGroup) Equal to 0" when turning off trigger, since it doesn't loop through all units internally. The same could be said when turning on, except that would check if it's equal to 1 instead of 0, of course. This won't be something that will happen a lot of time, so it's not a big deal.

Nonetheless, the spell looks pretty fun now.

Approved
 
Top