[HELP]How to make your own blade, size etc.

12/21/2008 22:11 sherwin9#1
Hey,

My friend and I are trying to make our own weapon, own size etc....
Does anybody know how to make such a thing? Like your own made lvl 135 blade, with your own size, your own lay-out etc.

Thanks in advance,

Sherwin.
12/22/2008 00:19 sherwin9#2
COME ON PEOPLE HELP ME
12/22/2008 00:20 Beta Limit#3
well if we are talking creating a new blade completely from scratch you would need to create a .C3 (which i don't think you can unless you get TQ's plugin) and make a .DDS texture that would work with the C3.

Or you could use an existing C3 and create a new texture to work with it (would require alot of trial and error)

Or you could just edit and existing texture and keep the C3 to it (easy)
12/22/2008 00:52 ph03nixx#4
#agree yeah i think you if you wanna make one from scratch make a backup on you rs.C3 files of whatever u will use
and if you want a different SuperGlow, find a Different game and use something out of that. usee?
12/22/2008 01:18 sherwin9#5
I know how to make different glows etc... i just want a different layout of the weapon :P
12/22/2008 01:22 Incariuz#6
No offence, but you won't pull it off.
12/22/2008 10:33 Kiyono#7
Custom items with existing C3s is easy Custom items with Custom C3s is kinda impossible.
Custom Textures depends on your photoshoping skills though.
12/22/2008 12:36 Beta Limit#8
i agree with ph03nixx - look around on other games that use c3/DDS combination (such as EO and ZO) - I believe they both use this too (could be wrong)
12/22/2008 12:54 ph03nixx#9
well i have looked in to some games and saw they have nice weps but im now trying to make one too but i ned the C3 file converter to see what they are and edit it a bit, but still if you wanna make a Blade from scratch that will hardly ever work! it will need lots of Trial and Error. the only way to get a Nice blade is Practising fomr different games and making BackUps form your files.
12/22/2008 13:15 Beta Limit#10
Quote:
Originally Posted by ph03nixx View Post
well i have looked in to some games and saw they have nice weps but im now trying to make one too but i ned the C3 file converter to see what they are and edit it a bit, but still if you wanna make a Blade from scratch that will hardly ever work! it will need lots of Trial and Error. the only way to get a Nice blade is Practising fomr different games and making BackUps form your files.

Sorry to say there is no C3 Converter
12/22/2008 14:07 ph03nixx#11
oh yeah woops srry i meant something to READ .C3 Files you know what i mean>
12/22/2008 14:21 unknownone#12
There is something to read C3 files - c3_core_dll.dll

Within it...
Code:
int g_nPhyCount;

int __cdecl Phy_Calculate(struct C3Phy *,int,int,struct D3DXVECTOR3);
int __cdecl Phy_Calculate_CPU(struct C3Phy *,int,int,struct D3DXVECTOR3,bool);
int __cdecl Phy_Calculate_Lite(struct C3Phy *);
void __cdecl Phy_ChangeMixTexture(struct C3Phy *,int);
void __cdecl Phy_ChangeTexture(struct C3Phy *,int);
void __cdecl Phy_Clear(struct C3Phy *);
void __cdecl Phy_ClearMatrix(struct C3Phy *);
int __cdecl Phy_Draw(struct PhyOutVertex *,unsigned long,struct C3Texture *,struct _D3DMATERIAL8 const *,unsigned long,unsigned long,int,int);
int __cdecl Phy_DrawAlpha(struct C3Phy *,int,unsigned long,unsigned long);
int __cdecl Phy_DrawNormal(struct C3Phy *,struct _D3DMATERIAL8 const &,struct _D3DXMATRIXA16 *,int,unsigned long,unsigned long,int,float,bool);
int __cdecl Phy_DrawNormal_CPU(struct C3Phy *,struct _D3DMATERIAL8 const &,struct _D3DXMATRIXA16 *,int,unsigned long,unsigned long,int,float,bool);
struct C3Phy * __cdecl Phy_DynamicCreate(unsigned long,struct D3DXVECTOR3 *,struct D3DXVECTOR2 *);
int  __cdecl Phy_Load(struct C3Phy * *,void *,int,int,int);
void __cdecl Phy_Muliply(struct C3Phy *,struct _D3DXMATRIXA16 *); 
void __cdecl Phy_NextFrame(struct C3Phy *,int);
void __cdecl Phy_Prepare(void);
bool __cdecl Phy_ProbeIntersection(struct C3Phy *,struct D3DXVECTOR3 const &,struct D3DXVECTOR3 const &,float &);
int __cdecl Phy_Save(char *,struct C3Phy *,int);
void __cdecl Phy_SetBlendFrame(struct C3Phy *,unsigned long);
void __cdecl Phy_SetColor(struct C3Phy *,float,float,float,float);
void __cdecl Phy_SetFluidReflectSpeed(float,float);
void __cdecl Phy_SetFrame(struct C3Phy *,unsigned long);
void __cdecl Phy_SetLight(int,float,float,float,unsigned long,unsigned long,float);
void __cdecl Phy_SetStepCount(struct C3Phy *,unsigned long);
void __cdecl Phy_Unload(struct C3Phy * *);
You can call these functions directly from an application, either using LoadLibrary, or create an import library for it using dumpbin /EXPORTS, copying the name column into the EXPORTS section of a DEF file and use lib /DEF:c3_core_dll.def

The parts for converting between C3Phy and DirectX structures (Phy_DrawNormal / Phy_DynamicCreate), and the reading/writing from files (Phy_Load, Phy_Save), is already done for you. If you could find a decent 3dmodelling software for which you can easily create plugins, and uses the same DX structs there, the rest is straightforward.

All that's left then is creating the C3Phy struct. If you know how to interpret a binary file, it aint too difficult, but a bit of trial and error involved.
12/22/2008 17:43 sherwin9#13
You have to convert .dds if i'm right.. idk into what, something you can edit in paint and then convert it back and replace it with what you want to edit,...

*i meant dll
12/22/2008 19:04 Beta Limit#14
@unknownone

:/ i have no idea what any of that is xD
12/22/2008 20:00 unknownone#15
Those are just C++ (or C) function prototypes. You'd call them the same way you would any function in C#. For example, Phy_Load(struct C3Phy **,void *,int,int,int); is what's going to read the c3 file and put it into memory - some of the arguments are self explanatory.

arg1 is an array of pointers to C3Phy structs that will be written to in memory, because C3 files house multiple PHY sections. (The Phy is the physical mesh, but C3 files have multiple sections, including CAME (cameras) and MOTI (Motions) etc).

arg2 is a generic pointer, it could be for example the filename (although that should be a char*, so doubtful), or it could be a pointer to the file buffer in memory, or something else. You really need to debug the code to know exactly what each argument is.

The 3 int arguments is guesswork too. You'd assume that one would be the input stream length, but it turns out that (for all calls I've looked at), they have values of 0, 0, 1.

The return value is quite obviously the number of C3Phy structs in the array, since there's nowhere else that value could be returned, and it's a required value.

The C3Phy structure itself is quite similar to the structure of the PHY section in the file, except instead of in-place arrays, it points to them, for obvious reasons if you know C.