Bgames
Olá visitante! Seja bem vindo ao nosso fórum!

Para você ter total acesso ao nosso fórum é preciso que você se cadastre.

Cadastre-se Aqui!


PARA VER LINKS E IMAGENS É PRECISO SE REGISTRAR!

[C++]Chat Personalizado

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[C++]Chat Personalizado

Mensagem por Erictemponi em Seg 1 Out 2012 - 12:22

Eu percebi que havia algumas pessoas que poderiam querer algo assim para o seu servidor, então eu decidi compartilhá-lo aqui. Mostra se o jogador está falando horda ou aliança ou também irá exibir se eles são um Mod / GM / Admin. Basta digitar: .chat e sua mensagem depois. Testado e trabalhando em 3.3.5a TrinityCore. O roteiro foi despojado de algum código redundante e agora apenas lida com os níveis de segurança padrão.

Jogador: [Horde] ou [Aliança]
Moderador Trial / GM: [Mod]
Gamemaster: [GM]
Administrador: [Admin]

Alterações recentes:
Adicionado uma verificação para ver se o jogador é silenciado e também para verificar se a mensagem contém apenas caracteres vazios (espaços)
Adicionado "Links nome" para o bate-papo para que os jogadores podem clicar sobre os nomes e ser capaz de sussurrar-los.
Adicionado cores de classe para os nomes
Foi adicionada uma pequena configuração de modo que as mensagens são apenas transmitidos aos da mesma facção. Se você deseja que este seja ativado, mude FACTION_SPECIFIC a 1 em vez de 0

Código:
#include "ScriptPCH.h"
#include "Chat.h"

#define FACTION_SPECIFIC 0

std::string GetNameLink(Player* player)
{
   std::string name = player->GetName();
   std::string color;
   switch(player->getClass())
   {
   case CLASS_DEATH_KNIGHT:
      color = "|cffC41F3B";
      break;
   case CLASS_DRUID:
      color = "|cffFF7D0A";
      break;
   case CLASS_HUNTER:
      color = "|cffABD473";
      break;
   case CLASS_MAGE:
      color = "|cff69CCF0";
      break;
   case CLASS_PALADIN:
      color = "|cffF58CBA";
      break;
   case CLASS_PRIEST:
      color = "|cffFFFFFF";
      break;
   case CLASS_ROGUE:
      color = "|cffFFF569";
      break;
   case CLASS_SHAMAN:
      color = "|cff0070DE";
      break;
   case CLASS_WARLOCK:
      color = "|cff9482C9";
      break;
   case CLASS_WARRIOR:
      color = "|cffC79C6E";
      break;
   }
   return "|Hplayer:"+name+"|h|cffFFFFFF["+color+name+"|cffFFFFFF]|h|r";
}

class cs_world_chat : public CommandScript
{
   public:
      cs_world_chat() : CommandScript("cs_world_chat"){}

   ChatCommand * GetCommands() const
   {
      static ChatCommand WorldChatCommandTable[] =
      {
         {"chat",   SEC_PLAYER,      true,      &HandleWorldChatCommand,   "", NULL},
         {NULL,      0,            false,      NULL,                  "", NULL}
      };

      return WorldChatCommandTable;
   }

