HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

EGUI

01-05-2008, 10:58 PM#1
burningice95
GUI - Enhanced GUI

GENERAL

Many of your remember (know of) WEU, world editor unlimited. It can do a lot of cool stuff, including something called Advanced Triggers. These are a series of GUI actions that allow you to do certain things that you couldn't do before, or make doing certain things easier (such as dialouge creation). However, as stated by WEU's author, most of those triggers are leaky and outdated. So, I plan to reinvent GUI, by extending it in all the ways WEU did, and more!



Systems
There are a lot of systems out there that require custom script to use. I will be searching through these systems, and creating GUI's for as many as possible. The ones that I currently thing are suitable are
-Vexorians CSCache
-Handle Vars *really useful!*
-Vexorians Caster System (Not all of it)



EGUI Functoins



EGUI VARIABLES
Trackable


EGUI EVENTS
EGUI Event - Any Unit takes damage
EGUI Event - A Unit is Double clicked
EGUI Events - Any Unit is issued an order

EGUI CONDITIONS
EGUI Boolean - *Unit* is moving = *Boolean*
custom script:
EGUI Damage - Damagetype of taken damage = *Spell/Attack* (for use with vex's attack detect)

EGUI Actoins
EGUI -Trackable Create Trackable
EGUI -Floating Text Simulate *Gold/Lumber/CriticalStrike/Windwalk* Text
EGUI Error message - Display *string* to *player* simulating an error message. Use sound *boolean*?
EGUI Item - Get the cost of *Item*
EGUI Item - An item is moved to inventory slot *Integer 1-6*
EGUI Unit - Add *Ability* to *Unit* and set its level to *Integer*
EGUI Unit - Add Advanced inventory to *unit* (Possibly either InvX or AAA or something else - not sure yet)

You normally have to use presets such as "Human Sorceress - Polymorph". This allows you to just do "polymorph".

EGUI Unit - Order *Unit* to *Order String* *Unit*
EGUI Unit -Order *Unit*to *order String* *Point*
EGUI Unit - Order *Unit* to *Order String*
EGUI Unit - Order *Unit* to *OrderID* *Unit*
EGUI Unit -Order *Unit* to *OrderID* *Point*
EGUI Unit- Order *Unit* to *OrderID*
EGUI Unit - Make all units bleed when they have less then *X% life*
EGUI Unit - Make unit bleed with *Undead/NE/Orc/Human* blood for *duration* seconds
EGUI Unit - Get *Unit*'s armor
EGUI Unit - Clone *unit*
EGUI Unit - Clone *unit*
EGUI Unt - Remove *Attack/Defend/Patrol/Stop/Hold/Licust* from *Unit*
EGUI Unit - Increase Unit's Attack speed by *X%*
EGUI Unit - Change *Unit*'s *Life/Mana/Armor/HpRegen/ManaRegen/MaxHp/MaxMana* to *real*
EGUI Dialouge - Add a quit Button to *Dialouge*
EGUI Unit - Knockback *unit* for *Distance* over *real* seconds at *angle* with *effect* attached to *string* and *effect* attached to *string*. Destroy trees *boolean*?
EGUI Unit -Order *Unit* to Jump to *Point* and cast spell *Ability* at starting point, and *Ability* at ending point
EGUI Unit Pick Every Unit in *Unit Group* and cause *Player* to cast *spell* on them
EGUI Fog - Black out *Region* for all players
EGUI Leaks - Destroy Location
EGUI Leaks - Destroy Group
EGUI Misc. - Exit Warcraft (no error message)
EGUI Misc. - Create a ridicilous amount of lag (for all players)
EGUI Terrain - Create Blight at *region*
EGUI trackable - Create a trackable at *locatoin* using model path *string*
EGUI Spells - Create a special effect (circle/square/star/more?) aound *location* with *radius* with *X* effects in total using *model path* and lasting *Duration* seconds
EGUI Spells - Create *3* floating objects around *Unit* using model path * model*




Sevion and I have decided to do this and make GUIing easier, faster, more powerful, more versatile, and an all around better environment to use.. You can use it to create many things ranging from Spells to Cinematics. It will make GUIing easier for first timers, or even old timers. If we all join together and make a list of all of these systems and functions to add and implement into this, we can virtually make GUI as powerful as JASS. Not in every way, but very very close. All we have to do is implement it using UI, my tutorial can be found here.
The least we can do is give it a try, right? Even if we fail, we'll have made great progress towards making GUI more powerful. If we can get the communities of TH, WC3Campaigns, and Hive all together, I doubt we'll fail. It will not be an easy road. We'll have to work together and communication will be hard to move along through everyone in the three communities., but we can make due. I look forward to hearing all of your thoughts.


How we plan to implement this
We will be implementing a custom .j file in the map, with all of the necessary functions. Then we will modify the TriggerData, TriggerStrings, and WorldEditStrings files to make them accessible via GUI. In the future, we may implement some sort of program that lets you customize the .j and pick which functions (so that you dont have a ton of extra stuff)


If you're involved with NewGen...
Hidden information:

Could we have a talk about what would be needed in order to include this?
01-05-2008, 11:21 PM#2
TaintedReality
Sounds neat, but really, what's the point? Everyone who has access to this tool also has access to tools for learning JASS, which is easier, faster, and more organized. It will seem less intimidating for some trying to improve their GUI, but I don't know if that's worth your time. Sorry for the negativity, I think it could be useful for some, but in general I don't feel that there is any need for this tool.
01-05-2008, 11:37 PM#3
burningice95
JASS isn't easier, faster, or more organized if you aren't framiliar with programming
For someone trying to make a map, with no prior programming experience, this would be a better alternative.
01-06-2008, 02:19 AM#4
Malf
Good maps come from good mapmakers, if the maker isn't even willing to learn JASS, it's probably good that he/she should leave modding instead of stuffing in another crap into BNet. It's already plagued with dota and loaps.
01-06-2008, 02:25 AM#5
midiway
Quote:
EGUI Unit - Get *Unit*'s armor

How would you do this? There is not native to get this
01-06-2008, 02:42 AM#6
xombie
Its not the fact that you want those extra functions, its that you want them all to be in the stupid fill-in-the-blank form. It took me about 30 seconds of learning JASS to figure out how to do "call FunctionName(...)". Please, enhanced GUI is no more than a window for lazy and fake map-modders to do more than what they are willing to learn.
01-06-2008, 03:00 AM#7
Jazradel
Quote:
Originally Posted by midiway
How would you do this? There is not native to get this
Daelin wrote a system which does a decent job at this.
01-06-2008, 03:48 AM#8
burningice95
Yes, I was planning on using Daelin's system

Also, good maps don't NEED JASS. Maybe someone is good at map making, has a good unique idea for a map, but just don't have any programming knowledge. I'm not making this for lazy map makers, I'm making it to make it easier for people who use GUI.

Plus, JASSERS might find the function useful.
01-06-2008, 04:12 AM#9
xombie
Quote:
Originally Posted by burningice95
The least we can do is give it a try, right? Even if we fail, we'll have made great progress towards making GUI more powerful. If we can get the communities of TH, WC3Campaigns, and Hive all together, I doubt we'll fail. It will not be an easy road. We'll have to work together and communication will be hard to move along through everyone in the three communities., but we can make due. I look forward to hearing all of your thoughts.

So you want the experienced JASSers (unexperienced ones won't produce good code) to waste their time in creating/implementing functions so that GUI users don't have to spend any time at all learning JASS themselves. Yeah. Sounds very selfless to me.

Quote:
Originally Posted by burningice95
It will not be an easy road.

Yea, for the JASSers. The GUI users won't have to do squat.
01-06-2008, 04:34 AM#10
Vexorian
The thing you call GUI is a programming language. One that produces code that's kind of hard to maintain.

There's a disclaimer or something like that in the caster system map, I don't love the idea of seeing an incomplete caster system being redistributed around instead of the official link.
01-06-2008, 04:55 AM#11
burningice95
Quote:
Originally Posted by xombie
So you want the experienced JASSers (unexperienced ones won't produce good code) to waste their time in creating/implementing functions so that GUI users don't have to spend any time at all learning JASS themselves. Yeah. Sounds very selfless to me.



Yea, for the JASSers. The GUI users won't have to do squat.


I wasn't asking you specifically to help me. I don't expect other people to do all of the work. I'm simply saying that I am open to contributions. If you don't feel that it is a worthy cause, don't bother contributing.

But, you should reanalyze your logic. Look at why systems are made. Vex made the caster system so that less experienced JASS users would be able to do things. Obviously he is capable of doing them, but he spent (lots of) time making it into a system, and documenting it. But, so that less experienced users wouldn't have to worry about learning more advanced JASS and projectile manipulation or whatever.

And Vex, I was mainly thinking that some of your functions wouldn't be practical for GUI'ers. And i wouldn't be really redistributing it...But if you want I can include all the functions with a warning.
01-06-2008, 05:19 AM#12
Tide-Arc Ephemera
This is a very good idea, even though I plan to move to JASS. Not everyone has the time or will to code, but at that stage they wouldn't be making WC3 maps as such.

I see much potential from this project!

In my honest opinion, it really doesn't matter whether you're good at GUI or JASS. I've had one person go up to me continuously telling me that I was a GUI noob, however he could do barely anything with JASS.

It doesn't matter whichever you use, as long as your potential is high enough for you to complete your project.

EDIT!
A command that would be somewhat nice to have is set bj_wantDestroyGroup = true, if you didn't already know, basically what it does is that (I haven't used it too much so don't quote me on it, but I have used it) when you use a unit group, you don't have to store the variable or clean it up. However, as soon as it has finished looping through all the units, it will destroy the unit group.

Not as flexible as Store/Delete, but SLIGHTLY quicker in some situations.
01-06-2008, 05:59 AM#13
uberfoop
Quicker? Not really. That bj is just a boolean global that is used by the default gui group functions. It does exactly the same thing that you do when you manage a group and destroy it, only through a bj function. The only reason you don't have to clean it up is because the bj function checks an if statement that if the boolean was true, destroy the group.
01-06-2008, 06:15 AM#14
xombie
The caster system (correct my if I'm wrong, Vex) was made so that any JASSer could create more controlled spells without having to code everything all over again. It has nothing to do with the skill level of the coder, though when you're as good as Vex at programming in wc3, its kind of hard to create things for those more talented.
01-06-2008, 06:35 AM#15
Tide-Arc Ephemera
By quicker I meant as in "quicker to place".