• 🏆 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!

Some questions about DDS

Status
Not open for further replies.
Level 6
Joined
Sep 13, 2013
Messages
155
I imported a Damage detection system to my map, and it was working good for the first two minutes, and then it came up with a fatal error, i found out that it's because the DDS, so i disabled it and recalled its events in other triggers but there was an early fatal error again. I tested another DDS and again fatal error. The question is simple: how you guys use DDS in your maps ?
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,202
There is some crash related to trigger destruction that has plagued DDS systems since early days of WC3. DDS systems need trigger destruction to prevent event leaks as even if a unit is removed the events attached to it still persist in game memory until the trigger is destroyed.

People never have really explained to me what causes the crash. The most consistent stories state that it is due to the damage procedure being "in progress" while the trigger is destroyed resulting in the game manipulating nonsense memory values and eventually crashing. This seems possible if a timer is used to clean the triggers since that can execute with sub frame precision.
 
Level 6
Joined
Sep 13, 2013
Messages
155
Please be more explicit.

What DDS are you using?
When do you experience the crash?
Can you reproduce the crash on a map with only the DDS in it? If so, do it.
Are you using any tech upgrades on whatever is causing the crash?

Well, I can't remember when I got the first one downloaded and also the template map doesn't have any loading screen messages about the author. The second one is the GUI-Friendly Damage Detection System v1.2.1 by Weep , you can find this one in the DotA multiboard template map which was submitted by Yanchespenda (Mr.IMF). I found this map in this website.

I don't exactly know what happens which causes crash, the first time that I used the first DDS, it crashed after 2-3 minutes when many units were attacking each other, I think I should have disable the DDS trigger. The second time was the same also.

What do you mean of tech upgrades ?

And I will likely want to know of how will you import a DDS into your map and how you'll use it.

There is some crash related to trigger destruction that has plagued DDS systems since early days of WC3. DDS systems need trigger destruction to prevent event leaks as even if a unit is removed the events attached to it still persist in game memory until the trigger is destroyed.

People never have really explained to me what causes the crash. The most consistent stories state that it is due to the damage procedure being "in progress" while the trigger is destroyed resulting in the game manipulating nonsense memory values and eventually crashing. This seems possible if a timer is used to clean the triggers since that can execute with sub frame precision.

What is this trigger destruction ? never heard of it. I never used both damage detection systems in my map, i just imported them, they both got crashed.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,202
What is this trigger destruction ?
JASS:
native DestroyTrigger takes trigger whichTrigger returns nothing
Destroys the given trigger destroying all event objects associated with it. Any attempts to use the trigger after destruction should behave similar to the null trigger as it is an empty handle index (still referenced so not recycled).
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
Without more information, like the code, I won't be able to tell you why it crashed.


The crash could have occurred for any of these reasons

1. Your code
2. Improper import of resource
3. Tech object
4. Stack overflow
5. Memory overflow
6. General resource bug (unlikely)
7. Synchronous native usage


Also, every resource that does damage manipulation can cause crashes as a result of improper ability handling under special circumstances at the moment except for the one I wrote.


What you need to post if you want your problem resolved

1. The DDS you used
2. The map (for checking to see if it was imported correctly)
3. All of your code that gets run by the DDS (be sure to post all relevant code)

From here, you wait until someone finds the problem.


Other useful steps you can take (will make the process go by much faster)
- Reproduce the error in the DDS demo map. Keep removing things until you pinpoint the problem. From here, you can tell us what caused the crash and we can give you a solution.

If you are unable to reproduce the error, the issues go down to two possible reasons

1. Your code
2. Improper import


When people submit bug reports to me when using my DDS, they submit all of that information. The problem usually gets resolved in 15-20 minutes. Part 2 is especially important if you want the issue resolved quickly =).

The general rule for vetted resources is that the problem is coming from your end unless proven otherwise. By doing all of these steps, you can prove that the problem is coming from the resource =).

Furthermore, if you find that no code appears to be causing the problem and it's just a specific unit, the problem could be a passive ability or a tech upgrade.


@Dr Super Good
That will only occur with synchronous natives.
 
Status
Not open for further replies.
Top