- Joined
- Jul 29, 2007
- Messages
- 5,174
I don't know why the game doesn't like it when the maps are not saved with WE, perhaps it's the fact that I automatically remove the (attributes) file, or perhaps something else.
SetHeroProperName
-> BlzSetHeroProperName
.PlaySpecialEffect
and PlaySpecialEffectWithTimeScale
are defined in 1.29 PTR, but not in 1.29, and thus require the 1.30 PTR, if they were used.Hi ghostwolf, I thought I had replied to you earlier. That issue I encountered seemed to be a one time thing. Everything else is working fine. Your tool is a really amazing bridge to allow us to convert non standard GUI back to the normal editor. Thank you! If you do ever decide to pick this up again (I know you dropped it), feel free to drop a line. It is a really fantastic tool.Nothing will be taken down, it's all open source in the first place.
If the issue is really with the converter and not something else, I would need the pre-converted file.
/Edit
Added conversions from 1.29 PTR functions to their equivalent non-PTR functions.
E.g.SetHeroProperName
->BlzSetHeroProperName
.
PlaySpecialEffect
andPlaySpecialEffectWithTimeScale
are defined in 1.29 PTR, but not in 1.29, and thus require the 1.30 PTR, if they were used.
Sorry for the late reply. What I meant by my statement was I assumed you were dropping it in the sense that if I ever encountered any triggers that were foreign to your tool, I should not bother posting them.What do you mean by pick up? I am not aware of anything blatantly missing. If you have an example of something that it can't handle, don't hesitate to upload it.
And the error associated with these? Looks like a run of the mill syntax error...for example
Line 9104 :function TributeGold takes player Commander, player Comp, integer res_amount returns nothing
Line 9277 :function Commander takes nothing returns nothing
Loading Flamehowl.w3x...
Checking
inlinecustomscript: Trigger Multiboard Initialization
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Minimap
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Short Mode > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Shuffle Players > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinegui: Trigger Determining Player > OperatorComparePlayer
inlinegui: Trigger Determining Player Copy > OperatorComparePlayer
inlinegui: Trigger Determining Player Pirates > OperatorComparePlayer
inlinegui: Trigger Determining Player Pirates Copy > OperatorComparePlayer
inlinecustomscript: Trigger Humans Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Dwarves Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Elves Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kobolds Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Gnolls Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Murlocs Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Orcs Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Ice Trolls Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kurken Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Undead Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Pirates Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger The Cult Open
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Humans Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Dwarves Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Elves Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kobolds Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Gnolls Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Murloc Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Orcs Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Ice Trolls Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kurken Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Undead Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Corsairs Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger The Cult Leave
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Defeat Evil
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Defeat Good
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Quests
call DestroyTrigger(GetTriggeringTrigger())inlinegui: Trigger Ambush > SetVariable > GetUnitsInRangeOfLocMatching > GetUnitsInRangeOfLocMatching > > OperatorComparePlayer
inlinegui: Trigger Hunters Strike Loop > IfThenElseMultiple > OperatorCompareReal
inlinecustomscript: Trigger Last Stand On
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Lightning Bolt
set udg_LightningGroup = CreateGroup()inlinecustomscript: Trigger Unholy Grasp
call UnitApplyTimedLifeBJ(2.00, 'BFig', GetLastCreatedUnit())inlinecustomscript: Trigger Unholy Grasp > ForGroupMultiple
call UnitApplyTimedLifeBJ(2.00, 'BFig', GetLastCreatedUnit())inlinecustomscript: Trigger Humans Kills > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Humans Army Level > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Humans Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Humans Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Humans Army Levels IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Humans Army Levels IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Humans_Kills)inlinecustomscript: Trigger Humans Army Levels IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Dwarves Army Level > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Dwarves Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Dwarves Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Dwarves Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Dwarves Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Dwarves_Kills)inlinecustomscript: Trigger Dwarves Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger High Elves Army Level > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger High Elves Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger High Elves Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger High Elves Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger High Elves Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_High_Elves_Kills)inlinecustomscript: Trigger High Elves Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kobolds Army Levels > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kobolds Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kobolds Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kobolds Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kobolds Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Kobolds_Kills)inlinecustomscript: Trigger Kobolds Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Gnolls Army Level I > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Gnolls Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Gnolls Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Gnolls Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Gnolls Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Gnolls_Kills)inlinecustomscript: Trigger Gnolls Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Murlocs Army Levels > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Murlocs Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Murlocs Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Murlocs Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Murlocs Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Murlocs_Kills)inlinecustomscript: Trigger Murlocs Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Orcs Army Level > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Orcs Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Orcs Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Orcs Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Orcs Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Orcs_Kills)inlinecustomscript: Trigger Orcs Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Ice Trolls Army Levels > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Ice Trolls Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Ice Trolls Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Ice Trolls Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Ice Trolls Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Ice_Trolls_Kills)inlinecustomscript: Trigger Ice Trolls Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kurken Army Level > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kurken Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kurken Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kurken Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Kurken Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Kurken_Kills)inlinecustomscript: Trigger Kurken Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Undead Army Level > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Undead Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Undead Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Undead Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Undead Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Undead_Kills)inlinecustomscript: Trigger Undead Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Corsairs Army Level > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Corsairs Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Corsairs Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Corsairs Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Corsairs Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_Corsairs_Kills)inlinecustomscript: Trigger Corsairs Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger The Cult Army Levels > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger The Cult Army Level II > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger The Cult Army Level III > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger The Cult Army Level IIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger The Cult Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(gg_trg_The_Cult_Kills)inlinecustomscript: Trigger The Cult Army Level IIIII > IfThenElseMultiple
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Spawn Upgrades
call DestroyTrigger(GetTriggeringTrigger())inlinecustomscript: Trigger Shortmode Spawn Upgrades
call DestroyTrigger(GetTriggeringTrigger())Converted with 116 changes!
Saving as Flamehowl_no_weu.w3x
If you are not familiar with what trigger data is non-standard WE trigger data, then maybe the only way to convert your map is to start by deleting half the triggers, then putting it back through ghost wolf's tool. If it works, it means the troublesome trigger data is in the other half of the triggers. If not, it means the remaining triggers contain the troublesome trigger data. Just rinse and repeat multiple times until you can identify which triggers are causing the tool to not work, then you can narrow down the problem easier.So I managed to open everything, including the map with 1.26. There was a small compile error that needed to be fixed before I could play it in 1.26 after a save.
I suspect there are some UMSWE functions need to be removed/rewritten to make it work for 1.31, but I have no clue where to even begin, since I can't really tell the extensions apart and I don't really know what is UMSWE only and not. And then finally the issue of what actually are the functions that are not working.
Even though your map may currently be playable now despite using a third party editor, it is likely that with later patches issues might pop up. If you can open it on the normal editor and save it without it crashing, then it is likely it will always be compatible with future versions (at least, blizzard is trying to commit to that).I'll probably try your suggestion if I ever want to be able to open it with worldedit 1.31
Trigger Level needs to be converted due to top-level event/condition, but full trigger conversion is not implemented yet
Did nothing due to errors
What does this mean, and how do I fix it? @GhostWolf
RemoveLocation
is a native and thus a conversion of it should require no further input from you, however if YDWENewItemsFormula
is converted then it will inherently not work without further work.qishi > SetPlayerAllianceBJ
it could be something like qishi (0) > SetPlayerAllianceBJ (10)
or whatever notation.I wouldn't be surprised if it is used for WEU a lot too, just maybe people do not comment as much.I was wondering, since in the end I think this is perhaps used more for YDWE than it is for WEU
For me personally, I use the search function since all the things that do not work will have the words "YDWE" in them. But sure, having colour coded stuff would be welcome.would it be helpful to distinguish between conversions to game natives and conversions to custom functions?
E.g.
RemoveLocation
is a native and thus a conversion of it should require no further input from you, however if
YDWENewItemsFormula
is converted then it will inherently not work without further work.
They could have different colors for example, like the previous version had.
It would be a neat feature to have. It is probably less important for people who are going to end up opening the WE after to investigate the converted map afterwards since they will see the stuff, but I can imagine it will help people who want to have an understanding of the conversions just from reading the text your tool shows on the page right after conversion.Another thing I wasn't sure whether its worth the bother or not, is to write the number of trigger/condition/action in the stack.
E.g. instead of
qishi > SetPlayerAllianceBJ
it could be something like
qishi (0) > SetPlayerAllianceBJ (10)
or whatever notation
Colour coding would be neat. I am not sure though to what extent people will want to look at the conversions for the things that convert properly. It is the stuff that is non-convertable that people will spend more time examining.Also just as a note to myself, coloring the stack with e.g. events being red, conditions being green, and actions being blue could make it perhaps easier to read, and also full trigger conversions should be shown with proper newlines rather than a mess.
Alright. I can work around them. Thank you for updating your tool so it was able to open the 7th map.The relevant triggers won't work, and I assume WE disables them if you save/test the map.
I consider vanilla GUI triggers unusable. By that I mean thare are (practically) no instances of them being faster to make and more readable than writing scripts. Unlike UMSWE triggers.I've never personally used UMSWE or WEU, but I think all of the other benefits they added are vanilla now, like removing many arbitrary WE resrictions on the number of objects, 16 tilesets, etc.
The best test would be to try to open your map and see if it opens.
I've never personally used UMSWE or WEU, but I think all of the other benefits they added are vanilla now, like removing many arbitrary WE resrictions on the number of objects, 16 tilesets, etc.
The best test would be to try to open your map and see if it opens.