1. Are you planning to upload your awesome spell or system to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  5. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  6. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  7. The results are out! Check them out.
    Dismiss Notice
  8. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  9. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  10. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Talent Jui

Submitted by Tasyen
This bundle is marked as approved. It works and satisfies the submission rules.

What is Talent Jui


Talent Jui is the 3. edition of my resource Talent. It offers a choice talent system similar to heroes of the storm. On levels you decided, heroes/units can pick one talent from a group of choices (tier) specially defined for that unitTyped. This system works for any amount of units at the same time. But one player can only obeserve talents of one unit at one time. Talent Jui provides a custom created dialog (which can be slightly customized) to perform the choices from the player perspective. Choices and tiers are created using jass/GUI. Cause of using the frame natives, Talent Jui does not need any object Editor data to manage itself.
This system also includes an easy way to create unlearning/reseting choices.

How to install


  • Make sure World Editor generates unknown variables in Preferences is set.
  • Copy the Talent Folder.
  • update references inside Talent Init
  • export
    • war3mapImported\TalentBox.fdf
      war3mapImported\TalentBox.toc
    • import them into your map
  • Installed

How to Use


You have to feed the talent data with choices and tiers for unitTypes that shall use talent. Also your choices needs to activade code/triggers when they were picked. Talent provides 2 ways to handle that: events or code binding. Checkout the examples included in the map for that.

Lua version

The Lua Version has differences to the jass Version outside of beeing not jass. In the jass Version Level 0 was a valid Level for a Tier. The Lua Version starts with Level 1. It has a different api when not using the GUI triggers. The Trigger binding is gone, Lui calls binded functions instead of Triggers. Each Choice is a table, one can attach data to it like to any table. Cause it is dangerous to execute stuff in the root (crash wise and garbage collector wise) The Lua Version starts a 0.0s timer after it passed registered so named "unitSheetsFunctions" are called which should be the Custom Unit Talent Trees (checkout the Hero Demos). UnitSheetsFunctions are only relevant when using Lua directly. When using GUI, it is not important.

ChangeLog:
1.33
Resets the Talent Event real before Setting it to the wanted value.
TalentBox will now close when the current Selected Target dies.
TalentBox will now close after doing a choice and no further choice can be done.
Maybe the overglowing was fixed.​
1.32a Fixed a bug in Lui with Talents beeing unselectable when adding abilties.
1.32.00
Improved the Dialog for allied shared Units.
Improved Level Boxes and Page switching.
fixed a bug with the Reset Button will be disable on Level not beeing the current selection.
One can now alter the space between Choice, the Bottom and the top.
Added an boolean array to disable the reset button as long that boolean is true.
Added udg_Talent__UnitCode inside Events binded Code it is the unitType beeing used by udg_Talent__Unit.
The Choice-Description fuses now with the Bottom and Right of the Choice Frame.
Fixed a glitch with disabled Reset Button.
Non Talent Users Show now a Box with the title reading "No Talent User".
Added a Lua Version​

Requiers Warcraft 3 1.31+

Keywords: SkillTree, Talents, masteries, hots like, hero progress, 1 of 3, 1 of 2, 1 of many.
Previews
Contents

Talent Jui 1.33 (Map)

Talent Lui 1.33 (Map)

