Tutorial Dota clock

rexpim

Member
Reaction score
8
Hi:D, this is my first tutorial, I'm new to this community, and am also new in the creation of war3 maps.

This tutorial is about the clock of Dota, its an intresting clock and very easy to do.
clock.jpg
INDEX
1 - Game interface
2 - Gameplay Constants
3 - Trigger System GUI


1 - Go to Game Interface (Advanced - Game Interface (Check 'Use Custom Game Interface'))

Search for this fields and change them.
Icon-Food -Change to another icon, I used a custom icon
preto.jpg
Icon-Lumber -Change to another icon, I used a custom icon
preto.jpg
Text-General-'Food' -Change to "Seconds"
Text-General-'Gold Income Rate:' -Change to "http://www.thehelper.net/"
Text-General-'Lumber is Harvested from trees' -Change to "1Minute=60Seconds"
Text-General-'Lumber' -Change to "Minutes:"
Text-General-'The amount of food you are using over the total amount you can currently sustain.' -Change to "60Seconds=1Minute"
Text-General-'Upkeep is determined by the amount of food your forces are currently using.' -Change to "Welcome"
Text-General-'No Upkeep:' -Change to "TheHelper"
Text-General-'Low Upkeep:' -Change to "TheHelper"
Text-General-'High Upkeep:' -Change to "TheHelper"
Text-General-'|N%d-%d Food: %s|R (%d%% G, %d%% L)' -Leave 2 spaces like this ( )
Text-General-'|N%d-%d Food: %s|R (%d%% income)' -Leave 2 spaces like this ( )


2 - Go to the Gameplay Constants (Advanced - Gameplay Constants (Check 'Use Custom Gameplay Constants'))

Upkeep-Food Levels -Change the integer 50 to 70

3 - Now the trigger system:

3.1 - Lumber is the Minutes counter
Trigger:
  • Events
    • Time-Every 60.00 seconds of game time
    • Conditions
    • Actions
      • PlayerGroup - Pick every player in (All players) and do (Player - Add 1 to (Picked player) Current Lumber))


3.2 - Create variable name FoodSEC type integer.

3.3 -Food is the Second counter
Trigger:
  • Events
    • Time-Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Set FoodSEC = (Player 1 (Red) Food used)
      • PlayerGroup - Pick every player in (All players) and do (Player - Set (Picked player) Food Used to (FoodSEC + 1))


3.4 - Reset Seconds to 0
Trigger:
  • Events
    • Player - Player 1 (Red)'s Food used becomes Greather than or equal to 60.00
    • Conditions
    • Actions
      • Player - Set Player 1 (Red)'s Food used to 0

This is the final result
final.jpg:thup:

Demo Map View attachment Dotaclock.w3x

Sry for the double tutorial [System] DotA Time System
 

esb

Because none of us are as cruel as all of us.
Reaction score
329
Could be done in one trigger.
 

Carnerox

The one and only.
Reaction score
84
I'd rather use this for the Trigger. :|
JASS:
scope Clock initializer init

    globals
        private constant playerstate seconds = PLAYER_STATE_RESOURCE_FOOD_USED
        private constant playerstate minutes = PLAYER_STATE_RESOURCE_LUMBER
    endglobals
    
    private function SecondAction takes nothing returns nothing
        local player p = GetEnumPlayer()
        call SetPlayerState( p, seconds, GetPlayerState(p, seconds) +1 )
        set p=null
    endfunction
    
    private function Second takes nothing returns nothing
        call ForForce( bj_FORCE_ALL_PLAYERS, function SecondAction )
    endfunction

    private function MinuteAction takes nothing returns nothing
        local player p = GetEnumPlayer()
        call SetPlayerState( p, minutes, GetPlayerState(p, minutes) +1 )
        call SetPlayerState( p, seconds, 0 )
        set p=null
    endfunction
    
    private function Minute takes nothing returns nothing
        call ForForce( bj_FORCE_ALL_PLAYERS, function MinuteAction )
    endfunction

    //===========================================================================
    private function init takes nothing returns nothing
        local trigger Seconds = CreateTrigger()
        local trigger Minutes = CreateTrigger()
        call TriggerRegisterTimerEvent( Seconds, 1.00, true )
        call TriggerAddAction( Seconds, function Second )
        //============================================\\
        call TriggerRegisterTimerEvent( Minutes, 60.00, true )
        call TriggerAddAction( Minutes, function Minute )
        set Seconds=null
        set Minutes=null
    endfunction

endscope
//By Carnerox.
 

Laiev

Hey Listen!!
Reaction score
188
he is from portugal... it mean that he speak in portuguese, which icon = icone in portuguese and believe me, its very common people say icone instead of icon here :p
 

EvilMonkey

New Member
Reaction score
0
little help

I've just started playing with the editor and I can't get my clock to work properly. I've made all the changes and the triggers, the clock works fine, but instead of having only seconds I have "seconds/6" like 1/6 2/6 ... The map is a dota template and I'm not sure how to get rid of that food issue since I don't know what's giving me 6 food.

I apologize if this wasn't the place I should have posted this. :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top