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

Hero Contest #4 [Animalistic Nature] ~ The Poll

Vote for your favorite entry


  • Total voters
    78
  • Poll closed .
Status
Not open for further replies.
Level 9
Joined
Jan 23, 2008
Messages
310
@CeDiL I wanted to be kind.
Elaborate :p

Let's be realistic, a hero/spell contest is 50% based on coding. Jass, vJass, cJass, GUI coding, which this contest lacks badly. The concept, eye candy, balance and synergy are pretty good, but still not perfect. That's why model and texture makers don't really mess up in such type of contests, they surely can add some eye-candy, but they can't create scripts and codes that could compete with others, at least it was like this...

There are no perfect things, only the ones that are close to perfection. Perfection can never be achieved, there will always be something even more perfect.
 
Well, that is quite obvious, I assume. If you are up to making a hero concept, you will pick the visuals (most likely not your models), the model of the hero (again, most likely, not your model) or the texture (guess what). All you're left with are the spells. How will you give life to your hero anyway? If it was only a visuals' sake, you had better get in line for the next Concept Art contest :]

A hero with no spells is like an non-animated model.
 
Level 9
Joined
Jan 23, 2008
Messages
310
Well, that is quite obvious, I assume. If you are up to making a hero concept, you will pick the visuals (most likely not your models), the model of the hero (again, most likely, not your model) or the texture (guess what). All you're left with are the spells. How will you give life to your hero anyway? If it was only a visuals' sake, you had better get in line for the next Concept Art contest :]

A hero with no spells is like an non-animated model.

Exactly! A hero with standart spells is like a custom model with standart animations, ripped from an existing one, not much work do you agree?
 

Bannar

Code Reviewer
Level 26
Joined
Mar 19, 2008
Messages
3,140
The contest lacks coding, yes (we were already talking about that earlier). But you can not expect from voters that they will analize script part.. most of them even don't know that GUI is basically Jass..
Eye candy + hero model counts for them the most.

About the participants: I wont negate anyone for that because it's free contest and it's great that they want ot take part in it even if it's only the simple project.

I should quote here my fraze I've already told you all:
Spinnaker said:
And man, TBH I'm gratefull to everyone who entered the contest, because guys like you run this forum and keep Hive alive - without active members who take place in constests that forum would die long time ago, like Wc3c did.
 
Last edited:
I only had 1 leak, and i cant wait to read the comments because i know ill have an argument with someone about them >.>

Actually,

Leaks:

  • FW Dummy Movement
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • For each (Integer FWI) from 1 to FW_Index, do (Actions)
        • Loop - Actions
          • Set FW_Point[FWI] = (Position of FW_Caster[FWI])
          • Unit - Move FW_DummyUnit[FWI] instantly to FW_Point[FWI]
      • Custom script: call RemoveLocation(udg_FW_Point[(udg_FWI)])
This leaks a huge number of locations.
You were supposed to move the custom script inside the loop.

  • DS Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Demoralizing Screech
        • Then - Actions
          • Set DS_Index = (DS_Index + 1)
          • Set DS_Point[DS_Index] = (Position of (Triggering unit))
          • Set DS_UnitGroup[DS_Index] = (Units within 350.00 of DS_Point[DS_Index] matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))
          • Unit Group - Pick every unit in DS_UnitGroup[DS_Index] and do (Actions)
            • Loop - Actions
              • For each (Integer DSI) from 1 to (Number of units in DS_UnitGroup[DS_Index]), do (Actions)
                • Loop - Actions
                  • Set DS_FearedUnit[DSI] = (Picked unit)
                  • Set DS_FearPoint[DSI] = ((Position of DS_FearedUnit[DSI]) offset by 150.00 towards ((Facing of DS_FearedUnit[DSI]) + 180.00) degrees)
                  • Unit - Order DS_FearedUnit[DSI] to Move To DS_FearPoint[DSI]
          • Set DS_Index = (DS_Index - 1)
        • Else - Actions
      • Custom script: call DestroyGroup(udg_DS_UnitGroup[(udg_DS_Index)])
      • Custom script: call RemoveLocation(udg_DS_Point[(udg_DS_Index)])
      • Custom script: call RemoveLocation(udg_DS_FearPoint[(udg_DSI)])
Specifically:

  • Set DS_FearPoint[DSI] = ((Position of DS_FearedUnit[DSI]) offset by 150.00 towards ((Facing of DS_FearedUnit[DSI]) + 180.00) degrees)
This leaks an extra location (PolarProjection)

