[Contest] Tower Contest - Version Deux

Which Tower was the Best?


  • Total voters
    25
  • Poll closed .

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
Lawl..
So ghan just left this contest for quite a time...He didnt update the 2nd post
 

Cheddar

This is the way it was meant to be.
Reaction score
126
Actually he hasn't left it; he put my name in the entries just yesterday.

Perhaps he's forgotten the 2nd post.
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
> Actually he hasn't left it; he put my name in the entries just yesterday.

Hey, hey, I'm right here. :p

> Perhaps he's forgotten the 2nd post.

Worried? :p

I updated it just now to put you at ease.
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
> Where is my image T_T

Eh?

It's there.
You posted it as an attachment, so I couldn't get the IMG tag link since there was none. :p
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
Updated
JASS:
//**************************************************************************************************************
//                                 KentChow75 / ~Gals~                                                        ** 
//                                       presents                                                             ** 
//                                     DEATH CURSE                                                            **  
//                                                                                                            **  
//                                For the Tower Contest 2 !!                                                  **
//                                                                                                            **  
**       'Implementation Instruction'                                                                         **  
//                                                                                                            **  
//  1. For the very first thing, you need NewGenJass WorldEditor to get this                                  **  
//     code works...Since it uses some of the features from it <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin    :D" loading="lazy" data-shortname=":D" />                                             **
//     --Get NewGen World Editor at <a href="http://www.wc3campaigns.net--" target="_blank" class="link link--external" rel="nofollow ugc noopener">www.wc3campaigns.net--</a>                                                    **      
//                                                                                                            **  
//  2. When you have got that, it is time to start out implementation.                                        **
//                                                                                                            **   
//  3. Copy the whole code or trigger of the DeathCurse into your map.                                        **      
//                                                                                                            **                      
//  4. Copy all those 4 unit from the object editor to your map.                                              **
//                                                                                                            ** 
//  5. Copy the 2 Ability and 1 buff from the object editor to you map too.                                   **
//                                                                                                            ** 
//  6. Switch to the code now, notice the part with all Constant Function.                                    **
//                                                                                                            **  
//  7. This is the place where you can edit, the function it does had been written as comment at there.       ** 
//                                                                                                            ** 
//  8. If you are pro enough, you may edit the other code. But watch what you are doing, it may ruin you map. **
//                                                                                                            **
//  9. Copy all 4 things from the import manager to your map.                                                 **
//                                                                                                            **
// 10. Tower ready in use.                                                                                    **
//**************************************************************************************************************

&#039;Troubleshooting&#039;
Q. Where to edit the slow percentage of the Death?
A. Advanced -&gt; Gameplay Constants -&gt; Spell-Frost Attack speed reduction (%)

Q. Where to edit the duration of the buff?
A. For the Death? &gt;&gt; ObjectEditor -&gt; Abilities -&gt; Dea|c00D81D07t|rh? -&gt; Duration Hero/Unit
   For the DummyClapExplode &gt;&gt; ObjectEditor -&gt; Abilities -&gt; Dummy Clap Explode -&gt; Duration Hero/Unit
   
&#039;If there is any other question you need to ask me, you are welcomed to email me at <a href="mailto:[email protected]">kentchow75@gmail.com</a>&#039;

JASS:
//------------------------------------------//
//Global Variable                           //
//------------------------------------------//
globals                                     //
trigger DeathC = CreateTrigger()            //
trigger DeathCheck = CreateTrigger()        //
trigger Upgrade = CreateTrigger()           //
trigger BuffChecker = CreateTrigger()       //
trigger Explode = CreateTrigger()           //
endglobals                                  //
//------------------------------------------//
//Global Variable End                       //
//------------------------------------------//

//----------------------------------------------------------------------//
//Constant Functions                                                    //
//----------------------------------------------------------------------//
constant function Rtower1 takes nothing returns integer                 //
return &#039;h000&#039; //Rawcode of DeathCurse lvl 1                             //
endfunction                                                             //
                                                                        //
constant function Rtower2 takes nothing returns integer                 //
return &#039;h001&#039; //Rawcode of DeathCurse lvl 2                             //
endfunction                                                             //
                                                                        //
constant function Rtower3 takes nothing returns integer                 //
return &#039;h002&#039; //Rawcode of DeathCurse lvl 3                             //
endfunction                                                             //
                                                                        //
constant function RDeathSpell takes nothing returns integer             //
return &#039;A002&#039; //Rawcode of DeathCurse lvl 1                             //
endfunction                                                             //
                                                                        //
