Problem with trigger

GoGo-Boy

You can change this now in User CP
Reaction score
40
I've just read that the global variables of GUI got their problems with MUI. Therefore I wanted to make my item-spell MUI (in GUI), but something seems to be wrong with my custom scripts..

Code:
Braking Endurance
    Ereignisse
        Einheit - A unit Benutzt einen Gegenstand
    Bedingungen
        (Item-type of (Item being manipulated)) Gleich Breaking Endurance
    Aktionen
        Custom script:   local real udg_EnduranceUnitHP1
        Set EnduranceUnitHP1 = (Leben of (Hero manipulating item))
        Wait 5.00 seconds
        [U][I][B]Custom script:   local real udg_EnduranceUnitHP2
        Custom script:   local real udg_EnduranceDamage
        Custom script:   local group udg_EnduranceDamaged1
        Custom script:   local group udg_EnduranceDamaged2[/B][/I][/U]
        Set EnduranceUnitHP2 = (Leben of (Hero manipulating item))
        Set EnduranceDamage = (EnduranceUnitHP1 - EnduranceUnitHP2)
        Set EnduranceDamaged = (Units within 400.00 of (Position of (Hero manipulating item)) matching ((((Matching unit) is Ein Gebäude) Gleich True) and (((Owner of (Matching unit)) is an enemy of (Owner of (Hero manipulating item))) Gleich True)))
        Set EnduranceDamaged_2 = (Units within 800.00 of (Position of (Hero manipulating item)) matching ((((Matching unit) is Ein Gebäude) Gleich True) and (((Owner of (Matching unit)) is an enemy of (Owner of (Hero manipulating item))) Gleich True)))
        Einheitengruppe - Pick every unit in (Units within 400.00 of (Position of (Hero manipulating item)) matching ((((Matching unit) is Ein Gebäude) Gleich True) and (((Owner of (Matching unit)) is an enemy of (Owner of (Hero manipulating item))) Gleich True))) and do (Actions)
            Schleifen - Aktionen
                Einheitengruppe - Remove (Picked unit) from EnduranceDamaged_2
        Einheitengruppe - Pick every unit in EnduranceDamaged and do (Einheit - Cause (Hero manipulating item) to damage (Picked unit), dealing EnduranceDamage damage of attack type Chaos and damage type Normal)
        Einheitengruppe - Pick every unit in EnduranceDamaged_2 and do (Einheit - Cause (Hero manipulating item) to damage (Picked unit), dealing (EnduranceDamage / 2.00) damage of attack type Chaos and damage type Normal)
        Spezialeffekt - Create a special effect attached to the origin of (Hero manipulating item) using Objects\Spawnmodels\NightElf\NECancelDeath\NECancelDeath.mdl
        Spezialeffekt - Destroy (Last created special effect)
        Einheitengruppe - Pick every unit in EnduranceDamaged and do (Spezialeffekt - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\GlaiveMissile\GlaiveMissileTarget.mdl)
        Spezialeffekt - Destroy (Last created special effect)
        Einheitengruppe - Pick every unit in EnduranceDamaged_2 and do (Spezialeffekt - Create a special effect attached to the chest of (Picked unit) using Abilities\Weapons\GlaiveMissile\GlaiveMissileTarget.mdl)
        Spezialeffekt - Destroy (Last created special effect)
        Custom script:   call DestroyGroup (udg_EnduranceDamaged)
        Custom script:   call DestroyGroup (udg_EnduranceDamaged_2)

The marked 4 lines don't work somehow... please tell me what I'm doing wrong there^^
 

The_Kingpin

Member (Who are you and why should I care?)
Reaction score
41
INCORRECT!

Yes you can, they have to be the first things in the actions...
 

0zaru

Learning vJASS ;)
Reaction score
60
Anyway the Groups are bad idea to use as local in GUI.

Why? Because the Actions inside the Pick Every Unit.... are created in other function and if you are using a local they can't be used in other function (exept with attachment system, but that is jass).

The same with most of if/them/else
 

ShadowTek

New Member
Reaction score
23

GoGo-Boy

You can change this now in User CP
Reaction score
40
Anyway the Groups are bad idea to use as local in GUI.

Why? Because the Actions inside the Pick Every Unit.... are created in other function and if you are using a local they can't be used in other function (exept with attachment system, but that is jass).

The same with most of if/them/else

Ahh sh#*... I read something like that but forgot it. Hmm that's pretty pretty bad. Now I need to do this spell in JASS I think, which I'm somewhat unable to do. "Hello tutorials" >.<

Edit: Seems like I was able to fix my issue. I only set EnduranceUnitHP1 as a local real with custom script because that's the only spell before the wait time :<
 

Tinki3

Special Member
Reaction score
418
> Seems like I was able to fix my issue

You don't have to use local globals in GUI to make something MUI, just FTR.

As an alternative, you can simply give all global vars an array size of 1, and
use "Player Number of (Triggering unit)" as the index value - that'll upgrade to
MPI, which will allow all players to safely run a full instance of a trigger once
at a time, at the same time.

But only do this if you know you won't have more than 1 unit per player run
the trigger at a time.

So "MPI" will not get you as high as MUI, but it's still a good choice if you know you can do with it.
 

denmax

You can change this now in User CP.
Reaction score
155
The solution to all GUI related problems is to learn Jass.

You are correct, but that does not state the GUI can't fix problems itself.

Also, global locals (?) does not work more than once in one trigger. Another things is you should null it at the last part.

The one that can make it possibly GUI is with Arithmetics (with Player Number, Random Number, Number of Units and other things related to this) but of course, some things cannot be done 100%.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top