• Guest, we are doing a new map (refresh) for Herocraft. Gather your friends and get ready! Coming next Friday, 06/28/24 @ 7PM CT play.hc.to
    Read up on the guides and new systems! Here.
    View the LIVE Map here @ hc.to/map
    Stuck or have a problem? use "/pe create" to to open a ticket with staff (There are some known issues and other hotfixes we will be pushing asap)
  • Guest, Make sure to use our LAUNCHER! Read more here!

How To Create GUI Elements in Macro Mod! (Cooldowns/Mana Bar)

kenster1092

Legacy Supporter 1
Joined
Nov 19, 2012
Location
Philippines
Here' mine:
2014-06-08_21.36.24.png

Well, I reworked the bars, lemme see if I can post an update screenie
 

PewPewPewLasers

PewPew
Legacy Supporter 5
Joined
Apr 17, 2011
Location
CANADA
So, to mess with someone, could I not just put [Name] used Recall! in O chat and mess with their cooldowns? I don't plan on doing this but I feel like this could be abused.

This is incredible that you did this, and I am incredibly grateful of it. Winners for you sir.
 

w0nd3rb0y

Legacy Supporter 5
Joined
May 4, 2012
Location
Charlotte, North Carolina
So, to mess with someone, could I not just put [Name] used Recall! in O chat and mess with their cooldowns? I don't plan on doing this but I feel like this could be abused.

This is incredible that you did this, and I am incredibly grateful of it. Winners for you sir.
Yes, it's a script error. Here is how to fix. In the first line of each skill cd script, make sure it is this "^<name> used skill!" Just add the ^ after the quotation mark
 
Last edited:

Rida_

