[Contest] Holy Spells Contest!

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>I like your ability! A smaller sized version of it would be really neat for an AoS
Oh...i will edit it and add a constant function for the size of the spell...

By the way...what smaller sized you referring?
 

Meowier

New Member
Reaction score
6
Hmmm... the whole spell effect. It's just quite large, with the spell effects and such. In a way it's a bit overwhelming and in a game, it'd look a bit weird...
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
The effect wont hurt....
But i will add a option to make it able to modify the radius of the spell
 

ManyTimes

I'm so lonesome I could cry...
Reaction score
293
Spell - Holy Spirits

Tooltip: Slams the ground, stunning and damaging nearby enemy land units. While the nearby enemies are stunned the holy spirits comes to life. They will either heal ManyTimes or strike the stunned units with so much damage, the world has never ever seen before.

Have Fun!
 

Attachments

  • Clipboard01.jpg
    Clipboard01.jpg
    82.9 KB · Views: 298
  • ManyTimes' Holy Spell.w3x
    44 KB · Views: 237

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
ManyTimes...Your spell picks even the death....
Add a condition Matching Unit is Alive equal to false
 

ManyTimes

I'm so lonesome I could cry...
Reaction score
293
yeye....
Care! But fixed it ....And btw, you mean
"matching unit is alive equal to TRUE" not false :)
At least you should mean that! Else i Would pick ONLY dead units :p
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
just a testing to you...:p:p:p

Quite a bad explaination :p
 

emjlr3

Change can be a good thing
Reaction score
395
Holy Bonds
Alpha

Conjure a wave of holy energy, bonding you and up to 5 other allies, granting bonus armor for every bonded ally. Lasts 15 seconds or until a bonded unit breaks the link. Only units with less then full health can be target by the holy wave.

Note: *for some reason the lightnings do not show up where I really want them too....?
*if more then 5 units get targeted at a time, it sometimes breaks....?

enjoy!

JASS:
scope HolyBonds

globals
    //config options:
    private constant integer abil_id = 'A001' //ability rawcode
    private constant integer dummy_abil = 'A000' //dummy armor ability
    private constant integer max_bonds = 6 //maximum number of bonds, also the max level of the dummy armor ability
    private constant real area = 500. //area to look for allies to bond together
    private constant real interval = .025 //speed of periodic timer
    private constant real length = 15. //length of effect
    private constant string light = "HWPB" //lightning created as bonds
    private constant real distance = 800. //distance apart bonded units can be before it breaks
    private constant string sfx = "Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl" //effect create on cast and end
    
    //needed globals:
    private group G1 = CreateGroup()
    private group G2 = CreateGroup()
    private boolexpr B = null
    private player P = null
    
    private timer Tbonds = CreateTimer() 
    private integer Total = 0 
    private HolyBonds_data array structArray
endglobals

//our needed struct
struct HolyBonds_data
    unit array targ[max_bonds]
    lightning array bond[max_bonds]
    integer total = 0
    real time = 0.
    
    //what to do when the struct is destroyed
    method onDestroy takes nothing returns nothing
        local integer i = 1
        
        loop
            exitwhen i>.total
                //destroy lightning, if one exited
                if .bond<i>!=null then
                    call DestroyLightning(.bond<i>)
                endif
                //remove dummy armor bonus from unit
                call UnitRemoveAbility(.targ<i>,dummy_abil)
                call DestroyEffect(AddSpecialEffectTarget(sfx,.targ<i>,&quot;chest&quot;))
            set i = i + 1
        endloop
    endmethod
endstruct


//checks if correct ability cast
function Trig_Holy_Bonds_Conditions takes nothing returns boolean      
    return GetSpellAbilityId()==abil_id 
endfunction  
//how close are two units together???
private function DBU takes unit a, unit b returns real
	return SquareRoot(Pow(GetUnitX(b) - GetUnitX(a), 2) + Pow(GetUnitY(b)-GetUnitY(a),2))
