The Impossible Bugs - You can't fix them

DarkRevenant

Mad Scientist
Reaction score
13
Download the impossible map here

The bugs:
Medium: With no triggers being used or functions being called, later in the game the camera will slowly but inexorably rotate, become more vertical, and zoom in, for no reason at all. Bad computers will notice a much faster zoom-in. One guy I know had a truly awful computer that spontaneously sent the camera smashing straight into the ground.

Very Hard: "Custom Script: call <ANY USER DEFINED FUNCTION>" has a massive problem in GUI and JASS in this map. For some reason, in large triggers, if-then statements are RANDOMLY IGNORED for these functions. I mean this literally. The game will run the trigger, and (a random) one of the lines that calls an user-defined function will fire, EVEN IF IT IS UNDER 5 IF-THEN STATEMENTS WITH IMPOSSIBLE-TO-FULFILL CONDITIONS. The other functions (so long as they are not "call <USERDEFINEDFUNCTION>") work as intended. I even did a test by putting a bunch of those functions under an impossible if-then, by making the condition "if 0 > 1", and it still managed to run after the 20th or so test.

If you can manage to explain why this happens, or at least fix the problem without deleting the triggers altogether, you will get massive rep and bragging rights of being INHUMAN.

I would probably give an actual prize to whomever can fix the Very Hard one.
 

Azlier

Old World Ghost
Reaction score
461
It sounds like your GUI is... decaying? Crumbling? GUI is known to not like really long triggers, anyway.
 

Lightstalker

New Member
Reaction score
55
Download the impossible map here

The bugs:
Medium: With no triggers being used or functions being called, later in the game the camera will slowly but inexorably rotate, become more vertical, and zoom in, for no reason at all. Bad computers will notice a much faster zoom-in. One guy I know had a truly awful computer that spontaneously sent the camera smashing straight into the ground.

Maybe you have a "Pan camera action" in one of your triggers? Try disabling ALL triggers and see if it still happens. If it still does, you might have placed a camera on the map. Go to Window > New Pallete > Camera and delete all cameras.

Very Hard: "Custom Script: call <ANY USER DEFINED FUNCTION>" has a massive problem in GUI and JASS in this map. For some reason, in large triggers, if-then statements are RANDOMLY IGNORED for these functions. I mean this literally. The game will run the trigger, and (a random) one of the lines that calls an user-defined function will fire, EVEN IF IT IS UNDER 5 IF-THEN STATEMENTS WITH IMPOSSIBLE-TO-FULFILL CONDITIONS. The other functions (so long as they are not "call <USERDEFINEDFUNCTION>") work as intended. I even did a test by putting a bunch of those functions under an impossible if-then, by making the condition "if 0 > 1", and it still managed to run after the 20th or so test.

If you can manage to explain why this happens, or at least fix the problem without deleting the triggers altogether, you will get massive rep and bragging rights of being INHUMAN.

Maybe you disabled the if/then/else? Right-click and enable the function. Or maybe you don't have the actions located correctly inside the if/then/elses...
 

DarkRevenant

Mad Scientist
Reaction score
13
@Azlier: No camera functions are being called when it does that. None. At all. But the bug obviously goes away if I delete everything related to cameras in the entire map, but that's not exactly a long term option. I've seen this bug before and it's exceedingly rare.

@Lightstalker: Hahahahaha. If it were something as stupid as that common mistake, I wouldn't need anyone else's help to fix it after two solid weeks of troubleshooting. I would normally post the code, but even one of the triggers in question is approximately 122,000 characters too many to fit into a single post.
 

Azlier

Old World Ghost
Reaction score
461
I downloaded the map before you even posted here, you posted over at WC3C, I believe. :p And those triggers are hideously long, which GUI does not like.

The one I have is unprotected. Go me!
 

Strilanc

Veteran Scripter
Reaction score
42
Ok, you have way too many triggers to just ask for generic help. You need to specify exactly which triggers are causing problems and exactly how to reproduce.

I really suggest saving a copy of the map, and disabling triggers until you have the minimum set required to reproduce the bug. I use this basic technique all the time, and it works. Not only will you make it easier for people to help you, you'll probably end up solving the problem yourself.

As a sidenote, you're triggers repeat themselves. A lot. A LOT. That is an easy way to introduce bugs due to wanting to modify all of them, but forgetting one. Jass is a lot better at extracting that redundancy (eg. with functions), but you can sortof do it in GUI as well.
 

DarkRevenant

Mad Scientist
Reaction score
13
I've already said that the trigger(s) simply ignore If-Then statements. I just want to know WHY. Specifically look at the ordertimer set.
 

