1. Head to the 33rd Modeling Contest Poll and drink to your heart's desire.
    Dismiss Notice
  2. Choose your means of doom in the 17th Mini Mapping Contest Poll.
    Dismiss Notice
  3. A slave to two rhythms, the 22nd Terraining Contest is here.
    Dismiss Notice
  4. The heavens smile on the old faithful. The 16th Techtree Contest has begun.
    Dismiss Notice
  5. The die is cast - the 6th Melee Mapping Contest results have been announced. Onward to the Hive Cup!
    Dismiss Notice
  6. The glory of the 20th Icon Contest is yours for the taking!
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Icon/Model/Spell Team Contest - Hive Member[+100 Rep]

Discussion in 'Contest Archive' started by IcemanBo, Nov 5, 2017.

Thread Status:
Not open for further replies.
  1. FerSZ

    FerSZ

    Joined:
    May 9, 2016
    Messages:
    113
    Resources:
    13
    Models:
    13
    Resources:
    13
    @IcemanBo
     
  2. Chaosy

    Chaosy

    Tutorial Reviewer

    Joined:
    Jun 9, 2011
    Messages:
    11,058
    Resources:
    18
    Icons:
    1
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    18
    Freaking tree hugers.
     
  3. Stefan.K

    Stefan.K

    Joined:
    Dec 29, 2014
    Messages:
    1,658
    Resources:
    97
    Models:
    97
    Resources:
    97
    @Daffa the Mage agree to be our coder. We will think about the name of our team later. Btw, I'm doing the modeling job, @Exarch will do the icons and @Daffa the Mage will do the spells.
     
  4. Chaosy

    Chaosy

    Tutorial Reviewer

    Joined:
    Jun 9, 2011
    Messages:
    11,058
    Resources:
    18
    Icons:
    1
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    18
    Second code wip. Mostly utility stuff such as filtering out certain units, some BJ function removal, leak cleanup etc.

    Code (vJASS):

    native UnitAlive takes unit id returns boolean
    //! zinc
        library Charm requires Missile, TimedUnitScale, TimerUtils, GroupTools {
     
            constant real GROW_TIME = 1;
            constant integer SPELL_ID = 'A003';
            constant real MANIFEST_COLOR = 80;
            constant string MANIFEST_SPAWN_EFFECT = "Aph Effect.mdx";
            constant string MANIFEST_SPAWN_MISSILE = "aph Missile.mdx";
            constant real MANIFEST_SHRINK = 10;
            constant real MANIFEST_DURATION = 10;
         
            hashtable hash = InitHashtable();
            group g;

            function stun(unit u, real dur) {
                udg_STE_TARGET = u;
                udg_STE_DURATION = dur;
                udg_STE_STACK_TIME = true;
                udg_STE_ADD_STUN = true;
                TriggerEvaluate(udg_STE_TRIGGER);
            }
     
            struct Spawn {
                static method onFinish (Missile missile) -> boolean {
                    timer t;
                    integer h;
                    unit target = LoadUnitHandle(hash, missile, 0);
                    integer id = GetUnitTypeId(target);
                    unit u = CreateUnit(Player(13), id, missile.x, missile.y, missile.angle);
                 
                    DestroyEffect(AddSpecialEffect(MANIFEST_SPAWN_EFFECT, GetUnitX(u), GetUnitY(u)));
                    stun(u, GROW_TIME);
                    SetUnitInvulnerable(u, true);
                    SetUnitVertexColorBJ(u, MANIFEST_COLOR, MANIFEST_COLOR, MANIFEST_COLOR, 60);
                    SetUnitScalePercent(u, MANIFEST_SHRINK, MANIFEST_SHRINK, MANIFEST_SHRINK);
                    UnitScale[u].apply(1, GROW_TIME);
                 
                    t = NewTimer();
                 
                    h = GetHandleId(t);
                 
                    SaveBoolean(hash, GetHandleId(u), 1, true);
                 
                    SaveUnitHandle(hash, h, 0, u);
                    SaveUnitHandle(hash, h, 1, target);
                 
                    TimerStart(t, GROW_TIME, false, function() {
                        timer t = GetExpiredTimer();
                        integer id = GetHandleId(t);
                        unit u = LoadUnitHandle(hash, id, 0);
                        unit origin = LoadUnitHandle(hash, id, 1);
                     
                        IssueTargetOrder(u, "attack", origin);
                     
                        SetUnitInvulnerable(u, false);
                        UnitApplyTimedLife(u, 'BTLF', 10);
                     
                        FlushChildHashtable(hash, id);
                        ReleaseTimer(t);
                     
                        SaveUnitHandle(hash, GetHandleId(u), 0, origin);
                     
                        t = null;
                        u = null;
                        origin = null;
                    });
                 
                    FlushChildHashtable(hash, missile);
                 
                    u = null;
                    target = null;
                    t = null;
                    return true;
                }
                module MissileStruct;
            }
         
            function groupLoop() {
                unit u = GetEnumUnit();
                real x = GetUnitX(u);
                real y = GetUnitY(u);
             
                Missile m =  Missile.create(x, y, 75, GetRandomReal(0, 360), 400, 50);
             
                SaveUnitHandle(hash, m, 0, u);
             
                m.source    = GetTriggerUnit();
                m.speed     = 10.;
                m.model     = MANIFEST_SPAWN_MISSILE;
                m.arc       = bj_PI/4;
                m.owner     = GetTriggerPlayer();
                Spawn.launch(m);
             
                u = null;
            }
         
            function isManifestation(unit u) -> boolean{
                return LoadBoolean(hash, GetHandleId(u), 1);
            }
         
            function onCastFilter(unit u, player p) -> boolean {
                return UnitAlive(u) && !isManifestation(u) && IsUnitEnemy(u, p);
            }
         
            function onCast() {
                real x = GetSpellTargetX();
                real y = GetSpellTargetY();
                unit u = GetSpellAbilityUnit();
                integer h;
             
                g = NewGroup();
                GroupUnitsInArea(g, x, y, 300);
             
                h = GetHandleId(g);
                SavePlayerHandle(hash, h, 0, GetOwningPlayer(u));
             
                ForGroup(g, function () {
                    unit u = GetEnumUnit();
                    player p = LoadPlayerHandle(hash, GetHandleId(g), 0);
                    if(!onCastFilter(u, p)) {
                        GroupRemoveUnit(g, u);
                    }
                    p = null;
                    u = null;
                });
             
                FlushChildHashtable(hash, h);
             
                ForGroup(g, function groupLoop);
                ReleaseGroup(g);
                u = null;
            }
         
            function filter() -> boolean{
                return GetSpellAbilityId() == SPELL_ID;
            }
         
            function isSet(unit u) -> boolean {
                return u != null;
            }
         
            function onDamage() {
                unit origin = LoadUnitHandle(hash, GetHandleId(udg_DamageEventSource), 0);
                if (origin != udg_DamageEventTarget && isSet(origin)) {
                    udg_DamageEventAmount = 0.00;
                }
                origin = null;
            }
         
            function onDeathFilter() -> boolean{
                return isManifestation(GetFilterUnit());
            }
         
            function onDeath() {
                FlushChildHashtable(hash, GetHandleId(GetTriggerUnit()));
            }
         
            function onInit() {
                trigger t = CreateTrigger();
                TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT);
                TriggerAddCondition(t, Condition(function filter));
                TriggerAddAction(t, function onCast);
             
                t = CreateTrigger();
                TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_DEATH);
                TriggerAddCondition(t, Condition(function onDeathFilter));
                TriggerAddAction(t, function onDeath);
             
                t = CreateTrigger();
                TriggerRegisterVariableEvent(t, "udg_DamageModifierEvent", EQUAL, 1.00);
                TriggerAddAction(t, function onDamage);
             
             
             
                t = null;
            }
        }
    //! endzinc


    Which BJ functions are ok? I feel like the RegisterAnyUnitBJ is totally fine, it does not seem to contain unnecessary code.
     
  5. Daffa

    Daffa

    Joined:
    Jan 30, 2013
    Messages:
    8,200
    Resources:
    31
    Packs:
    1
    Maps:
    9
    Spells:
    18
    Tutorials:
    3
    Resources:
    31
    It doesn't matter whether we use GUI, Jass, vJass or Wurst right?
     
  6. Misha

    Misha

    Joined:
    Jun 9, 2008
    Messages:
    7,241
    Resources:
    71
    Models:
    62
    Icons:
    1
    Packs:
    2
    Skins:
    4
    StarCraft II Resources:
    2
    Resources:
    71
    I don't think it does .u.
     
  7. Daffa

    Daffa

    Joined:
    Jan 30, 2013
    Messages:
    8,200
    Resources:
    31
    Packs:
    1
    Maps:
    9
    Spells:
    18
    Tutorials:
    3
    Resources:
    31
    Alright then, time for the benefit of basic experience :D
     
  8. Fingolfin

    Fingolfin

    Joined:
    Jan 11, 2009
    Messages:
    3,249
    Resources:
    154
    Models:
    144
    Icons:
    1
    Packs:
    4
    Skins:
    2
    Maps:
    1
    Spells:
    1
    Tutorials:
    1
    Resources:
    154
    Sorry to hear about the kidney stones @MiniMage, my girlfriend's mom once told me that it's literally worse than childbirth. Hope everything went well.
     
  9. MiniMage

    MiniMage

    Joined:
    Jun 5, 2008
    Messages:
    1,744
    Resources:
    22
    Models:
    21
    Skins:
    1
    Resources:
    22
    My kidney stones aren't that bad, I think. Although I am saying this with morphine in my system, so idonno. The kidney stones she must've suffered with must've been big as hell. The biggest issue I am facing is figuring out what to eat. Because I've basically lived on a diet of meat, chicken, salt and spices. Which combined with my genetic kidney disease probably is why I ended up having kidney stones again, I've had it once before.

    If anyone of you guys know any good food to eat for people with kidney stones, leave a comment on my profile (As to not clutter this thread too much). The biggest issue now is basically hunger pains. You drink so much water that you basically piss out the nutrients and well, that's not a good thing. So far, I've lived on carrot soup. Because I was informed that Potatoes, Yellow Onions and Carrots are good to eat to avoid kidney stones. Red paprika appears to be good too, so I now I am equipped with something to eat for breakfast too.
     
  10. Hayate

    Hayate

    Joined:
    Oct 20, 2010
    Messages:
    2,517
    Resources:
    66
    Models:
    51
    Icons:
    14
    Spells:
    1
    Resources:
    66
    Spell Icon 90%
    BrushIconFinal.jpg


    Spell Icon WIP1 & 2
    BrushIcon.jpg
    BrushIcon.jpg




    Hero Portrait 90%
    LadyHiveFinal.jpg


    Hero Portrait WIP
    [​IMG]



    SpellWithHero WIP1, 2, 3

    3rdIcon.jpg
    3rdIcon2.jpg

    3rdIconWIP5.jpg




    Just a little push and Im done :D I want to get over with this already
     
  11. deepstrasz

    deepstrasz

    Map Reviewer

    Joined:
    Jun 4, 2009
    Messages:
    15,313
    Resources:
    1
    Maps:
    1
    Resources:
    1
    That's only if your kidneys and intestines don't do proper absorption.
    Anyways, urologists and nephrologists should know what to tell you on the matter.
     
  12. Kyrbi0

    Kyrbi0

    Joined:
    Jul 29, 2008
    Messages:
    8,385
    Resources:
    2
    Models:
    1
    Maps:
    1
    Resources:
    2
    @Hayate Looking great! Particularly love the hero & spell icon!
     
  13. Chaosy

    Chaosy

    Tutorial Reviewer

    Joined:
    Jun 9, 2011
    Messages:
    11,058
    Resources:
    18
    Icons:
    1
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    18
    Seconding. I imagine it will look great downscaled (as an icon).
     
  14. Hayate

    Hayate

    Joined:
    Oct 20, 2010
    Messages:
    2,517
    Resources:
    66
    Models:
    51
    Icons:
    14
    Spells:
    1
    Resources:
    66
    BrushIconFinal.jpg LadyHiveFinal.jpg HeroWithSpellIconFinal.jpg
    Ok all near done, Just add in the border and I will upload it


    [​IMG] [​IMG] [​IMG]


    ~ApherazLucentHeroHiRes.jpg
    ~ApherazLucentSpellHiRes.jpg
    ~SpellBrushHiRes.jpg

     
    Last edited: Dec 3, 2017
  15. Exarch

    Exarch

    Joined:
    Mar 23, 2014
    Messages:
    157
    Resources:
    7
    Icons:
    7
    Resources:
    7
    @IcemanBo we want our team name to be CHAMPIONS and the colour should be gold #ffbf00
     
  16. Chaosy

    Chaosy

    Tutorial Reviewer

    Joined:
    Jun 9, 2011
    Messages:
    11,058
    Resources:
    18
    Icons:
    1
    Maps:
    1
    Spells:
    10
    Tutorials:
    6
    Resources:
    18
    @Hayate
    Maybe make the hair a bit broader, it is barely visible on the downscaled version (even it looks great fullscale)

    And yes I am allowed to give criticism since I am in his team.
     
  17. Mike

    Mike

    Joined:
    Jan 1, 2013
    Messages:
    402
    Resources:
    81
    Models:
    77
    Icons:
    3
    Maps:
    1
    Resources:
    81
    Im interested in making hero based on General Frank.
     
  18. Hayate

    Hayate

    Joined:
    Oct 20, 2010
    Messages:
    2,517
    Resources:
    66
    Models:
    51
    Icons:
    14
    Spells:
    1
    Resources:
    66
  19. Cokemonkey11

    Cokemonkey11

    Wurst Reviewer

    Joined:
    May 9, 2006
    Messages:
    3,270
    Resources:
    18
    Tools:
    1
    Maps:
    5
    Spells:
    3
    Tutorials:
    2
    JASS:
    7
    Resources:
    18
    Yes, all are okay - I am happy to judge entries from all of these (and that's the key requirement) :)
     
  20. Exarch

    Exarch

    Joined:
    Mar 23, 2014
    Messages:
    157
    Resources:
    7
    Icons:
    7
    Resources:
    7
    Trying to define @Direfury as Dark Paladin.. I sadly can't work on spell icons yet, waiting for my team.
    Wip
    direfury_standwip08.jpg
     
Thread Status:
Not open for further replies.