TNT
Joined
May 12, 2014
Yes, it's a script error. Here is how to fix. In the first line of each skill cd script, make sure it is this "^<name> used skill!" Just add the ^ after the quotation mark
I'm not sure this will actually work. What I did to fix it, was to put "^ (.+?) " at the start. For example, for recall, I have IFMATCHES(%CHATCLEAN%,"^ (.+?) Rida_ used recall");
What this actually means is that it looks for lines that start with a few spaces, have some mess (that's essentially what (.+?) does), then have another space before the phrase "Rida_ used recall."
However, it's not really that big of a deal, as anyone trolling would have to target both a specific skill and a specific player. But if it's a worry, there's the fix. Just copy and paste that before every skill phrase.

Also, it may be important to note that logging out during a cooldown will cause the bars to not properly fill up. I solve this by just binding a reset for any long (more than a minute) cooldown to a key. Here's mine for recall: $${SET(@#recall,900);WAIT(20ms);SETPROPERTY(RECALLCD,colour,#FF00FF00)}$$
 
Joined
Dec 12, 2012
Can you make a video please because it might be helpful to others or for everybody and as a visual learner it make me so confuse but I understand all the instruction but something missing and that's the problem of visual learner we need to see it before we learn it.
 

what777

Max Legacy Supporter
Joined
Feb 5, 2012
Jloy, how exacrtly do I make it countdown using numbers for the cooldown?
 

kenster1092

Legacy Supporter 1
Joined
Nov 19, 2012
Location
Philippines
Since I went Dragoon, I went and made a new cooldown config for it. This time I made the labels look cleaner by getting rid of the background color, and only decided to add cooldown bars for skills that I commonly use plus stamina bar... Here:
2014-06-10_14.06.18.png

P.S I've been trying to make a combat timer where it pops up and flashes in red "IN COMBAT" but it only flashes when "You have entered combat!" once then remains there until I delete the label... lol
 

Jloy1

Legacy Supporter 7
Joined
Feb 24, 2011
Location
TERA, Mount Tyrannas
Jloy, how exacrtly do I make it countdown using numbers for the cooldown?
SETLABEL(LABEL_COOLDOWNNUMBER, %@#cooldown%)
This sets the selected label to the text specified, in this case, @#cooldown. You want to put this below the DEC() for the scripts.

P.S I've been trying to make a combat timer where it pops up and flashes in red "IN COMBAT" but it only flashes when "You have entered combat!" once then remains there until I delete the label... lol
This is not possible to achieve as the required stuff to do it is disabled. (Unless someone finds a way around it.)
 

what777

Max Legacy Supporter
Joined
Feb 5, 2012
SETLABEL(LABEL_COOLDOWNNUMBER, %@#cooldown%)
This sets the selected label to the text specified, in this case, @#cooldown. You want to put this below the DEC() for the scripts.


This is not possible to achieve as the required stuff to do it is disabled. (Unless someone finds a way around it.)

$${
IFMATCHES(%CHATCLEAN%,"what777 used ChaosOrb");
SET(@#ChaosOrb, 7);
SETPROPERTY(ChaosOrbCD,colour,#FFB52D00);
DO()
IF(@#ChaosOrb=0);
BREAK;
ENDIF;
WAIT(1000ms);
DEC(@#ChaosOrb,1);
SETLABEL(LABEL_COOLDOWNNUMBER, %@#cooldown%)
WHILE(@#ChaosOrb>0);
SETPROPERTY(ChaosOrbCD,colour,#FF66A8FF);
ENDIF;
}$$

Like this? What do I call the Label in my GUI? LABEL_cooldownnumber ?


EDIT: This doesn't work... well I'm confused.
 
Last edited:

kenster1092

Legacy Supporter 1
Joined
Nov 19, 2012
Location
Philippines
How to do the HP bar as per your screenshot @Jloy1 ?
BTW, I've tried setting a new label to per se, in the control name "JumpCooldown" and setting the Binding to '8-@#jump' then in the script "SETLABEL(JumpCooldown,@#jump) ((no spaceS))
and it just pops up in the screen as "@#jump"
 
Last edited:

Jloy1

Legacy Supporter 7
Joined
Feb 24, 2011
Location
TERA, Mount Tyrannas
$${
IFMATCHES(%CHATCLEAN%,"what777 used ChaosOrb");
SET(@#ChaosOrb, 7);
SETPROPERTY(ChaosOrbCD,colour,#FFB52D00);
DO()
IF(@#ChaosOrb=0);
BREAK;
ENDIF;
WAIT(1000ms);
DEC(@#ChaosOrb,1);
SETLABEL(LABEL_COOLDOWNNUMBER, %@#cooldown%)
WHILE(@#ChaosOrb>0);
SETPROPERTY(ChaosOrbCD,colour,#FF66A8FF);
ENDIF;
}$$

Like this? What do I call the Label in my GUI? LABEL_cooldownnumber ?


EDIT: This doesn't work... well I'm confused.

You need to make a new label for the number and change the control name to match that label. This one below should work if you make a new label called LABEL_CHAOSORBCD.

SETLABEL(LABEL_CHAOSORBCD, %@#ChaosOrb%s);



How to do the HP bar as per your screenshot @Jloy1 ?
BTW, I've tried setting a new label to per se, in the control name "JumpCooldown" and setting the Binding to '8-@#jump' then in the script "SETLABEL(JumpCooldown,@#jump) ((no spaceS))
and it just pops up in the screen as "@#jump"
HP Bar is just SET(@#health,%HEALTH%); put into MANABAR.txt and the expression for the HP bar is @#health with max being 20.
18ef89c4c5.png


The label text for the numeric CD has to be modified through the script. REMEMBER, '/ch l' is your friend.
 

Jloy1

Legacy Supporter 7
Joined
Feb 24, 2011
Location
TERA, Mount Tyrannas
@what777
Code:
IFMATCHES(%CHATCLEAN%,"what777 used chaosorb");
SET(@#chaosorb, 7);
SETLABEL(LABEL_CHAOSORBCD, %@#chaosorb%s);
SETPROPERTY(CHAOSORBCD,colour,#FFB52D00);
DO()
    IF(@#chaosorb=0);
        BREAK;
    ENDIF;
    WAIT(1000ms);
    DEC(@#chaosorb,1);
    SETLABEL(LABEL_CHAOSORBCD, %@#chaosorb%s);
WHILE(@#chaosorb>0);
SETLABEL(LABEL_CHAOSORBCD, "");
SETPROPERTY(CHAOSORBCD,colour,#FF66A8FF);
ENDIF;

Make sure your Control Names are the same as what is needed. Progress bar is CHAOSORBCD. Counter label is LABEL_CHAOSORBCD.
 

Rida_

TNT
Joined
May 12, 2014
How to do the HP bar as per your screenshot @Jloy1 ?
BTW, I've tried setting a new label to per se, in the control name "JumpCooldown" and setting the Binding to '8-@#jump' then in the script "SETLABEL(JumpCooldown,@#jump) ((no spaceS))
and it just pops up in the screen as "@#jump"
You need to do %@#jump%, so the mod knows that you are treating it as a number.
 

Jloy1

Legacy Supporter 7
Joined
Feb 24, 2011
Location
TERA, Mount Tyrannas
@MrPepperoni
Code:
$${
IFMATCHES(%CHATCLEAN%,"MrPepperoni used warsong");

SET(@#warsong, 6);
SET(@#warsongdur, 15);

SETLABEL(LABEL_WARSONGDUR, %@#warsongdur%s);
SETLABEL(LABEL_WARSONG, "Warsong");
SETPROPERTY(WARSONGDUR,colour,#FF09ED8E);

SETLABEL(LABEL_WARSONGCD, %@#warsong%s);
SETPROPERTY(WARSONGCD,colour,#FFB52D00);
SETPROPERTY(WARSONGDUR,visible,true);
DO()
    IF(@#warsong=0);
        BREAK;
    ENDIF;
    IF(@#warsongdur=0);
        SETLABEL(LABEL_WARSONGDUR, "");
        SETLABEL(LABEL_WARSONG, "");
        SETPROPERTY(WARSONGDUR,visible,false);
    ENDIF;
    WAIT(1000ms);
    DEC(@#warsong,1);
    DEC(@#warsongdur, 1);

    SETLABEL(LABEL_WARSONGCD, %@#warsong%s);
    IF(@#warsongdur>0);
        SETLABEL(LABEL_WARSONGDUR, %@#warsongdur%s);
    ENDIF;;
WHILE(@#warsong>0);
SETLABEL(LABEL_WARSONGCD, "");
SETPROPERTY(WARSONGCD,colour,#FF66A8FF);
ENDIF;
}$$
This should work for warsong. Make sure to set it up correctly and for the love of god, /ch l.
 
Joined
Aug 24, 2013
@MrPepperoni
Code:
$${
IFMATCHES(%CHATCLEAN%,"MrPepperoni used warsong");

SET(@#warsong, 6);
SET(@#warsongdur, 15);

SETLABEL(LABEL_WARSONGDUR, %@#warsongdur%s);
SETLABEL(LABEL_WARSONG, "Warsong");
SETPROPERTY(WARSONGDUR,colour,#FF09ED8E);

SETLABEL(LABEL_WARSONGCD, %@#warsong%s);
SETPROPERTY(WARSONGCD,colour,#FFB52D00);
SETPROPERTY(WARSONGDUR,visible,true);
DO()
    IF(@#warsong=0);
        BREAK;
    ENDIF;
    IF(@#warsongdur=0);
        SETLABEL(LABEL_WARSONGDUR, "");
        SETLABEL(LABEL_WARSONG, "");
        SETPROPERTY(WARSONGDUR,visible,false);
    ENDIF;
    WAIT(1000ms);
    DEC(@#warsong,1);
    DEC(@#warsongdur, 1);

    SETLABEL(LABEL_WARSONGCD, %@#warsong%s);
    IF(@#warsongdur>0);
        SETLABEL(LABEL_WARSONGDUR, %@#warsongdur%s);
    ENDIF;;
WHILE(@#warsong>0);
SETLABEL(LABEL_WARSONGCD, "");
SETPROPERTY(WARSONGCD,colour,#FF66A8FF);
ENDIF;
}$$
This should work for warsong. Make sure to set it up correctly and for the love of god, /ch l.
fk! sorry :p! Didn't realized the last line! ty :p. Anyways, when i setted it up, the progress bar for the duration just stops at 9 when the cd goes 0.
 
Joined
Aug 24, 2013
@MrPepperoni
Code:
$${
IFMATCHES(%CHATCLEAN%,"MrPepperoni used warsong");

SET(@#warsong, 6);
SET(@#warsongdur, 15);

SETLABEL(LABEL_WARSONGDUR, %@#warsongdur%s);
SETLABEL(LABEL_WARSONG, "Warsong");
SETPROPERTY(WARSONGDUR,colour,#FF09ED8E);

SETLABEL(LABEL_WARSONGCD, %@#warsong%s);
SETPROPERTY(WARSONGCD,colour,#FFB52D00);
SETPROPERTY(WARSONGDUR,visible,true);
DO()
    IF(@#warsong=0);
        BREAK;
    ENDIF;
    IF(@#warsongdur=0);
        SETLABEL(LABEL_WARSONGDUR, "");
        SETLABEL(LABEL_WARSONG, "");
        SETPROPERTY(WARSONGDUR,visible,false);
    ENDIF;
    WAIT(1000ms);
    DEC(@#warsong,1);
    DEC(@#warsongdur, 1);

    SETLABEL(LABEL_WARSONGCD, %@#warsong%s);
    IF(@#warsongdur>0);
        SETLABEL(LABEL_WARSONGDUR, %@#warsongdur%s);
    ENDIF;;
WHILE(@#warsong>0);
SETLABEL(LABEL_WARSONGCD, "");
SETPROPERTY(WARSONGCD,colour,#FF66A8FF);
ENDIF;
}$$
This should work for warsong. Make sure to set it up correctly and for the love of god, /ch l.
Dw! Fixed it!
 
Top