Dameon

"All the power in the world resides in the eyes"
Reaction score
127
A trigger can only do so many actions before the engine kills it, this also apllies to jass, give me some time to look over the map.
 

Strilanc

Veteran Scripter
Reaction score
42
I've already said that the trigger simply ignores If-Then statements. I just want to know WHY.

There are dozens of triggers. WHICH trigger EXACTLY? WHICH if-statement EXACTLY?

Don't make it hard for people to help you, or they just won't do it.
 

Dameon

"All the power in the world resides in the eyes"
Reaction score
127
wow I just looked over some of his triggers, 1 question, why are you useing a custom script loop action when gui has it's own loop function?
 

DarkRevenant

Mad Scientist
Reaction score
13
There are dozens of triggers. WHICH trigger EXACTLY? WHICH if-statement EXACTLY?

Don't make it hard for people to help you, or they just won't do it.

ALL of the If-statements are ignored (by a seemingly random chance, like about 1/3 for each if-then) for a specific function: "call WHATEVERUSERDEFINEDFUNCTION"

@Dameon: JASS loops are more controllable and are true loops, unlike the cumbersome Integer-A's.
 

Strilanc

Veteran Scripter
Reaction score
42
ALL of the If-statements are ignored for a specific function: "call WHATEVERUSERDEFINEDFUNCTION"

@Dameon: JASS loops are more controllable and are true loops, unlike the cumbersome Integer-A's.

They're all broken? Great! That'll make it really easy to give a specific example of something broken.
 

Dameon

"All the power in the world resides in the eyes"
Reaction score
127
the gui will work fine for all the triggers you are running, if you need to end the loop just place a skip remaining actions in the if then else actions.

Your triggers are also very messy, you are doing things you dont need to and you are useing to many actions in your tiggers.

Edit, as for the camera, can you tell us when it starts, what your doing when it starts and where your camera is on the map when it starts.
 

Azylaminaz

Vox Populi
Reaction score
91
Trigger:
  • Time - Every 0.01 seconds of game time
    • Camera - Apply RockyForest &lt;gen&gt; for (Player((Integer A))) over 0.02 seconds
Believe it or not, that function would never actually finish... It will just get half way a trillion times. This might not be the specific one doing it (though you have many VERY quick periodic events), but this is probably what is causing your camera issue.

Edit: That actually wouldn't cause it.. eh. -.- But you should fix it anyways... it should be causing problems.


As for your other issue, does it always finish? If not...
AceHeart said:
> it aborts the trigger at a randomish number

It's pretty much exactly at 300000 micro-ops.

Now, a function call takes 2, a "set" takes 2, something like i + 1 takes 4...
For GUI, the guess is somewhere near 12000+ operations.

> excluding waits

With waits, they can, indeed, run much longer. Nearly forever that is.
Also note that a random trigger I checked (from above) is almost 1400 lines - that is, operations. If looped nine times (the entire thing), it will easily exceed this limit...
I ran a test with some dummy trigger and it couldn't pass "0 <> 0"... It might because of your length.


Note that a trigger can only loop every 0.016 seconds, not 0.01 seconds... Even then, it would be smarter to go around 0.05.. Considering that is still more than half as much things needing to be processed...

Also, you should set all your variable constants under a map initialize function (see your stats triggers). Map Initialization means it runs under the loading screen, IE, players don't lag right when the game starts.

Simply enough - try to not do so much at once (even if you break the triggers up, running that much stuff so frequently will cause problems)...
 

FelSheep

New Member
Reaction score
0
Speaking of the map itself, is the map has a latest and less buggy version and if it says yes, where is the download location?
 

DarkRevenant

Mad Scientist
Reaction score
13
The periodic still must be ~0.01 seconds for a specific reason. I've broken up some functions to a slower periodic within that trigger (if a flip-flopping integer equals 1, then run it, if 0 don't run). Setting the camera to apply in 0 seconds might fix it.

However, there is no other way to break up those ordertimer triggers, aside from truncating the GUI at a certain point and just calling a separate trigger.

Even then, the trigger is not aborted. In fact, the problem will happen even if the whole trigger just cuts off early, somewhere like 60 or 70 micro-ops. It may have to do with sheer size. The question now is: Does running a separate trigger break the thread? If so, would I have to redeclare all the temporary variables to avoid them being overwritten by the original trigger's loop? GUI is so damn confusing sometimes.


I'm one of the few people who can actually make massive systems using ridiculously huge triggers. It seems, even after many years of wc3 modding, very few have any idea on what's going on with this.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top