Questions about Newgen

staind25

TH.net Regular
Reaction score
7
So, as it turns out, I guess I need Newgen to create the spell I want to create. I've opened the program before but never really used it.

I'm guessing that once I've used a feature unique to Newgen I can't go back to the normal WE on that map?

Also, it sounds like Newgen has a tendency to be buggy at times. Is my map at risk? I've put 50+ hours into this map so far and I intend to quadruple that. I don't want to lose all of that work. Of course, I'm creating a new version almost every time I start the WE, but I don't want to make a ton of progress in Newgen, have something screw up, and have to come back to my latest version in WE.

And...just some probably "noobish" questions...I've googled for these, and I seriously cannot find my answer. What do the following mean/stand for:

MUI
GDD
MPI
EGUI

Apologies for the quite possibly stupid questions (I have put time into researching all of them and couldn't find a solid answer), and thank you very much for your time.
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
-> Newgen has a tendency to be buggy at times.

Wat.


MUI -> Multiple Unit Instance-ability
Meaning that more than one unit (Many) can cast the same spell at the same time and nothing will go wrong.

GDD -> Global Damage Detection? o.0
Something about GUI-user friendliness, I think..

MPI -> Like, MUI, but for Players.
More than one player can cast a spell and nothing will go wrong.

EGUI -> Enhanced Graphical User Interface
You don't need this now, I think it doesn't work anymore..
Not until someone with spare time re-codes it =P
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
First of all, of course you can open your map with the normal WE after working on it with NewGen. NewGen will just add some extra functions and services to the standard editor.
And NewGen will most probably not screw up your map any more then the normal WE will, its really mostly the same.

MPI - A spell is MPI when more then 1 player can cast this spell at once.
MUI - A spell is MUI if more then 1 unit can cast a spell at once, if a spell is MUI it is obviously MPI as well. (having MUI spells is of course better as having MPI spells)
GDD - A system needed to use the following event "a unit is taking damage". In standard WE there is only the event "unit is taking damage" which is working for a specific unit only, the event added by the GDD is working for any unit by any player and is very useful for custom spells.

and you can read yourself what EGUI is here.
 
I

InstilledBee

Guest
I can't really vouch for NewGen's stability since I've just recently used it as well, but what I can say is that maps saved with NG are still compatible with the ol' untouched WE. I tried. ;) Of course, backups are a must in case something goes wrong, even if you just use the plain WE.

Here's what I know about those terms you're asking:

MUI/MPI = Multi-Unit/Multi-Player Instanceable. This is attributed to spells and triggers which can be used by more than one unit, or more than one player, respectively. It's hard, albeit possible, to make MUI/MPI triggers in GUI alone, hence many people recommend the use of JASS, and oftentimes NewGen. To make a trigger GUI, most of the time, you have to use local variables, but that's not always the case.

EGUI = Enhanced GUI (Graphical User Interface). GUI refers to the non-JASS version of the triggers in the Trigger Editor. Basically, EGUI enhances the features of GUI and adds stuff not available in the regular GUI editor, such as JASS natives. Read more here.

Hope I helped! :)

EDIT: Meh. Took too long to type. Replies were already posted. :|
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
[...]
MUI/MPI = Multi-Unit/Multi-Player Instanceable. This is attributed to spells and triggers which can be used by more than one unit, or more than one player, respectively. It's hare to make MUI/MPI triggers in GUI alone, hence the need for JASS, and oftentimes NewGen. To make a trigger GUI, most of the time, you have to use local variables, but that's not always the case.
[...]|

thats not true. i am working with the editor for several years now without the need of Jass to make any of my spells MUI.
 
I

InstilledBee

Guest
thats not true. i am working with the editor for several years now without the need of Jass to make any of my spells MUI.

Whoops. Got me there on that one. Right you are.

Of course, GUI can be used, but I find pure JASS easier for localization and MUI/MPI purposes. ;)

It kinda bothers me to use 'Custom Script' over and over again. :nuts:
 

staind25

TH.net Regular
Reaction score
7
Wow, all very excellent responses. Thank you so much.

About Newgen's stability...just from the stuff I had been reading, it sounds like it had occasional issues. But you guys make it sound like it's just as stable as the normal WE, which is about as good as we can ask for I suppose.

I'm also glad to hear I can go back to the normal WE...I didn't think that would be possible after you've used something on your map unique to Newgen.

About the terms...thanks for the explanation. Although now you've sparked my curiosity...how exactly would one make a spell MUI? I'm guessing this is only an issue for custom spells with triggers, right?

Thanks again everyone.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
the custom script lines used with GUI are mostly for leak removal and have nothing to do whether a spell is MUI / MPI or not.
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
Chill, no GUI-Jass debates here, lol.

Hmm..
You'd need to use "Event Responses" (I think they're called that)
Stuff like GetTriggerUnit(), GetSpellTargetUnit(), etc.

Also, you'd need to use arrays a lot (If you aren't going to use local variables at all, which would be mad, imo)
 

staind25

