| 02-21-2004, 04:46 AM | #1 |
I set about to make a caster system that is powerful and easy to use, for people who dont use JASS. Here is the simplist example: Code:
The Simplist Example
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Hexrod Ability
Actions
Set AoE_CastingPlayer = (Owner of (Casting unit))
Set AoE_TargetGroup = (Units within 200.00 of (Target point of ability being cast))
Set AoE_CasterAbility = Hex (Hiddencaster)
Set AoE_CasterOrder = (Order(hex))
Trigger - Run AoE Cast <gen> (ignoring conditions)Anyway, cool features: This system uses exactly one hiddencaster. As such it doesn't work for chainlightning & friends. It's possible to use base spells with projectiles (ie ensnare) and set the point where the projectile appears from. (ie so it appears a hero throws a flurry of nets to ensnare several units... see demo abilities in map) Implemented example abilities: Area Hex (item) Area Ensnare (charged item) Area Shadowstrike (point target, maximum of 6 targets) Your All Screwed: A channeled ultimate style spell that adds 3 different debuffs to all nearby enemy units. All four abilities work in slightly different ways (ie how the targetting works). |
| 02-21-2004, 04:54 AM | #2 |
I would reccomend JASS and locals and functions, for that could be changed if more than one cast quickly. |
| 02-21-2004, 06:04 AM | #3 |
There is not a single wait anywhere in my triggers. It is impossible for any of them to get interupted by simultaneous casts of other abilities. I seem to recall blizzard even guaranteed that if you have something like: Action - Run Trigger B That no trigger will run between the "Run Trigger B" action and Trigger B actually running. And from triggered tests involving multiple units casting different triggered abilities simultaneously there are no issues at all. Now if you can come up with a scenerio which breaks my system I would like to hear about it. But not before you actually test it, for I'll be hearing no meaningless speculation about what does and doesn't work. |
| 02-21-2004, 06:25 AM | #4 |
Screenshots are good right? The DH throws a flurry of nets : evilspirits are unleashed from the green portal and seek targets : nearby monsters are afflicted with every debuff in the book. |
| 02-21-2004, 09:24 PM | #5 |
I didn't see the map yet, (I am seeing yout thread for the first time in my life and I am not at home) but Although global variables and execute trigger work, you could try global variables and a Custom Script Line like: call AOECast() , easy to just cnp and would use the globals, just because triggers are handles and will take space in memory and a function call won't |
| 02-22-2004, 05:56 AM | #6 |
I believe and have emperical evidence that the use of triggers will cause no noticable increase in memory use. |
| 02-22-2004, 09:41 PM | #7 |
Saw the file and tested with chain lightning (changed evil spirits' abilities and orders) it doesn't work for that ability (only a chain lightning is cast and it suddenly stops) |
| 02-22-2004, 11:10 PM | #8 |
Thats nice vex, but I mentioned that in the original post. My system is designed to use a single hidden caster, and is designed to not work with cast-delay spells. To repeat, it is designed to not work with cast delay spells. For the vast majority of single-target spells the hiddencaster will (should) never by "busy", therfore no need for a "busy/idle" check when acquiring the caster. You just take it, and do whatever, my triggers ensure the caster always aims in the right direction so never needs time to turn. What I do is use a single hidden caster system for most spells, and a hiddencaster pool for cast-delay spells, AoE abilities based off cast delay abilities are far less common than those based off non-cast delay abilities, mainly because cast delay abilities are generally already AoE, making them even more AoE is generally overkill and most maps cant afford to have too many overkill spells. Soon I'll will polish and release my hiddencaster pool system, designed explicitly for use with cast delay spells, such as chainlightning, shackles and starfall. This system maybe integrated with the single caster system (there are compelling reasons to still use the single caster system, even with a caster pool system), and I may move to the function calls + globals methodolgy to reduce the amount of Copy'n'paste required to add the system to a map. |