constant function RDeathBuff takes nothing returns integer              //
return &#039;B001&#039; //Rawcode of Death?&#039;s buff                                //
endfunction                                                             //
                                                                        //
constant function DeathEffe takes nothing returns string                //
return &quot;Abilities\\Spells\\Items\\AIso\\AIsoTarget.mdl&quot;                 //
endfunction  //The effect that happen when unit being instant killed    //
                                                                        //
constant function GetPercen takes integer AbilLvl returns integer       //
return AbilLvl*2  //Percentage of instant kill                          //
endfunction       //(Level of Death? * &lt;value you want&gt; Current = 2%    //
                                                                        //
constant function RDummyUnit takes nothing returns integer              //
return &#039;h003&#039; //Rawcode of the dummy clapper                            //
endfunction                                                             //
                                                                        //
constant function RDummySpell takes nothing returns integer             //
return &#039;A000&#039; //Rawcode of DummyClapExplode                             //
endfunction                                                             //
                                                                        //
constant function GenericTimer takes nothing returns integer            //
return &#039;BTLF&#039; //Rawcode of Generic life time                            //
endfunction                                                             //
//----------------------------------------------------------------------//
//Constant Functions End                                                //
//----------------------------------------------------------------------//

//-------------------------------------------------------------------------
//Explode Trigger
//-------------------------------------------------------------------------
function ExplodeCond takes nothing returns boolean
return (GetUnitUserData(GetDyingUnit())== 1) ==true  //Dying unit&#039;s custom value is 1 equal to true
endfunction

function ExplodeAct takes nothing returns nothing
local unit target = GetDyingUnit()
local unit dummy
local real Tx2 = GetUnitX(target)
local real Ty2 = GetUnitY(target)
set dummy = CreateUnit(GetOwningPlayer(GetKillingUnit()),RDummyUnit(),Tx2,Ty2,270)  //Create a unit at position of dying unit
call UnitAddAbility(dummy,RDummySpell())                                            //Add dummy clap explode to last created unit
call SetUnitAbilityLevel(dummy,RDummySpell(),1)                                     //Set the lvl of dummy clap explode to 1
call IssueImmediateOrder(dummy,&quot;thunderclap&quot;)                                       //Order it to cast dummy clap explode
call UnitApplyTimedLife(dummy,GenericTimer(),2)                                     //Add 2 second generic timed life to last created unit
set target = null //Nulling variable to prevent leaks
set dummy = null  //             &quot;
endfunction
//-------------------------------------------------------------------------
//Explode Trigger
//-------------------------------------------------------------------------

//-------------------------------------------------------------------------
//BuffChecker Trigger
//-------------------------------------------------------------------------
function WholeAct takes nothing returns nothing
if GetUnitAbilityLevel(GetEnumUnit(),RDeathBuff())&gt;0 then //if picked unit has Death? buff then
call SetUnitUserData(GetEnumUnit(),1)     //set unit&#039;s custom value to 1
call SetUnitExploded(GetEnumUnit(),true)  //set unit explode on death equal to true
else                                      //else
call SetUnitUserData(GetEnumUnit(),0)     //set unit&#039;s custom value to 0
call SetUnitExploded(GetEnumUnit(),false) //set unit explode on death equal to false
endif
endfunction

function BuffCheckerAction takes nothing returns nothing
local group Whole = CreateGroup() //localize a group
call GroupEnumUnitsInRect(Whole,bj_mapInitialPlayableArea,null) //pick every unit in the playable map area to the group
call ForGroup(Whole,function WholeAct) //loop action of the group...refer to WholeAct
endfunction
//-------------------------------------------------------------------------
//BuffChecker Trigger End
//-------------------------------------------------------------------------

//-------------------------------------------------------------------------
//Upgrade Trigger
//-------------------------------------------------------------------------
function UpgradeCond takes nothing returns boolean
return (GetUnitTypeId(GetTriggerUnit()) == Rtower2()) ==true or (GetUnitTypeId(GetTriggerUnit()) == Rtower3()) == true
endfunction //If tower being upgraded is Rtower2 or Rtower3 equal to true

