• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Change JASS to GUI

Level 25
Joined
Sep 26, 2009
Messages
2,408
You cannot as far as I know. GUI offers only a subset of functionality that pure jass is capable of.
For example all scripts are encapsulated by library/endlibrary keywords, there are custom functions and non-BJ methods like SaveReal. None of these have any way to represent them in GUI.
Even if some things were possible (e.g. custom functions would be inlined into trigger actions) you would still end up with a trigger that is mostly composed of 'Custom Script' actions.

The only way I know of would be to manually rewrite those JASS trigger into GUI and resolve the abovementioned issues while doing so.
 

Uncle

Warcraft Moderator
Level 65
Joined
Aug 10, 2018
Messages
6,660
I would like to be able to use it while in Jass, but the problem I have is that when I go to my map, only the "ultimate ability" appears as an error and in the end the detonator does not load
Make sure you've enabled JassHelper:
1705503048778.png

It'd be much easier to fix whatever import issues you have than rebuilding the entire thing in GUI...
 
Level 25
Joined
Sep 26, 2009
Messages
2,408
I believe you have mismatch in object editor data and what the script expects.
Each of those scripts has a 'globals' section right in the beginning where it points to object editor data, for example the 'Ethereal Edge' script has this:
JASS:
library EtherealEdge initializer Init requires Global

    globals
        // Общие настройки
        private constant integer SkillId                = 'A004'    // ID of skill
        private constant integer DummyId                = 'h000'    // ID of dummy caster
        private constant integer DummyCastFrontId       = 'S008'    // ID of dummy front ability
        private constant integer DummyCastBackId        = 'S009'    // ID of dummy back ability
        private constant string  DummyCastFrontOrder    = "silence" // Order of dummy front ability
        private constant string  DummyCastBackOrder     = "ensnare" // Order of dummy back ability
        private constant real    AngleBack              = 180       // Angle of back unit side
        // Уровневые настройки
        private constant integer MAXLVL = 4                         // Levels of skill
        private constant real array Chance[MAXLVL]                  // Chance of proc
    endglobals
Take the 'SkillId' as example. The value is 'A004'.
If you go to object editor, Abilities tab and press CTRL+D, you will see ability IDs instead of ability names. There you can see that 'A004' refers to the skill 'Ethereal Edge'

What I belive you have to do is make sure that when you have copied the 'Ethereal Edge' ability into your map, its ability ID matches that in the script. If not, you should either update the ability or the script so that they match (if you are updating script, make sure the id is encapsulated by single quotes).

You will need to do the above for all IDs and similar thing for orders (like the "silence" order above).
 
Level 8
Joined
Dec 12, 2021
Messages
76
Yes, I just tried what you told me before coming to the thread and it didn't work. Another question I have is whether I should transfer all the detonators starting from "Ini, Kill, Refresh to Death deception" including the global detonator to my map?
Since I'm only interested in one skill and to transfer everything may be a lot of work.
 
Level 25
Joined
Sep 26, 2009
Messages
2,408
I assume the ultimate is 'Death Deception'.
To import that, I think you will need to do things in this order:
  1. Object editor:
    1. Buffs: Copy 'Death Deception'
    2. Abilities: Copy
      1. unit ability 'Death Deception Defend (detect)'
      2. hero ability 'Death Deception'
      3. item abilities 'Death Deception 1/2/3 Undead'
    3. Items: Copy all three 'Death Deception' items
    4. Units: Copy the 'Dummy' unit
  2. Triggers:
    1. Copy 'Global' trigger
    2. Copy 'Death Deception' trigger
I think that is all you need to copy.
If it still doesn't work, you could upload your map here so we can take a look to see where the issue is.
 
Level 25
Joined
Sep 26, 2009
Messages
2,408
All of it looks fine. When I loaded the map in the editor, I noticed that the Global and Death Deception scripts were not Enabled (right click the trigger in trigger list and make sure the 'Enable Trigger' is checked).

Tested on your map in game and it also works fine. One thing to note: make sure that you learn the spell during the game - the Death Deception script starts when unit learns the skill.
 
Level 25
Joined
Sep 26, 2009
Messages
2,408
hmm, those scripts use vjass, which is by default supported in latest version of world editor. I am not sure since which version the world editor supports it, but based on the fact that you don't have the 'JassHelper' menu option that Uncle showed, I would guess you are on some ancient version of WCIII which does not have vjass support and so you cannot run the script in the default world editor.
I know there were some other enhanced world editors that had vjass support, but I've never used them. Maybe someone else will remember the names of those editors.
 

Uncle

Warcraft Moderator
Level 65
Joined
Aug 10, 2018
Messages
6,660
So the only solution I would have is to get a more updated editor? Well if so then it's in my hands, I thank you both for your time :)
People that avoid using Reforged patches often stay on version 1.31, or have both versions installed (latest and 1.31). If you google search you should be able to find what people are using. My point is that you might not need the LATEST version but a slightly later version like 1.31 will definitely work.
 
Top