//PM
void PlayerManager::ChatSendChannel(long GameID, char * Channel, char * Message)
{
    if (Message && Channel)
    {
        // Find sender's name
        Player * s = GetPlayer(GameID);
		Player * p = (0);

		char FName[40];

		GetPostFix(s, FName, 40);

        if (s)
        {
			m_Mutex.Lock();
			while (GetNextPlayerOnList(p, m_GlobalPlayerList))
			{
				if (p->Active())
				{
					p->SendClientChatEvent(0x03, 0x00, FName, FName, Channel, Message);
				}
			}
			m_Mutex.Unlock();
        }
    }
}
void PlayerManager::ChatSendEveryone(long GameID, char *message, bool copy_to_originator)
{
    if (message)
    {
        // Find sender's name
        Player * s = GetPlayer(GameID);
		Player * p = (0);

		char FName[40];

        if (!s)
        {
            return;
        }

		GetPostFix(s, FName, 40);

        if (s)
        {
			char Channel[] = "Broadcast";		// Channel

			while (GetNextPlayerOnList(p, m_GlobalPlayerList))
			{
				if ((p->GameID() != GameID) || copy_to_originator) //only send to originating player if directed to.
				{
					p->SendClientChatEvent(0x03, 0x00, FName, FName, Channel, message);
				}
			}
        }
    }
}
//PM
void PlayerManager::ChatSendChannel(long GameID, char * Channel, char * Message)
{
    if (Message && Channel)
    {
        // Find sender's name
        Player * s = GetPlayer(GameID);
		Player * p = (0);

		char FName[40];

		GetPostFix(s, FName, 40);
		long channel_id = GetChannelFromName(Channel);

        if (s)
        {
			while (GetNextPlayerOnList(p, m_GlobalPlayerList))   
			{			
				if (p->Active() && p->IsSubscribed(channel_id))
				{
					p->SendClientChatEvent(0x03, 0x00, FName, FName, Channel, Message);
				}
			}
        }
    }
}
//PM
void PlayerManager::ChatSendPrivate(long GameID, char * Nick, char * Message)
{
    if (Nick && Message)
    {
        Player * p_list = (0);
        bool FoundPlayer = false;
		char Channel[] = "Private";

		if (Nick[0] == 0) return;

        Player * p = GetPlayer(GameID);

		char FName[40];

		GetPostFix(p, FName, 40);
        
        if (p)
        {
            while (GetNextPlayerOnList(p_list, m_GlobalPlayerList))  
			{
                if (!_stricmp(p_list->Name(), Nick))
                {
                    p_list->SendClientChatEvent(0x03, 0x00, FName, FName, Channel, Message);
                    FoundPlayer = true;
                    break;
                }
            }
            
            if (!FoundPlayer)
            {
                p->SendVaMessageC(17, "%s is not currently online", Nick);
            }
        }

        if (FoundPlayer)
        {
            LogChatMsg("tell> %s \"%s\"\n", Nick, Message);
        }
    }
}
Ejemplo n.º 5
0
void id::AddPostFix(festring& String) const
{
  if(GetPostFix().GetSize())
    String << ' ' << GetPostFix();
}