Reviews
MyPad
Tested, and works very well with the game. Approved.
  1. Devalut

    Devalut

    Joined:
    Feb 9, 2009
    Messages:
    811
    Resources:
    2
    Spells:
    2
    Resources:
    2
  2. blink

    blink

    Joined:
    Mar 6, 2012
    Messages:
    60
    Resources:
    2
    Models:
    2
    Resources:
    2
    wth I didn't know there was an ExecuteFunc() function. Thanks for this!
     
  3. Pyrogasm

    Pyrogasm

    Joined:
    Feb 27, 2007
    Messages:
    3,022
    Resources:
    1
    Spells:
    1
    Resources:
    1
    Don’t use ExecuteFunc if you can avoid it. Use .execute() or .evaluate() instead. You can read about them in the JASSHelper manual.
     
  4. blink

    blink

    Joined:
    Mar 6, 2012
    Messages:
    60
    Resources:
    2
    Models:
    2
    Resources:
    2
    I see, thanks! I was using triggers (executing them) before to execute an "action" for my custom missiles and planned to use ExecuteFunc()/.execute(). Is it better to just stick with triggers?
     
  5. Pyrogasm

    Pyrogasm

    Joined:
    Feb 27, 2007
    Messages:
    3,022
    Resources:
    1
    Spells:
    1
    Resources:
    1
    Both the . functions use triggers internally afaik. There’s no real functional difference between what you described and using them except they allow the triggers to run in a new thread. If you try to run too many triggers in a row using your method it’s possible to hit the op limit and threadcrash.

    ExecuteFunc with an invalid function name will crash the game.
     
  6. Shaeam

    Shaeam

    Joined:
    Aug 11, 2010
    Messages:
    266
    Resources:
    1
    Maps:
    1
    Resources:
    1
    This is an absolutely fantastic system, I'm very eager to use this for a project I'm working on... That being said; I'd love to know how to disable the UI (and function) of talent resets. I don't actually want my Heroes to be able to swap talents on the fly (or, really -- at all), I'd very much love to get rid of the UI so that it cannot be done. I toggled off the

    "constant function TalentBoxUseUnlearnButton takes nothing returns boolean
    return false"

    bit... But there's a weird UI glitch with the UI where it's still trying to show up.
     
  7. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,622
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    As a web developer I am rather annoyed by the fact that the body panel (the one beneath the title) kinda collides with the bottom border of the parent.

    For my sanity please put a bit of space there. Preferably so that it is symmetric.

    Dope idea though, super promising. Huge fan.
     
  8. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,330
    Resources:
    17
    Tools:
    2
    Maps:
    2
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    17
    Thanks for that Feedback. The glitch happens cause the Tooltip-Frame of that button was created even when the reset button is not created.

    Might be better without the border and background for the description.
    Not bordeed 1.jpg not bordered 2.jpg Not bordered 3.jpg

    Edit: Might also be good to change the border and background of the Level Buttons to the same as other ones so the do not stand out so much.
    Not bordered 4.jpg

    Or another Idea is fusing the Borders.
    Bordered 1.jpg Bordered 2.jpg
     
    Last edited: Jul 31, 2019
  9. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,622
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    Whatever you prefer is an upgrade.
     
  10. Uncle

    Uncle

    Joined:
    Aug 10, 2018
    Messages:
    484
    Resources:
    0
    Resources:
    0
    Sorry if this is too much to ask but I was wondering if anyone could help me out here.

    So basically, I'm just trying to create simple Text Boxes. I saw this system and figured I could read it and learn how to do it myself. Unfortunately, I'm
    struggling a bit. I managed to mess around with the System and hide the Talent Show button and create a Text Box using this:
    Code (Lua):

    local fh = BlzCreateFrame("TalentBoxTextArea", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), 0, 0)
    BlzFrameSetSize(fh, 0.22, 0.22)
    BlzFrameSetAbsPoint(fh, FRAMEPOINT_TOPRIGHT, 0.8, 0.5)
    BlzFrameSetText(fh, "Text goes here")
    BlzFrameSetEnable(fh, true)
     
    But there's so much extra stuff going on that I don't need. Basically, I want to know what part of the Talent code do I need if I only wanted to make text boxes like in the code above.
    In other words, I don't want all of the extra stuff that comes with the system (so nothing Talent related), I just want the above code^ to work so I can create simple Text Boxes.

    Also, great system. I'll keep trying to wrap my head around it but I'm new to this stuff.
     
  11. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,330
    Resources:
    17
    Tools:
    2
    Maps:
    2
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    17
    If you only want a TextArea, you don't really need anything from Talent. What you need is a loaded mainframe of Type "TEXTAREA". Such one exists in "ui\framedef\ui\escmenutemplates.fdf" which is not loaded on default. Hence you have to create a custom TOC loading it. That custom TOC you Import into your map and load it with BlzLoadTOCFile, can be done inside a Init_trig. After the loading was done, you can create mainframes mentioned in the fdfs of that TOC. Instead of writing an own TOC, you could Import the TOC inside the zip of this post. This TOC loads the not loaded standardtemplates:
    ui\framedef\ui\escmenutemplates.fdf
    ui\framedef\glue\standardtemplates.fdf
    TOC-Files have to end with a empty new line.

    Inside "ui\framedef\ui\escmenutemplates.fdf" there is a mainframe of type TEXTAREA beeing named "EscMenuTextAreaTemplate" that is the one you should create.

    "Talentbox.fdf" has a mainframe named "TalentBoxTextArea" which inherits from "EscMenuTextAreaTemplate".
    You could also check out "TalentBoxTextArea" in "Talentbox.fdf" and create your own in a similar way. That currently has to be done, if you want to change the font of the text shown inside the TEXTAREA.

    I call frames mainframes when they have a definition outside of a framebody.
     

    Attached Files:

    Last edited: Aug 9, 2019
  12. Uncle

    Uncle

    Joined:
    Aug 10, 2018
    Messages:
    484
    Resources:
    0
    Resources:
    0
    Awesome, it works perfectly. Thank you for taking the time to help!
     
  13. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,330
    Resources:
    17
    Tools:
    2
    Maps:
    2
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    17
    Some small Bugfixes for the Lua Version.
     
  14. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,320
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Talent Jui, along with the rest of the bundles utilizing the new UI natives, is something that could only be described as a "wet dream" for mapmakers. Talent Jui could possibly spur a new generation of wc3 based AoS maps, along with providing additional possibilities in existing ones. Yet, it cannot be stated enough that this might have more useful applications not just within the scope of AoS maps but also outside of it (such as RPGs, minigames, etc.).

    This is, as it is right now, quite useful for mapmaking. Yet, it could use some more polishing, which will improve this already-impressive resource.

    Areas that could be polished:
    1. Once a unit or Hero has learned all of its' talents, the talent box should have the option to immediately close.

    2. When a unit "dies" (physically dead but has not yet fired the death event), the talent box should immediately close.

    3. When throwing events, try adding a line that sets Talent__Event to 0.00 before the desired value, in case recursions occur with the system.
    This may very well be one of the best system resources for GUI, JASS/vJASS, Lua, or Wurst (if they decide to rewrite it) for mapmaking and can be definitive of the potential that wc3 modding can really be.
     
  15. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,330
    Resources:
    17
    Tools:
    2
    Maps:
    2
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    17
    Updated to 1.33 should fullfile MyPads Points. Maybe also the overglowing was fixed.

    Done, also happens when selecting an choice and not beeing able to do further choices. This is a Setting which can be disabled. In Lua it is a variable hence one could change it, probably also for only one Player using GetLocalPlayer(). In jass it is a constant function.

    An trigger was added that runs on any unit death when the current observed target us the dying unit TalentBox Closes.

    Done
     
  16. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,320
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Great to see this bundle being updated. By the way, if a unit is the only one currently selected by the player, and the unit is deselected after, wouldn't it be better to hide the talent button as opposed to leaving it visible?
     
  17. Tasyen

    Tasyen

    Joined:
    Jul 18, 2010
    Messages:
    1,330
    Resources:
    17
    Tools:
    2
    Maps:
    2
    Spells:
    8
    Tutorials:
    4
    JASS:
    1
    Resources:
    17
    Good Idea, will be added, soon.
     
  18. MyPad

    MyPad

    Spell Reviewer

    Joined:
    May 9, 2014
    Messages:
    1,320
    Resources:
    7
    Models:
    1
    Icons:
    2
    Spells:
    3
    JASS:
    1
    Resources:
    7
    Tested, and works very well with the game. Approved.