All pastes #614916 Raw Edit

Mine

public text v1 · immutable
·published 2007-07-11 21:09 UTC
rendered paste body
void World::SendWorldMessage(const char *channel, std::string chat, uint64 guid, WorldSession *self)
{
    /*
        Why is this function needed?
        tobe able to send a message you need a valid ingame GUID
        snce the IRC client isnt logged in we cant properly send message
        or it would result in non existing players
        also i didnt manage to figure out how to get the sessions in my own clas
        so this function was born
    */
    SessionMap::iterator itr;
    for (itr = m_sessions.begin(); itr != m_sessions.end(); itr++)
    {
        // Loop thru all online sessions
        if (itr->second && itr->second->GetPlayer() && itr->second->GetPlayer()->IsInWorld() && itr->second != self)
        {
            // check if the player is in the world
            if(ChannelMgr* cMgr = channelMgr(itr->second->GetPlayer()->GetTeam()))
            {
                // check if the player is grouped
                if(Channel *chn = cMgr->GetChannel(channel, itr->second->GetPlayer()))
                {
                    // if the player is on our channel

                    WorldPacket data;

		    data.Initialize(SMSG_MESSAGECHAT);
		    data << (uint8)14;
                    data << (uint32)0;
                    data << guid;
                    data << (uint32)0;
                    data << channel;
                    data << guid;
                    data << (uint32) (strlen(chat.c_str()) + 1);
                    data << chat.c_str();
                    data << (uint8)0;

                    itr->second->SendPacket(&data);
                }
            }
        }
    }
}