Staredit Network > Forums > SC1 Mapping Tools > Topic: [EUD/EPD] Amazing new Trigger Editor [Stable]
[EUD/EPD] Amazing new Trigger Editor [Stable]
Dec 31 2017, 9:09 pm
By: T-warp
Pages: 1 2 34 >
 

Dec 31 2017, 9:09 pm T-warp Post #1



Hey all, it's been a (rather) long time since my last activity, but now I'm back with a present.

Images are better than a thousand words, so here it goes:











THIS IS HIGHLY EXPERIMENTAL SOFTWARE. Please ALWAYS HAVE A BACKUP of your map before using it.

It look's like a regular Trigger Editor, but it's a lot more powerful than that! It supports both EUD and EPD maps with SET TO (safe) and ADD/SUB (unsafe) variations!

Features
  • Create actions for modifying weapons, upgrades, labels in both safe and unsafe manner
  • Changing unit advanced properties (the list goes on and on)
  • Reset unit/weapon/upgrade/... to default values
  • Ignore comments
  • Ignore custom unit/switch/location names (ever looked for "Terran Marine" and forgot its name?)
  • Visual editing of existing maps
  • Change available upgrades & tech by a trigger!
  • Detect upgrades and techs
  • Detect pressed keys
  • Set Kills action
  • Change player colors by a trigger!

Note that when invalid map is loaded, the editor kills itself.

My own EPD database with reverse mapping of player IDs to Memory address space and offset: LINK.
Please keep in mind that this is a beta version and thus might contain a few bugs, so backup all your files before editing it with this editor.
If this editor crashes on your map, either figure out the problematic scenario trigger and report it, or send me a map (or just triggers, whatever causes the issue) and I'll fix it ASAP.
And that's all for now. Please use this thread to post problematic maps (SCMDraft can edit and my editor cannot), issues (crashes for some reason), ideas for yet another features and open criticism (I know it can be better and it will be).
Here's a donate button if you find the editor useful in any way.




[UPDATE 1]

I made your dreams come true and added EUD Subs/Adds, please, please, PLEASE read the readme file for detailed description

Whatever you don't want to manipulate reset value (like the red rectangles show, the values must be equal to ignore that setting)


[UPDATE 2]

So we did it! We have a first stable version!


Download: I failed to upload the file here, the lastest version will always be HERE
Support: To get some real time feedback, please join our Discord Server.

Source codes


Changelog:

v1.4.6833.37425 Beta:
- Added history of opened files
- Added some more experimental actions and descriptors (movement control namely)


v1.4.6586.39265 Beta:
- Fixed "Set Deaths" action (!!!)


v1.4.6586.26682 Beta:
- Fixed conditions
- Added "Set Player Color" as experimental action

v1.4.6585.38343 Beta:
- Fixed all copy/move buttons

v1.4.6583.22623 Beta:
- Fixed Maximum Unit Health displayed values (automatically multiplies by 256)
- Removed unit button set


Older versions
Collapsable Box


Post has been edited 54 time(s), last time on Sep 16 2018, 6:55 pm by T-warp.



None.

Dec 31 2017, 11:04 pm Roy Post #2

An artist's depiction of an Extended Unit Death

This looks very cool; I'm happy to see more tools coming out to make EUDs more accessible for mapmakers, especially now that Blizzard is officially supporting them in some capacity.




Dec 31 2017, 11:14 pm T-warp Post #3



There's a lot to be added, mostly just the adds/subs (which is very unsafe in my opinion).



None.

Dec 31 2017, 11:29 pm Butch Post #4

PROFESSIONAL MAP MAKER

holy SHIT good job. This is exactly what I'm looking for, great work. Will try it out soon.



None.

Dec 31 2017, 11:35 pm LoveLess Post #5

Let me show you how to hump without making love.

Clicking Open does nothing for me.

Ran as administrator, nada, do I need to have some library installed?



None.

Dec 31 2017, 11:37 pm jjf28 Post #6

Cartography Artisan

Neat!

I'm working on algorithms/a calculator for safely and efficiently setting any EUD value (with optimizations for values we know are static or don't care if they get changed/corrupted, and options for using binary/ternary/quartic countoffs to save on map size), I'm writing it in C++, but the logic should be easily transferable, if you hosted your code on Git under an MIT license (mine will be here probably by end of day) I'd be happy collaborate with projects focused on making actions noob-friendly :)
wireframe-ish.



Rs_yes-im4real - Clan Aura - jjf28.net84.net

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Dec 31 2017, 11:40 pm T-warp Post #7



Quote from LoveLess
Clicking Open does nothing for me.

Ran as administrator, nada, do I need to have some library installed?

Only the exe and dll files are required (along with .NET framework).
If you fail to make it run, please message me with your software equipment details (OS, .NET framework version and brief description of what have you tried)

Post has been edited 1 time(s), last time on Dec 31 2017, 11:51 pm by T-warp.



None.

Dec 31 2017, 11:43 pm T-warp Post #8



