本文整理汇总了C++中secsToTimeBitFields函数的典型用法代码示例。如果您正苦于以下问题:C++ secsToTimeBitFields函数的具体用法?C++ secsToTimeBitFields怎么用?C++ secsToTimeBitFields使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了secsToTimeBitFields函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: MAKE_NEW_GUID
void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry * auction,
SQLTransaction& trans) {
uint64 owner_guid = MAKE_NEW_GUID(auction->owner, 0, HIGHGUID_PLAYER);
Player *owner = sObjectMgr->GetPlayer(owner_guid);
uint32 owner_accId = sObjectMgr->GetPlayerAccountIdByGUID(owner_guid);
// owner exist (online or offline)
if (owner || owner_accId) {
std::ostringstream msgAuctionSalePendingSubject;
msgAuctionSalePendingSubject << auction->item_template << ":0:"
<< AUCTION_SALE_PENDING;
std::ostringstream msgAuctionSalePendingBody;
uint32 auctionCut = auction->GetAuctionCut();
time_t distrTime = time(NULL)
+ sWorld->getIntConfig(CONFIG_MAIL_DELIVERY_DELAY);
msgAuctionSalePendingBody.width(16);
msgAuctionSalePendingBody << std::right << std::hex << auction->bidder;
msgAuctionSalePendingBody << std::dec << ":" << auction->bid << ":"
<< auction->buyout;
msgAuctionSalePendingBody << ":" << auction->deposit << ":"
<< auctionCut << ":0:";
msgAuctionSalePendingBody << secsToTimeBitFields(distrTime);
sLog->outDebug(LOG_FILTER_AUCTIONHOUSE,
"AuctionSalePending body string : %s",
msgAuctionSalePendingBody.str().c_str());
MailDraft(msgAuctionSalePendingSubject.str(),
msgAuctionSalePendingBody.str()).SendMailTo(trans,
MailReceiver(owner, auction->owner), auction,
MAIL_CHECK_MASK_COPIED);
}
}
开发者ID:FrenchCORE,项目名称:Server,代码行数:35,代码来源:AuctionHouseMgr.cpp
示例2: DEBUG_FILTER_LOG
void CalendarMgr::SendCalendarEventStatus(CalendarInvite const* invite)
{
DEBUG_FILTER_LOG(LOG_FILTER_CALENDAR, "SMSG_CALENDAR_EVENT_STATUS");
WorldPacket data(SMSG_CALENDAR_EVENT_STATUS, 8 + 8 + 4 + 4 + 1 + 1 + 4);
CalendarEvent const* event = invite->GetCalendarEvent();
data << invite->InviteeGuid.WriteAsPacked();
data << uint64(event->EventId);
data << secsToTimeBitFields(event->EventTime);
data << uint32(event->Flags);
data << uint8(invite->Status);
data << uint8(invite->Rank);
data << secsToTimeBitFields(invite->LastUpdateTime);
//data.hexlike();
SendPacketToAllEventRelatives(data, event);
}
开发者ID:LabGod,项目名称:server,代码行数:16,代码来源:CalendarHandler.cpp
示例3: ObjectGuid
void AuctionHouseMgr::SendAuctionSalePendingMail(AuctionEntry* auction)
{
ObjectGuid owner_guid = ObjectGuid(HIGHGUID_PLAYER, auction->owner);
Player* owner = sObjectMgr.GetPlayer(owner_guid);
// owner exist (online or offline)
if (owner || owner_guid && sObjectMgr.GetPlayerAccountIdByGUID(owner_guid))
{
std::ostringstream msgAuctionSalePendingSubject;
msgAuctionSalePendingSubject << auction->itemTemplate << ":" << auction->itemRandomPropertyId << ":" << AUCTION_SALE_PENDING;
std::ostringstream msgAuctionSalePendingBody;
uint32 auctionCut = auction->GetAuctionCut();
time_t distrTime = time(nullptr) + HOUR;
msgAuctionSalePendingBody.width(16);
msgAuctionSalePendingBody << std::right << std::hex << auction->bidder;
msgAuctionSalePendingBody << std::dec << ":" << auction->bid << ":" << auction->buyout;
msgAuctionSalePendingBody << ":" << auction->deposit << ":" << auctionCut << ":0:";
msgAuctionSalePendingBody << secsToTimeBitFields(distrTime);
DEBUG_LOG("AuctionSalePending body string : %s", msgAuctionSalePendingBody.str().c_str());
MailDraft(msgAuctionSalePendingSubject.str(), msgAuctionSalePendingBody.str())
.SendMailTo(MailReceiver(owner, owner_guid), auction, MAIL_CHECK_MASK_COPIED);
}
}
开发者ID:Pursche,项目名称:ElunaMangosTbc,代码行数:28,代码来源:AuctionHouseMgr.cpp
示例4: DEBUG_LOG
void CalendarMgr::SendCalendarEventInviteAlert(CalendarInvite const* invite)
{
DEBUG_LOG("WORLD: SMSG_CALENDAR_EVENT_INVITE_ALERT");
CalendarEvent const* event = invite->GetCalendarEvent();
if (!event)
return;
WorldPacket data(SMSG_CALENDAR_EVENT_INVITE_ALERT);
data << uint64(event->EventId);
data << event->Title;
data << secsToTimeBitFields(event->EventTime);
data << uint32(event->Flags);
data << uint32(event->Type);
data << int32(event->DungeonId);
data << uint64(invite->InviteId);
data << uint8(invite->Status);
data << uint8(invite->Rank);
data << event->CreatorGuid.WriteAsPacked();
data << invite->SenderGuid.WriteAsPacked();
//data.hexlike();
DEBUG_FILTER_LOG(LOG_FILTER_CALENDAR, "SendCalendarInviteAlert> senderGuid[%s], inviteeGuid[%s], EventId["UI64FMTD"], Status[%u], InviteId["UI64FMTD"]",
invite->SenderGuid.GetString().c_str(), invite->InviteeGuid.GetString().c_str(), event->EventId, uint32(invite->Status), invite->InviteId);
if (event->IsGuildEvent() || event->IsGuildAnnouncement())
{
if (Guild* guild = sGuildMgr.GetGuildById(event->GuildId))
guild->BroadcastPacket(&data);
}
else if (Player* player = sObjectMgr.GetPlayer(invite->InviteeGuid))
player->SendDirectMessage(&data);
}
开发者ID:LabGod,项目名称:server,代码行数:33,代码来源:CalendarHandler.cpp
示例5: MAKE_NEW_GUID
void AuctionHouseMgr::SendAuctionSalePendingMail( AuctionEntry * auction )
{
uint64 owner_guid = MAKE_NEW_GUID(auction->owner, 0, HIGHGUID_PLAYER);
Player *owner = sObjectMgr.GetPlayer(owner_guid);
// owner exist (online or offline)
if(owner || sObjectMgr.GetPlayerAccountIdByGUID(owner_guid))
{
std::ostringstream msgAuctionSalePendingSubject;
msgAuctionSalePendingSubject << auction->item_template << ":0:" << AUCTION_SALE_PENDING;
std::ostringstream msgAuctionSalePendingBody;
uint32 auctionCut = auction->GetAuctionCut();
time_t distrTime = time(NULL) + HOUR;
msgAuctionSalePendingBody.width(16);
msgAuctionSalePendingBody << std::right << std::hex << auction->bidder;
msgAuctionSalePendingBody << std::dec << ":" << auction->bid << ":" << auction->buyout;
msgAuctionSalePendingBody << ":" << auction->deposit << ":" << auctionCut << ":0:";
msgAuctionSalePendingBody << secsToTimeBitFields(distrTime);
sLog.outDebug("AuctionSalePending body string : %s", msgAuctionSalePendingBody.str().c_str());
MailDraft(msgAuctionSalePendingSubject.str(), msgAuctionSalePendingBody.str())
.SendMailTo(MailReceiver(owner,auction->owner), auction, MAIL_CHECK_MASK_AUCTION);
}
}
开发者ID:Sunshinek,项目名称:test,代码行数:28,代码来源:AuctionHouseMgr.cpp
示例6: DEBUG_LOG
void WorldSession::HandleCalendarGetCalendar(WorldPacket &/*recv_data*/)
{
DEBUG_LOG("WORLD: CMSG_CALENDAR_GET_CALENDAR"); // empty
time_t cur_time = time(NULL);
WorldPacket data(SMSG_CALENDAR_SEND_CALENDAR, 500);
// TODO: calendar invite event output
data << (uint32) 0; //invite node count
// TODO: calendar event output
data << (uint32) 0; //event count
data << (uint32) cur_time; // server time
data << (uint32) secsToTimeBitFields(cur_time); // current client time
uint32 counter = 0;
size_t p_counter = data.wpos();
data << uint32(counter); // instance save count
for(int i = 0; i < MAX_DIFFICULTY; ++i)
{
for (Player::BoundInstancesMap::const_iterator itr = _player->m_boundInstances[i].begin(); itr != _player->m_boundInstances[i].end(); ++itr)
{
if (itr->second->IsPermanent())
{
InstanceSave *save = itr->second;
data << uint32(save->GetMapId());
data << uint32(save->GetDifficulty());
data << uint32(save->GetResetTime() - cur_time);
data << uint64(save->GetObjectGuid().GetRawValue());
++counter;
}
}
}
data.put<uint32>(p_counter,counter);
data << (uint32) sWorld.getConfig(CONFIG_UINT32_INSTANCE_RESET_CONSTANT); //Raid reset time is computed from this unix time, 1135753200 on offi
p_counter = data.wpos();
counter = 0;
data << (uint32) counter; // raid resets
MapEntry const *entry = NULL;
for(uint32 i = 0; i < sMapStore.GetNumRows(); ++i)
{
entry = sMapStore.LookupEntry(i);
if(!entry || !entry->IsRaid())
continue;
data << uint32(entry->MapID);
data << uint32(GetMapDifficultyData(entry->MapID, Difficulty(0))->resetTime);
data << uint32(entry->unkTime);
++counter;
}
data.put<uint32>(p_counter,counter);
data << (uint32) 0; // holidays
SendPacket(&data);
}
开发者ID:Tasssadar,项目名称:catcore,代码行数:59,代码来源:CalendarHandler.cpp
示例7: data
void GuildAchievementMgr::SendAllAchievementData()
{
// handler at 0x8C30 (not rebased)
// Looks like only completed achievements data is sent in this packet
WorldPacket data(SMSG_GUILD_ACHIEVEMENT_DATA, m_completedAchievements.size() * 4 * 4);
data << uint32(m_completedAchievements.size());
for (CompletedAchievementMap::const_iterator iter = m_completedAchievements.begin(); iter != m_completedAchievements.end(); ++iter)
data << uint32(secsToTimeBitFields(iter->second.date));
for (CompletedAchievementMap::const_iterator iter = m_completedAchievements.begin(); iter != m_completedAchievements.end(); ++iter)
data << uint32(iter->first);
SendDirectMessageToAll(&data);
WorldPacket data2(SMSG_GUILD_CRITERIA_DATA);
data2 << uint32(m_criteriaProgress.size());
for (CriteriaProgressMap::const_iterator iter = m_criteriaProgress.begin(); iter != m_criteriaProgress.end(); ++iter)
data2 << uint64(iter->second.counter);
time_t now = time(NULL);
for (CriteriaProgressMap::const_iterator iter = m_criteriaProgress.begin(); iter != m_criteriaProgress.end(); ++iter)
data2 << uint32(now - iter->second.date);
for (CriteriaProgressMap::const_iterator iter = m_criteriaProgress.begin(); iter != m_criteriaProgress.end(); ++iter)
data2 << uint32(secsToTimeBitFields(iter->second.date));
for (CriteriaProgressMap::const_iterator iter = m_criteriaProgress.begin(); iter != m_criteriaProgress.end(); ++iter)
data2 << uint64(iter->second.counter);
for (CriteriaProgressMap::const_iterator iter = m_criteriaProgress.begin(); iter != m_criteriaProgress.end(); ++iter)
data2 << uint32(now - iter->second.date);
for (CriteriaProgressMap::const_iterator iter = m_criteriaProgress.begin(); iter != m_criteriaProgress.end(); ++iter)
data2 << uint32(iter->first);
for (CriteriaProgressMap::const_iterator iter = m_criteriaProgress.begin(); iter != m_criteriaProgress.end(); ++iter)
data2 << uint32(0); // Unk
SendDirectMessageToAll(&data2);
}
开发者ID:AwkwardDev,项目名称:Darkcore-Rebase,代码行数:44,代码来源:GuildAchievementMgr.cpp
示例8: DEBUG_FILTER_LOG
void CalendarMgr::SendCalendarEventRemovedAlert(CalendarEvent const* event)
{
DEBUG_FILTER_LOG(LOG_FILTER_CALENDAR, "SMSG_CALENDAR_EVENT_REMOVED_ALERT");
WorldPacket data(SMSG_CALENDAR_EVENT_REMOVED_ALERT, 1 + 8 + 1);
data << uint8(1); // show pending alert?
data << uint64(event->EventId);
data << secsToTimeBitFields(event->EventTime);
//data.hexlike();
SendPacketToAllEventRelatives(data, event);
}
开发者ID:HerrTrigger,项目名称:mangos-wotlk,代码行数:10,代码来源:CalendarHandler.cpp
示例9: MAKE_NEW_GUID
std::string AuctionEntry::BuildAuctionMailBody(uint32 lowGuid, uint32 bid, uint32 buyout, uint32 deposit, uint32 cut)
{
time_t distrTime = sWorld->GetGameTime() + sWorld->getIntConfig(CONFIG_MAIL_DELIVERY_DELAY);
std::ostringstream strm;
strm.width(16);
strm << std::right << std::hex << MAKE_NEW_GUID(lowGuid, 0, HIGHGUID_PLAYER); // HIGHGUID_PLAYER always present, even for empty guids
strm << std::dec << ':' << bid << ':' << buyout;
strm << ':' << deposit << ':' << cut << ":0:";
strm << secsToTimeBitFields(distrTime);
return strm.str();
}
开发者ID:tyraela,项目名称:NetherCore,代码行数:12,代码来源:AuctionHouseMgr.cpp
示例10: data
void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement)
{
sLog.outString("AchievementMgr::SendAchievementEarned(%u)", achievement->ID);
const char *msg = "|Hplayer:$N|h[$N]|h has earned the achievement $a!";
if(Guild* guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()))
{
WorldPacket data(SMSG_MESSAGECHAT, 200);
data << uint8(CHAT_MSG_ACHIEVEMENT);
data << uint8(CHAT_MSG_GUILD_ACHIEVEMENT);
data << uint32(LANG_UNIVERSAL);
data << uint64(GetPlayer()->GetGUID());
data << uint32(5);
data << uint64(GetPlayer()->GetGUID());
data << uint32(strlen(msg)+1);
data << msg;
data << uint8(0);
data << uint32(achievement->ID);
guild->BroadcastPacket(&data);
}
if(achievement->flags & (ACHIEVEMENT_FLAG_REALM_FIRST_KILL|ACHIEVEMENT_FLAG_REALM_FIRST_REACH))
{
// broadcast realm first reached
WorldPacket data(SMSG_SERVER_FIRST_ACHIEVEMENT, strlen(GetPlayer()->GetName())+1+8+4+4);
data << GetPlayer()->GetName();
data << uint64(GetPlayer()->GetGUID());
data << uint32(achievement->ID);
data << uint32(0); // 1=link supplied string as player name, 0=display plain string
sWorld.SendGlobalMessage(&data);
}
else
{
WorldPacket data(SMSG_MESSAGECHAT, 200);
data << uint8(CHAT_MSG_ACHIEVEMENT);
data << uint32(LANG_UNIVERSAL);
data << uint64(GetPlayer()->GetGUID());
data << uint32(5);
data << uint64(GetPlayer()->GetGUID());
data << uint32(strlen(msg)+1);
data << msg;
data << uint8(0);
data << uint32(achievement->ID);
GetPlayer()->SendMessageToSet(&data, true);
}
WorldPacket data(SMSG_ACHIEVEMENT_EARNED, 8+4+8);
data.append(GetPlayer()->GetPackGUID());
data << uint32(achievement->ID);
data << uint32(secsToTimeBitFields(time(NULL)));
data << uint32(0);
GetPlayer()->SendMessageToSet(&data, true);
}
开发者ID:Gweana,项目名称:mangos,代码行数:52,代码来源:AchievementMgr.cpp
示例11: BuildAllDataPacket
/**
* used by both SMSG_ALL_ACHIEVEMENT_DATA and SMSG_RESPOND_INSPECT_ACHIEVEMENT
*/
void AchievementMgr::BuildAllDataPacket(WorldPacket *data)
{
for(CompletedAchievementMap::const_iterator iter = m_completedAchievements.begin(); iter!=m_completedAchievements.end(); ++iter)
{
*data << uint32(iter->first);
*data << uint32(secsToTimeBitFields(iter->second.date));
}
*data << int32(-1);
for(CriteriaProgressMap::const_iterator iter = m_criteriaProgress.begin(); iter!=m_criteriaProgress.end(); ++iter)
{
*data << uint32(iter->first);
data->appendPackGUID(iter->second.counter);
data->append(GetPlayer()->GetPackGUID());
*data << uint32(0);
*data << uint32(secsToTimeBitFields(iter->second.date));
*data << uint32(0);
*data << uint32(0);
}
*data << int32(-1);
}
开发者ID:Gweana,项目名称:mangos,代码行数:25,代码来源:AchievementMgr.cpp
示例12: DEBUG_LOG
void CalendarMgr::SendCalendarRaidLockoutAdd(Player* player, DungeonPersistentState const* save)
{
if (!save || !player)
return;
DEBUG_LOG("SMSG_CALENDAR_RAID_LOCKOUT_ADDED [%s]", player->GetObjectGuid().GetString().c_str());
time_t currTime = time(nullptr);
WorldPacket data(SMSG_CALENDAR_RAID_LOCKOUT_ADDED, 4 + 4 + 4 + 4 + 8);
data << secsToTimeBitFields(currTime);
data << uint32(save->GetMapId());
data << uint32(save->GetDifficulty());
data << uint32(save->GetResetTime() - currTime);
data << uint64(save->GetInstanceId());
//data.hexlike();
player->SendDirectMessage(&data);
}
开发者ID:HerrTrigger,项目名称:mangos-wotlk,代码行数:17,代码来源:CalendarHandler.cpp
示例13: time
void WorldSession::HandleCalendarGetCalendar(WorldPacket &recv_data)
{
sLog.outDebug("WORLD: CMSG_CALENDAR_GET_CALENDAR");
recv_data.hexlike();
time_t cur_time = time(NULL);
WorldPacket data(SMSG_CALENDAR_SEND_CALENDAR,4+4*0+4+4*0+4+4);
// TODO: calendar invite event output
data << (uint32) 0; //invite node count
// TODO: calendar event output
data << (uint32) 0; //event count
data << (uint32) 0; //wtf??
data << (uint32) secsToTimeBitFields(cur_time); // current time
uint32 counter = 0;
size_t p_counter = data.wpos();
data << uint32(counter); // instance save count
for(int i = 0; i < TOTAL_DIFFICULTIES; ++i)
{
for (Player::BoundInstancesMap::const_iterator itr = _player->m_boundInstances[i].begin(); itr != _player->m_boundInstances[i].end(); ++itr)
{
if(itr->second.perm)
{
InstanceSave *save = itr->second.save;
data << uint32(save->GetMapId());
data << uint32(save->GetDifficulty());
data << uint32(save->GetResetTime() - cur_time);
data << uint64(save->GetInstanceId()); // instance save id as unique instance copy id
++counter;
}
}
}
data.put<uint32>(p_counter,counter);
data << (uint32) 1135753200; //wtf?? (28.12.2005 12:00)
data << (uint32) 0; // unk counter 4
data << (uint32) 0; // unk counter 5
//sLog.outDebug("Sending calendar");
//data.hexlike();
SendPacket(&data);
}
开发者ID:madhatternc,项目名称:QuaDCore,代码行数:45,代码来源:CalendarHandler.cpp
示例14: DEBUG_LOG
void WorldSession::HandleGuildInfoOpcode(WorldPacket& /*recvPacket*/)
{
DEBUG_LOG("WORLD: Received opcode CMSG_GUILD_INFO");
Guild* guild = sGuildMgr.GetGuildById(GetPlayer()->GetGuildId());
if (!guild)
{
SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD);
return;
}
WorldPacket data(SMSG_GUILD_INFO, (guild->GetName().size() + 4 + 4 + 4));
data << guild->GetName();
data << uint32(secsToTimeBitFields(guild->GetCreatedDate())); // 3.x (prev. day + month + year)
data << uint32(guild->GetMemberSize()); // amount of chars
data << uint32(guild->GetAccountsNumber()); // amount of accounts
SendPacket(&data);
}
开发者ID:Chuck5ta,项目名称:server-3,代码行数:18,代码来源:GuildHandler.cpp
示例15: secsToTimeBitFields
// remove all invite sending ingame mail
void CalendarEvent::RemoveAllInvite(ObjectGuid const& removerGuid)
{
// build mail title
std::ostringstream title;
title << removerGuid << ':' << Title;
// build mail body
std::ostringstream body;
body << secsToTimeBitFields(time(NULL));
// creating mail draft
MailDraft draft(title.str(), body.str());
CalendarInviteMap::iterator itr = m_Invitee.begin();
while (itr != m_Invitee.end())
{
if (removerGuid != itr->second->InviteeGuid)
draft.SendMailTo(MailReceiver(itr->second->InviteeGuid), this, MAIL_CHECK_MASK_COPIED);
RemoveInviteByItr(itr++);
}
}
开发者ID:OrAlien,项目名称:server,代码行数:22,代码来源:Calendar.cpp
示例16: time
void WorldSession::HandleCalendarGetCalendar(WorldPacket& recv_data)
{
time_t cur_time = time(NULL);
WorldPacket data(SMSG_CALENDAR_SEND_CALENDAR, 4+4*0+4+4*0+4+4);
// TODO: calendar invite event output
// TODO: calendar event output
data << uint32(0); // invite node count
data << uint32(0); // event count
data << uint32(0);
data << uint32(secsToTimeBitFields(cur_time)); // current time
uint32 count = 0;
size_t p_count = data.wpos();
data << uint32(count); // Calender shit.
data.put<uint32>(p_count,count);
data << uint32(1135753200); // Unix Time for when calendars started?
data << uint32(0); // unk counter 4
data << uint32(0); // unk counter 5
SendPacket(&data);
}
开发者ID:arcticdev,项目名称:arctic-test,代码行数:22,代码来源:CalendarHandler.cpp
示例17: time_t
void WorldSession::HandleCalendarGetCalendar(WorldPacket& /*recvData*/)
{
uint64 guid = _player->GetGUID();
sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_CALENDAR_GET_CALENDAR [" UI64FMTD "]", guid);
time_t cur_time = time_t(time(NULL));
sLog->outDebug(LOG_FILTER_NETWORKIO, "SMSG_CALENDAR_SEND_CALENDAR [" UI64FMTD "]", guid);
WorldPacket data(SMSG_CALENDAR_SEND_CALENDAR, 1000); // Impossible to get the correct size without doing a double iteration of some elements
CalendarInviteIdList const& invites = sCalendarMgr->GetPlayerInvites(guid);
data << uint32(invites.size());
for (CalendarInviteIdList::const_iterator it = invites.begin(); it != invites.end(); ++it)
{
CalendarInvite* invite = sCalendarMgr->GetInvite(*it);
CalendarEvent* calendarEvent = invite ? sCalendarMgr->GetEvent(invite->GetEventId()) : NULL;
if (calendarEvent)
{
data << uint64(invite->GetEventId());
data << uint64(invite->GetInviteId());
data << uint8(invite->GetStatus());
data << uint8(invite->GetRank());
data << uint8(calendarEvent->GetGuildId() != 0);
data.appendPackGUID(calendarEvent->GetCreatorGUID());
}
else
{
sLog->outError("SMSG_CALENDAR_SEND_CALENDAR: No Invite found with id [" UI64FMTD "]", *it);
data << uint64(0) << uint64(0) << uint8(0) << uint8(0);
data.appendPackGUID(0);
}
}
CalendarEventIdList const& events = sCalendarMgr->GetPlayerEvents(guid);
data << uint32(events.size());
for (CalendarEventIdList::const_iterator it = events.begin(); it != events.end(); ++it)
{
if (CalendarEvent* calendarEvent = sCalendarMgr->GetEvent(*it))
{
data << uint64(*it);
data << calendarEvent->GetTitle().c_str();
data << uint32(calendarEvent->GetType());
data << uint32(calendarEvent->GetTime());
data << uint32(calendarEvent->GetFlags());
data << uint32(calendarEvent->GetDungeonId());
data.appendPackGUID(calendarEvent->GetCreatorGUID());
}
else
{
sLog->outError("SMSG_CALENDAR_SEND_CALENDAR: No Event found with id [" UI64FMTD "]", *it);
data << uint64(0) << uint8(0) << uint32(0)
<< uint32(0) << uint32(0) << uint32(0);
data.appendPackGUID(0);
}
}
data << uint32(cur_time); // server time
data << uint32(secsToTimeBitFields(cur_time)); // server time
uint32 counter = 0;
size_t p_counter = data.wpos();
data << uint32(counter); // instance save count
for (uint8 i = 0; i < MAX_DIFFICULTY; ++i)
for (Player::BoundInstancesMap::const_iterator itr = _player->_boundInstances[i].begin(); itr != _player->_boundInstances[i].end(); ++itr)
if (itr->second.perm)
{
InstanceSave const* save = itr->second.save;
data << uint32(save->GetMapId());
data << uint32(save->GetDifficulty());
data << uint32(save->GetResetTime() - cur_time);
data << uint64(save->GetInstanceId()); // instance save id as unique instance copy id
++counter;
}
data.put<uint32>(p_counter, counter);
data << uint32(1135753200); // unk (28.12.2005 07:00)
counter = 0;
p_counter = data.wpos();
data << uint32(counter); // raid reset count
std::set<uint32> sentMaps;
ResetTimeByMapDifficultyMap const& resets = sInstanceSaveMgr->GetResetTimeMap();
for (ResetTimeByMapDifficultyMap::const_iterator itr = resets.begin(); itr != resets.end(); ++itr)
{
uint32 mapId = PAIR32_LOPART(itr->first);
if (sentMaps.find(mapId) != sentMaps.end())
continue;
MapEntry const* mapEntry = sMapStore.LookupEntry(mapId);
if (!mapEntry || !mapEntry->IsRaid())
continue;
sentMaps.insert(mapId);
//.........这里部分代码省略.........
开发者ID:16898500,项目名称:SkyFireEMU,代码行数:101,代码来源:CalendarHandler.cpp
示例18: time
void WorldSession::HandleCalendarGetCalendar(WorldPacket & /*recv_data*/)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_CALENDAR_GET_CALENDAR"); // empty
time_t cur_time = time(NULL);
WorldPacket data(SMSG_CALENDAR_SEND_CALENDAR, 4+4*0+4+4*0+4+4);
data << uint32(0); // invite count
/*
for (;;)
{
uint64 inviteId;
uint64 unkGuid0;
uint8 unk1, unk2, unk3;
uint64 creatorGuid;
}
*/
data << uint32(0); // event count
/*
for (;;)
{
uint64 eventId;
std::string title; // 128 chars
uint32 type;
uint32 occurrenceTime;
uint32 flags;
uint32 unk4; -- possibly mapid for dungeon/raid
uint64 creatorGuid;
}
*/
data << uint32(0); // unk
data << uint32(secsToTimeBitFields(cur_time)); // current time
uint32 counter = 0;
size_t p_counter = data.wpos();
data << uint32(counter); // instance save count
for (int i = 0; i < MAX_DIFFICULTY; ++i)
{
for (Player::BoundInstancesMap::const_iterator itr = _player->m_boundInstances[i].begin(); itr != _player->m_boundInstances[i].end(); ++itr)
{
if (itr->second.perm)
{
InstanceSave *save = itr->second.save;
data << uint32(save->GetMapId());
data << uint32(save->GetDifficulty());
data << uint32(save->GetResetTime() - cur_time);
data << uint64(save->GetInstanceId()); // instance save id as unique instance copy id
++counter;
}
}
}
data.put<uint32>(p_counter, counter);
data << uint32(1135753200); // unk (28.12.2005 12:00)
counter = 0;
p_counter = data.wpos();
data << uint32(counter); // raid reset count
ResetTimeByMapDifficultyMap const& resets = sInstanceSaveMgr->GetResetTimeMap();
for (ResetTimeByMapDifficultyMap::const_iterator itr = resets.begin(); itr != resets.end(); ++itr)
{
uint32 mapid = PAIR32_LOPART(itr->first);
MapEntry const* mapEnt = sMapStore.LookupEntry(mapid);
if (!mapEnt || !mapEnt->IsRaid())
continue;
data << uint32(mapid);
data << uint32(itr->second - cur_time);
data << uint32(mapEnt->unk_time);
++counter;
}
data.put<uint32>(p_counter, counter);
data << uint32(0); // holiday count?
/*
for (;;)
{
uint32 unk5, unk6, unk7, unk8, unk9;
for (uint32 j = 0; j < 26; ++j)
{
uint32 unk10;
}
for (uint32 j = 0; j < 10; ++j)
{
uint32 unk11;
}
for (uint32 j = 0; j < 10; ++j)
{
uint32 unk12;
}
std::string holidayName; // 64 chars
}
*/
//.........这里部分代码省略.........
开发者ID:Bootz,项目名称:Singularity,代码行数:101,代码来源:CalendarHandler.cpp
示例19: DEBUG_LOG
void WorldSession::HandleCalendarGetCalendar(WorldPacket &/*recv_data*/)
{
DEBUG_LOG("WORLD: CMSG_CALENDAR_GET_CALENDAR"); // empty
time_t cur_time = time(NULL);
WorldPacket data(SMSG_CALENDAR_SEND_CALENDAR,4+4*0+4+4*0+4+4);
// TODO: calendar invite event output
data << (uint32) 0; //invite node count
// TODO: calendar event output
data << (uint32) 0; //event count
data << uint32(cur_time); // current time, unix timestamp
data << uint32(secsToTimeBitFields(cur_time)); // current time, time bit fields
uint32 counter = 0;
size_t p_counter = data.wpos();
data << uint32(counter); // instance state count
for(int i = 0; i < MAX_DIFFICULTY; ++i)
{
for (Player::BoundInstancesMap::const_iterator itr = _player->m_boundInstances[i].begin(); itr != _player->m_boundInstances[i].end(); ++itr)
{
if(itr->second.perm)
{
DungeonPersistentState *state = itr->second.state;
data << uint32(state->GetMapId());
data << uint32(state->GetDifficulty());
data << uint32(state->GetResetTime() - cur_time);
data << ObjectGuid(state->GetInstanceGuid());
++counter;
}
}
}
data.put<uint32>(p_counter,counter);
data << uint32(INSTANCE_RESET_SCHEDULE_START_TIME + sWorld.getConfig(CONFIG_UINT32_INSTANCE_RESET_TIME_HOUR) * HOUR);
counter = 0;
p_counter = data.wpos();
data << uint32(counter); // Instance reset intervals
for(MapDifficultyMap::const_iterator itr = sMapDifficultyMap.begin(); itr != sMapDifficultyMap.end(); ++itr)
{
MapDifficultyEntry const* mapDiff = itr->second;
if(!mapDiff || mapDiff->resetTime == 0)
continue;
const MapEntry* map = sMapStore.LookupEntry(mapDiff->MapId);
if(!map || !map->IsRaid())
continue;
uint32 period = uint32(mapDiff->resetTime / DAY * sWorld.getConfig(CONFIG_FLOAT_RATE_INSTANCE_RESET_TIME)) * DAY;
if (period < DAY)
period = DAY;
data << uint32(mapDiff->MapId);
data << uint32(period);
data << uint32(mapDiff->resetTime);
++counter;
}
data.put<uint32>(p_counter,counter);
data << (uint32) 0; // unk counter 5
//DEBUG_LOG("Sending calendar");
//data.hexlike();
SendPacket(&data);
}
开发者ID:Heuristicks,项目名称:core,代码行数:68,代码来源:CalendarHandler.cpp
注:本文中的secsToTimeBitFields函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论