本文整理汇总了C++中PID::IsValid方法的典型用法代码示例。如果您正苦于以下问题:C++ PID::IsValid方法的具体用法?C++ PID::IsValid怎么用?C++ PID::IsValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PID
的用法示例。
在下文中一共展示了PID::IsValid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleCharDelete
void CharCreationManager::HandleCharDelete(MsgEntry* me, Client* client)
{
psCharDeleteMessage msg(me);
csString charName = msg.charName;
if(!charName.Length())
{
CPrintf(CON_WARNING,"Client %u sent malformed character name to deletion code!",client->GetClientNum());
return; // No char
}
PID pid = psserver->CharacterLoader.FindCharacterID(client->GetAccountID(), charName);
csString error;
if(psserver->CharacterLoader.AccountOwner(charName, client->GetAccountID()))
{
// Found the char?
if(!pid.IsValid())
{
psserver->SendSystemError(client->GetClientNum(),"Couldn't find character data!");
return;
}
// Can we delete it?
if(!psserver->CharacterLoader.DeleteCharacterData(pid, error))
{
psserver->SendSystemError(client->GetClientNum(),"Error: %s",error.GetData());
return;
}
// Remove cached objects to make sure that the client gets a fresh character
// list from the database.
iCachedObject* obj = psserver->GetCacheManager()->RemoveFromCache(psserver->GetCacheManager()->MakeCacheName("list",client->GetAccountID().Unbox()));
if(obj)
{
obj->ProcessCacheTimeout();
obj->DeleteSelf();
}
obj = psserver->GetCacheManager()->RemoveFromCache(psserver->GetCacheManager()->MakeCacheName("auth", client->GetAccountID().Unbox()));
if(obj)
{
obj->ProcessCacheTimeout();
obj->DeleteSelf();
}
// Ok, we deleted it
psCharDeleteMessage response(charName, me->clientnum);
response.SendMessage();
}
else
{
CPrintf(CON_WARNING,"Character %s not deleted because of non-ownership\n", charName.GetData());
psserver->SendSystemError(client->GetClientNum(),"You do not own that character!");
return;
}
}