there must be another way to do this, but this one is simpler than I currently thought.
try
in UserExCommand.cpp
Bind(L".delevel", UserExDelevelCommand); //add bind command
//add function
bool UserExDelevelCommand(User *pUser, wstring params)
{
guard;
if(pUser->ValidUser()){
pUser->SetLevel(40); //use setlevel for delevel.
pUser->SocialAction(SocialActionLevelUp);
}
unguard;
return false;
}
and UserExCommand.h
bool UserExDelevelCommand(User *pUser, wstring params);
for bypass you can use the same paramter.
EX:
void CVIPSystem::OnDelevel(User *pUser)
{
guard;
if(m_Enabled)
{
if(pUser->ValidUser())
{
pUser->SetLevel(40);
pUser->SocialAction(SocialActionLevelUp);
}
}
unguard;
}
added to bypass:
else if(wBypass.find(L"user_delevel") == 0)
{
g_VIPSystem.OnDelevel(pUser);
return true;
}
you can use this example for add to your bypass.