Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
Set CR_loc2 = (CR_loc offset by CR_distance towards CR_angle degrees)
Special Effect - Create a special effect at CR_loc2 using CR_effect
Special Effect - Destroy (Last created special effect)
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units within CR_detect_range of CR_loc2 matching (((Matching unit) belongs to an enemy of (Owner of CR_unit)) Equal to True)) and do (Actions)
Loop - Actions
Custom script: local integer h = GetHandleId(udg_CR_unit)
Custom script: local boolean b = LoadBoolean(udg_CR_hash, h, GetHandleId(GetEnumUnit()))
Unit - Cause CR_unit to damage MS_Source1, dealing CR_damage[(Level of CR_ability for CR_unit)] damage of attack type CR_attack_type and damage type CR_damage_type
Set MS_Target1 = CR_unit
Set MS_Heal1 = ((Max life of (Picked unit)) x CR_leach[(Level of CR_ability for CR_unit)])
Trigger - Run CR Missile Settings <gen> (ignoring conditions)
Trigger - Run CreateMissile <gen> (checking conditions)
Custom script: endif
Custom script: call RemoveLocation(udg_CR_loc2)
Custom script: call RemoveLocation(udg_CR_loc)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
CR_distance Greater than or equal to CR_area[(Level of CR_ability for CR_unit)]
Was brought to my attention that this spell fails some of the requirements to be approved.
The following issues must be resolved before the spell map can be approved.
The map description fields must be set to attempt to uniquely identify the map...
in cast you could use CR_unit instead of GetTriggerUnit() within the loop.
Use an integer variable instead of bj_forLoopAIndex.
if b == false then --> if not b then.
Custom script: call SaveBoolean(udg_CR_hash, GetHandleId(udg_CR_unit), GetHandleId(GetEnumUnit()), true) --> you have the handle id stored in "h", use the variable.
in cast you could use CR_unit instead of GetTriggerUnit() within the loop.
Use an integer variable instead of bj_forLoopAIndex.
if b == false then --> if not b then.
Custom script: call SaveBoolean(udg_CR_hash, GetHandleId(udg_CR_unit), GetHandleId(GetEnumUnit()), true) --> you have the handle id stored in "h", use the variable.
Noticed a few small details that were missed when you updated this:
- You use GetTriggerUnit() in the cast trigger when you already have CR_unit set to the triggering unit
- Trigger names should have the same prefix as your variables (CR Loop for example)
- Small note that it'd make sense to put the missile setup in with the init trigger, just reduces the amount of triggers to import at no cost
- Collision size of the outgoing projectiles should be configurable
- Add a version number to the resource
- You reference picked unit twice in the loop (once to assign to a variable, the other time to damage it)
- You also reference picked unit again when you remove it from the unit group when it should be CR_unit
- Change the folder name to match the spell, people need to be able to easily import and locate the files later
That's fair enough, just a note that you missed out the AOE of outgoing projectiles (Pick units within 50.00 of (...)) into the cofigurables, the resource is however in an approvable state now, thanks for your work - it's a great looking spell which can have a lot of uses
edit: I added the damage and attack type, the other require me to edit the code which is not something I want to do at the moment since I have not touched this spell in a while, I barely know how it works anymore.
I am getting compile error from these two lines :
set udg_MS_tempreal[2] = ParabolaZ(udg_MS_MissileH2[udg_MS_Integer[3]], udg_MS_tempreal[1], udg_MS_distance[udg_MS_Integer[3]])
set udg_MS_tempreal[4] = (ZFacing(udg_MS_MissileH2[udg_MS_Integer[3]], udg_MS_tempreal[1], udg_MS_distance[udg_MS_Integer[3]])+90)
''Symbol not declared''
(ParabolaZ)
(ZFacing)
what does it means? and how can I fix it?
function ParabolaZ takes real h, real d, real x returns real
return (4 * h / d) * (d - x) * (x / d)
endfunction
function ZFacing takes real h, real d, real x returns real
return Atan(4*h/d - 8*h*x/(d*d))*bj_RADTODEG+0.5
endfunction
Hey, I was wondering if I had done something wrong, because I transfered this spell to my map and everything worked except for the healing part. Then I went back to the original map and reduced the health of the caster there to 1% and casted the spell. It seems the healing does not work on that map ethier. Any chance someone could help me fix it? Thanks
Was brought to my attention that this spell fails some of the requirements to be approved.
The following issues must be resolved before the spell map can be approved.
The map description fields must be set to attempt to uniquely identify the map from other maps. This is to allow the map to be more easily searchable from the in game custom game list. Just another "Just another Warcraft III map" is not useful for searching. Player 2 must also be at least an empty slot to allow the map to be started. Although this is not the recommended approach to test spell maps, some people might prefer doing this which is why it must be supported.
The singular contained ability must function as described. It claims that it heals the caster for a percentage of affected enemy unit life but it does not when cast. The visuals appear indicating that it should, but no healing occurs.
The test map should allow every aspect of an ability to be tested without modification. There currently is no way to damage the ability test unit to check if the ability healing mechanic is working correctly. This is likely why issue 2 was not detected sooner.
The first point is not really fair. When this map was uploaded the resource section did not use the internal map name at all. You will find hundreds of spells that have not bothered to change this.
As for the rest.. doubt I will bother to update it as I no longer use GUI.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.