1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. The hotfixes have arrived.
    Dismiss Notice
  3. The Cinematic Contest #7 poll is up!
    Dismiss Notice
  4. Let's participate in the Texturing Contest #28 - Swamp Dwellers instead of sitting around getting covered in moss!
    Dismiss Notice
  5. Cast a vote for the best warrior in the Concept Art Contest #11 - Poll!
    Dismiss Notice
Frotty
Joined:
Jan 1, 2009
Messages:
1,163
Location:
No
Occupation:
Programmer

Frotty — Wurst Reviewer

Hivefags pls, from No

    1. 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 at 11:02 AM
    2. 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
    3. 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
    4. mvlabat
      mvlabat
      Hey! Thanks for the reputation and your awesome instrument! :D
      1. Frotty
        Frotty
        You're welcome!
        Mar 10, 2018
    5. 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
    6. 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
    7. 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
    8. 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
    9. 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
    10. 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
    11. 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
    12. 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
    13. 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
    14. 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
    15. 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
    16. MyPad
      MyPad
      Hey Frotty. I tried to run a map from vscode, but I keep getting this error:

      Wurst: Warcraft path not set (change wurst.wc3path in your settings).

      I have already mapped it to the folder of the game. I wonder what must be done.
      1. View previous comments...
      2. Frotty
        Frotty
        By providing information about what exactly doesn't work? Could you be any more vague?
        Dec 4, 2017
      3. MyPad
        MyPad
        Dec 5, 2017
      4. Frotty
        Frotty
        Dec 5, 2017
    17. BlueSaint
      1. View previous comments...
      2. BlueSaint
        BlueSaint
        Yeah. Next Friday I'm home again.
        Nov 28, 2017
      3. Frotty
      4. BlueSaint
        BlueSaint
        Wow, what an incredibly horrific song!
        Nov 28, 2017
    18. deepstrasz
      deepstrasz
      Actually, the option to disable/hide it has been removed since Hive 2.0.
      1. View previous comments...
      2. deepstrasz
        deepstrasz
        I like giving some but not necessarily want or need any.
        Nov 21, 2017
      3. Frotty
        Frotty
        you are a rephoe and everyone knows it!
        Nov 21, 2017
      4. deepstrasz
        deepstrasz
        Everyone? That should mean I am famous which I am not.
        Nov 23, 2017
    19. MyPad
      MyPad
      Good day, Frotty. I hear that Wurst is actively maintained and I project it to be en route to becoming the viable alternative to vJASS, and Zinc. I used it a little bit and I misunderstand the nature of how the Wurst project affects the maps currently being worked upon. I would like to ask how maps are imported to the project.

      Cheers and more power to readability!
      1. Frotty
        Frotty
        Hi and thanks. However I don't really understand - what do you misunderstand?
        Wurst doesn't affect "maps being worked on". Of course you can decide to continue an existing map with wurst (https://wurstscript.github.io/tutorials/legacymaps.html) however Wurst does not support vJass if that's what you thought.

        Cheers
        Nov 18, 2017
      2. MyPad
        MyPad
        Thanks for the quick reply. What I meant was something like this:

        There is a map, someMap.w3x,
        I want to know if including someMap.w3x on the Wurst Folder will make it a part of the project and if not the case, how to do so (make sure that the map will have the compiled wurst code).

        Once again, thanks for Wurst.
        Nov 18, 2017
      3. Frotty
        Frotty
        did you check the link? It is only "imported" if you use it as base for runmap/buildmap commands.
        Also thanks for the kind words!
        Nov 18, 2017
    20. Trokkin
      Trokkin
      Well, since the tutorial/manual seems not to cover every feature in wurstscript (or maybe I'm just blind), I'd like to ask you a question: what is stacktraces option for compiler and how can I debug a legacy map that crashes during loading time?
      (there's no triggers/variables in the map file and no my scripts added? I checked compiled.txt and seen that Wurst adds DummyRecycler, UnitIndexer, and some other non-default packages and nothing else... Yet same project runs with other maps just nice. Btw, I'm running from VSCode)
      1. View previous comments...
      2. Trokkin
        Trokkin
        Well I was testing it for almost an hour and found out that it was a strange symbol in description of one of my spells - '�'. The description was actually shortened by editor, and this was at it's end. And this little thing broke the whole game. Unbelievable.
        Nov 8, 2017
      3. Frotty
        Frotty
        Nov 8, 2017
      4. Frotty
        Frotty
        Hey, I came online 3 minutes after you left the channel ;)
        Nov 9, 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...