• 🏆 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!

Extending amount of levels on AbilityData.slk

Status
Not open for further replies.
Level 26
Joined
Aug 18, 2009
Messages
4,097
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