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,463
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,463
[...]
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,463
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,463
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,463
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,463
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.
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top