本文整理汇总了C++中WorldPacket::ReadString方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldPacket::ReadString方法的具体用法?C++ WorldPacket::ReadString怎么用?C++ WorldPacket::ReadString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldPacket
的用法示例。
在下文中一共展示了WorldPacket::ReadString方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleLfgSetCommentOpcode
void WorldSession::HandleLfgSetCommentOpcode(WorldPacket& recvData)
{
std::string comment = recvData.ReadString(recvData.ReadBits(9));
sLog.outDebug("CMSG_LFG_SET_COMMENT %s comment: %s",
_player->GetGuidStr().c_str(), comment.c_str());
sLFGMgr.SetComment(_player->GetObjectGuid(), comment);
}
示例2: HandleChannelUnban
void WorldSession::HandleChannelUnban(WorldPacket& recvPacket)
{
uint32 channelLength = recvPacket.ReadBits(7);
uint32 nameLength = recvPacket.ReadBits(8);
std::string targetName = recvPacket.ReadString(nameLength);
std::string channelName = recvPacket.ReadString(channelLength);
TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_UNBAN %s Channel: %s, Target: %s",
GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
if (!normalizePlayerName(targetName))
return;
if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
channel->UnBan(GetPlayer(), targetName);
}
示例3: HandleChannelKick
void WorldSession::HandleChannelKick(WorldPacket& recvPacket)
{
uint32 channelLength = recvPacket.ReadBits(8);
uint32 nameLength = recvPacket.ReadBits(7);
std::string channelName = recvPacket.ReadString(channelLength);
std::string targetName = recvPacket.ReadString(nameLength);
sLog->outDebug(LOG_FILTER_CHATSYS, "CMSG_CHANNEL_KICK %s Channel: %s, Target: %s",
GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str());
if (!normalizePlayerName(targetName))
return;
if (ChannelMgr* cMgr = ChannelMgr::forTeam(GetPlayer()->GetTeam()))
if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer()))
channel->Kick(GetPlayer(), targetName);
}
示例4: HandleGuildMOTDOpcode
void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket)
{
uint32 motdLength = recvPacket.ReadBits(11);
std::string motd = recvPacket.ReadString(motdLength);
TC_LOG_DEBUG("guild", "CMSG_GUILD_MOTD [%s]: MOTD: %s", GetPlayerInfo().c_str(), motd.c_str());
if (Guild* guild = GetPlayer()->GetGuild())
guild->HandleSetMOTD(this, motd);
}
示例5: HandleChannelDisplayListQueryOpcode
void WorldSession::HandleChannelDisplayListQueryOpcode(WorldPacket &recvPacket)
{
DEBUG_LOG("WORLD: Received opcode %s (%u, 0x%X)", recvPacket.GetOpcodeName(), recvPacket.GetOpcode(), recvPacket.GetOpcode());
// recvPacket.hexlike();
std::string channelname = recvPacket.ReadString(recvPacket.ReadBits(8));
if(ChannelMgr* cMgr = channelMgr(_player->GetTeam()))
if(Channel *chn = cMgr->GetChannel(channelname, _player))
chn->List(_player);
}
示例6: HandleJoinChannel
void WorldSession::HandleJoinChannel(WorldPacket& recvPacket)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
uint32 channelId;
uint32 channelLength, passLength;
std::string channelName, pass;
recvPacket >> channelId;
recvPacket.ReadBit(); // unknowns
channelLength = recvPacket.ReadBits(7);
channelLength <<= 1;
channelLength += recvPacket.ReadBit(); //If it's an odd length.
passLength = recvPacket.ReadBits(7);
passLength <<= 1;
passLength += recvPacket.ReadBit();
recvPacket.FlushBits();
channelName = recvPacket.ReadString(channelLength);
pass = recvPacket.ReadString(passLength);
if (channelId)
{
ChatChannelsEntry const* channel = sChatChannelsStore.LookupEntry(channelId);
if (!channel)
return;
AreaTableEntry const* current_zone = GetAreaEntryByAreaID(_player->GetZoneId());
if (!current_zone)
return;
if (!_player->CanJoinConstantChannelInZone(channel, current_zone))
return;
}
if (channelName.empty())
return;
if (ChannelMgr* cMgr = channelMgr(_player->GetTeam()))
{
cMgr->team = _player->GetTeam();
if (Channel* chn = cMgr->GetJoinChannel(channelName, channelId))
chn->Join(_player->GetGUID(), pass.c_str());
}
}
示例7: HandleLfgSetCommentOpcode
void WorldSession::HandleLfgSetCommentOpcode(WorldPacket& recvData)
{
uint32 length = recvData.ReadBits(9);
std::string comment = recvData.ReadString(length);
TC_LOG_DEBUG("lfg", "CMSG_LFG_SET_COMMENT %s comment: %s",
GetPlayerInfo().c_str(), comment.c_str());
sLFGMgr->SetComment(GetPlayer()->GetGUID(), comment);
}
示例8: HandleGuildMOTDOpcode
void WorldSession::HandleGuildMOTDOpcode(WorldPacket& recvPacket)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_MOTD");
uint32 motdLength = recvPacket.ReadBits(10);
std::string motd = recvPacket.ReadString(motdLength);
if (Guild* guild = _GetPlayerGuild(this, true))
guild->HandleSetMOTD(this, motd);
}
示例9: HandleGuildInviteOpcode
void WorldSession::HandleGuildInviteOpcode(WorldPacket& recvPacket)
{
uint32 nameLength = recvPacket.ReadBits(7);
std::string invitedName = recvPacket.ReadString(nameLength);
sLog->outDebug(LOG_FILTER_GUILD, "CMSG_GUILD_INVITE [%s]: Invited: %s", GetPlayerInfo().c_str(), invitedName.c_str());
if (normalizePlayerName(invitedName))
if (Guild* guild = GetPlayer()->GetGuild())
guild->HandleInviteMember(this, invitedName);
}
示例10: HandleChannelPassword
void WorldSession::HandleChannelPassword(WorldPacket& recvPacket)
{
time_t now = time(NULL);
if (now - timeLastChannelPassCommand < 5)
return;
else
timeLastChannelPassCommand = now;
sLog->outDebug(LOG_FILTER_NETWORKIO, "Opcode %u", recvPacket.GetOpcode());
uint32 nameLength = recvPacket.ReadBits(8);
uint32 passLength = recvPacket.ReadBits(7);
std::string channelname = recvPacket.ReadString(nameLength);
std::string pass = recvPacket.ReadString(passLength);
if (ChannelMgr* cMgr = channelMgr(_player->GetTeam()))
if (Channel* chn = cMgr->GetChannel(channelname, _player))
chn->Password(_player->GetGUID(), pass.c_str());
}
示例11: HandleGuildChangeInfoTextOpcode
void WorldSession::HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket)
{
uint32 length = recvPacket.ReadBits(12);
std::string info = recvPacket.ReadString(length);
sLog->outDebug(LOG_FILTER_GUILD, "CMSG_GUILD_INFO_TEXT [%s]: %s", GetPlayerInfo().c_str(), info.c_str());
if (Guild* guild = GetPlayer()->GetGuild())
guild->HandleSetInfo(this, info);
}
示例12: HandleGuildChangeInfoTextOpcode
void WorldSession::HandleGuildChangeInfoTextOpcode(WorldPacket& recvPacket)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_INFO_TEXT");
uint32 length = recvPacket.ReadBits(11);
std::string info = recvPacket.ReadString(length);
if (Guild* guild = _GetPlayerGuild(this, true))
guild->HandleSetInfo(this, info);
}
示例13: HandleChannelUnbanOpcode
void WorldSession::HandleChannelUnbanOpcode(WorldPacket& recvPacket)
{
DEBUG_LOG("WORLD: Received opcode %s (%u, 0x%X)", recvPacket.GetOpcodeName(), recvPacket.GetOpcode(), recvPacket.GetOpcode());
// recvPacket.hexlike();
uint32 channelLen, nameLen;
std::string channelname, otp;
nameLen = recvPacket.ReadBits(7);
channelLen = recvPacket.ReadBits(8);
otp = recvPacket.ReadString(nameLen);
channelname = recvPacket.ReadString(channelLen);
if (!normalizePlayerName(otp))
return;
if (ChannelMgr* cMgr = channelMgr(_player->GetTeam()))
if (Channel* chn = cMgr->GetChannel(channelname, _player))
chn->UnBan(_player->GetObjectGuid(), otp.c_str());
}
示例14: HandleGuildRankOpcode
void WorldSession::HandleGuildRankOpcode(WorldPacket& recvPacket)
{
std::string rankname;
uint32 rankId;
uint32 rights, MoneyPerDay;
DEBUG_LOG("WORLD: Received opcode CMSG_GUILD_RANK");
Guild* guild = sGuildMgr.GetGuildById(GetPlayer()->GetGuildId());
if (!guild)
{
recvPacket.rfinish(); // set to end to avoid warnings spam
SendGuildCommandResult(GUILD_CREATE_S, "", ERR_GUILD_PLAYER_NOT_IN_GUILD);
return;
}
if (GetPlayer()->GetObjectGuid() != guild->GetLeaderGuid())
{
recvPacket.rfinish(); // set to end to avoid warnings spam
SendGuildCommandResult(GUILD_INVITE_S, "", ERR_GUILD_PERMISSIONS);
return;
}
recvPacket >> Unused<uint32>(); // unk
recvPacket >> Unused<uint32>(); // old rights
recvPacket >> rights;
uint32 BankRights[GUILD_BANK_MAX_TABS];
uint32 BankSlotPerDay[GUILD_BANK_MAX_TABS];
for (int i = 0; i < GUILD_BANK_MAX_TABS; ++i)
{
recvPacket >> BankRights[i];
recvPacket >> BankSlotPerDay[i];
}
recvPacket >> MoneyPerDay;
recvPacket >> rankId;
rankname = recvPacket.ReadString(recvPacket.ReadBits(7));
DEBUG_LOG("WORLD: Changed RankName to %s , Rights to 0x%.4X", rankname.c_str(), rights);
for (int i = 0; i < GUILD_BANK_MAX_TABS; ++i)
guild->SetBankRightsAndSlots(rankId, uint8(i), uint16(BankRights[i] & 0xFF), uint16(BankSlotPerDay[i]), true);
guild->SetBankMoneyPerDay(rankId, MoneyPerDay);
guild->SetRankName(rankId, rankname);
if (rankId == GR_GUILDMASTER) // prevent loss leader rights
rights = GR_RIGHT_ALL;
guild->SetRankRights(rankId, rights);
guild->Query(this);
guild->Roster(); // broadcast for tab rights update
}
示例15: HandleGuildInviteOpcode
void WorldSession::HandleGuildInviteOpcode(WorldPacket& recvPacket)
{
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: Received CMSG_GUILD_INVITE");
uint32 nameLength = recvPacket.ReadBits(9);
std::string invitedName = recvPacket.ReadString(nameLength);
if (normalizePlayerName(invitedName))
if (Guild* guild = _GetPlayerGuild(this, true))
guild->HandleInviteMember(this, invitedName);
}