• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

DDS GUI Support

Status
Not open for further replies.
Level 31
Joined
Jul 10, 2007
Messages
6,306
DDS now has GUI support as requested by GunGun.

Let me know what you think of the API

https://github.com/nestharus/JASS/blob/master/jass/Systems/DDS/Plugin Install Pack.w3x

Just figured I'd post this since I know that a lot of people have been looking for a cool GUI damage detection system =). And yes, the priorities mix up both the GUI and the vJASS. The GUI isn't optimal, but oh well. The goal was supporting all of the features of DDS.
 
Level 19
Joined
Mar 18, 2012
Messages
1,716
I like it, however you could explain in 1 line to our beloved GUI users what priority is.
GUI only users will not look into the PriorityEvent library nor understand it.
I guess many will assume those are just random numbers.

Especially because your example code covers a negative priority a quick explanation would be a win.
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
Just wanted to say for people following...

I fixed the bug outlined by lfh in his thread. I also got rid of all of the special life stuff. GetWidgetLife now works correctly ;). Life will no longer flicker to huge values as well (not lifebar, life). I moved from using a timer to unit state event. This adds more overhead, but it fixes so much. I'd prefer to have completely correct behavior =). The GetWidgetLife bug was impossible to fix without doing this.

I will say one thing. Unit state events are quirky as hell -.-. Took me 3 hours to get everything working properly because they are so quirky, lol.
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
NOT_EQUAL doesn't work
EQUAL doesn't work
LESS_THAN = LESS_THAN_OR_EQUAL
GREATER_THAN = GREATER_THAN

didn't use LESS_THAN_OR_EQUAL or GREATER_THAN_OR_EQUAL

You must start at the false in order to get it to work. If you are at 50 health and you say GREATER_THAN 25, it will not run when you go to 75. It will run if you go to 15 and then 26.

You may only have one event of this type per trigger. If you register more than one, it was only either the first one or the last one that actually worked. This means that if you want to do NOT_EQUAL, you need two different triggers, one for GREATER_THAN and one for LESS_THAN.

This was only for initialization. It might work from positive to positive if you have properly initialized life.
 

Bannar

Code Reviewer
Level 26
Joined
Mar 19, 2008
Messages
3,140
Thank you, really helpful!

Does player_state and game_state behave similarly? ChatEvent might also be worth mentioning. All of those "TriggerRegister" which have some kind of checks, seems to work only in one way. I've listed chat event in case after some testing, same chat string registered with exactMatchOnly true and false within single trigger indeed calls event just once.

I wonder, however, why so many native implementations "doesnt work".
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
Priorities are getting axed

https://github.com/nestharus/JASS/issues/9

Rather than priorities, you can create different stages of a combat system and register to those stages. There will no longer be global events though. They can still be done, but it's better to remove them. Rather than using global events, just register your event to a unit whenever it is indexed (register it to the DDS trigger).

Open the Trigger map and look at the examples if you don't quite get what I'm talking about.

I'm not sure how to go about doing this for GUI.
 
Status
Not open for further replies.
Top