   static bool HandleWorldChatCommand(ChatHandler * handler, const char * args)
   {
      if (!handler->GetSession()->GetPlayer()->CanSpeak())
         return false;
      std::string temp = args;

      if (!args || temp.find_first_not_of(' ') == std::string::npos)
         return false;

      std::string msg = "";
      Player * player = handler->GetSession()->GetPlayer();

      switch(player->GetSession()->GetSecurity())
      {
         // Player
         case SEC_PLAYER:
            if (player->GetTeam() == ALLIANCE)
            {
               msg += "|cff0000ff[Alliance] ";
               msg += GetNameLink(player);
               msg += " |cfffaeb00";
            }

            else
            {
               msg += "|cffff0000[Horde] ";
               msg += GetNameLink(player);
               msg += " |cfffaeb00";
            }
            break;
         // Moderator/trial
         case SEC_MODERATOR:
            msg += "|cffff8a00[Mod] ";
            msg += GetNameLink(player);
            msg += " |cfffaeb00";
            break;
         // GM
         case SEC_GAMEMASTER:
            msg += "|cff00ffff[GM] ";
            msg += GetNameLink(player);
            msg += " |cfffaeb00";
            break;
         // Admin
         case SEC_ADMINISTRATOR:
            msg += "|cfffa9900[Admin] ";
            msg += GetNameLink(player);
            msg += " |cfffaeb00";
            break;

      }
         
      msg += args;
      if (FACTION_SPECIFIC)
      {
         SessionMap sessions = sWorld->GetAllSessions();
         for (SessionMap::iterator itr = sessions.begin(); itr != sessions.end(); ++itr)
            if (Player* plr = itr->second->GetPlayer())
               if (plr->GetTeam() == player->GetTeam())
                  sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), plr);
      }
      else
         sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), 0);   

      return true;
   }
};

void AddSC_cs_world_chat()
{
   new cs_world_chat();
}

pastebin

Créditos: Parranoia e Erictemponi

Erictemponi


Mensagens : 1825
Pontos : 7296
Evolução : 2


Ver perfil do usuário http://www.fury-share.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por matheuscgd em Seg 1 Out 2012 - 15:30

É impressao minha ou ja tem isso postado aquui?

matheuscgd


Mensagens : 184
Pontos : 707

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por Padre em Sab 6 Out 2012 - 16:28

Aparece essas tag's antes dos nomes ?

Padre


Mensagens : 144
Pontos : 468

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por alissonxdd em Sab 6 Out 2012 - 17:12

Sijm, aparece as Tags e a cor da letra a cada tipo de player

alissonxdd


Mensagens : 23
Pontos : 60

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por Padre em Sab 6 Out 2012 - 17:45

No chat ingame?Pode mandar css

Padre


Mensagens : 144
Pontos : 468

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por alissonxdd em Sab 6 Out 2012 - 17:46

Manow, segue o que se diz no inicio do tópico que da certo, css é pra site essas coisas, isso ae é pra wow

alissonxdd


Mensagens : 23
Pontos : 60

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por Padre em Sab 6 Out 2012 - 17:49

Quando falei CSS queria dizer no Print screen

Padre


Mensagens : 144
Pontos : 468

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por terror24 em Qua 10 Out 2012 - 5:41

otimo c++ eu utilizo ele em meu servidor porem ele tem um pequeno problema
Nao tem mute :S

jah passei alguns sufoco com muleque divulgando no .chat

Sera que seria possivel adicionar mute nele?
Eu encontrei um na ac web que dizia ter
mas nao tem tbm! :S +rep

terror24


Mensagens : 147
Pontos : 529

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por Erictemponi em Qua 10 Out 2012 - 10:33

Adiciona o Mute automático no worldserver.conf
que ae se ele falar de mais em qualquer tipo de chat? say, yell, party, battleground, world, global, etc.
Ele toma mute em qualquer um

Erictemponi


Mensagens : 1825
Pontos : 7296
Evolução : 2


Ver perfil do usuário http://www.fury-share.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por WoWCore em Qua 10 Out 2012 - 11:23

se desejar, esse tem mute.
[Você precisa estar registrado e conectado para ver este link.]

até +

WoWCore


Mensagens : 619
Pontos : 2179
Evolução : 5


Ver perfil do usuário http://www.mthsena.info

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por Padre em Qua 10 Out 2012 - 11:35

Alguem pode me mandar um print screen de como fica ?

Padre


Mensagens : 144
Pontos : 468

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por tudoloko em Seg 14 Abr 2014 - 19:54

Amanha irei testar  obg por compartilhar

tudoloko


Mensagens : 85
Pontos : 448

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por SkyLiner em Seg 14 Abr 2014 - 19:56

Ola,
Aconselho a utilizar este [Você precisa estar registrado e conectado para ver este link.]

SkyLiner


Mensagens : 1294
Pontos : 2591

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [C++]Chat Personalizado

Mensagem por Conteúdo patrocinado Hoje à(s) 10:33


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum