[Contest] Official Spell Contest #1

hell_knight

Playing WoW
Reaction score
126
My idea will function like a boomerang, you charge it up maybe make it like in zelda choose 5 points ect, Probaly gonna make it pick up items too ect
 

Pigger

New Member
Reaction score
13
Just tossing in an update of my spell. Its a 3 part spell.

Part One - Channeling: As the Tauren channels, ancestral spirits surround him, slamming the ground, disorienting or stunning nearby units.
Part Two - Side-Channeling: If the Tauren is struck whislt channeling the spirits of his ancestores, they will strike out at the attacker, knocking it back a distance.
Part Three - Finish: After the calling of the spirits, the Tauren lets loose a powerful blow to the earth, sending out four massive shockwaves.

So far, I have Part One 90% complete, just fixing up the leaks. Part Two is about halfway done, I've got major leaks needing fixes, and Part Three is the least of my worries.
 

Miz

Administrator
Reaction score
425
  1. WolSHaman
  2. darkchaoself
  3. rodead
  4. Tinki3
  5. PurgeandFire
  6. Uareanoob
  7. Grymlax
  8. hell_knight9
  9. The Mapmaker
  10. Rheias
  11. 0zaru
  12. Naminator
  13. ~GaLs~
  14. Nyph
  15. Überplayer
  16. Prediter[BuB
  17. Hatebreeder
  18. Pigger
  19. NuBy
  20. FroznYoghurt
  21. Slywolf15
  22. Sevion

Well I think thats a record of how many people entering a contest :p
Just for a silly icon ^^
Well this shall be fun to watch :D
 

hell_knight

Playing WoW
Reaction score
126
Silly icon, rep and for bragging rights + Im BORED!!!!

Anyways my spell is complete not gonna release it just yet =O
Im probaly gonna lose tho since I chose not to make a eye candy spell to attract public poll votes spells and I use gui therefore losing points in like every category.
Still worth a try tho.
 

Darkchaoself

What is this i dont even
Reaction score
106
  1. WolSHaman
  2. darkchaoself
  3. rodead
    [*]Tinki3
  4. PurgeandFire
    [*]Uareanoob
  5. Grymlax
  6. hell_knight9
  7. The Mapmaker
    [*]Rheias
  8. 0zaru
    [*]Naminator
    [*]~GaLs~
  9. Nyph
    [*]Überplayer
  10. Prediter[BuB
  11. Hatebreeder
  12. Pigger
  13. NuBy
  14. FroznYoghurt
  15. Slywolf15
  16. Sevion

Bolded ones are the ones that you should watch out for :)

Dont take it personally if your not bolded
 

Pigger

New Member
Reaction score
13
Bolded ones are the ones that you should watch out for :)

Dont take it personally if your not bolded

/takes it personally

Actually, I'm kinda glad to be in a contest with them. Besides, my GUI skills are no match anyway to their JASS skills!

But it makes me feel better, gogo self-esteem boost!
 

esb

Because none of us are as cruel as all of us.
Reaction score
329
It's the intention that matters. If the contestants give something worthy, that took them time and effort (and creativity), then it was worth to give the winners and Icon :D
 

emjlr3

Change can be a good thing
Reaction score
395
think you forgot Pyro in that list
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
Yes he is, he missed out pyrogasm...

>>Bolded ones are the ones that you should watch out for

Dont take it personally if your not bolded

I do, why me? lol
But i feel greats :)

Everyone please take this contest seriously... I am hoping to see some superb spell around XD
 

Pigger

New Member
Reaction score
13
Everyone please take this contest seriously... I am hoping to see some superb spell around XD

Oh I hella am. To date I think this is the best spell I have/am creating. Half done too! All I gotta do is fix some small coding issues and then toss in all the SFX

/crush ~GaLs~ :) :D :p
 

Pyrogasm

There are some who would use any excuse to ban me.
Reaction score
134
You did forget me... bastard.

