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

Zephyr Challenge #6 - AOE Summon

Status
Not open for further replies.
Level 5
Joined
Oct 26, 2009
Messages
161
There is never not a time for legitimate critique of something's structure. Anyways, if you would like to continue responding, do so in PMs. It is better to leave this topic for the people to discuss their entries, ideas, and the like.
 
Level 15
Joined
Dec 18, 2007
Messages
1,098
Let's not discuss this thing about systems. I think its been under constant fire for the past who-knows-how-many contests.

Anyway, I'm joining. Can I rip a part off my past code and turn it into a submission?
If so, I'll be making some Earth skill.


Otherwise, I may be making some random Beast spell for my hero (lol, just my luck, I'm making a summoner hero xD)

EDIT: Scratch that stupid question. I'd rather make a spell for this and for my map :D

EDIT2: So....
Entry NameParticipant Name
Winged SpiritZack1996

If you wanna be judged only on cool factor, lets just disqualify any entries with major coding problems/leaks/bugs and continue from there. Although it would make contests suck.
 
Last edited:
Level 9
Joined
Aug 2, 2008
Messages
219
Hai there

I guess i´ll be in here but im not shure if my idea for a spell can really be considered as AoE spell.
Idea:

Transcend Golem:
Summons a mysterious golem that affect the units around him, depending ont the ground it is walking on. For example: If the golem walks on lava it will cause fire AoE damage to near enemies. If it walks on stone or rock it will increase the defense of near alleys, and so on....
Well if the idea meets the contest conditions i´m in.

[Edit]
Oh just a simple qustion. When does the deadline expire ?
 
My Idea:

<No name yet>

Spell based on silence AoE ~ 400/500/600 it creates a barrier around the selected area like bones that comes out from the ground, then it explodes each corpse in that area and there is 24/33/42% chance that a skeleton is spawned/summoned on the position of the corpse explosion, of course corpse explosion would deal AoE damage [random damage] Skeletons would be un selectable/controllable and they would live as long as the barrier stands. barrier would last ~4/6/8 seconds.

Now I wonder if the skeletons counts as summoned units or not?
 
Level 15
Joined
Dec 18, 2007
Messages
1,098
No. I like Hawks. They are so cute xD

But seriously, my spell will be Hawk based. I can't believe how win the Hive quotes database is. It deserves a spell!

Quotes
Takes a random quote from the Hive Quotes database and summons in onto the field. There is a 90% chance that it will be sexual and 10% chance for it to be random.
Sexual Quote - Reduces the attack and movement speeds of all enemy units by 1337%
Random Quote - Has random health and attack damage.

Back to the topic, let's hope for at least 20 submissions?
 
Level 23
Joined
Nov 29, 2006
Messages
2,482
We could hope. Let's hope for 10 I'd say. I'm still not sure I'm going to enter. I asked my irl friends tho, and they thought I should... So I will but only if I have enough time.

Good luck to you guys.
 
Level 8
Joined
Feb 15, 2009
Messages
463
2hwebll.jpg
 
Level 6
Joined
Feb 27, 2008
Messages
222
can i join the contest? im not very pro, but i'd like to participate :)

my current idea :
Orb of life - rapidly deals damage base on the max HP of the target. The dmg dealt is added to the orb as life. When the orb's duration is over, the life is transfered to the casting unit. I will think of something additionally :).
 
Level 10
Joined
Sep 6, 2008
Messages
423
I'll join even tho I won't know how good I'll be compared to everyone else :cute:

My entry will be:
Angelic Wrath
Summons an angel from the heavens to fight for the caster. The angel appears in a holy light blinding foes and healing allies.

EDIT: The angel will NOT be like a ordinary angel with wings and stuff, it will infact be much like a normal armored unit.

EDIT II: I'll add some more features to the spell so it won't be so simple. (Didn't think about how simple the spell is to make in it's current form.)
 
Last edited:
Level 8
Joined
Aug 6, 2008
Messages
451
Im just here to say that I dont like your "no systems" rule, because it encourages to bad coding practice and stuff.

I know this: " We cant judge your spell because most of its code is made by others" -argument, which is complet bullshit, because you just cant make a good looking spell by calling few functions from some system.

And some stuff just cant be made properly without systems and without making your code really horrible, and this really limits spell makers imagination.

( For example knowing units attackspeed requires you to base all your stuff to system like UnitProperties or BonusMod. This just cant be done inside one spell scope. )

Those few examples about allowed and not allowed systems are not enough. You need a better method for this stuff.


This is all I wanted to say.

Bye.
 
Level 23
Joined
Nov 29, 2006
Messages
2,482
So I didnt really get what you thought since you first say you cant make a good looking spell by using large systems, and then, some stuff can be made which couldnt be made otherwise?
Also, I believe BonusMod is considered a small system, not a large one. It does not necessarily do all the job for you.

Anways nvm.


Hard to say anything about it yet:p But yeah we are aware of the wip
 
Level 31
Joined
Sep 11, 2009
Messages
1,812
I got my idea : Arcane Ward : Summons an Arcane ward at the targeted point. The ward casts 1 Arcane Bolt every second in the direction of a random unit that is in 1000 AOE range around the ward. If there is no unit it will cast it in a random direction. Every 2 seconds, the ward will knockback units in a 250 AOE range.
Arcane Bolt : damage every unit in a line.

thats pretty much what my spell will do..
just to be sure... a Ward count as a summon, right?

hmm.. documentation and configurability isnt needed for this?
 
Level 14
Joined
Dec 9, 2006
Messages
1,091
I'll help you with the theme calling questions eccho since I created all the examples.

I've checked the "rules" again and now I wonder, is it a must, that a summoned unit is like a normal unit e.g, footman or it can be like an orb or something, e.g. orb that lasts 5 seconds on certain location and it shoots out fireballs.

Because I can't get any good ideas, by brainstorming myself with skeletons xP

The orb itself would count as a summon, but how the orb was deciding to shoot out the fireballs would determine if it fulfilled the AOE requirement. So, if the orb was randomly shooting out fireballs in the area around it, then it would qualify. However, if the orb was shooting it at specific units, it would no longer apply as AOE, as it is single targeting. In order for it to qualify as AOE, you would have to add in a second effect, maybe a blast wave on death that burns all units around the orb.

Also, looking at Kola's, normally just the arcane bolt targeting units wouldn’t make it an AOE. However, since the ward knockbacks units in an area around, and since the bolt continues past the target unit to units behind it, it qualifies as an AOE summon.

Is a block affecting an AOE? yes or coz units around are affected?

I’m having trouble understanding what the block is. If you mean only the summoned unit has the block, and the block works against all units around the summoned unit, then no, it is not an AOE. However, if the block is affecting all units around the summons unit, and all allied units around the summon block, like an aura, then it is an AOE.

~Asomath
 

Rui

Rui

Level 41
Joined
Jan 7, 2005
Messages
7,550
I just completed a spell for this competition, but I'm reluctant to submit it; it would be my first publicly released spell! The time I spent working on it showed me just how little I know about coding, hehe. Still, it works well, needing only a few touch-ups. I have not, however, saved a screenshot of its progress. Plus, the eye candy is practically nonexistent and the spell's effects are relatively simple.
 
Level 31
Joined
Sep 11, 2009
Messages
1,812
hmmm... if i have a problem with my spell.. can i submit it and people can revieve it? or im obliged to fix the problem myself... cuz for now im kind of stucked on something :(

(my spell is done) except that it doesnt work when 2 units cast it (i used indexs and idk why it isnt in MUI)
 
Level 31
Joined
Sep 11, 2009
Messages
1,812
k.. well.. i'll post it a bit later :p but ty

EDIT: here they are

  • Arcane Totem
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Arcane Totem
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • AW_Index Equal to 0
        • Then - Actions
          • Trigger - Turn on Arcane Totem Loop <gen>
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • AW_2_Index Equal to 0
        • Then - Actions
          • Trigger - Turn on Arcane Totem Loop KB <gen>
        • Else - Actions
      • Set AW_Index = (AW_Index + 1)
      • Set AW_Target_Point[AW_Index] = (Target point of ability being cast)
      • Unit - Create 1 Arcane Totem for (Owner of (Triggering unit)) at AW_Target_Point[AW_Index] facing Default building facing degrees
      • Set AW_Unit[AW_Index] = (Last created unit)
      • Unit - Set level of Arcane for (Last created unit) to (Level of Arcane Totem for (Triggering unit))
      • Unit - Add a 6.00 second Generic expiration timer to (Last created unit)
      • Set AW_Off_Boo[AW_Index] = True
      • Set AW_Off_Int = (AW_Off_Int + 1)
      • -------- ------------------------------------------------------------ --------
      • Set AW_2_Index = (AW_2_Index + 1)
      • Set AW_2_Casting_Unit[AW_2_Index] = (Triggering unit)
      • Set AW_2_NumberOfHits[AW_2_Index] = 4
      • Set AW_2_TimeIntervalBetweenHits[AW_2_Index] = 0.00
      • Set AW_2_Off[AW_2_Index] = True
      • Set AW_2_Off_Int = (AW_2_Off_Int + 1)
      • Set AW_2_Distance[AW_2_Index] = 300.00
      • Set AW_2_AOE[AW_2_Index] = 250.00
  • Arcane Totem Loop
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • For each (Integer AW) from 1 to AW_Index, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • AW_Off_Boo[AW] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (AW_Unit[AW] is alive) Equal to False
                • Then - Actions
                  • Set AW_Off_Boo[AW_Index] = False
                  • Set AW_Off_Int = (AW_Off_Int - 1)
                  • Custom script: call RemoveLocation(udg_AW_Target_Point[udg_AW])
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • AW_Off_Int Equal to 0
                    • Then - Actions
                      • Set AW_Index = (AW_Index - 1)
                      • Trigger - Turn off Arcane Totem Loop <gen>
                    • Else - Actions
                • Else - Actions
                  • Set AW_Group = (Units within 1000.00 of AW_Target_Point[AW] matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is A ground unit) Equal to True)) and ((((Matching unit) is A structure) Equal to False) and (((Owner of (Matching unit)) is an enemy of (
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in AW_Group) Greater than or equal to 1
                    • Then - Actions
                      • Set AW_Group = (Random 1 units from AW_Group)
                      • Unit Group - Pick every unit in AW_Group and do (Actions)
                        • Loop - Actions
                          • Set AW_Point = (Position of (Picked unit))
                    • Else - Actions
                      • Set AW_Point = (AW_Target_Point[AW] offset by 200.00 towards (Random angle) degrees)
                  • Unit - Order AW_Unit[AW] to Orc Tauren Chieftain - Shockwave AW_Point
                  • Custom script: call RemoveLocation(udg_AW_Point)
                  • Custom script: call DestroyGroup(udg_AW_Group)
            • Else - Actions
  • Arcane Totem Loop KB
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • For each (Integer AW_2) from 1 to AW_2_Index, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • AW_2_Off[AW_2] Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • AW_2_NumberOfHits[AW_2] Equal to 0
                • Then - Actions
                  • Set AW_2_Off[AW_2] = False
                  • Set AW_2_Off_Int = (AW_2_Off_Int - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • AW_2_Off_Int Equal to 0
                    • Then - Actions
                      • Set AW_2_Index = (AW_2_Index - 1)
                      • Trigger - Turn off Arcane Totem Loop KB <gen>
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • AW_2_TimeIntervalBetweenHits[AW_2] Equal to 0.00
                    • Then - Actions
                      • Set AW_2_NumberOfHits[AW_2] = (AW_2_NumberOfHits[AW_2] - 1)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • AW_2_NumberOfHits[AW_2] Equal to 0
                        • Then - Actions
                        • Else - Actions
                          • Set AW_2_Totem_Position[AW_2_Index] = (Position of AW_Unit[AW_2])
                          • Special Effect - Create a special effect at AW_2_Totem_Position[AW_2] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Set AW_2_TimeIntervalBetweenHits[AW_2] = 2.00
                          • Set AW_2_KB_Unit_Group[AW_2_Index] = (Units within AW_2_AOE[AW_2] of AW_2_Totem_Position[AW_2] matching (((((Matching unit) is A structure) Equal to False) and (((Matching unit) is alive) Equal to True)) and (((Owner of (Matching unit)) is an enemy of (Owner of AW_2_Casting_Unit[AW_2])) Equal to
                          • Destructible - Pick every destructible within AW_2_AOE[AW_2] of AW_2_Totem_Position[AW_2] and do (Actions)
                            • Loop - Actions
                              • Destructible - Kill (Picked destructible)
                          • Set AW_2_KB_Time[AW_2_Index] = 25
                    • Else - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • AW_2_KB_Time[AW_2] Equal to 0
                        • Then - Actions
                          • Set AW_2_TimeIntervalBetweenHits[AW_2] = (AW_2_TimeIntervalBetweenHits[AW_2_Index] - 0.02)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • AW_2_TimeIntervalBetweenHits[AW_2] Equal to 0.00
                            • Then - Actions
                              • Custom script: call DestroyGroup(udg_AW_2_KB_Unit_Group[udg_AW_2])
                              • Custom script: call RemoveLocation(udg_AW_2_Totem_Position[udg_AW_2])
                            • Else - Actions
                        • Else - Actions
                          • Set AW_2_TimeIntervalBetweenHits[AW_2] = (AW_2_TimeIntervalBetweenHits[AW_2_Index] - 0.02)
                          • Set AW_2_KB_Time[AW_2] = (AW_2_KB_Time[AW_2] - 1)
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • (Number of units in AW_2_KB_Unit_Group[AW_2]) Greater than or equal to 1
                            • Then - Actions
                              • Unit Group - Pick every unit in AW_2_KB_Unit_Group[AW_2] and do (Actions)
                                • Loop - Actions
                                  • Set AW_2_KB_Index = (AW_2_KB_Index + 1)
                                  • Set AW_2_Picked_Unit[AW_2_Index] = (Picked unit)
                                  • Set AW_2_KB_Index = (Custom value of AW_2_Picked_Unit[AW_2])
                                  • Set AW_2_Unit_Point[AW_2_KB_Index] = (Position of AW_2_Picked_Unit[AW_2])
                                  • Set AW_2_Angle[AW_2_KB_Index] = (Angle from AW_2_Totem_Position[AW_2] to AW_2_Unit_Point[AW_2_KB_Index])
                                  • Set AW_2_Knockback_Point[AW_2_KB_Index] = (AW_2_Unit_Point[AW_2_KB_Index] offset by ((AW_2_Distance[AW_2] / 25.00) x (AW_2_TimeIntervalBetweenHits[AW_2] - 1.00)) towards AW_2_Angle[AW_2_KB_Index] degrees)
                                  • Destructible - Pick every destructible within 100.00 of AW_2_Knockback_Point[AW_2_KB_Index] and do (Actions)
                                    • Loop - Actions
                                      • Destructible - Kill (Picked destructible)
                                  • Unit - Move AW_2_Picked_Unit[AW_2] instantly to AW_2_Knockback_Point[AW_2_KB_Index]
                                  • Custom script: call RemoveLocation(udg_AW_2_Unit_Point[udg_AW_2_KB_Index])
                                  • Custom script: call RemoveLocation(udg_AW_2_Knockback_Point[udg_AW_2_KB_Index])
                                  • Set AW_2_KB_Index = (AW_2_KB_Index - 1)
                            • Else - Actions
            • Else - Actions
 
Last edited:
Level 22
Joined
Nov 14, 2008
Messages
3,256
@kola

first of all, make the integer val on the first loop less then 1 sec cause 1 sec is pretty noticeable and can cause that someones totem lasts .99 sec short, not much but still noticeable when playing, causing the feeling of "delay" but there are none, just the trigger that is slow

also isn't it possible to merge both loops into one, will be ALOT of code but may increase performance if I remembered correct that 2 loops running is worse then 1.

also if you want some bonus points you should check Gandalfs GUI tree destruct cause right now your totem is killing every single destructible it can target which will cause bridges and houses to expload.

one more point is that I guess it's a totem which "pushes" the units out of it? or maybe it is dragging them?

cause if it is pushing the totem would be extreme cause it could create a barrier against other units even if it is just 250 range, would make the totem immune to melee units (not air)

last thing, why is it picking units in 1000 range to cast shockwave but only knockback 250 range?

else it looks good from my point of view
 
Level 6
Joined
Jan 31, 2009
Messages
166
Entering Competition

I think I will enter this (It would be my first competition) Hopefully I willl learn something from it.


Entry NameContestant Name
BiomancyArcmage


Here is my WIP Image
wc3scrnshot_111609_181005_04.jpg


Basically The spell Turns all critters and trees into mutants under your control for 60 seconds. The type of mutant spawned is dependent on the type of creep and for trees they are all the same unit but tinted diffidently. Different types of critters will make different mutants (Critters are stronger than trees due to there greater rarity in most maps) The spell works for all types of trees/critters
 
Level 14
Joined
Jan 5, 2009
Messages
1,127
Entry NameContestant Name
KhaosCrazed_seal
My Wip:
attachment.php

Summons spirits that wander to a random position. The spirits attack everyone, either caster or enemy! The Spirits only last 1.50 seconds before they disipate back into the underworld. After all the spirits were spawned and have died, a greater spirit comes and is under controll of the caster.
Spell is MPI!
  • Khaos
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Khaos (Neutral Hostile 1)
    • Actions
      • Custom script: local unit udg_Khaos_Dummy
      • Custom script: local location udg_Khaos_Dummy_Point
      • Custom script: local effect udg_Khaos_Effect
      • Custom script: local effect udg_Khaos_EffectTwo
      • Custom script: local unit udg_Khaos_Greater_Spirit
      • Custom script: local location udg_Khaos_Point
      • Set Khaos_Point = (Target point of ability being cast)
      • Special Effect - Create a special effect at Khaos_Point using Abilities\Spells\Undead\Unsummon\UnsummonTarget.mdl
      • Set Khaos_Effect = (Last created special effect)
      • For each (Integer A) from 1 to 20, do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy for Neutral Hostile at Khaos_Point facing Default building facing degrees
          • Set Khaos_Dummy = (Last created unit)
          • Set Khaos_Dummy_Point = (Random point in (Playable map area))
          • Unit - Order Khaos_Dummy to Attack-Move To Khaos_Dummy_Point
          • Wait 1.50 seconds
          • Unit - Kill Khaos_Dummy
          • Custom script: set udg_Khaos_Dummy = null
          • Custom script: set udg_Khaos_Dummy_Point = null
      • Unit - Create 1 Greater Spirit for (Owner of (Triggering unit)) at Khaos_Point facing Default building facing degrees
      • Set Khaos_Greater_Spirit = (Last created unit)
      • Special Effect - Create a special effect at Khaos_Point using Abilities\Spells\Undead\DeathCoil\DeathCoilSpecialArt.mdl
      • Set Khaos_EffectTwo = (Last created special effect)
      • Custom script: call RemoveLocation( udg_Khaos_Point )
      • Custom script: call RemoveLocation( udg_Khaos_Dummy_Point )
      • Unit - Add a 10.00 second Raise Dead expiration timer to Khaos_Greater_Spirit
      • Wait 2.00 seconds
      • Special Effect - Destroy Khaos_EffectTwo
      • Wait 8.00 seconds
      • Special Effect - Destroy Khaos_Effect
      • Custom script: set udg_Khaos_Greater_Spirit = null
Note: Each spirit does 40 chaos damage!
 

Attachments

  • WiP Khaos.jpg
    WiP Khaos.jpg
    606.9 KB · Views: 209
Status
Not open for further replies.
Top