TH.net Regular
Reaction score
7
Ah, gotcha. Unfortunately I haven't put the time into learning JASS...and as far as I know, without JASS, the only variables in GUI are global variables...meaning yeah, I don't have any local variables...but I do use many, many arrays :)

EDIT: Is there any way to use the event "A unit takes damage" with a variable unit? Like I notice that event is only listed under Specific Unit, but I don't see a spot for any unit variables...only units that are already on the map. Any way around this without breaking out the GDD? I'm trying to keep it simple >.>
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
of course only custom spells (triggered ones) got to be made MUI. basicly making a spell MUI is pretty easy if you know what you have to keep in mind.

the most simple example i can think of right now would be an AoE damage spell, this is a simple GUI version of a possible AoE spell:
Trigger:
  • Simple GUI AoE spell MUI
    • Events
      • Unit - A unit Starts the Effect of an Ability
    • Conditions
      • (Ability being cast) Gleich SimpleAoEAbility
    • Actions
      • Set TmpPnt = (Target point of ability being cast)
      • Set TmpGrp = (Units within 512.00 of TmpPnt matching ((((Matching unit) is alive) Equal True) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal True)))
      • Unit Group - Pick every unit in TmpGrp and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing 500.00 damage of attack type Spell and damage type Normal
      • Custom script: call DestroyGroup (udg_TmpGrp)
      • Custom script: call RemoveLocation (udg_TmpPnt)

Now this spell will pick all alive enemys of the caster within 512 range of the point he casted the spell at and damage them by 500 points.
its simple leakless and MUI.
(if you dont know about leaks you should read a turtorial about it.)

now i will make a more advanced version, this for example:
Trigger:
  • Simple GUI AoE spell MUI
    • Events
      • Unit - A unit Starts the Effect of an Ability
    • Conditions
      • (Ability being cast) Gleich SimpleAoEAbility
    • Actions
      • Set TmpPnt = (Target point of ability being cast)
      • Special Effect - Create a special effect at TmpPnt using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
      • Special Effect - Destroy (Last created special effect)
      • Wait 0.38 seconds
      • Set TmpGrp = (Units within 512.00 of TmpPnt matching ((((Matching unit) is alive) Equal True) and (((Matching unit) belongs to an enemy of (Owner of (Triggering unit))) Equal True)))
      • Unit Group - Pick every unit in TmpGrp and do (Actions)
        • Loop - Actions
          • Unit - Cause (Triggering unit) to damage (Picked unit), dealing 500.00 damage of attack type Spell and damage type Normal
      • Custom script: call DestroyGroup (udg_TmpGrp)
      • Custom script: call RemoveLocation (udg_TmpPnt)

what did i change? i created a special effect at the beginning and added a wait so the damage would be dealt after the effect has played through.
this wait action will make our spell not being MUI anymore.
to understand it you have to imagine a player casting the spell.
the system is saving the variable TmpPnt to be the position the spell had been cast at.
now the trigger is waiting for 0.38 seconds.
if another player would cast this spell now within these 0.38 seconds the variable TmpPnt would be overwritten, the damage for the first spell wouldnt be dealt to the right group of enemys. thats very bad.

of course, not such a good example, i suppose nobody would add a wait in there but maybe now you understand what could make a spell become not-MUI and what you have to do to make it MUI. basicaly waits are pure evil for most MUI triggers (there are some simple ones which will still work even with waits!)
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
It leaks.

Destroying a group that has its Enum function called for leaks some RAM
(According to J4L, if I remember his tutorial correctly, lol)
Also, you have to Clear a group before destroying it ._.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
i havent ever heard of anything like that for all my life. take the memory leak turtorial i posted a link to as support for my arguement.

well, even if you are right this is merely an example and wouldnt change anything.
 

staind25

TH.net Regular
Reaction score
7
Ohhhh okay, I think I get it. Yes, I've run into waits just...RUINING triggers before. What a pain in the ass, haha. But yeah, I do believe I've been making MUI spells without realizing it :) Thanks for the explanation!
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
...Enumerating with a null boolexpr leaks...

...Destroying a group that has had an enumeration called for leaks RAM...


Link: http://www.thehelper.net/forums/showthread.php?t=138374

[EDIT]
Yes, it would change something,
What if our friend here used your leaking code as an example to learn from? =(

He would be making mistakes and not realize it.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
first of all, i really never heard of anything like that.

next, if thats true blizzard really has made some really serious mistakes when creating the GUI...

furthermore, using groups with GUI wouldnt even be possible without leaking.
i am using codes like these now for years without any problems with leaks and such, and i believe not a few are doing as i do. even Acehart was using group enumerations like this.
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
Well, Enumerating with a null boolexpr does not leak anymore.
(Fixed in 1.24c or 1.24d or something recent)
But I'm pretty sure destroying a group that has had an enumeration called for still leaks.

Minor leaks don't lag.
But I hate any leaks, big or small =)
 

staind25

TH.net Regular
Reaction score
7
Don't worry guys, I appreciate the examples and the advice. I learned a lot. If the example leaks, no worries, everyone makes mistakes.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top