本文整理汇总了C++中AccountID::Unbox方法的典型用法代码示例。如果您正苦于以下问题:C++ AccountID::Unbox方法的具体用法?C++ AccountID::Unbox怎么用?C++ AccountID::Unbox使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AccountID
的用法示例。
在下文中一共展示了AccountID::Unbox方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: result
BanManager::BanManager()
{
Result result(db->Select("SELECT * FROM bans"));
if (!result.IsValid())
return;
time_t now = time(0);
for (unsigned int i=0; i<result.Count(); i++)
{
AccountID account = AccountID(result[i].GetUInt32("account"));
time_t end = result[i].GetUInt32("end");
if (now > end) // Time served
{
db->Command("DELETE FROM bans WHERE account='%u'", account.Unbox());
continue;
}
BanEntry* newentry = new BanEntry;
newentry->account = account;
newentry->end = end;
newentry->start = result[i].GetUInt32("start");
newentry->ipRange = result[i]["ip_range"];
newentry->reason = result[i]["reason"];
newentry->banIP = result[i].GetUInt32("ban_ip") != 0;
// If account ban, add to list
if (newentry->account.IsValid())
banList_IDHash.Put(newentry->account,newentry);
// If IP range ban, add to list
if ( newentry->ipRange.Length() && newentry->banIP /*(!end || now < newentry->start + IP_RANGE_BAN_TIME)*/ )
banList_IPRList.Push(newentry);
}
}
示例2: IsReserved
int CharCreationManager::IsReserved(const char* name, AccountID acctID)
{
// Check to see if this name is reserved. Does this check by comparing
// the email address of the account with that stored in the migration table.
csString query;
csString escape;
db->Escape(escape, name);
query.Format("SELECT m.email FROM migration m WHERE m.username='%s'", escape.GetData());
Result result(db->Select(query));
if(result.IsValid() && result.Count() == 1)
{
csString savedEmail(result[0][0]);
query.Format("SELECT username FROM accounts WHERE id=%d\n", acctID.Unbox());
Result result2(db->Select(query));
if(result2.IsValid() && result2.Count() == 1)
{
csString email(result2[0][0]);
if(savedEmail.CompareNoCase(email))
return NAME_RESERVED_FOR_YOU;
else
return NAME_RESERVED;
}
}
return NAME_AVAILABLE;
}
示例3: RemoveBan
bool BanManager::RemoveBan(AccountID account)
{
BanEntry* ban = GetBanByAccount(account);
if (!ban)
return false; // Not banned
db->Command("DELETE FROM bans WHERE account='%u'", account.Unbox());
banList_IDHash.Delete(account,ban);
banList_IPRList.Delete(ban);
delete ban;
return true;
}
示例4: HandleUploadMessage
void CharCreationManager::HandleUploadMessage(MsgEntry* me, Client* client)
{
Debug1(LOG_NEWCHAR, me->clientnum,"New Character is being created");
psCharUploadMessage upload(me);
if(!upload.valid)
{
Debug2(LOG_NET,me->clientnum,"Received unparsable psUploadMessage from client %u.",me->clientnum);
return;
}
AccountID acctID = client->GetAccountID();
if(!acctID.IsValid())
{
Error2("Player tried to upload a character to unknown account %s.", ShowID(acctID));
psCharRejectedMessage reject(me->clientnum);
psserver->GetEventManager()->Broadcast(reject.msg, NetBase::BC_FINALPACKET);
psserver->RemovePlayer(me->clientnum,"Could not find your account.");
return;
}
// Check to see if the player already has 4 accounts;
csString query;
query.Format("SELECT id FROM characters WHERE account_id=%d", acctID.Unbox());
Result result(db->Select(query));
if(result.IsValid() && result.Count() >= CHARACTERS_ALLOWED)
{
psserver->RemovePlayer(me->clientnum,"At your character limit.");
return;
}
csString playerName = upload.name;
csString lastName = upload.lastname;
playerName = NormalizeCharacterName(playerName);
lastName = NormalizeCharacterName(lastName);
// Check banned names
if(psserver->GetCharManager()->IsBanned(playerName))
{
csString error;
error.Format("The name %s is banned", playerName.GetData());
psCharRejectedMessage reject(me->clientnum,
psCharRejectedMessage::RESERVED_NAME,
(char*)error.GetData());
reject.SendMessage();
return;
}
if(psserver->GetCharManager()->IsBanned(lastName))
{
csString error;
error.Format("The lastname %s is banned", lastName.GetData());
psCharRejectedMessage reject(me->clientnum,
psCharRejectedMessage::RESERVED_NAME,
(char*)error.GetData());
reject.SendMessage();
return;
}
Debug3(LOG_NEWCHAR, me->clientnum,"Got player firstname (%s) and lastname (%s)\n",playerName.GetData(), lastName.GetData());
///////////////////////////////////////////////////////////////
// Check to see if the player name is valid
///////////////////////////////////////////////////////////////
if(playerName.Length() == 0 || !FilterName(playerName))
{
psCharRejectedMessage reject(me->clientnum,
psCharRejectedMessage::NON_LEGAL_NAME,
"The name you specifed is not a legal player name.");
psserver->GetEventManager()->SendMessage(reject.msg);
return;
}
if(lastName.Length() != 0 && !FilterName(lastName))
{
psCharRejectedMessage reject(me->clientnum,
psCharRejectedMessage::NON_LEGAL_NAME,
"The name you specifed is not a legal lastname.");
psserver->GetEventManager()->SendMessage(reject.msg);
return;
}
Debug2(LOG_NEWCHAR, me->clientnum,"Checking player firstname '%s'..\n",playerName.GetData());
///////////////////////////////////////////////////////////////
// Check to see if the character name is unique in 'characters'.
///////////////////////////////////////////////////////////////
if(!IsUnique(playerName))
{
psCharRejectedMessage reject(me->clientnum,
psCharRejectedMessage::NON_UNIQUE_NAME,
"The firstname you specifed is not unique.");
psserver->GetEventManager()->SendMessage(reject.msg);
return;
//.........这里部分代码省略.........
示例5: PlayerHasFinishedTutorial
bool CharCreationManager::PlayerHasFinishedTutorial(AccountID acctID, uint32 tutorialsecid)
{
// if there are characters associated with this account that are outside the tutorial assume the tutorial was passed...
Result result(db->Select("SELECT id FROM characters WHERE account_id = %u AND loc_sector_id != %u", acctID.Unbox(), tutorialsecid));
if(result.IsValid() && result.Count())
{
return true;
}
return false;
}