function UpgradeAct takes nothing returns nothing
  if GetUnitTypeId(GetTriggerUnit()) == Rtower2() then //If upgraded tower is Rtower 2
    call UnitAddAbility(GetTriggerUnit(),RDeathSpell()) //then add Death? to the tower and set the lvl of it to 2
    call SetUnitAbilityLevel(GetTriggerUnit(),RDeathSpell(),2)
  elseif GetUnitTypeId(GetTriggerUnit()) == Rtower3() then//If upgraded tower is Rtower3 then
    call UnitAddAbility(GetTriggerUnit(),RDeathSpell())  //Add Death? to the tower and set the lvl of it to 3
    call SetUnitAbilityLevel(GetTriggerUnit(),RDeathSpell(),3)
  endif
endfunction
//-------------------------------------------------------------------------
//Upgrade Trigger End
//-------------------------------------------------------------------------

//-------------------------------------------------------------------------
//DeathCheck Trigger
//-------------------------------------------------------------------------
function DeathCheckCond takes nothing returns boolean
return (GetUnitAbilityLevel(GetTriggerUnit(),RDeathBuff())&gt;0) ==true //Damaged unit has Death? Buff equal to true
endfunction

function DeathCheckAct takes nothing returns nothing
local real Tx = GetUnitX(GetTriggerUnit())
local real Ty = GetUnitY(GetTriggerUnit())
local integer Lvl = GetUnitAbilityLevel(GetTriggerUnit(),RDeathBuff()) //Get the level of buff in the damaged unit
  if GetRandomInt(1,100) &lt;= GetPercen(Lvl) then //Get the percentage...
    call DestroyEffect(AddSpecialEffect(DeathEffe(),Tx,Ty))//Create a special effect and kill the unit in the next action
    call UnitDamageTarget(GetEventDamageSource(),GetTriggerUnit(),99999999999,true,false,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
  call ResetTrigger(GetTriggeringTrigger())  //Reset this trigger to its original form since it is being added a few event
  endif
endfunction
//-------------------------------------------------------------------------
//DeathCheck Trigger End
//-------------------------------------------------------------------------

//-------------------------------------------------------------------------
//DeathC Trigger
//-------------------------------------------------------------------------
function DeathCCond takes nothing returns boolean
return (GetUnitAbilityLevel(GetAttacker(),RDeathSpell()) &gt;0) ==true //if the attacker has Death? spell equal to true
endfunction

function DeathCAct takes nothing returns nothing
call TriggerRegisterUnitEvent(DeathCheck,GetTriggerUnit(),EVENT_UNIT_DAMAGED) //Add a unit event to DeathCheck
endfunction
//-------------------------------------------------------------------------
//DeathC Trigger End
//-------------------------------------------------------------------------

//-------------------------------------------------------------------------
//Death Curse Main Trigger
//-------------------------------------------------------------------------
function DeathCurseCond takes nothing returns boolean
return (GetUnitTypeId(GetConstructedStructure()) == Rtower1()) == true 
endfunction


function Trig_DeathCurse_Actions takes nothing returns nothing
    call UnitAddAbility(GetConstructedStructure(),RDeathSpell())         //Add Death? to the tower and set the lvl of it to the lvl of it deserves
    call SetUnitAbilityLevel(GetConstructedStructure(),RDeathSpell(),1)
endfunction
//-------------------------------------------------------------------------
//Death Curse Main Trigger End
//-------------------------------------------------------------------------

//===========================================================================
function InitTrig_DeathCurse takes nothing returns nothing
    set gg_trg_DeathCurse = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_DeathCurse, EVENT_PLAYER_UNIT_CONSTRUCT_FINISH )
    call TriggerAddCondition(gg_trg_DeathCurse,Condition(function DeathCurseCond))
    call TriggerAddAction( gg_trg_DeathCurse, function Trig_DeathCurse_Actions ) 
    
    //===========================================================================
    //Trigger Registration of DeathC
    //===========================================================================
    call TriggerRegisterAnyUnitEventBJ( DeathC, EVENT_PLAYER_UNIT_ATTACKED)
    call TriggerAddCondition(DeathC,Condition(function DeathCCond))
    call TriggerAddAction( DeathC, function DeathCAct )
    //===========================================================================
    //Trigger Registration of DeathC End
    //===========================================================================
    
    //===========================================================================
    //Trigger Registration of DeathCheck
    //===========================================================================
    call TriggerAddAction( DeathCheck, function DeathCheckAct )
    call TriggerAddCondition(DeathCheck,Condition(function DeathCheckCond))
    //===========================================================================
    //Trigger Registration of DeathCheck End
    //===========================================================================
    
    //===========================================================================
    //Triger Registration of Upgrade
    //===========================================================================
    call TriggerRegisterAnyUnitEventBJ(Upgrade,EVENT_PLAYER_UNIT_UPGRADE_FINISH)
    call TriggerAddAction(Upgrade,function UpgradeAct)
    call TriggerAddCondition(Upgrade,Condition(function UpgradeCond))
    //===========================================================================
    //Triger Registration of Upgrade End
    //===========================================================================
    
    //===========================================================================
    //Triger Registration of BuffChecker
    //===========================================================================
    call TriggerRegisterTimerEvent(BuffChecker,0.5,true)
    call TriggerAddAction(BuffChecker, function BuffCheckerAction)
    //===========================================================================
    //Triger Registration of BuffChecker End
    //===========================================================================
    
    //===========================================================================
    //Triger Registration of Explode
    //===========================================================================
    call TriggerRegisterAnyUnitEventBJ(Explode,EVENT_PLAYER_UNIT_DEATH)
    call TriggerAddAction(Explode, function ExplodeAct)
    call TriggerAddCondition(Explode,Condition(function ExplodeCond))
    //===========================================================================
    //Triger Registration of Explode End
    //===========================================================================