Quote from jjf28
Neat!

I'm working on algorithms/a calculator for safely and efficiently setting any EUD value (with optimizations for values we know are static or don't care if they get changed/corrupted, and options for using binary/ternary/quartic countoffs to save on map size), I'm writing it in C++, but the logic should be easily transferable, if you hosted your code on Git under an MIT license (mine will be here probably by end of day) I'd be happy collaborate with projects focused on making actions noob-friendly :)
wireframe-ish.

Thanks! The project is currently hosted on microsoft foundation servers (I'll reset it to GIT when I figure out how/decide to abandon older versions). The point is to eliminate the need to understanding of EUD calculation concept. The end user doesn't need to know how it's done, only what is done, which was the goal of this. This implementation prevents any undesired outcomes, other than whatever user clicks in the editor itself (such as increment weapon counters, ...).



None.

Jan 1 2018, 12:16 am LoveLess Post #9

Let me show you how to hump without making love.

Oh I need to manually type in the field, figured it gave me a file browser.

Also it crashed when I opened a map with my own EUDs, am I to assume that is because I was using add/subtract in fields and you state that is not supported?



None.

Jan 1 2018, 12:20 am T-warp Post #10



Quote from LoveLess
Oh I need to manually type in the field, figured it gave me a file browser.

Also it crashed when I opened a map with my own EUDs, am I to assume that is because I was using add/subtract in fields and you state that is not supported?
That is very likely, as EUDs are not exactly supported (I didn't find very much EUD maps to test it on). Send me some and I'll fix it (they will be converted to "set memory at" actions, but it's still better than nothing I guess). The only actions that are fully supported are EPD sets (and EUD sets when I figure out how the calculation works)



None.

Jan 1 2018, 2:03 am LoveLess Post #11

Let me show you how to hump without making love.

Sorry, EPDs. Stuck to referring to them as EUDs out of habit.

Well there is about 50+ different addresses in the map and they all use add/subtract, so I figure once (or if) you add support for them, I'll check the editor out again :)



None.

Jan 1 2018, 6:27 am Lanthanide Post #12



Can this be used to make triggers to detect upgrade status for particular players, and set upgrade status for particular players? Without having to fuck around with all the bytewise operations?



None.

Jan 1 2018, 9:39 am T-warp Post #13



Quote from LoveLess
Sorry, EPDs. Stuck to referring to them as EUDs out of habit.

Well there is about 50+ different addresses in the map and they all use add/subtract, so I figure once (or if) you add support for them, I'll check the editor out again :)

Adds/Subs support will be added today for EPDs (marked as "unsafe", making triggers that are likely to make starcraft crash [invalid weapons, units, ...] will most likely crash the editor as well - which is desired), EUDs will be supported when I figure out the calculation behind it (or if somebody gives me the formula to convert it to EPD O.o )



None.

Jan 1 2018, 9:43 am T-warp Post #14



Quote from Lanthanide
Can this be used to make triggers to detect upgrade status for particular players, and set upgrade status for particular players? Without having to fuck around with all the bytewise operations?
I can't see any way to detect it for a single player. The detection is possible (and might be easily supported) in a safe manners as EPD sets (detect for multiple players at once wth "exactly" fully supported, "at least"/"at most" for 1 player only)

Post has been edited 1 time(s), last time on Jan 1 2018, 12:25 pm by T-warp.



None.

Jan 1 2018, 9:52 am T-warp Post #15



Quote from LoveLess
Oh I need to manually type in the field, figured it gave me a file browser.

Also it crashed when I opened a map with my own EUDs, am I to assume that is because I was using add/subtract in fields and you state that is not supported?
One more thing. If you are really skilled and editing multiple units at once by a single Add/Sub action, then you're gonna have to change that habit. There's no way I'm gonna support such complication any time soon (if that's the case, then buy me a beer and I'll do it sooner rather than later O.o )



None.

Jan 1 2018, 1:56 pm jjf28 Post #16

Cartography Artisan

Quote from T-warp
Quote from Lanthanide
Can this be used to make triggers to detect upgrade status for particular players, and set upgrade status for particular players? Without having to fuck around with all the bytewise operations?
I can't see any way to detect it for a single player. The detection is possible (and might be easily supported) in a safe manners as EPD sets (detect for multiple players at once wth "exactly" fully supported, "at least"/"at most" for 1 player only)

Detection isn't too bad for something like this (assuming you already do multi-part EUDs, if you don't it might greatly complicate your trigger editor and require beer), let me briefly define a few terms:
- slackSpace: a collection of death counters you can use for temporary storage
- restoreActions: a stack (LIFO) of actions used to restore unedited portions of a value back to their previous space
- stripBit: the act of subtracting the value of bit (231 - bitNum) with more significance than other bits (and usually adding the same value onto a death counter from slackSpace and adding a restoreAction to eventually reverse this operation) so that all lower-value bits are now visible

To detect a specific value hiding below others you just need to strip any obscuring bits, have a trigger read the value (may be shifted), then restore the stripped bits, in the example code I've set switch 0 if the condition passed (line 202+) Example Code.



Rs_yes-im4real - Clan Aura - jjf28.net84.net

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Jan 1 2018, 2:38 pm T-warp Post #17



Quote from jjf28
Quote from T-warp
Quote from Lanthanide
Can this be used to make triggers to detect upgrade status for particular players, and set upgrade status for particular players? Without having to fuck around with all the bytewise operations?
I can't see any way to detect it for a single player. The detection is possible (and might be easily supported) in a safe manners as EPD sets (detect for multiple players at once wth "exactly" fully supported, "at least"/"at most" for 1 player only)

Detection isn't too bad for something like this (assuming you already do multi-part EUDs, if you don't it might greatly complicate your trigger editor and require beer), let me briefly define a few terms:
- slackSpace: a collection of death counters you can use for temporary storage
- restoreActions: a stack (LIFO) of actions used to restore unedited portions of a value back to their previous space
- stripBit: the act of subtracting the value of bit (231 - bitNum) with more significance than other bits (and usually adding the same value onto a death counter from slackSpace and adding a restoreAction to eventually reverse this operation) so that all lower-value bits are now visible

To detect a specific value hiding below others you just need to strip any obscuring bits, have a trigger read the value (may be shifted), then restore the stripped bits, in the example code I've set switch 0 if the condition passed (line 202+) Example Code.

I like that idea, but that is not the goal of this project. This generates valid EPD actions (and conditions if the future of this project will be bright enough). Such triggers can be implemented by already existing tools you can find here and there's no need to complicate this even more as it's not very common procedure. By the way I just uploaded alpha 1.1 eith full support of ADDs/SUBs (still need a lot of testing tho, I manufactured all the testing maps, which is unlikely to be enough to handle real maps, send me some examples and the bugs will be fixed in a matter of hours - or minutes if the beer count gets any higher)



None.

Jan 1 2018, 8:33 pm Lanthanide Post #18



Basically I keep asking this question on every EUD thread because it's the feature I want to add into Desert Strike Night (that is, when player 1 researches new tech, instantly transfer it to that team's CPU player, instead of at the next time that player spawns).

