1. Join us in our custom games night on Saturday, July 28. If you'd like to create a map for the night, check out the map challenge!
    Dismiss Notice
  2. The results for Texturing Contest #28 are out! Step by to congratulate our winners!
    Dismiss Notice
  3. Join in on Icon Contest #17 and show your interpretation of a legendary equipment set!
    Dismiss Notice
  4. We've created the Staff Job Openings thread. We're currently in need of icon, video production, and social/multimedia positions to be filled. Thank you!
    Dismiss Notice
  5. Music Contest #10 Retro is out! Join us for some retro/vintage fun!
    Dismiss Notice
  6. Don't be stagnant - embrace change! The time has come to evolve and join the Techtree Contest #12 - Evolution.
    Dismiss Notice
  7. On May 20th a new law about privacy and data processing comes into work in the EU. I am no lawyer and I need help figuring out if we comply and if not, what we must do about it. Please message me if you can provide any assistance. Read more. Ralle
    Dismiss Notice
Frotty
Joined:
Jan 1, 2009
Messages:
1,192
Location:
No
Occupation:
Programmer

Frotty — Wurst Reviewer

Hivefags pls, from No

    1. BlueSaint
      BlueSaint
      No EBR makes me go bye bye, 0/5 server
    2. KILLCIDE
      KILLCIDE
      Thought it was weird that it was still called just the "JASS" section. I went ahead and changed it to JASS/Wurst :P
      1. Chaosy
        Chaosy
        Riot! What about zinc! seriously underrated.
        jk
        Jul 6, 2018
      2. Frotty
        Frotty
        cool :+1:
        Jul 6, 2018
    3. Chaosy
      Chaosy
      I was playing around with a few spells and noticed something odd.
      I have the following file: https://i.gyazo.com/9c836f08e7828d3d4f3b198a4a91e940.png

      The important stuff is the "filter" function and the "init"
      To my understanding the commented line is supposed to do exactly the same as the code bellow it.
      Except the printed id in "filter" is 0 no matter what when I use the RegisterEvents helper

      Works flawlessly when I use the longer version for some reason.
      1. Frotty
        Frotty
        Jul 6, 2018
    4. Chaosy
      Chaosy
      I a DGUI-like system anywhere on the horizon for the standard library?
      1. View previous comments...
      2. Frotty
        Frotty
        functions annotated @compiletime get called at compiletime. as simple as that. It can cause quite many problems, like the one you are having because you are calling a function with parameters at compiletime via that annotation.
        Jun 11, 2018
      3. Chaosy
        Chaosy
        Ah. Originally I thought @compiletime was required on the called function as well. Somehow it made sense ;P
        Jun 11, 2018
      4. Frotty
        Frotty
        I have added some additional warnings and errors now to prevent incorrect usage of @compiletime
        Might prevent this in the future.
        Jun 11, 2018
    5. BlueSaint
      BlueSaint
      I'm always here
      1. Frotty
        Frotty
        yea like a fly
        May 28, 2018
      2. BlueSaint
    6. SpoopyShade
      SpoopyShade
      Hey frotty, new to your wurst language, and I've been starting to learn it to help with some ideas i had for my tech tree related aspects in my map. I want to add an item or research ability to a shop that never started with it to begin with, is this doable and if so any pointers on how to approach it. I don't see the properties by default in wurst for items sold etc.
      1. Frotty
        Frotty
        Hi, Adding items to shops just takes a call to "AddItemToStock" ?
        Not sure what this has to do with wurst.
        Apr 26, 2018
    7. mvlabat
      mvlabat
      Figured it out, these were problems on neither side )
      Tinting colors always get reset if a unit is summoned with an ability.
      mindmg/maxdmg are always taken from original unit - that's a known old bug of WC3 :(

      These are good suggestions!

      Thanks for your reply
    8. mvlabat
      mvlabat
      Hi again! :)
      I wasn't sure where to write to you best. I dunno whether it's a bug or problem on my side. Could you help me with some not working API functions?
      The problem with the first file: https://github.com/mvlabat/Tree-Tag-TODO-Edition/blob/master/wurst/Units/InfernalLavaSpawn.wurst
      setTintingColor doesn't seem to change model color.
      The problem with the second one: https://github.com/mvlabat/Tree-Tag-TODO-Edition/blob/master/wurst/Abilities/SummonInfernalLavaSpawn.wurst
      Spell description doesn't take into account new unit's base damage when printing min-max damage. Must be something about compilation order?

      Thanks!
      1. Frotty
        Frotty
        Hi, please make tickets in the respective repo (https://github.com/wurstscript/WurstStdlib2) if you have a verified issue.
        I tested the tinting color and it worked for me, so please verify your results on that.

        On the second example I'm not even sure what your problem is. Using objectEditor field references isn't straightforward iirc. I never used it myself. The idea is to have the tooltips generated imo.
        In any case, there are many improvements to be made. Please check the bottom of this blog post for some objectediting tips https://wurstlang.org/blog/bestofthewurst3.html
        You should keep your ids constant, and preferable use .presetXXX functions with closures.
        Mar 15, 2018
    9. mvlabat
      mvlabat
      Hey! Thanks for the reputation and your awesome instrument! :D
      1. Frotty
        Frotty
        You're welcome!
        Mar 10, 2018
    10. Chaosy
      Chaosy
      Are modules fine to use? the disclaimer on the website just confuse me.

      I really like modules as it can make some pretty cool systems - which I do not want to become outdated in a random update.
      I would imagine the module I want to make use the linked list module, nothing else.
      1. Frotty
        Frotty
        yea
        Feb 28, 2018
    11. MyPad
      MyPad
      1. View previous comments...
      2. nnnnnnoT_T
        nnnnnnoT_T
        It will be very nice to get rid of the 8190 limit
        My trackable wrapper is being forced to split into 3 same classes with different name...
        But I can't get your library working, I have no idea why, so sad:(
        Mar 25, 2018
      3. Frotty
        Frotty
        not sure what exactly you're talking about. Trackable tracker sounds bad in itself. But with patch 1.29 the array size will be increased so you should be fine. Also as I said, you can implement non array limited data structures using tuples and extension functions.
        Mar 25, 2018
      4. nnnnnnoT_T
        nnnnnnoT_T
        Changed to use tuple now :)

        But it will still be cool to have class backed by hashmap through:x
        Mar 26, 2018
    12. MyPad
      MyPad
      Excuse me, @Frotty. It seems that the generated Object Editor shows even vanilla units as custom units if they have been modified in wurst via existing pseudonatives. I wonder if this feature will be included, to effectively change the contents of existing object data in Wurst, that is to say the vanilla objects. The feature would be the Wurst equivlent of an ObjectMerger function modifyobject. (Not create a new object, modify it only.)
      1. View previous comments...
      2. MyPad
        MyPad
        Spell differentiation technique (by lfh), when it comes to Damage Detection (Runed Bracers), leads to buggy behavior with Mana Shield; Life drain not absorbing drained life; Spell damage reduction not working properly (due to override); Locust Swarm draining the health of the caster instead of healing it, among a few, leading to the eventual modification of the vanilla objects or workarounds.
        Feb 8, 2018
      3. Frotty
        Frotty
        I still don't see why. Why not create new units?
        Feb 8, 2018
      4. MyPad
        MyPad
        Yeah, that's the thing and such. Object editing through code still feels strange when I'm used to a lower-level way of writing them :dazed:
        Feb 9, 2018
    13. TriggerHappy
      TriggerHappy
      1. Frotty
        Frotty
        Feb 1, 2018
      2. TriggerHappy
        TriggerHappy
        I think he doesn't want to open source it, but he could at least give it to you privately. I might have had access to them at one point, though I can't remember.

        But yeah a clientside highlighter would probably be best.
        Feb 1, 2018
      3. Frotty
        Frotty
        in general the black text white background code views on hive are fucking eyecancer. Hence I'm not even in the mood to write a geshi for that and rather wait till he switches, hopefully something with customizable styling..
        Feb 1, 2018
    14. Jampion
      Jampion
      Hello. I started using wurst this week and it feels really good so far.

      There seems to be no dialog package in the handles folder. I made one for my map, but I think it would be a useful addition to the standard library.
      The dot-syntax is just so much more comfortable to use.

      Thank you for a good and modern alternative to vJASS.
      1. Frotty
        Frotty
        Thanks for the kind words, you're welcome.
        Indeed many such ext-func packages are missing from the stdlib, as it mostly contains what I/we use and dialogs are generally nothing I'd ever use.

        However it would indeed be a nice addition to the stdlib, so you should make a PR https://github.com/wurstscript/WurstStdlib2

        If you need some help with that, let me know :)
        Jan 17, 2018
      2. Jampion
        Jampion
        Thank you, I already created the PR with the help of @HappyTauren

        Is there any specific reason why you don't use dialogs? Is there anything bad about them I am not aware of?
        Jan 17, 2018
      3. Frotty
        Frotty
        I commented most concerns on the PR. players can't chat, and it blocks the command card. Blocks the screen, is overly big. I don't like it and I can't think of any case where it would be appropriate to use them except Single Player.
        Jan 17, 2018
    15. HappyTauren
      HappyTauren
      Now I actually went to your profile on my own. How does that make you feel?
      1. Frotty
        Frotty
        weeb free zone.
        Jan 13, 2018
      2. HappyTauren
        HappyTauren
        There's a bit of weeb in all of us
        Jan 13, 2018
      3. HappyTauren
        HappyTauren
        btw why do you want me to make that import public
        Jan 13, 2018
    16. Chaosy
      Chaosy
      Tried making some upgrades with wurst code. While it worked great for copying an upgrade there is no function for modifying the ability that is attached to the upgrade.
      I just want an empty upgrade, check if level is higher than 0 with code and use it that way. But I need to remove the existing ability first.
      1. View previous comments...
      2. Chaosy
        Chaosy
        Alright. Would be great if you poked me whenever it is addressed.
        Jan 8, 2018
      3. Chaosy
        Chaosy
        Also, is there a way to make an wurst.file to always be imported? I have seen the use of "public import X" but I am unsure if that does what I want it to.

        I have a file that contains a bunch of ids that I want to use in a lot of different files. So I can use CreateUnit(players[0], paladin, ...)
        Jan 8, 2018
      4. Frotty
        Frotty
        package A public import B imports package B into any package, into which A is imported. You can collect your common imports as public imports into one package which you import into your other packages.

        @HappyTauren has found a way to replace the Wurst.wurst file, which gets automatically imported, but this isn't really intended.
        Jan 13, 2018
    17. Natu
      Natu
      Hello! I just discovered Wurst and I'm very interested.
      Just a question, my map is like an MMO, is there already a Save/Load system in Wurst?

      And why does it take at least 3 minutes before my map starts loading?
      It copied the map. Then 3-5 minutes of nothing. Then Frozen Throne window finally appear. Is that normal?
      1. Frotty
        Frotty
        Hi, sry didnt see visitor msg due to hive's alert spam. I answered on thread.
        Jan 3, 2018
    18. DD_legionTN
      DD_legionTN
      1. View previous comments...
      2. DD_legionTN
        DD_legionTN
        I will post the issues here instead of github since those issues are just minor issue.

        1. Unused constant do not have green underline below it

        2. Local variable sometimes will be underlined with green line, informing unused, yet it actually been used

        3. In switch statement (of type enum), hopefully can show only related component

        4. compiletime() lacking returns real operation

        For issue #2, please refer to this link : https://fatox.de/asawowadeq.wurst
        At line 115/116, x/y variables both informing unused but it actually been used.
        Dec 28, 2017
      3. Frotty
        Frotty
        1. Will check on that

        2. No, the warning in your example is correct. It doesn't say "variable unused", it says the assignment "= 0." is never used, because you always overwrite this value before accessing it again. If you want to supress it, you can prefix the name with "_" or use "real x" instead of "var x = 0.".

        3. I suppose suggestions could be slightly improved.

        4. Yes because then things like "compiletime(123)" would throw an ambigious reference error since it could be int or real.
        Dec 28, 2017
      4. DD_legionTN
        DD_legionTN
        2. Ah i see, thanks for that.

        3. Yea, just need autocomplete to show related component of the enum type. If possible, remove used enum from autocomplete in the switch statement.

        4. So I will need to use .toReal() to convert into real for constant real which requires compiletime() calculation.
        Dec 28, 2017
    19. General Frank
      General Frank
      Sure, they will never stop, because I will continue asking them.
      Why should people work their butts off if the work is done for nothing and nothing again?
      Believe me, I fulfilled some requests where the project never took off.
      1. Frotty
        Frotty
        ? I ment the OP. Shameless giant requests with little to no specification from unknown members without payoff.
        Dec 11, 2017
      2. General Frank
        General Frank
        Dude, we are thinking the same thing and I agree with you.
        Dec 11, 2017
    20. Chaosy
      Chaosy
      Maybe I should check before writing this.. but nah.

      I was thinking if something like group.action() exists in wurst.

      So basically group.kill() would loop through "this" and kill each unit.
      Feels like a very nice convenience to have if it does not exist already.

      So all functions that exist in Unit could be extended to group.
      1. Frotty
        Frotty
        Seems redundant. A much more useful thing would be to add a .forEach ext-function so it would allow oneliners like:
        someGroup.forEach((unit u) -> u.kill())

        This already exists for enums via ClosuresForGorups. It is generally not recommended to use groups for stuff other than enums anyway.
        Dec 3, 2017
      2. Chaosy
        Chaosy
        Really? I think it is an amazing idea ;P

        I use collection.ForEach() in both c# and javascript, it is very comfortable, but I cannot say that I like the syntax as much.

        group.function() seems way cleaner to me, as long as you only want to do one thing.

        And why would groups not be recommended? I know that Lists exist, but for adding units you have to use a unit group most of the time.

        All units in range of location, for example. Or is that a enum as you called it?
        Dec 3, 2017
      3. Frotty
        Frotty
        The ext functions for units exist for a reason. In groups you would only wrap boilerplate code inside those, which really doesn't seem good.

        Groups lack order and any access other than FoG - as I said, for GroupEnum** functions there are closures provided in ClosureForGroups, which allows things like:

        forUnitsInRange(target, radius, (unit u) -> u.kill())
        and
        forNearestUnit(...)

        Of course, you can still implement those extension functions yourselves, if you so desire them. But I don't think it would be a good fit for the stdlib.
        Cheers
        Dec 3, 2017
  • Loading...
  • Loading...
  • About

    Location:
    No
    Occupation:
    Programmer
    Current Project:
    oxRox
    WarCraft 3 Account:
    Frotty
    WarCraft 3 Realm:
    Northrend (Europe)
    Staff Position:
    Wurst Reviewer
    probably

    Interact

  • Loading...