Also, you were supposed to move all those custom scripts inside the if/else block otherwise
you'd be double free-ing like hell :p

  • Dive Bomb
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Dive Bomb
    • Actions
      • For each (Integer SI) from 1 to Soar_Index, do (Actions)
        • Loop - Actions
          • Set ExpirationBoolean[SI] = False
          • Set Soar_Expiration[SI] = Soar_ExpirationFormula
      • Set Soar_Index = (Soar_Index - 1)
      • Set DB_Point = (Target point of ability being cast)
      • Unit - Move (Triggering unit) instantly to DB_Point
      • Unit Group - Pick every unit in (Units within 300.00 of DB_Point matching ((((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True) and (((Matching unit) is A structure) Equal to False))) and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ((Current flying height of (Triggering unit)) / (3.00 - ((Real((Level of Dive Bomb for (Triggering unit)))) x 0.50))) damage of attack type Siege and damage type Normal
      • Unit - Remove Soaring buff from (Triggering unit)
      • Special Effect - Create a special effect at DB_Point using war3mapImported\NewDirtEXNofire.mdx
      • Animation - Change (Triggering unit) flying height to 100.00 at 0.00
      • Unit - Remove Dive Bomb from (Triggering unit)
      • Player - Enable Soar for (Owner of (Triggering unit))
      • Custom script: call RemoveLocation(udg_DB_Point)
There's a group leak in there..

  • Swift Assault
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Swift Assault
        • Then - Actions
          • Set SA_Index = (SA_Index + 1)
          • Set SA_Point[SA_Index] = (Position of (Target unit of ability being cast))
          • Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing 100.00 damage of attack type Pierce and damage type Normal
          • Unit - Move (Triggering unit) instantly to SA_Point[SA_Index]
          • Set SA_Index = (SA_Index - 1)
        • Else - Actions
      • Custom script: call RemoveLocation(udg_SA_Point[(udg_SA_Index)])
Move the custom script inside the if/else block (Double-free)

  • Terrifying Screech
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Ability being cast) Equal to Terrifying Screech
        • Then - Actions
          • Set TS_Index = (TS_Index + 1)
          • Set TS_Point[TS_Index] = (Position of (Triggering unit))
          • Set TS_UnitGroup[TS_Index] = (Units within 225.00 of TS_Point[TS_Index] matching (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True))
          • Unit Group - Pick every unit in TS_UnitGroup[TS_Index] and do (Actions)
            • Loop - Actions
              • For each (Integer TSI) from 1 to (Number of units in TS_UnitGroup[TS_Index]), do (Actions)
                • Loop - Actions
                  • Set TS_FearedUnit[TSI] = (Picked unit)
                  • Set TS_FearPoint[TSI] = ((Position of TS_FearedUnit[TSI]) offset by 450.00 towards ((Facing of TS_FearedUnit[TSI]) + 180.00) degrees)
                  • Unit - Order TS_FearedUnit[TSI] to Move To TS_FearPoint[TSI]
          • Set TS_Index = (TS_Index - 1)
        • Else - Actions
      • Custom script: call DestroyGroup(udg_TS_UnitGroup[(udg_TS_Index)])
      • Custom script: call RemoveLocation(udg_TS_Point[(udg_TS_Index)])
      • Custom script: call RemoveLocation(udg_TS_FearPoint[(udg_TSI)])
Specifically:

  • Set TS_FearPoint[TSI] = ((Position of TS_FearedUnit[TSI]) offset by 450.00 towards ((Facing of TS_FearedUnit[TSI]) + 180.00) degrees)
Another leak and 3 double frees
Oh and since you decreased the index, you're actually leaking the group and a location :l


Looks like you had more leaks than you thought :p
 
Level 17
Joined
Jun 17, 2010
Messages
2,275
Lalalalalaa im not reading i only had one leak idc what you say!!!! Honestly i dont really care, i knew my coding wasnt perfect, and if it was i'd hate myself, perfection has no meaning, you learn from error =)

And mag, im glad you point that stuff out because from my stand point i thought it was leak free, next time i wont make those mistakes.
 
Level 16
Joined
Apr 4, 2011
Messages
995
Ignoring mistakes is almost as bad as intentionally commiting them : l

Almost nothing is perfect the first time it is implemented. No one gave any actual coding feedback on the contest thread (and no one told me my hero sucked either :mad: ), so I'd expect leaks and such.

@Mag, It's ok if everyone hates you after contest. I will always love your lebanese ass
 
Guys, I finished judging 7 hours ago :>

@Maggy - I restrained myself from putting that list of leaks as I wanted to just have it at the end when the judgings were posted, and then you posted it... haha... anyway, I expect them to hate me too after this contest...

^^
You can still post Xiliger's local handle leaks xD
 
Status
Not open for further replies.
Top