It's entirely possible to do it all by hand, but I can't be arsed, so if someone makes a tool that could automate it for me, that'd be great.



None.

Jan 1 2018, 10:10 pm T-warp Post #19



Quote from Lanthanide
Basically I keep asking this question on every EUD thread because it's the feature I want to add into Desert Strike Night (that is, when player 1 researches new tech, instantly transfer it to that team's CPU player, instead of at the next time that player spawns).

It's entirely possible to do it all by hand, but I can't be arsed, so if someone makes a tool that could automate it for me, that'd be great.
Condition: It's totally possible (in a limited way, tech researched can be detected safely), but since there are not any conditions supported (other than raw "memory"), and no working interface for conditions is implemented, I can only hard-wire those two separately (2 native conditions, nothing too fancy), but it will take some time.

Actions Welp, try it yourself, those actions are going to be supported very soon (maybe even today)



None.

Jan 1 2018, 10:33 pm T-warp Post #20



Funny thing. According to Fartys research, there are 46 bytes in memory for upgrades and 23 for tech, whereas total upgrade count is 61 for regular upgrades and 44 for techs. Until I get this stuff sorted out, manipulating with upgrade/tech levels will be disabled.



None.

Options
Pages: 1 2 34 >
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[04:47 pm]
Dem0n -- then again w/e
[04:46 pm]
Dem0n -- It's hardly even a SEN server honestly. Just mostly the same 10 people saying dumb shit LMAO
[04:46 pm]
Dem0n -- NudeRaider
NudeRaider shouted: Voyager7456 there should probably be a place more obvious that gives the link to the discord server. I'd say we're past trial stage by now.
no tbh. Lots of dumb people that shouldn't be on it.
[04:45 pm]
Suicidal Insanity -- Naw, somebody just redefined what one standard moose is
[04:39 pm]
Dem0n -- Our Moosey's all grown up C|:'^ )
[04:36 pm]
Dem0n -- O__________________________________________________________O
[04:17 pm]
jjf28 -- moose is no longer a mini O.O
[10:41 am]
NudeRaider -- NudeRaider
NudeRaider shouted: Voyager7456 there should probably be a place more obvious that gives the link to the discord server. I'd say we're past trial stage by now.
In the menu. Probably an item under Site, or preferably next to Wiki
[10:40 am]
NudeRaider -- Voyager7456
Voyager7456 shouted: You download Discord and join the SEN server :P
there should probably be a place more obvious that gives the link to the discord server. I'd say we're past trial stage by now.
[08:53 pm]
O)FaRTy1billion[MM] -- I'm pretty sure you can use the web one on phone too
Please log in to shout.


Members Online: Roy, Smithjaq2, UEDCommander, jun3hong