• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 21st Texturing Contest: Upgrade is now concluded, time to vote for your favourite set of icons! Click here to vote!

Extending amount of levels on AbilityData.slk

Status
Not open for further replies.
Level 26
Joined
Aug 18, 2009
Messages
4,099
Hi,
I am currently writing a tool that converts my own object data bank to the slk files wc3 can work with. Now, you may know from normal WE object editor that abilities can have a variable amount of levels, and a part of an abilities' properties are level-based, so these fields are multiplied. In AbilityData.slk however, Blizzard has simply prepared for 4 levels max and if an ability had a minor amount, they filled it with default/null values or repeated the previous value. Since the level-based fields are named the same and just have their index appended, I thought you should be able to extend the header, adding higher levels. My attempt resulted in a fatal error though and Widgetizer does not do it either. Have I made any mistake or can you lift this limit otherwise?

My attempt:

ID;PWXL;N;E
B;X135;Y2;D0
C;X1;Y1;K"alias"
C;X2;K"code"
C;X3;K"comments"
C;X4;K"version"
C;X5;K"useInEditor"
C;X6;K"hero"
C;X7;K"item"
C;X8;K"sort"
C;X9;K"race"
C;X10;K"checkDep"
C;X11;K"levels"
C;X12;K"reqLevel"
C;X13;K"levelSkip"
C;X14;K"priority"
C;X15;K"targs1"
C;X16;K"Cast1"
C;X17;K"Dur1"
C;X18;K"HeroDur1"
C;X19;K"Cool1"
C;X20;K"Cost1"
C;X21;K"Area1"
C;X22;K"Rng1"
C;X23;K"DataA1"
C;X24;K"DataC1"
C;X25;K"DataB1"
C;X26;K"DataD1"
C;X27;K"DataE1"
C;X28;K"DataF1"
C;X29;K"DataG1"
C;X30;K"DataH1"
C;X31;K"DataI1"
C;X32;K"UnitID1"
C;X33;K"BuffID1"
C;X34;K"EfctID1"
C;X35;K"targs2"
C;X36;K"Cast2"
C;X37;K"Dur2"
C;X38;K"HeroDur2"
C;X39;K"Cool2"
C;X40;K"Cost2"
C;X41;K"Area2"
C;X42;K"Rng2"
C;X43;K"DataA2"
C;X44;K"DataB2"
C;X45;K"DataC2"
C;X46;K"DataD2"
C;X47;K"DataE2"
C;X48;K"DataF2"
C;X49;K"DataG2"
C;X50;K"DataH2"
C;X51;K"DataI2"
C;X52;K"UnitID2"
C;X53;K"BuffID2"
C;X54;K"EfctID2"
C;X55;K"targs3"
C;X56;K"Cast3"
C;X57;K"Dur3"
C;X58;K"HeroDur3"
C;X59;K"Cool3"
C;X60;K"Cost3"
C;X61;K"Area3"
C;X62;K"Rng3"
C;X63;K"DataA3"
C;X64;K"DataB3"
C;X65;K"DataC3"
C;X66;K"DataD3"
C;X67;K"DataE3"
C;X68;K"DataF3"
C;X69;K"DataG3"
C;X70;K"DataH3"
C;X71;K"DataI3"
C;X72;K"UnitID3"
C;X73;K"BuffID3"
C;X74;K"EfctID3"
C;X75;K"targs4"
C;X76;K"Cast4"
C;X77;K"Dur4"
C;X78;K"HeroDur4"
C;X79;K"Cool4"
C;X80;K"Cost4"
C;X81;K"Area4"
C;X82;K"Rng4"
C;X83;K"DataA4"
C;X84;K"DataB4"
C;X85;K"DataC4"
C;X86;K"DataD4"
C;X87;K"DataE4"
C;X88;K"DataF4"
C;X89;K"DataG4"
C;X90;K"DataH4"
C;X91;K"DataI4"
C;X92;K"UnitID4"
C;X93;K"BuffID4"
C;X94;K"EfctID4"
C;X95;K"targs5"
C;X96;K"Cast5"
C;X97;K"Dur5"
C;X98;K"HeroDur5"
C;X99;K"Cool5"
C;X100;K"Cost5"
C;X101;K"Area5"
C;X102;K"Rng5"
C;X103;K"DataA5"
C;X104;K"DataB5"
C;X105;K"DataC5"
C;X106;K"DataD5"
C;X107;K"DataE5"
C;X108;K"DataF5"
C;X109;K"DataG5"
C;X110;K"DataH5"
C;X111;K"DataI5"
C;X112;K"UnitID5"
C;X113;K"BuffID5"
C;X114;K"EfctID5"
C;X115;K"targs6"
C;X116;K"Cast6"
C;X117;K"Dur6"
C;X118;K"HeroDur6"
C;X119;K"Cool6"
C;X120;K"Cost6"
C;X121;K"Area6"
C;X122;K"Rng6"
C;X123;K"DataA6"
C;X124;K"DataB6"
C;X125;K"DataC6"
C;X126;K"DataD6"
C;X127;K"DataE6"
C;X128;K"DataF6"
C;X129;K"DataG6"
C;X130;K"DataH6"
C;X131;K"DataI6"
C;X132;K"UnitID6"
C;X133;K"BuffID6"
C;X134;K"EfctID6"
C;X135;K"InBeta"
C;X1;Y2;K"AHbz"
C;X2;K"AHbz"
C;X3;K"Arch Mage - Blizzard"
C;X4;K0
C;X5;K1
C;X6;K1
C;X7;K0
C;X8;K"hero"
C;X9;K"human"
C;X10;K1
C;X11;K6
C;X12;K1
C;X13;K0
C;X14;K0
C;X15;K"_"
C;X16;K1
C;X17;K0
C;X18;K0
C;X19;K6
C;X20;K75
C;X21;K200
C;X22;K800
C;X23;K6
C;X24;K30
C;X25;K6
C;X26;K0.5
C;X27;K0
C;X28;K150
C;X29;K"-"
C;X30;K"-"
C;X31;K"-"
C;X33;K"BHbd,BHbz"
C;X34;K"XHbz"
C;X35;K"_"
C;X36;K1
C;X37;K0
C;X38;K0
C;X39;K6
C;X40;K75
C;X41;K200
C;X42;K800
C;X43;K8
C;X44;K40
C;X45;K7
C;X46;K0.5
C;X47;K0
C;X48;K200
C;X49;K"-"
C;X50;K"-"
C;X51;K"-"
C;X53;K"BHbd,BHbz"
C;X54;K"XHbz"
C;X55;K"_"
C;X56;K1
C;X57;K0
C;X58;K0
C;X59;K6
C;X60;K75
C;X61;K200
C;X62;K800
C;X63;K10
C;X64;K50
C;X65;K10
C;X66;K0.5
C;X67;K0
C;X68;K250
C;X69;K"-"
C;X70;K"-"
C;X71;K"-"
C;X73;K"BHbd,BHbz"
C;X74;K"XHbz"
C;X75;K"_"
C;X76;K1
C;X77;K0
C;X78;K0
C;X79;K6
C;X80;K75
C;X81;K200
C;X82;K800
C;X83;K10
C;X84;K50
C;X85;K10
C;X86;K0.5
C;X87;K0
C;X88;K250
C;X89;K"-"
C;X90;K"-"
C;X91;K"-"
C;X93;K"BHbd,BHbz"
C;X94;K"XHbz"
C;X95;K"_"
C;X96;K1
C;X97;K0
C;X98;K0
C;X99;K6
C;X100;K75
C;X101;K200
C;X102;K800
C;X103;K12
C;X104;K1
C;X105;K1
C;X106;K0
C;X107;K0
C;X108;K9999
C;X109;K"-"
C;X110;K"-"
C;X111;K"-"
C;X113;K"BHbd,BHbz"
C;X114;K"XHbz"
C;X115;K"_"
C;X116;K1
C;X117;K0
C;X118;K0
C;X119;K6
C;X120;K75
C;X121;K200
C;X122;K800
C;X123;K100
C;X124;K500
C;X125;K2
C;X126;K0
C;X127;K0
C;X128;K9999
C;X129;K"-"
C;X130;K"-"
C;X131;K"-"
C;X133;K"BHbd,BHbz"
C;X134;K"XHbz"
C;X135;K1
E


