• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Object Editor to Readable file

Is there a way to convert Object Editor into a Readable Format for v1.31 and beyond?

I tried looking to W3x2Lni v2.7.2 but it seems to lack support for the newer natives. I think @Drake53 had something within his C# War3 script that does it but I have a hard time understanding it at the moment. The aim is to have something like Merge Object Editor Data that used to exist in Jass New Gen Pack.

I know I raised this thread previously: but I think it might be more suitable for a tool-approach one to be asked here instead while seeing if there's a 'newbie-friendly' approach exist to be discussed in WEHZ.

My exact goal is to merge the object editor data of the maps within Daffa Custom Races package into one map.
 
Level 18
Joined
Oct 17, 2012
Messages
821
You can use Wurst to convert the object data into code that you can edit. It is fairly easy to install with its Setup App.
Wurst:
@compiletime function create_w3a_A001()
    let def = createObjectDefinition("w3a", 'A001', 'ACcr')
    ..setLvlDataString("ahky", 0, 0, "Q")
    ..setLvlDataString("anam", 0, 0, "Crusader Strike")
    ..setLvlDataString("atp1", 1, 0, "|cffc3dbffCrusader Strike|r [|cffffcc00Q|r]")
    ..setLvlDataString("aub1", 1, 0, "|cffffcc00Damage Type:|r Physical|n|cffffcc00Range:|r Melee|n|cffffcc00Cast Time:|r Instant|n|cffffcc00Cooldown:|r 15 Seconds|n|n|cffffcc00Effect:|r An instant strike that deals |cffffcc00200% Power|r physical damage to a single target enemy and applies the |c00FF8000Weakened Blows|r effect.|n|n|c00FF8000Weakened Blows:|r |c00FED872Demoralizes the target, reducing their physical damage dealt by 40% for 5 seconds.|r|n|n|cffc3dbffBuff:|r Weakened Blows")
    ..setLvlDataInt("amcs", 1, 0, 30)
    ..setLvlDataUnreal("aran", 1, 0, 100.0)
    ..setLvlDataUnreal("ahdu", 1, 0, 5.0)
    ..setLvlDataUnreal("adur", 1, 0, 5.0)
    ..setLvlDataUnreal("Cri1", 1, 1, 0.0)
    ..setLvlDataUnreal("Cri2", 1, 2, 0.0)
    ..setLvlDataUnreal("Cri3", 1, 3, 0.4)
    ..setLvlDataInt("abpx", 0, 0, 0)
    ..setLvlDataString("aani", 0, 0, "attack")
    ..setLvlDataString("abuf", 1, 0, "B001")
    ..setLvlDataString("atat", 0, 0, "Abilities\\Spells\\Items\\StaffOfPurification\\PurificationCaster.mdl")
    ..setLvlDataString("acat", 0, 0, "Abilities\\Spells\\Items\\AIhe\\AIheTarget.mdl")
    ..setLvlDataUnreal("acdn", 1, 0, 15.0)
    ..setLvlDataString("aart", 0, 0, "ReplaceableTextures\\CommandButtons\\BTNHolyPaladinQ.blp")
 
I tried looking to W3x2Lni v2.7.2 but it seems to lack support for the newer natives. I think @Drake53 had something within his C# War3 script that does it but I have a hard time understanding it at the moment. The aim is to have something like Merge Object Editor Data that used to exist in Jass New Gen Pack.
What exactly seems to be the problem with W3x2Lni v2.7.2 and the newer native?

I am not sure I understand what's you're trying to do, I read this line in your other post :
Before anyone get lost, both maps consisted of about a hundred of object editor data, colliding IDs, and distinct with each other.
Does that mean that the 2 object editor data contains similar object with similar IDs, or that they contains different object? e.g 'x001' refers to a footman in one map and a grunt on the other?
If yes, you'd have to somehow "resolve" the conflict upon merging and re-attribute the IDs.
If it was me, I'd extract the obj data from both map and "re-assign" all the object IDs to make sure they're distinct using a custom script, merge the obj data and inject it in the map.
I am not aware of any tools designed to do that.
 
What exactly seems to be the problem with W3x2Lni v2.7.2 and the newer native?

I am not sure I understand what's you're trying to do, I read this line in your other post :

Does that mean that the 2 object editor data contains similar object with similar IDs, or that they contains different object? e.g 'x001' refers to a footman in one map and a grunt on the other?
If yes, you'd have to somehow "resolve" the conflict upon merging and re-attribute the IDs.
If it was me, I'd extract the obj data from both map and "re-assign" all the object IDs to make sure they're distinct using a custom script, merge the obj data and inject it in the map.
I am not aware of any tools designed to do that.
Yes, the 'x001' Footman in Map A and Grunt in Map B problem is what I meant.
 
Top