Might help some nooblets You dont have to dl the file ill put the text here also
While looking in the parametrs for J gunz and then my dll i realized that
When you want to find out if a function has a class of 0 or a class of someting.
Look at the bottom where it defines what the parameters are then look at the
sym name: ?Find@ZCharacterManager@@QAEPAVZCharacter@@UMUID@@ @Z
(public: class ZCharacter * __thiscall ZCharacterManager::Find(struct MUID))
and the parameters are
this (Object Pointer)
uid (Parameter)
sym name: this has type -ZCharacterManager*
sym name: uid has type -MUID
Now compare them there are two parameters and as you can see theres only
one parameter space: struct MUID. So you can say if u compare the params
to the actual sym name you will tell where the parametrs go and if there
is a class or not lets look at another one. One with No CLASS
sym name: ?ZPostShotSp@@YAXMAAUD3DXVECTOR3@@0HH@Z
(void __cdecl ZPostShotSp(float,struct D3DXVECTOR3 &,struct D3DXVECTOR3 &,int,int))
fShotTime (Parameter)
vPos (Parameter)
vDir (Parameter)
type (Parameter)
sel_type (Parameter)
sym name: fShotTime has type (base type=8, len=4)
sym name: vPos has type -D3DXVECTOR3*
sym name: vDir has type -D3DXVECTOR3*
sym name: type has type (base type=6, len=4)
sym name: sel_type has type (base type=6, len=4)
as you can tell all parameter spots are filled up
(float,struct D3DXVECTOR3 &,struct D3DXVECTOR3 &,int,int)
so the class is 0 and we write it this way
#define ZPostShotSp(a,b,c,d) GunZ(0,_ZPostShotSp,a,b,c,d)
the 0 means no class because theres not space for it.
Now lets take another look at a function with a class only!!!
sym name: ?Revival@ZCharacter@@QAEXXZ
(public: void __thiscall ZCharacter::Revival(void))
this (Object Pointer)
sym name: this has type -ZCharacter*
So as you can see... there is NO SPOTS only void
there for you must put the ZCHARACTER in the class spot
thus we have...
#define ZCharacter__Revival() GunZ(ZMyCharacter(),_ZCharacter__Revival)
Now... lets do another some more
sym name: ?LevelUp@ZCharacter@@QAEXXZ
(public: void __thiscall ZCharacter::LevelUp(void))
this (Object Pointer)
sym name: this has type -ZCharacter*
Now look again at these parameters....
you see VOID that means there are no spots for parameters thus...
Just like in ZCharacter Revival, ZCharacert becomes the class of the fucntion
Lets do another one
sym name: ?SetHP@ZCharacter@@QAEXH@Z (public: void __thiscall ZCharacter::SetHP
(int))
This has one parameter lets see what it wants
this (Object Pointer)
nHP (Parameter)
sym name: this has type -ZCharacter*
sym name: nHP has type (base type=6, len=4)
It wants to parameters so one must be a class lets see
#define ZCharacter__SetHP(a,b) GunZ(ZMyCharacter(),_ZCharacter__SetHP,b)
Yup you were right it wants two parameters the but has ONE SPOT as u can see
INT is the only spot for a parameter. So what happens to the other?
It becomesthe class of the function ZCharacter = the class nHP = INT
Cheers,
Witchy (The Wicked Witch of The Web)
I miss you guys <333 Let me knowledge live on forever. *kiss kiss*