Just some WIP code; I think I'm going to call the spell "Grisly Barrage":
JASS:
function B2S takes boolean B returns string
    if B then
        return "True"
    else
        return "False"
    endif
endfunction

//*******************************************************************
//*                       Start Configuration                       *
//*******************************************************************

constant function GB_AbilityId takes nothing returns integer
    return 'A001'
endfunction

constant function GB_DummyAbilityId takes nothing returns integer
    return 'A003' //The Raise Dead ability that is actually cast
endfunction

constant function GB_DummyUnitId takes nothing returns integer
    return 'h000'
endfunction

constant function GB_DummyEffectUnitId takes nothing returns integer
    return 'h001'
endfunction

constant function GB_ThrowInterval takes integer Level returns real
    return 1.50
endfunction

constant function GB_Radius takes integer Level returns real
    return 200.00
endfunction

constant function GB_NumberOfIterations takes integer Level returns integer
    return 5
endfunction

constant function GB_ChannelingOrderString takes nothing returns string
    return "starfall"
endfunction

constant function GB_GroundEffectPath takes nothing returns string
    return "Abilities\\Spells\\Human\\FlameStrike\\FlameStrikeTarget.mdl"
endfunction

constant function GB_FirstOnCast takes nothing returns boolean
    return true
endfunction

constant function GB_CorpseFlyHeight takes integer Level returns real
    return 300.00
endfunction

constant function GB_CorpseFlyHeightRate takes integer Level returns real
    return 150.00
endfunction

constant function GB_Damage takes integer Level returns real
    return 50.00*Level
endfunction

//*******************************************************************
//*                        End Configuration                        *
//*******************************************************************

function GB_CastConditions takes nothing returns boolean     
    return GetSpellAbilityId() == GB_AbilityId()
endfunction

function GB_RaiseDeadDetectConditions takes nothing returns boolean
    return GetUnitTypeId(GetSummonedUnit()) == GB_DummyEffectUnitId()
endfunction

function GB_EnemyFilter takes nothing returns boolean
    return IsUnitEnemy(GetFilterUnit(), bj_forceRandomCurrentPick)
endfunction

function GB_CorpseLevitateCallback takes nothing returns nothing
    call BJDebugMsg("Levitated Fully")
endfunction