endfunction 
//moves bonds/end them
private function Movement takes nothing returns nothing
    local integer i = 1 
    local integer j = 2
    local HolyBonds_data dat 

    loop 
        //loop through all structs currently active
        exitwhen i &gt; Total 
        set dat = structArray<i>  
              
        //duration is over, end spell
        if dat.time&gt;length then 
            call dat.destroy()
            set structArray<i> = structArray[Total] 
            set Total = Total - 1 
            set i = i - 1
        //duration is not over, continue
        else 
            //loop through bonded units, to the total bonded
            loop
                exitwhen j&gt;dat.total
                //check if both units are still alive and they are not too far apart
                if GetWidgetLife(dat.targ[j-1])&gt;.405 and GetWidgetLife(dat.targ[j])&gt;.405 and DBU(dat.targ[j-1],dat.targ[j])&lt;distance then
                    //update bond position
                    call MoveLightningEx(dat.bond[j-1],false,GetUnitX(dat.targ[j-1]),GetUnitY(dat.targ[j-1]),150.,GetUnitX(dat.targ[j]),GetUnitY(dat.targ[j]),150.)                
                else
                    //something went wrong, end spell
                    call dat.destroy()
                    set structArray<i> = structArray[Total] 
                    set Total = Total - 1 
                    set i = i - 1
                    exitwhen true
                endif
                set j = j + 1
            endloop        
        endif
        
        //set i to 1 greater, so we move onto the next struct, reset j so we start at the correct unit, add the interval
        //to dat.time so we keep track of how long the bonds have lasted for this instance of the spell
        set i = i + 1
        set j = 2
        set dat.time = dat.time + interval
    endloop
    
    //no more active structs, pause timer until next time
    if Total==0 then 
        call PauseTimer(Tbonds) 
    endif 
endfunction
//filter for units to be grabbed and added to the bond
private function Filt takes nothing returns boolean
    return GetWidgetLife(GetFilterUnit())&gt;.405 and GetWidgetLife(GetFilterUnit())&lt;GetUnitState(GetFilterUnit(),UNIT_STATE_MAX_LIFE) and IsUnitAlly(GetFilterUnit(),P)==true and IsUnitInGroup(GetFilterUnit(),G2)==false
endfunction
//creates bonds
function Trig_Holy_Bonds_Actions takes nothing returns nothing
    local unit cast = GetTriggerUnit()
    local unit targ = GetSpellTargetUnit() 
    local integer i = 2
    local HolyBonds_data dat = HolyBonds_data.create()
    
    //clear our global group which stores units bonded, add caster and first target to it
    call GroupClear(G2)
    call GroupAddUnit(G2,cast)
    call GroupAddUnit(G2,targ)
    //set our global variables to the correct values for use throughout the function
    set B = Condition(function Filt)
    set P = GetOwningPlayer(cast)    
    //store our first and second target, (cast and targ), as the two first targets in the bond, to our struct 
    set dat.targ[1] = cast
    set dat.targ[2] = targ
    //create lightning from first unit to second unit
    set dat.bond[1] = AddLightningEx(light,false,GetUnitX(cast),GetUnitY(cast),150.,GetUnitX(targ),GetUnitY(targ),150.)
    
    //loop up to the total max bonds, grabbing new units and adding them to our group, while storing them to our struct, and
    //adding the lightning from the previous unit to the new picked unit
    loop
        set i = i + 1
        exitwhen i&gt;max_bonds
        call GroupClear(G1)
        call GroupEnumUnitsInRange(G1,GetUnitX(targ),GetUnitY(targ),area,B)
        if FirstOfGroup(G1)!=null then
            set targ = GroupPickRandomUnit(G1)
        else
            set i = i - 1
            exitwhen true
        endif 
        call GroupAddUnit(G2,targ)
        set dat.targ<i> = targ
        set dat.bond[i-1] = AddLightningEx(light,true,GetUnitX(dat.targ[i-1]),GetUnitY(dat.targ[i-1]),150.,GetUnitX(targ),GetUnitY(targ),150.)
    endloop  
    
    //store total bonds and start timer
    set dat.total = i 
    
    //loop through total units bonded, adding dummy armor bonus to them, where level = total units bonded
    loop
        set targ = FirstOfGroup(G2)
        exitwhen targ==null
        call GroupRemoveUnit(G2,targ) 
        call UnitAddAbility(targ,dummy_abil)
        call SetUnitAbilityLevel(targ,dummy_abil,i)
        call DestroyEffect(AddSpecialEffectTarget(sfx,targ,&quot;chest&quot;))
    endloop 
    
    //add our struct to the array, start the timer if not already done so
    set Total = Total + 1 
    set structArray[Total] = dat  
    if Total==1 then
        call TimerStart(Tbonds,interval,true,function Movement)
    endif 
    
    //clean leaks left in this function
    set cast = null
    set targ = null
