1. 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
  2. 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
  3. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  4. Choose your ride to damnation in the 5th Special Effect Contest Poll.
    Dismiss Notice
  5. The winners of the 13th Techtree Contest have been announced!
    Dismiss Notice
  6. The 13th Music Contest Poll is up! Vote for the best tracks in this symphony of frost and flame.
    Dismiss Notice
  7. Race against the odds and Reforge, Don't Refund. The 14th Techtree Contest has begun!
    Dismiss Notice
  8. 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.

[General] How to creat a Custom Tool?

Discussion in 'World Editor Help Zone' started by Wardota2 Gamer, May 28, 2017.

Tags:
  1. Wardota2 Gamer

    Wardota2 Gamer

    Joined:
    Jan 7, 2017
    Messages:
    474
    Resources:
    9
    Maps:
    9
    Resources:
    9
    I actually download custom tools here in Hive but how do we make it I am curious because I don't know how to create a tool.I am tagging @Chaosy with this because he has a experties of tool making.

    Firstly I want to creat a tool for you to import your image to a loading screen because I really want that

    Second I want a tool for creating spells and all that is all I want for now and please tell me what editor you use in making tools?
     
  2. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,699
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    There is no "way to make a tool" you need to learn programming. Probably C#, C?+ or Java.

    1. There are tools that did this in the past at least, I think warcraft viewer was the name.
    2. Impossible.
     
  3. Wardota2 Gamer

    Wardota2 Gamer

    Joined:
    Jan 7, 2017
    Messages:
    474
    Resources:
    9
    Maps:
    9
    Resources:
    9
    Thanks @Chaosy but can you tell me what you are using to program a tool do you use Java?
     
  4. TriggerHappy

    TriggerHappy

    Code Moderator

    Joined:
    Jun 23, 2007
    Messages:
    3,697
    Resources:
    22
    Spells:
    11
    Tutorials:
    2
    JASS:
    9
    Resources:
    22
    You can find much more of the information you need by searching online. There are many programming languages, choose one that fits you and decide what you want to make and go for it.

    In the process you will probably have a lot to read in order to understand what is going on and to figure out how to achieve what you want.

    If you are looking to get into something easy to read and write, I would personally suggest Python.
     
  5. Wardota2 Gamer

    Wardota2 Gamer

    Joined:
    Jan 7, 2017
    Messages:
    474
    Resources:
    9
    Maps:
    9
    Resources:
    9
    Thanks @TriggerHappy!
     
  6. Chaosy

    Chaosy

    Joined:
    Jun 9, 2011
    Messages:
    10,699
    Resources:
    18
    Maps:
    1
    Spells:
    11
    Tutorials:
    6
    Resources:
    18
    The simple tools I made for wc3 was written in C#
    However, if I had to do it today I would probably use Javascript instead since I have more experience with it. But I do not know if and how Javascript can be used for tools, I only use it for web development.
     
  7. Dr Super Good

    Dr Super Good

    Spell Reviewer

    Joined:
    Jan 18, 2005
    Messages:
    25,843
    Resources:
    3
    Maps:
    1
    Spells:
    2
    Resources:
    3
    It can be, however its high level nature can make certain aspects of programming difficult. For example, GhostWolf had a lot of problems getting JavaScript to render WC3 models efficiently, and even when he did it still did so quite poorly compared with what even a Java/C# implementation might be capable of due to the limitations of JavaScript.

    Java is a good language to write tools in. It has decent execution performance (so complex algorithms or resource intensive jobs perform well) while being completely platform independent.

    C# is preferable over C++ as it is generally higher level (more productivity when writing code). C++ has potentially the highest performance for some tasks but for practically every possible tool you might consider creating this is of no benefit. Both can have portable code, but need to be built targeting specific platforms which makes multi-platform deployment harder than with Java.

    JavaScript is probably equally portable as practically every browser executes it. Not sure how one would make such a tool but I am guessing the program start would be a html file. Might not run on very old operating systems that lack support for modern browsers if advanced JavaScript features are used.

    Python is technically as portable as Java mechanically, however its virtual machines are less common than Java. Everyone can install Python on their computer in 1-2 minutes, however most Windows users probably have not. Rolling out with an incorporated virtual machine destroys portability. The way Python operates can have problems scaling with certain tasks due to its use of runtime name lookups however for most tools this will not be a problem.

    Depending what you want your tool to do, some of the functionality may have already been written by some dedicated WC3 fan. I recommend searching GitHub to find if source code for such functionality exists. This might even shape your language choice as it would make a lot more sense using a language where most of your desired functionality is already written rather than having to write it all yourself.