function GB_RaiseDeadDetect takes nothing returns nothing
    local unit U = GetSummoningUnit
    local timer T = GetAttachedTimer(U, "GB Timer")
    local unit U2 = GetSummonedUnit()
    local real X = GetUnitX(U2)
    local real Y = GetUnitY(U2)
    local group G = CreateGroup()
    local boolexpr B = Condition(function GB_EnemyFilter)
    local player P = GetOwningPlayer(U)
    local integer Level = GetAttachedInt(T, "GB Level")
    local real R = GB_Radius(Level)
    local unit Target
    local real Angle
    local timer T = CreateTimer()

    set bj_forceRandomCurrentPick = P
    call GroupEnumUnitsInRange(G, X, Y, R, B)
    set bj_forceRandomCurrentPick = null
    set Target = GroupPickRandomUnit(G)
    set X2 = GetUnitX(Target)
    set Y2 = GetUnitY(Target)
    call DestroyGroup(G)
    call DestroyBoolExpr(B)
    set Angle = Atan2(Y2-Y, X2-X)*59.295827
    call AttachObject(T, "GB
    call AttachReal(T, "GB Angle", Angle)
    call AttachReal(T, "GB Target X", X2)
    call AttachReal(T, "GB Target Y", Y2)
    call TimerStart(T, 0.03, true, function GB_MoveCallback)
    set T = null
    set Target = null
    set U = null
    set U2 = null
endfunction

function GB_ThrowCallback takes nothing returns nothing
    local timer T = GetExpiredTimer()
    local unit U = GetAttachedUnit(T, "GB Caster")
    local real X = GetAttachedReal(T, "GB CastX")
    local real Y = GetAttachedReal(T, "GB CastY")
    local integer Level = GetAttachedInt(T, "GB Level")
    local integer Countup = GetAttachedInt(T, "GB Countup")
    local group G = CreateGroup()
    local unit Corpse
    local real R = GB_Radius(Level)
    local boolexpr B = Condition(function GB_DeadUnitFilter)
    local player P = GetOwningPlayer(U)
    local unit Target
    local real X2
    local real Y2
    local real X3
    local real Y3
    local real Angle
    local unit ExplosionDummy
    local timer T2 = CreateTimer()
    local unit U2
    local real Height = GB_CorpseFlyHeight(Level)
    local real Rate = GB_CorpseFlyHeightRate(Level)

    local boolean CorpseAvailable
    local unit Dummy
    
    set Countup = Countup+1
    if (Countup > GB_NumberOfIterations(Level)) or (GetUnitCurrentOrder(U) != OrderId(GB_ChannelingOrderString()))  then
        call DestroyEffect(GetAttachedEffect(T, "GB Ground Effect"))
        call PauseTimer(T)
        call CleanAttachedVars(T)
        call DestroyTimer(T)
    else
        call AttachInt(T, "GB Countup", Countup)
        set Dummy = CreateUnit(P, GB_DummyUnitId(), X, Y, 0.00)
        call UnitApplyTimedLife(Dummy, 'BTLF', 2.00)
        call UnitAddAbility(Dummy, GB_DummyAbilityId())
        call IssueImmediateOrder(Dummy, "raisedeadon")
        call IssueImmediateOrder(Dummy, "instant")
        call AttachObject(Dummy, "GB Timer", T)
       
//        call GroupEnumUnitsInRange(G, X, Y, R, B)
//        set Corpse = GroupPickRandomUnit(G)
//        set X2 = GetUnitX(Corpse)
//        set Y2 = GetUnitY(Corpse)
//        call GroupClear(G)
//        call DestroyBoolExpr(B)
//        set bj_forceRandomCurrentPick = P
//        set B = Condition(function GB_EnemyFilter)
//        call GroupEnumUnitsInRange(G, X, Y, R, B)
//        set bj_forceRandomCurrentPick = null
//        set Target = GroupPickRandomUnit(G)
//        set X3 = GetUnitX(Target)
//        set Y3 = GetUnitY(Target)
//        call DestroyGroup(G)
//        call DestroyBoolExpr(B)
//        set Angle = Atan2(Y3-Y2, X3-X2)*59.295827

//        set ExplosionDummy = CreateUnit(P, GetUnitTypeId(Corpse), X2, Y2, Angle)
//        call UnitAddAbility(ExplosionDummy, 'Aloc')
//        call SetUnitExploded(ExplosionDummy, true)
//        call KillUnit(ExplosionDummy)
        
//        set U2 = Corpse
//        set Corpse = CreateUnit(P, GB_DummyEffectUnitId(), X2, Y2, Angle)
//        call AttachReal(Corpse, "GB Corpse Max Life", GetUnitState(U2, UNIT_STATE_MAX_LIFE))
//        call AttachObject(T2, "GB Corpse", Corpse)
//        call RemoveUnit(U2)        
//        call SetUnitFlyHeight(Corpse, Height, Rate)
//        call TimerStart(T2, Height/Rate, false, function GB_CorpseLevitateCallback)
    endif
        
          
    
    set T = null
    set U = null
    set G = null
    set Corpse = null
    set B = null
    set P = null
    set Target = null
    set ExplosionDummy = null
    set T2 = null
    set U2 = null
endfunction

function GB_Cast takes nothing returns nothing
    local unit U = GetTriggerUnit()
    local real X = GetUnitX(U)
    local real Y = GetUnitY(U)
    local timer T = CreateTimer()
    local integer Level = GetUnitAbilityLevel(U, GB_AbilityId())
    local integer Countup = 0
    local unit Corpse
    local unit Target
    local unit ExplosionDummy
    local group G = CreateGroup()

    local real R = GB_Radius(Level)
    local real X2
    local real Y2
    local real X3
    local real Y3
    local player P = GetOwningPlayer(U)
    local real Angle
    local timer T2
    local unit U2
    local real Height = GB_CorpseFlyHeight(Level)
    local real Rate = GB_CorpseFlyHeightRate(Level)

    local boolean CorpseAvailable
    local unit Dummy
    
    call AttachObject(T, "GB Caster", U)
    call AttachReal(T, "GB CastX", X)
    call AttachReal(T, "GB CastY", Y)
    call AttachInt(T, "GB Level", Level)
    call AttachObject(T, "GB Ground Effect", AddSpecialEffect(GB_GroundEffectPath(), X, Y))
    call BJDebugMsg("Cast")

    if GB_FirstOnCast() then
        set Countup = Countup+1
        set Dummy = CreateUnit(P, GB_DummyUnitId(), X, Y, 0.00)
        call UnitApplyTimedLife(Dummy, 'BTLF', 2.00)
        call UnitAddAbility(Dummy, GB_DummyAbilityId())
        call IssueImmediateOrder(Dummy, "raisedeadon")
        call IssueImmediateOrder(Dummy, "instant")
        call AttachObject(Dummy, "GB Timer", T)

//        call AttachObject(T2, "GB Corpse", Corpse)
//        call SetUnitFlyHeight(Corpse, Height, Rate)
//        set T2 = CreateTimer()
//        call TimerStart(T2, Height/Rate, false, function GB_CorpseLevitateCallback)
    endif


    call AttachInt(T, "GB Countup", Countup)
    call TimerStart(T, GB_ThrowInterval(Level), true, function GB_ThrowCallback)
    
        
    set U = null
    set T = null
    set Corpse = null
    set Target = null
    set ExplosionDummy = null
    set G = null 
    set B = null
    set P = null
    set T2 = null
    set U2 = null  
endfunction

//==========================================================================================
function InitTrig_Grisly_Barrage takes nothing returns nothing
    local trigger RaiseDeadDetect = CreateTrigger()
    set gg_trg_Grisly_Barrage = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Grisly_Barrage, EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(gg_trg_Grisly_Barrage, Condition(function GB_CastConditions))
    call TriggerAddAction(gg_trg_Grisly_Barrage, function GB_Cast)

    call TriggerRegisterAnyUnitEventBJ(RaiseDeadDetect, EVENT_PLAYER_UNIT_SUMMON)
    call TriggerAddCondition(RaiseDeadDetect, Condition(function GB_RaiseDeadDetectConditions))
    call TriggerAddAction(RaiseDeadDetect, function GB_RaiseDeadDetect)

    set RaiseDeadDetect = null
endfunction
 
Reaction score
456
Cool, maybe I start coding my spell already =).

@Pyrogasm
Just palce your code inside a scope and make the functions private :).

EDIT://Whops..
 
Reaction score
456
I didn't know that :).. maybe I have heard, don't know though.

Still, I edited my post as it had a biiiit wrong information.
 

Pyrogasm

There are some who would use any excuse to ban me.
Reaction score
134
Blasphemous. I cannot use vJASS, Überplayer.
 

Darkchaoself

What is this i dont even
Reaction score
106

Hatebreeder

So many apples
Reaction score
381
That sounds damn cool. If the name hadn't been used in a spell contest at Wc3c, I would have suggested that you call it "Gravestorm". Maybe, uhhh, something like "Forsaken Cemetary"... blah, I don't know.

Props to you if you make it work well.

Oh Thnx :p I don't even think that I have to Trigger the Damage ^.^
Anyways, I think Gravestorm has a Copyright, since it's a Magic Card Name... By the Way, I play a Grave Consequence Deck, Entrails Feaster, Gravestorm and Buried Alive Ftw ^^
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top