endfunction

endscope

//==== Init Trigger Holy Bonds ====
function InitTrig_Holy_Bonds takes nothing returns nothing
    set gg_trg_Holy_Bonds= CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Holy_Bonds,EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition(gg_trg_Holy_Bonds, Condition(function Trig_Holy_Bonds_Conditions))
    call TriggerAddAction(gg_trg_Holy_Bonds, function Trig_Holy_Bonds_Actions)
endfunction    </i></i></i></i></i></i></i></i>
 

Squll2

je'ne sais pas
Reaction score
76
wow some nice new submissions guys! adding them all to the submissions post.. just gimme a minute or two

>emjlr3

looks like pyrogasms spell ^^ :p

PS:

if you update your spell please post that you do so i re dl the updated version, i know i said this before but if its in 2 posts got a better chance of seeing this message :p
 

U are a noob

Mega Super Ultra Cool Member
Reaction score
152
Contestants

  1. magazette2
  2. ManyTimes
  3. Sevion submitted spell
  4. Monsterous
  5. darkchaoself
  6. WolSHaman submitted spell
  7. 0zaru submitted spell
  8. MoonSlinger submitted spell
  9. seph_ir_oth
  10. Exide submitted spell
  11. Stryke
  12. ~GaLs~
  13. Pigger submitted spell
  14. Fallen-Kid submitted spell
  15. FroznYoghurt
  16. Daxtreme
  17. Weyrling submitted spell
  18. Hatebreeder submitted spell
  19. Uareanoob
  20. Stefanman
  21. Meowier submitted spell
  22. emjlr3
  23. Pyrogasm
  24. UberPlayer
Update please. Have you tried my spell?
 

Squll2

je'ne sais pas
Reaction score
76
yep, - k ill update that -_- keep forgetting bout that.. i did update the other one though >.>
 

Pyrogasm

There are some who would use any excuse to ban me.
Reaction score
134
Yes, Squll, emjlr3's spell sounds like mine... but it is entirely different in application.

Once I get my spell working (there's currently a problem with getting units in a quad properly), I'll be able to post some screens and stuff.
 

Demonwrath

Happy[ExtremelyOverCommercializ ed]HolidaysEveryon
Reaction score
47
Did you see my post asking if I could join? Or are you closed for entries? :p
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>I found out new gen makes my spell lag
LoL ?
Newgen makes your spell lag? Arent lagging issue mainly are caused by leaks? or too much effects in the same time?
 

Monsterous

In the Shadows, Lurking.
Reaction score
99
Update front page - ive submitted mine and it dosent say :(

My submission is on Page 7 - last post

Thankees <3<3<3
 

Pyrogasm

There are some who would use any excuse to ban me.
Reaction score
134
Here we go; spell basically finished. I'm thinking about adding multiple links to the chain. And does this spell feel in any way "holy" to you?

My Spell Idea said:
Links the caster and target unit together with a bond of immeasureable energy from their own life-forces. All units in the path of this link will constantly be healed for a small amount.

Level 1 - Heals 35 health per second, lasts 11 seconds.
Level 2 - Heals 50 health per second, lasts 12 seconds.
Level 3 - Heals 65 health per second, lasts 13 seconds.

A promo-shot:

MolecularBond.jpg


And the spell download can be found —VOID—.

If and when you look at my code in the editor, you'll find that it looks really janky. It's because I wrote my code on a Mac; just refer to the attached text file or the JASS box in the first link as the actual code.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top