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

Hero Contest #3 - Avatar

Status
Not open for further replies.
Level 11
Joined
May 16, 2007
Messages
288
@Duruka: well, a bit too simple imo, 3 (4 if you count the elemental's death) damage spells isn't very interesting, and the ultimate just doesn't feel like an ultimate: the Archmage's level 3 water elemental summons 2 elementals that are stronger than the one summoned by your ultimate and it doesn't have to sacrifice an ally.

There's also a problem with Shock aura: you use "A unit is attacked" which is bad because it triggers when the unit starts the attack animation, things like this can happen:

Example:
Unit X deals 1 million damage per attack, but has only 1 health.
Hero is attacked by a thousand units X.
Every single one of them dies before they can attack the hero, because shock aura kills them before they can finish the attack animation.
 
Level 5
Joined
Dec 15, 2009
Messages
145
I know it's simple. I'll be lucky to get one vote. I'll make the water elemental stronger, and fix that other stuff.

Edit: It might have to stay as "A unit is attacked". The event "A unit takes damage" doesn't exist, and I would have to use a specific unit event. I'll update it in awhile, I'm a bit busy atm.
 
Level 11
Joined
May 16, 2007
Messages
288
I know it's simple. I'll be lucky to get one vote. I'll make the water elemental stronger, and fix that other stuff.

Edit: It might have to stay as "A unit is attacked". The event "A unit takes damage" doesn't exist, and I would have to use a specific unit event. I'll update it in awhile, I'm a bit busy atm.

Ahhh.. yes, forgot about that. But if you understand jass, you could try using a damage detection system for it.
 
Level 18
Joined
Feb 28, 2009
Messages
1,970
Edit: It might have to stay as "A unit is attacked". The event "A unit takes damage" doesn't exist, and I would have to use a specific unit event. I'll update it in awhile, I'm a bit busy atm.
You can make simple GUI one. Just look on how it`s made here. In your case it will look good coz you need this only for the hero(es).
 
Level 5
Joined
Dec 15, 2009
Messages
145
No, I don't know jass...I'll probaly learn it soon. I'm also adding a stun to Earth Strike, maybe a knockback to the elemental's death (are knockback systems allowed, or do I have to make my own?).
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
No, any previous published work isn't valid.

Anachron hasn't finished his missile system and he hasn't published it so he can use it.

But i ain't a judge so i dunno.

If you ask me using already made spells is wrong since this is a contest you are expected to produce new things and show how much original and innovative you can be.
 
Level 22
Joined
Dec 31, 2006
Messages
2,216
Zinc isn't allowed. Only GUI, JASS and vJASS.
And about Anachron's system. As far as I know when this contest started he had just begun, so 98% of it is made after the contest started, so that's allowed I think. Just look a few pages back. I'm pretty sure you'll find the answer there.
 
Level 22
Joined
Dec 31, 2006
Messages
2,216
I can read Zinc and understand it, so that's not why. It's because the rules (contest rules) say so.
Rules said:
The spells can be made using GUI, JASS, vJASS, or just significant object editor work.
It's the same for the spells section, even though some exceptions occur there, it is not officially accepted here at the hive, yet.
 
Last edited:
Level 16
Joined
Feb 22, 2006
Messages
960
Read this thread please...

http://www.hiveworkshop.com/forums/...ces-acceptable-146328/?highlight=zinc+allowed

The rules haven't been updated for months. Back then, Poot was in charge of pretty much everything, so if he said Zinc is allowed, Zinc is allowed.

since the spell section rules are not updated... and this contest follows the spell section rules + in 1. post rules ... and I can't find any hint of zinc, it's not allowed. What poot said back then didnt affect the rules.

Zinc is not allowed in this contest. Get it!


The point with GUI code judging:

Of course there will be a way to judge both kind of scripters equally, in my opinion GUI shouldn't be rated that high, since it's not another way to script just another form of writing the script with less efficiency. TRD and I will find a fair solution ;)
 
Level 10
Joined
Mar 30, 2009
Messages
255
Edit: It might have to stay as "A unit is attacked". The event "A unit takes damage" doesn't exist, and I would have to use a specific unit event. I'll update it in awhile, I'm a bit busy atm.

you could make it with the "a unit takes damage" event.. the problem is that this refers to every kind of damage... attack and spell..

is it allowed to help? i mean to post codes or attach a map ?? :)
 
Level 10
Joined
Mar 30, 2009
Messages
255
Yes, so its not 'A unit takes damage' but 'Unit X takes damage'. ;-)

i know theres no "A unit takes damage" event,

but you could, when the hero learns the ability and the ability's level is higher than 0, add to the trigger X the event: "triggering unit takes damage".. here you are :)

edit:
is it allowed to help? i mean to post codes or attach a map ?? :)

ok the rules say that teams or something like that are not allowed, so just forget about the question..
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
As for the GUI scoring issue I think it should be judged by the following:

  • is the code leakless
  • is the code clean (not needed variables degrade this factor for example while not using enough variables does the same)
  • if indexing is used is it using dynamic recycling, if it is it scores more points than hashtables as it is more efficent(afaik)
  • if the code is using hashtables or non dynamic recycling indexing those should be treated the same
  • the code's structure, could the spell be done with less If/Then/Else branches for example

Though this is my opinion only, since i prefer indexing over hashtables, but the code structure and the fact is it clean or not should be taken into count.
 
Level 18
Joined
Feb 28, 2009
Messages
1,970
Though this is my opinion only, since i prefer indexing over hashtables, but the code structure and the fact is it clean or not should be taken into count.
Umm, well. I hate indexing in GUI because even if it`s faster it looks awful in GUI code.
But it`s my opinion.

EDIT: Yay, I got an idea for passive!
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
Hmm is this small script i wrote ok:

JASS:
//***********************************************************************************
//* By Kingz: *
//* Math Basic Library *
//* A library i made to speed up coding of my submisions *
//* Contains several usefull functions and several functions i use *
//* are simmilar to existing ones. *
//* Also contains the Max/Min values of the maps X/Y which are used as boundaries *
//***********************************************************************************

library BasicStuff initializer XY

globals
    real MaxX // used for the maps Max X
    real MaxY // used for the maps Max Y
    real MinX // used for the maps Min X
    real MinY // used for the maps Min Y

    private constant real OffsetAngle = 0 // used for the Z facing function but is model based,for this model the value is 0
endglobals

//parabola function for the missile - Credits go to Moyack
constant function ParabolaZ takes real h,real d,real cd returns real
    return (4*h / d)*(d - cd)*(cd / d)
endfunction

//used to replace AnyUnitEventBJ
constant function dummyFilter takes nothing returns boolean
    return true
endfunction

//polar projection x
function PPX takes real x,real dist,real rad returns real
    return x + dist * Cos(rad)
endfunction

//polar projection y
function PPY takes real y,real dist,real rad returns real
    return y + dist * Sin(rad)
endfunction

//radian between locations
function RBL takes real x1, real y1, real x2, real y2 returns real
    return Atan2(y2 - y1, x2 - x1)
endfunction

//distance between locations
function DBL takes real x1, real y1, real x2, real y2 returns real
    return SquareRoot((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1))
endfunction

// used for dummy unit z facings
function SetUnitZFacing takes unit whichUnit, real facingAngle returns nothing
    local integer i = R2I((facingAngle+OffsetAngle)*0.7+0.5)
    if i>0 then
        call SetUnitAnimationByIndex(whichUnit, i)
    else
        call SetUnitAnimationByIndex(whichUnit, i+252)
    endif
endfunction

//sets up the min/max X/Y values
function XY takes nothing returns nothing
    set MaxX = GetRectMaxX(bj_mapInitialPlayableArea)
    set MaxY = GetRectMaxY(bj_mapInitialPlayableArea)
    set MinX = GetRectMinX(bj_mapInitialPlayableArea)
    set MinY = GetRectMinY(bj_mapInitialPlayableArea)
endfunction

endlibrary

It basically inlines several bj's and works as a setup for Min/Max X/Y values if i need them.

I wrote this some time ago for things like this and for general coding speed so i don't have to inline Polar Projection and Distance/Angle between coordinates in every thing i make.
 
Last edited:
Level 22
Joined
Dec 31, 2006
Messages
2,216
EoF, orly?
Rofl, that bug should be fixed as it should be ridiculously easy to fix. I can't believe he managed to create that bug in the first place. That made me facepalm.
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
JASS:
//polar projection x
function PPX takes real x,real dist,real rad returns real
    return x + dist * Cos(rad)
endfunction

//polar projection y
function PPY takes real y,real dist,real rad returns real
    return y + dist * Sin(rad)
endfunction

Maybe i wasn't clear when i said several instead of all. :p

I automatically said Distance/Angle between coordinates without thinking :eek:
 
Level 5
Joined
Dec 15, 2009
Messages
145
I don't think so ... it isn't too hard to make it by yourself anyways ^^

I'm a noob, don't know how to make them yet :hohum: Whatever, added a stun to Earth Strike, made the elemental stronger, and the ultimate can't target buildings now.

Edit: To answer your question:
Systems that do most of the work for you are not allowed. This includes things such as "Caster Systems". However, things such as damage detection or Struct attachment systems are fine
 

Attachments

  • Duruka's Submission.w3x
    70 KB · Views: 280
Level 7
Joined
Jan 18, 2010
Messages
61
My 2 cents

As for the GUI scoring issue I think it should be judged by the following:

  • is the code leakless
  • is the code clean (not needed variables degrade this factor for example while not using enough variables does the same)
  • if indexing is used is it using dynamic recycling, if it is it scores more points than hashtables as it is more efficent(afaik)
  • if the code is using hashtables or non dynamic recycling indexing those should be treated the same
  • the code's structure, could the spell be done with less If/Then/Else branches for example

Though this is my opinion only, since i prefer indexing over hashtables, but the code structure and the fact is it clean or not should be taken into count.

I'm pretty curious myself about how coding is judged and this debate didn't have too decisive a conclusion. As for myself, I believe

Leaks should be punished severely

Lag during regular melee play should be punished depending on severity

Bugs during melee gameplay should be signalled by anyone who sees them and punished according to severity and likelihood to appear

And the rest shouldn't (at all). That's because the other items don't impact efficiency except maybe by a constant (and very minor) factor.

If I understand the contest correctly, it is intented to make a single melee hero to be played in melee maps. It should NOT be the author's task to
  • optimize the hero to the razor's edge of speed so that he can be played with another 1000 systems and scripts
  • write his code so that it's a breeze to understand by anyone curious as to how a certain functionality was implemented
  • structure his code according to any kind of aesthetical criteria
  • write his hero using fashionable stuff like vjass or widely-used systems (or even jass for that matter) (hell, or even gui, if he can pull off something sweet using object editor in an extremely complicated and un-intuitive way that nobody can understand but him, but works, why punish him?)
  • think of possible interactions between his code and some popular system that somebody might want to use his hero with

It's only a melee hero, intended to be played as the only addition to an otherwise completely normal melee map. As long as it doesn't leak and it doesn't lag, who cares about his code structure or whether he used gui or jass to get the job done?
 
Status
Not open for further replies.
Top