adding more capes

11/25/2014 20:23 Psycnosis#1
I been trying to add more cape graphics but I hit a deadend.

capes dont work like armors or weapons in the client. To add more slots you need to add more slots to the CTL files under the cloak\ClothTexture folder using HXD. I managed to add a few extra cape slots so I have 31 in total.

However this is only the first step and this wont make the cape show. The above step only regards the dds files. to add the 3dc files to it you need to edit the files under cloak/character the PC files under each class. This is where im at a loss because Im comparing the files from ep 4 and ep6 where they added more capes and I cant see a logical change to the file like I could with the CTL file.

Has anyone worked with this or have any idea how to add more cape graphics?
11/25/2014 22:39 Twilight360#2
Cape models can extend you must open the file in hex editor just like graphics for the effects for fireworks it is just if you know hex editing then you can it is possible but it is a pain to do so.
[Only registered and activated users can see links. Click Here To Register...]
11/25/2014 23:59 castor4878#3
I didn't think capes had an interest and thus didn't include the .ctl, .pc & .dat editors in shStudio - even if all these files are of course handled to be able to draw capes with the Cape Editor of item.sdata.

the structures of these files are as follows:
Code:
.ctl files: names of texture

long	count;	// number of DDS filename to follow
Str256	names[count];	// .DDS filename, zero terminated, left aligned on 256-char buffer

.dat files: names of masks

long	count;	// number of DDS filename to follow
Str260	names[count];	// .DDS filename, zero terminated, left aligned on 260-char buffer

.pc files: capes definition

long	countCapes;		// number of records to follow
long	capeIndx[countCapes];	// index of 3DC
Str128	capeName[countCapes];	// 3DC filename (char[128], zero terminated)
long	countBlock;			// number of data block to follow
CapeData data[countBlock];
long	countShlds;			// number of shoulders definition to follow
long	shldIndx[countShlds];	// index of 3DC
Str128	shldName[countShlds];	// 3DC filename (char[128], zero terminated)

with

struct CapeData {
	long	baseDDS;	// index of DDS in the .ctl file
	long	base3DC;	// index of base 3DC in this .pc file
	long	unk1;		// 00h
	long	type2;	// same as type
	long	unk2;		// 04h
	long	unk3;		// 9 .. 14 (or larger)
	long	unk4[4];
	long	unk5;		// uninitialized (0xCDCDCDCD)
	CapeBlock block[20];
};

struct CapeBlock {
	long	_val[3];
	float	_flt[3];
};
using these structs, the file cloak\Character\Human\1_humf.PC reads as:

the (sole?) field of interest is the index of the DDS.
11/26/2014 12:50 Psycnosis#4
Twilight360 as I said I already done that part :p

Castor thats very interesting and very very confusing lol. any chance this will be in the shstudio or that you can dum it down for us normal people :P
11/26/2014 16:01 Twilight360#5
Quote:
Originally Posted by Psycnosis View Post
Twilight360 as I said I already done that part :p

Castor thats very interesting and very very confusing lol. any chance this will be in the shstudio or that you can dum it down for us normal people :P
I can release a tool i made in C++ where you can simply edit, add cape models by the mlx settings as sets have if you would like to have it.
11/26/2014 16:50 Psycnosis#6
would love to have it :D
11/28/2014 15:58 castor4878#7
To make the .pc format simpler, and to focus on the main wish - meaning adding some models with new DDS files - we simply have to add filenames into .CTL (cloth texture list) files and then new records in .PC files with these new DDS indexes.

But still, which .PC file(s) need to be udpated, or in otehr words, what's the purpose of the 8 files defined for each class?
the client generates the filenames dynamically (using, for instance for the human classes, the patterns "%d_huwm.pc", "%d_huwf.pc", "%d_humm.pc" and "%d_humf.pc") where %d stands for a numerical value, but which?
all my "old" .PC files contain valid data (meaning they can be read with the format provided above); but it appears than recent AE files but the "1_xxx.pc" ones are not valid; I'm not saying they use a new unknown format, I say they appear invalid.

for instance, cloak/character/human/3_humf.pc

If some of you had tracked these files to know which one(s) are loaded (and according which rules if several are loaded), I'll be pleased to read about your experience.