nestharus / JASS

MIT License
31 stars 8 forks source link

Newest DDS GUI feature problem #19

Closed GunGunGun closed 10 years ago

GunGunGun commented 10 years ago

Like my post here (9th post), I cannot save map if I set GUI_ENABLED = true: https://github.com/nestharus/JASS/issues/4

I still keep old DDS version with GUI support, but it work fine, here it is for debugging: https://www.dropbox.com/s/curb8p4c5ichi77/NesDDS.w3x

Because the old thread is old, so I make a new one.

nestharus commented 10 years ago

Well, I suppose I'll look at it ^)^, but I saved it with 0 errors. I know this because I tested DDS to make sure that it worked correctly with the GUI, plus I wrote those GUI demos.

GunGunGun commented 10 years ago

But here is what I get when I was trying to save the map, I'm using JassNewGenPack 2.0 from blizzard-modding: https://www.youtube.com/watch?v=Hopk7QHfI1A&feature=youtu.be

I switch to other JassNewGen version but still get error.

nestharus commented 10 years ago

ohhhh, I tested it with GUI only, not with a combo, I see.

nestharus commented 10 years ago

I'm slowly getting to DDS, sorry, lol. I've been updating the other systems =).

I realized that I couldn't continue DDS until I added something new to BooleanExpression and Trigger ^)^. The result also fixed a behavior issue in the UnitIndex module's on deindex event for Unit Indexer.

I'm back on DDS again : )

GunGunGun commented 10 years ago

Glad to know that, hope you will finish DDS Library soon

nestharus commented 10 years ago

Well, I seriously don't know how I'll tie the update in with GUI...

http://www.hiveworkshop.com/forums/lab-715/events-revisited-252961/

nestharus commented 10 years ago

Well, new DDS is ready, I'm just writing documentation. For now, I have completely removed GUI support. I really have no idea how to support it now. Maybe you have some ideas? : )

DDS has 4 events now instead of 1, and 2 are unit specific

(global) ON_DAMAGE_BEFORE (global) ON_DAMAGE_AFTER (local) ON_DAMAGE_OUTGOING (local) ON_DAMAGE_INCOMING

So, let's say you pick up an item that gives +3 fire damage. You'd register code to ON_DAMAGE_OUTGOING and put in +3 fire damage. Whenever you deal damage now, 3 fire damage will be added.

If you picked up armor that reduced damage, you'd put it in ON_DAMAGE_INCOMING

ON_DAMAGE_BEFORE is really for system set up, like custom data structures etc. ON_DAMAGE_AFTER is for like displaying damage or something. They are global events that apply to ALL units (no conditions).

From here, these events are further segregated by other vJASS code. Each piece of vJASS code has its own four events that you can run through instead. Rather than priorities, this is used. What does this mean? You can set up combat phases.

Suppose you want seven custom combat phases, like ON_DAMAGE_ABSORB, ON_DAMAGE_REDUCE, etc. You'd create each of these, put them into the local events, and then rather than registering to the system, you'd register to these. This is completely unfeasible for GUI. I'm really not sure what to do :o.

Without this, GUI will have no access to combat phases, and it will have lost priorities, meaning that it will be totally dead in the water. At that point, you might as well just use lfh's.

Do you have any ideas? I can't register triggers, no support for that. It uses custom vjass triggers called Triggers. I dunno what to do...

nestharus commented 10 years ago

New DDS is out. I don't see how it is possible to support GUI now, sry