• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 21st Texturing Contest: Upgrade is now concluded, time to vote for your favourite set of icons! Click here to vote!
Uncle
Reaction score
9,145

Profile posts Latest activity Postings Experience Albums Resources About Medals

  • Hey can you remind me how to skip variables when you are doing a "for" loop in GUI?
    Are these two triggers the same output?

    • Untitled Trigger 001
      • Events
      • Conditions
      • Actions
        • For each (Integer integer_X) from 5 to 20, do (Actions)
          • Loop - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • integer_X Equal to 12
              • Then - Actions
                • Set VariableSet integer_X = 17
              • Else - Actions
    • Untitled Trigger 002
      • Events
      • Conditions
      • Actions
        • For each (Integer integer_X) from 5 to 12, do (Actions)
          • Loop - Actions
        • For each (Integer integer_X) from 17 to 20, do (Actions)
          • Loop - Actions

    Thanks for any feedback. I remember you posted this previously but I can't find it.
    • Like
    Reactions: deepstrasz
    Gnuoy
    Gnuoy
    So this won't "run it" for 16? At the end of doing all the 12 stuff, it will set it to 16, then it will immediately tick up to 17 once the loop starts at the top again?
    • Like
    Reactions: Uncle
    Gnuoy
    Gnuoy
    also is this won't mess up any MUI use?
    Uncle
    Uncle
    It could be MUI, it all depends on how you use it.

    For example, my Kill Unit action could break things if you used this same For Loop variable inside of a trigger that uses the Event "A unit Dies", but that's a very specific case. You just need to be aware of the Events that don't play nice with the trigger queue, and which Actions can set those Events off in the middle of a trigger and cause problems. The For Loop itself is not the problem.

    99% of the time the game uses a queue system that manages instances of triggers in an orderly fashion. It's sort of like the "Stack" in Magic the Gathering but resolves in reverse order, if that helps at all (completely random example I know, but maybe you play, lol).
    What keeps you chained to Wc3? the more you learn the more you realize you could convert 90% of your knowledge to 'real' languages and tools instead of fighting the engine to some extent. I mean I am glad people still are passionate, somehow I wish I still was.
    • Wow
    Reactions: deepstrasz
    Chaosy
    Chaosy
    Thought so. It's mostly a theory but it feels like everyone who reach the point where they can make anything reasonable within the engine move on. Perhaps because other things are more exciting, other languages and programs are getting updates so you can constantly explore new things while wc3 is kinda into frozen state and what you can learn feels minimal.

    Anyway, just me yapping as the thought occurred to me while browsing lol
    • Like
    Reactions: Uncle
    Uncle
    Uncle
    Yeah, not being at the mercy of a 20+ year old game engine designed specifically for an RTS game is pretty nice and a lot less restrictive to say the least. It's especially nice to know that Unity (and others) is getting improved on a daily basis rather than getting the "Reforged" treatment - more broken than it was before.

    Although, it's hard to beat the convenience of having instant access to a massive amount of free art assets as well as servers/built-in netcode supporting up to 24 players. I don't think Warcraft 3 will ever be beat in that regard...
    Chaosy
    Chaosy
    It's not that wc3 is 'worse' it's just that the process of building it gets stale once you realize that 99% of spells are just a 0.03 timer with some sort of indexing method. Meanwhile you can evolve your process elsewhere because you can control as much of the chain as you're willing to learn.

    Wc3 is great, it got me started.. I hope something ignites me in the future.
    • Like
    Reactions: Uncle
    Do you know anything about this? Can you please give any advice on this topic?

    Hi, if you have an extra moment, could you take a look at my forum post? No pressure. I'm only saying if you have extra time and have any comment on this topic.
    Thank you so much.

    It boggles my mind that it's simply difficult for just regular average people to understand what, conceptually, a variable is. And I don't mean within programming specifically. I took it as a given that a fundamental understanding of a variable as a stand-in was something all people had because of standardized math education, but I am clearly wrong. Anyway, I thought to myself "how would I describe it most succinctly?", arrived at a good answer, and thought to share it with you.

    Why? I don't know! He's on third, and I don't give a damn.

    A variable is a word/name/symbol that represents some value or some other object, that you use for one of three possible reasons:
    • You don't know what the value is.
    • You don't want to pick a value now, and instead want to allow yourself to easily choose a value later.
    • You want a more descriptive way to refer to something instead of the value itself, which might not be clear.

    A variable is shorthand to refer to something else... because you actually don't know what the thing is, do know but don't want to decide what it should be now, or think using the thing directly could be confusing.
    Additionally, it's Movement settings allow it to cast without needing to turn and face it's target which removes another potential delay.
    You are a blight upon the English language and the world will be better when pests such as yourself are removed.
    Hey Uncle, thanks for creating the Santa bomb spell :D

    I would like to point out a bug however, you used SAir_Index instead of SAir_Loop for determining the caster's position when creating the rocket. This would cause a visual bug when three heroes are channeling it simultenously.
    You and I, we're a team buddy ol' pal! I tell 'em how to do it the hard way and then you blow their minds with Hashtables.
    Hello, I'm not sure where to write this, but the LUA code for ItemRecipe worked flawlessly. I used Bribe's translator and GPT and failed both times. Thank you and you guys at Hive are unfathomably cool. Bless you and your day.
    What do you think of this method to "temporarily remove" abilities from heroes?

    • Militia start
      • Events
        • Unit - A unit owned by Player 5 (Yellow) Starts the effect of an ability
        • ...
      • Conditions
        • (Ability being cast) Equal to Militia (Peasant Knight) (Metamorph)
      • Actions
        • Unit - For Unit (Casting unit), start cooldown of ability Summon Tower (Peasant Knight) (Q) " over "60.00 seconds.
        • Unit - For Unit (Casting unit), start cooldown of ability Pocket Factory " over "60.00 seconds.
    Uncle
    Uncle
    Looks like a good solution to me. You could whip up a little system for Disabling/Hiding the abilities over time if you wanted to hide their icons as well.
    Hi, I think I have discussed this before but google search is being weird

    Anyway, is there a GUI native to detect if an ability is in cooldown or not?
    Uncle
    Uncle
    Sorry I missed this and always forget to check my profile, I imagine you answered this weeks ago. But yes, there is a native on 1.31+. It's a Real comparison where you check the Remaining cooldown of the ability:
    • Conditions
      • (Ability Cooldown Remaining of (Triggering unit) for ability Avatar..) Greater than 0.00
    Greater than 0.00 means it's on cooldown, otherwise, it's ready to cast.
    • Like
    Reactions: Daffa
    Daffa
    Daffa
    Thank you, yeah, I figured it out a day or two after iirc, but I forgot I dropped this question here :(
    Thanks a lot for confirming I got the right answer
    Please use the yellow Edit button at the bottom of your posts and add text there instead of writing one post after another of yours unless it's an important update.
    :ogre_hurrhurr:
    Help pls i dont know how to use the food fix, where i need to put in? srry bad english :x
    Uncle
    Uncle
    Can you please send me a private message.

    And I don't know what "food fix" means:
    1) Units can have a food cost.
    2) Players have two food values: Food Current and Food Cap.
    3) Upkeep revolves around Food Current and Food Cap.
    So what exactly do you want to fix?
    Every few weeks I invariably need to type out a dummy configuration explanation for someone and I always go "Uncle does that nicely all the time I should just look for one and link/quote them." Then I look, and because you post even more frequently than I ("do we need lives? no! when are we gonna need 'em? never!") I can't ever find one.

    Praised be today such that I have saved your post to be permanently lazier in the future!
    Whatever happened to Bribe's Lua-Infused GUI? I'm wondering if it doesn't make more sense to recommend to beginners to use that instead of teaching them about memory leaks. Does it not work well?
    • Like
    Reactions: Uncle
    Daffa
    Daffa
    Not Uncle, but can't help to not comment. I think it is because Lua-Infused GUI is restricted to Lua, but numerous resources (including spells and systems) existed in form of Jass/vJass since that language has existed for years in Warcraft III. Many maps already coded in Jass and switching to Lua is not always a simple case.
    • Like
    Reactions: Uncle
    Uncle
    Uncle
    Exactly what Daffa said with the addition that I recall Lua-Infused GUI causing a desync when I tried to use it. Mind you this was years ago and I could have very well screwed up somehow.

    In a world where Blizzard actually cares about this game and addresses Lua issues I would be ecstatic to tell every single user to jump on the Lua train and use something as awesome as what Bribe made. Unfortunately, we don't live in that world.
    :peasant-cheers-back: HEAR YE, HEAR YE ONE AND ALL: :peasant-victory:
    For one time in his insufferably helpful life, Uncle has been proven wrong! There will be a brief celebration in the streets at 10:01 in your local timezone—see attached flyer for details.
    I get that it's not profit worthy. However, since they're not doing much of anything for the game but for some reason bother to modify object editor data fields, pushing some custom contest news like they did with StarCraft II would have surely brought them some money and for free.
    Please use the Edit button at the bottom of your posts and add text there instead of writing one post after another of yours unless it's an important update.
    Uncle
    Uncle
    Gah, they'll never see the edit though.
    deepstrasz
    deepstrasz
    Notify them :p
    Or revolution to change the rule xD
    • Like
    Reactions: Uncle
    deepstrasz
    deepstrasz
    But honestly, the site code should give notifications when users' posts are replied to even in previous posts editing.
    If only Ralle could do something about it....
    • Like
    Reactions: Uncle
    Hey,

    don't wanna derail GenoHacker's thread. I'm right now writing a tutorial on optimization and I have this section about exactly this topic. Do you think I should remove it?

    "As a GUI user, you have the option to either use JASS or Lua as your scripting language, with JASS being the default. If you switch to Lua, not much will change for you except that upon saving your map, your map script will be transpiled to Lua, which is about 10x faster than JASS. There is the caveat that, if you choose to use external resources, you're restricted to those written in Lua. However, many creators provide both JASS and Lua versions these days or might be willing to provide a Lua translation upon request. You have to make the decision if this increase in performance is worth the downside."
    • Like
    Reactions: maddeem
    Uncle
    Uncle
    I would add something like:

    WARNING: Use with caution, users have experienced mysterious desyncs, especially when using a hybrid GUI/Lua approach. There are maps that rely on Lua such as Assault The Throne, which seem to work most of the time without issues but unfortunately the lack of support from Blizzard means that any problems Lua has will probably never get fixed.
    Antares
    Antares
    That's good, thanks! :psmile:
    hey there uncle i just found a camera system you made (well maybe not a system? but kinda a small system like the one you made) by searching through old posts for a camera check i wanted to do. although i noticed these are not marked as your resources (like the small sound system you made for me which btw is amazing and other systems are not as simple and gui friendly) why not post it?
    oh speaking of that is there a way using that small sound system to make a sound stack a limited ammount of times? (1 to play it a single time or 100 so that it can play in up to 100 instances)
    • Like
    Reactions: maddeem
    Uncle
    Uncle
    Those systems aren't really that impressive and have probably been done before (and better), plus I don't want the hassle of having to manage the resource page and answer questions.

    Anyway, you could use a For Loop to repeat the Sound function multiple times. It's not really necessary to add that functionality in the system itself.

    Unless you mean something else, the use of the word "limited" here is a little confusing.
    Did… did the posts about Blizzard copyright get deleted from that CDR thread? I went to reply and they no longer appear.

    Am I the crazy one here?
    • Haha
    Reactions: deepstrasz
    Uncle
    Uncle
    Yeah, we broke a rule or something. Maybe I wasn't supposed to link that Steam page or maybe it was because it was getting off-topic. The man tryna keep us brothers down.
    Shar Dundred
    Shar Dundred
    They are back now.
    Would be neat to start a thread or paste or something with the latest patch mapping issues/workarounds.
    Any way to place an item on water besides making it shallow?
    I guess I'll have to work with dummy locust units and use a unit withing distance of unit... create an item in the inventory of the hero approaching.
    • Like
    Reactions: maddeem
    Uncle
    Uncle
    After calling SetItemPosition you should try Hiding/Showing the item to see if that "updates" it. Or use the GUI action for moving the item.

    Problem there is it'd probably run the standard "physics" and push it out of the water so it'd defeat the purpose.
    deepstrasz
    deepstrasz
    Showing or Hiding and Showing didn't do anything. I wonder if it's moved somewhere else or something but who knows where since it remains selected and does not if I use the remove item or hide item action (to debug).
    deepstrasz
    deepstrasz
    Since it didn't work, as mentioned above, I did this crappy workaround: Lidless lasagne
    Good evening sir. This is the Spell Book use police. We heard you aren't using any, ever.
    Why is that sir?
    • Like
    Reactions: Pyrogasm
    Uncle
    Uncle
    Because I'm cool. I just meant that I don't know anything about them because I never use them. I know a lot of tricks revolving around them are obsolete now, but they're still useful for getting more command buttons on the command card.
    Hey Uncle! How are you doing? You seem like a Warcraft III genius. I wonder how old are you, and what is your occupation?
    Yo. Any idea why a unit being moved after each 0.1s to a certain point can't also attack? It's weird. If I disable the instant move trigger, the unit can attack.
    deepstrasz
    deepstrasz
    Now I'm trying to make the dummy properly cast from a specific point as it casts from the ground although it's a flying unit, ugh.
    deepstrasz
    deepstrasz
    I guess an alternative for the ground attack would be a dummy unit each 0.05 or so seconds. However, that won't solve the crushing wave/carrion swarm/breath of fire/breath of frost FX being on the ground for another ability I need for the dragon, which is a bit like Diablo's red lightning fire from Diablo II. I need a continuous attack for that which damages in a line. I could potentially create more dummy units at once attacking the ground in various places so that it kind of looks like a line FX but I'm not sure if it makes sense damage wise because if you get between two or more regions where those dummy units attack you'd lose more hit points than if a crushing wave would hit you at a time.
    Or maybe if I edit the FX model and make it to sit higher, that could work but then it's annoying to do that. How do I even measure the proper height to fit the casting unit's? I guess it'd be what I don't like, trial and error.
    Uncle
    Uncle
    How about triggering the "lightning fire" in a way so that you don't need to rely on fast attacks or Dummy's casting existing abilities. It's not too difficult of a concept to periodically check for targets in a line -> Line Segment Enumeration v2.2b (vJass, Lua, GUI)

    You can also fake a line by using many circular "pick every unit within X range" checks offset in front of one another. It's not a perfect line, but if the circles are close enough together than the player will never know the difference.
    I think I need a hashtable for points.
    Trying to do the whole array thing but was thinking I need an array within an array, or a two-dimensional array.
    So each player has 4 points corresponding to 4 different teams.
    then I want to be able to use loops and [variables] in the array slot.
    then there are 12 different players.

    Looking at hashtable settings I don't see point handle as an option.

    Does this make any sense? You are normally good at understanding my nonsense.

    Thank you for any insight you may have!
    • Like
    Reactions: deepstrasz
    Uncle
    Uncle
    Is it set to anything before this? If no, then it's not leaking. If yes, it could be leaking but I'd have to know what it's set to and how it's being handled.
    Gnuoy
    Gnuoy
    it's probably leaking then. this is part of the unit spawn trigger than runs every minute. helps it select a target. added a call removelocation(udg_ran_tar_pt_two) to the start and it still seems to be working. ok thx. sorry to bug ya.

    edit: hmm actually picks target in middle of map.
    Uncle
    Uncle
    Middle of map means the Location was removed and no longer exists. Don't remove it
    if anyone reading this is considering hiring this man for any sort of coding work, do it while you can afford him. Just finished about a month long project and it could not have been smoother or more professionally handled despite me throwing a few curve balls mid play. Clear communication, speedy adjustments, good suggestions on how to improve other stuff and included bonus delivery of simplified tools for me to adjust & expand the system without having to learn to code. just pretty much killed it and made it look easy.
    Awesome. However, there are some issues with the lightning FX going over screen to the north at times especially if the unit is near that part of the screen when attacking and if there's other phoenixes attacking around. Tested on Classic.
    hi guys ,i want to make a map with local game,when i live,i want to play with fans(they can send message in my live room)in wc3 old version i have already complete this game (use io and 3rd system pull live room message)but now i want 2 change the game to new engine(reforget version)i saw some thread like how to use preload to save/load data,when i try it,the load function maybe load at once,That's means when i rewrite date in same file,its allways read a old value. cloud you give me some idea to deal with this problem?(wc3 runtime env how 2 read 3rd system data)many thanks!
    Uncle
    Uncle
    I'm not really knowledgeable on this matter but:
    1) Reforged doesn't use a new game engine.
    2) Preload can only load once per game as far as I understand.
    3) You should make a thread about this in the World Editor Help Zone.
    Hi MR,
    how are you doing, I'm making a tower defense using your template Custom Tower TD, the problem is that I have 4 spawns for 4 players but I want the enemys to spawn even if the players are not connected or no starting the game.
    Oh yes is first time i try make one map,i have so idea on my head for my td ^^
    Uncle
    Uncle
    The system uses a Player Group variable called Users_PG to track the players. You can see in the SETUP Game trigger that it's the very first thing that I do. All you need to do is modify these actions so that all of your desired players get added to the Player Group as well.

    This is important since the system uses Users_PG for handling everything Player related, like spawning units in their base.
    [NR] Nikita
    [NR] Nikita
    i see i go try ty
    Hey man, when you have time and if you want to, please give another look to the shields map and tell me if there's anything more I should improve.
    deepstrasz
    deepstrasz
    Hey. It's me bugging you again, of course. Would you spare one last look at the last uploaded map file (latest/last post) in that thread? I would like to upload it to Spells. Maybe someone will find it useful or could do something with it.
    Have any idea about this?
    deepstrasz
    deepstrasz
    deepstrasz
    deepstrasz
    Also, edited my post here: PATCH 1.35 OUT NOW
    Did you know negative together with positive auras bug?
    Uncle
    Uncle
    The Gem of True Sight is originally from the Diablo 2 Bnet lobby screen where it served absolutely no purpose. It's one of those "not fully implemented" features. Instead of removing it they simply kept it in the game as a joke. The Wc3 devs wanted to continue this joke so they added it to the World Editor. Rumor has it that if you press the gem 69,000,000 times in a row you'll get early access to Warcraft 4.
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
Top