vtable only contains virtual member function pointers, all of your provided functions are non virtual member function, they
don't exist in CBasePlayer's Obj's vtable.
calling function is simple if you know its real address, prototype and calling conventions. here is an example to call
CBasePlayer::DropPlayerItem(const char *szItem), I use it to instead "engclient_cmd" method to force a player drop an item.
Code:
void CallDllDropPlayerItem(edict_t *pEdict, const char *szWeapon)
{
HMODULE handle = GetModuleHandle("mp.dll");
unsigned long baseaddr = (unsigned long)handle;
void *g_CBasePlayer_DropPlayerItem = (void *)(baseaddr + 0xB3DB0);
CBasePlayer *pPlayer = (CBasePlayer *)pEdict->pvPrivateData;
__asm
{
PUSH szItem; //push param into stack
MOV ECX, pPlayer; //push "this" to ecx
CALL [g_CBasePlayer_DropPlayerItem]; //call function
}
}
To get the real address and prototype, you need to disassemble the gamedll. "mp.dll" here for windows.
Then find the function address you want to call.
By this way, you can call all the functions you list above. Hooking them is another story.
To get virtual offsets, here is a tut:
http://wiki.alliedmods.net/Finding_Virtual_Offsets