|
- Frozen Throne expansion pack format of "war3map.w3u / w3t / w3b / w3d / w3a / w3h / w3q" : The object data files :
- 的这个[int: level/variation (this integer is only used
- These are the files that store the changes you make in the object editor.
- They all have one format in common. They have an initial int and then there are 2 tables
- Both look the same. The first table is the original table (Standard Objects by Blizzard).
- The second table contains the user created objects (Custom units / items / abilities …)
- Header:
- int: File Version = (usually 1)
- x bytes: Original objects table*
- y bytes: Custom objects table*
- Data:
- *Table definition:
- int: number n of objects on this table, if 0 on the original table, then skip the default object table. This is the number of following units. Even if we don't have any changes on original table, this value must be there.
- n times a object definition structure*.
- *Object definition structure:
- char[4]: original object ID (see table at the bottom where you can get the object IDs*)
- char[4]: new object ID. (if it is on original table, this is 0, since it isn't used)
- int: number m of modifications for this object
- m times a modification structure*
- *Modification structure:
- char[4] modification ID (see the table at the bottom where you can get the mod IDs*)
- int: variable type* t
- [int: level/variation (this integer is only used by some object files depending on the object type, for example the units file doesn’t use this additional integer, but the ability file does, see the table at the bottom to see which object files use this int*) in the ability and upgrade file this is the level of the ability/upgrade, in the doodads file this is the variation, set to 0 if the object doesn't have more than one level/variation]
- [int: data pointer (again this int is only used by those object files that also use the level/variation int, see table*) in reality this is only used in the ability file for values that are originally stored in one of the Data columns in AbilityData.slk, this int tells the game to which of those columns the value resolves (0 = A, 1 = B, 2 = C, 3 = D, 4 = F, 5 = G, 6 = H), for example if the change applies to the column DataA3 the level int will be set to 3 and the data pointer to 0]
- int, float or string: value of the modification depending on the variable type specified by t
- int: end of modification structure (this is either 0, or equal to the original object ID or equal to the new object ID of the current object, when reading files you can use this to check if the format is correct, when writing a file
复制代码
(这个英文版原文
http://bbs.uuu9.com/viewthread.php?tid=929622&extra=page%3D1
某瞳翻译的 不过他漏了这段...
http://www.islga.org/bbs/read.php?tid=13920)
------------
这里
char[4] modification ID (see the table at the bottom where you can get the mod IDs*)
int: variable type* t
[int: level/variation (...
怎么知道这个是level/variation还是
int, float or string: value of the modification depending on the variable type specified by t |
|