in comparison the normal header and Blizzard that does not crash:

ID;PWXL;N;E
B;X95;Y2;D0
C;X1;Y1;K"alias"
C;X2;K"code"
C;X3;K"comments"
C;X4;K"version"
C;X5;K"useInEditor"
C;X6;K"hero"
C;X7;K"item"
C;X8;K"sort"
C;X9;K"race"
C;X10;K"checkDep"
C;X11;K"levels"
C;X12;K"reqLevel"
C;X13;K"levelSkip"
C;X14;K"priority"
C;X15;K"targs1"
C;X16;K"Cast1"
C;X17;K"Dur1"
C;X18;K"HeroDur1"
C;X19;K"Cool1"
C;X20;K"Cost1"
C;X21;K"Area1"
C;X22;K"Rng1"
C;X23;K"DataA1"
C;X24;K"DataC1"
C;X25;K"DataB1"
C;X26;K"DataD1"
C;X27;K"DataE1"
C;X28;K"DataF1"
C;X29;K"DataG1"
C;X30;K"DataH1"
C;X31;K"DataI1"
C;X32;K"UnitID1"
C;X33;K"BuffID1"
C;X34;K"EfctID1"
C;X35;K"targs2"
C;X36;K"Cast2"
C;X37;K"Dur2"
C;X38;K"HeroDur2"
C;X39;K"Cool2"
C;X40;K"Cost2"
C;X41;K"Area2"
C;X42;K"Rng2"
C;X43;K"DataA2"
C;X44;K"DataB2"
C;X45;K"DataC2"
C;X46;K"DataD2"
C;X47;K"DataE2"
C;X48;K"DataF2"
C;X49;K"DataG2"
C;X50;K"DataH2"
C;X51;K"DataI2"
C;X52;K"UnitID2"
C;X53;K"BuffID2"
C;X54;K"EfctID2"
C;X55;K"targs3"
C;X56;K"Cast3"
C;X57;K"Dur3"
C;X58;K"HeroDur3"
C;X59;K"Cool3"
C;X60;K"Cost3"
C;X61;K"Area3"
C;X62;K"Rng3"
C;X63;K"DataA3"
C;X64;K"DataB3"
C;X65;K"DataC3"
C;X66;K"DataD3"
C;X67;K"DataE3"
C;X68;K"DataF3"
C;X69;K"DataG3"
C;X70;K"DataH3"
C;X71;K"DataI3"
C;X72;K"UnitID3"
C;X73;K"BuffID3"
C;X74;K"EfctID3"
C;X75;K"targs4"
C;X76;K"Cast4"
C;X77;K"Dur4"
C;X78;K"HeroDur4"
C;X79;K"Cool4"
C;X80;K"Cost4"
C;X81;K"Area4"
C;X82;K"Rng4"
C;X83;K"DataA4"
C;X84;K"DataB4"
C;X85;K"DataC4"
C;X86;K"DataD4"
C;X87;K"DataE4"
C;X88;K"DataF4"
C;X89;K"DataG4"
C;X90;K"DataH4"
C;X91;K"DataI4"
C;X92;K"UnitID4"
C;X93;K"BuffID4"
C;X94;K"EfctID4"
C;X95;K"InBeta"
C;X1;Y2;K"AHbz"
C;X2;K"AHbz"
C;X3;K"Arch Mage - Blizzard"
C;X4;K0
C;X5;K1
C;X6;K1
C;X7;K0
C;X8;K"hero"
C;X9;K"human"
C;X10;K1
C;X11;K3
C;X12;K1
C;X13;K0
C;X14;K0
C;X15;K"_"
C;X16;K1
C;X17;K0
C;X18;K0
C;X19;K6
C;X20;K75
C;X21;K200
C;X22;K800
C;X23;K6
C;X24;K30
C;X25;K6
C;X26;K0.5
C;X27;K0
C;X28;K150
C;X29;K"-"
C;X30;K"-"
C;X31;K"-"
C;X33;K"BHbd,BHbz"
C;X34;K"XHbz"
C;X35;K"_"
C;X36;K1
C;X37;K0
C;X38;K0
C;X39;K6
C;X40;K75
C;X41;K200
C;X42;K800
C;X43;K8
C;X44;K40
C;X45;K7
C;X46;K0.5
C;X47;K0
C;X48;K200
C;X49;K"-"
C;X50;K"-"
C;X51;K"-"
C;X53;K"BHbd,BHbz"
C;X54;K"XHbz"
C;X55;K"_"
C;X56;K1
C;X57;K0
C;X58;K0
C;X59;K6
C;X60;K75
C;X61;K200
C;X62;K800
C;X63;K10
C;X64;K50
C;X65;K10
C;X66;K0.5
C;X67;K0
C;X68;K250
C;X69;K"-"
C;X70;K"-"
C;X71;K"-"
C;X73;K"BHbd,BHbz"
C;X74;K"XHbz"
C;X75;K"_"
C;X76;K1
C;X77;K0
C;X78;K0
C;X79;K6
C;X80;K75
C;X81;K200
C;X82;K800
C;X83;K10
C;X84;K50
C;X85;K10
C;X86;K0.5
C;X87;K0
C;X88;K250
C;X89;K"-"
C;X90;K"-"
C;X91;K"-"
C;X93;K"BHbd,BHbz"
C;X94;K"XHbz"
C;X95;K1
E


Annotation: You can set the levels field (X11) on the original and it won't crash. So it should not be a missing field.
 
Status
Not open for further replies.

Similar threads

Top