endfunction

View attachment 11080
 

Pigger

New Member
Reaction score
13
Unfortunatly I have just recently started college so I haven't had very much time to work on my tower, I have one done though. But it is not entirely finished and there are small things that would need fixing to be able to put it into a real map, but here it is anyways. I'll possibly get a screenshot up later tonight if I have time.

View attachment 11086
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
Hey! Has anyone noticed? The deadline is tomorrow.
Hope everyone's working on those towers.... :rolleyes:

And if you're not....

GetBusy.jpg
 

Sevion

The DIY Ninja
Reaction score
413
*Posts Blizzard's Guard Tower* Muahhaha! I'm guaranteed to win with the professional work of Blizzard!

Eh! Wha? Oh it was a dream. Oh well I'll never get my tower done lol. Oh well.
 

DrinkSlurm

Eat Bachelor Chow!
Reaction score
50
Exact Time of Deadline?

I'm hoping and assuming that you will give us a couple of hours notice before the submissions are to be closed.
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
Warning! Danger! Attention all Tower Contest entrants! You submissions are due!

In a very small amount of time, too.

You have until 9:30 P.M. GMT to get your entries in to this thread.
That comes out to about 1.5 hours from now. So, pack them up, put a bow around the box and deliver them, please. :p
 

DrinkSlurm

Eat Bachelor Chow!
Reaction score
50
Cathode Tower and Anode Tower

cathodeanodetowerii2.jpg


The Cathode Tower imparts a negative charge on a unit and the Anode Tower imparts a positive charge. If a positively charged unit and a negatively charged unit are close enough to each other, they are attracted to each other and collide, stunning them both.

Update: version 1.01 swapped Anode's and Cathode's charges per Ghan_04's comment below.
 

Attachments

  • Tower Contest 2 Entry - DrinkSlurm v1.01.w3x
    37.1 KB · Views: 130

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
Excellent. Looks interesting. Though, you have them backwards. :p Anodes are positive and cathodes are negative.
 

Monsterous

In the Shadows, Lurking.
Reaction score
99
Bleh, ive tried to do the tower - but then the Comp froze, then i had too much stuff to do than forgot *coughs* school *coughs*

But yeah im gonna have to go out. I know everyone mourn and suffer and cry. But celebrate the others. Yes yes dont worry about me...

<3

But really, in the amount of time left - all i could really do is post a Guard Tower.

ah well. Maybe contest 3?
 

DrinkSlurm

Eat Bachelor Chow!
Reaction score
50
Excellent. Looks interesting. Though, you have them backwards. :p Anodes are positive and cathodes are negative.

Are you serious? I did a tiny bit of research so I thought I probably had it right, but I always get confused with this type of stuff. Here's what my handheld dictionary says:

anode 1. the electrode by which current enters an electrolytic cell. 2. the negative terminal of a battery. 3. the positive electrode of an electron tube.

cathode 1. the negative electrode of an electrolytic cell. 2. the positive terminal of a battery. 3. the negative electrode of an electron tube.

Reading that one more time... An Anode would draw electrons away from an object, thereby causing the object to have a net positive charge, and vice versa for a cathode. Is that right?

Gah, I do have it backwards, don't I.

Edit: I updated my map to version 1.01.
 

Ghan

Administrator - Servers are fun
Staff member
Reaction score
888
And....

The contest is over!

Thanks for playing! The poll will be opened up immediately.

If you still want to turn in your tower, feast your eyes on this:

donotwant.jpg
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top