Advertisement
Guest User

World Chat

a guest
Apr 7th, 2015
782
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.60 KB | None | 0 0
  1. /*
  2. <--------------------------------------------------------------------------->
  3.  - Developer(s): Made by ?? Edited by - CastleDEV
  4.  - Complete: 100%
  5.  - ScriptName: 'World_Chat'
  6. <--------------------------------------------------------------------------->
  7. */
  8. #include "ScriptPCH.h"
  9. #include "Chat.h"
  10.  
  11. #define FACTION_SPECIFIC 0
  12.  
  13. std::string GetNameLink(Player* player)
  14. {
  15.         std::string name = player->GetName();
  16.         std::string color;
  17.         switch(player->getClass())
  18.         {
  19.         case CLASS_DEATH_KNIGHT:
  20.                 color = "|cffC41F3B|TInterface\\icons\\Spell_Deathknight_ClassIcon:15|t";
  21.                 break;
  22.         case CLASS_DRUID:
  23.                 color = "|cffFF7D0A|TInterface\\icons\\ABILITY_DRUID_DEMORALIZINGROAR:15|t";
  24.                 break;
  25.         case CLASS_HUNTER:
  26.                 color = "|cffABD473|TInterface\\icons\\Ability_Hunter_LockAndLoad:15|t";
  27.                 break;
  28.         case CLASS_MAGE:
  29.                 color = "|cff69CCF0|TInterface\\icons\\Spell_MageArmor:15|t";
  30.                 break;
  31.         case CLASS_PALADIN:
  32.                 color = "|cffF58CBA|TInterface\\icons\\Spell_Magic_MageArmor:15|t";
  33.                 break;
  34.         case CLASS_PRIEST:
  35.                 color = "|cffFFFFFF|TInterface\\icons\\Spell_Holy_SearingLightPriest:15|t";
  36.                 break;
  37.         case CLASS_ROGUE:
  38.                 color = "|cffFFF569|TInterface\\icons\\Ability_Rogue_Ambush:15|t";
  39.                 break;
  40.         case CLASS_SHAMAN:
  41.                 color = "|cff0070DE|TInterface\\icons\\Spell_Shaman_StaticShock:15|t";
  42.                 break;
  43.         case CLASS_WARLOCK:
  44.                 color = "|cff9482C9|TInterface\\icons\\Ability_Warlock_DemonicPower:15|t";
  45.                 break;
  46.        case CLASS_WARRIOR:
  47.                color = "|cffC79C6E|TInterface\\icons\\Ability_Warrior_OffensiveStance:15|t";
  48.                break;
  49.                
  50.         }
  51.         return "|Hplayer:"+name+"|h|cffFFFFFF["+color+name+"|cffFFFFFF]|h|r";
  52. }
  53.  
  54. class World_Chat : public CommandScript
  55. {
  56.         public:
  57.                 World_Chat() : CommandScript("World_Chat"){}
  58.  
  59.         ChatCommand * GetCommands() const
  60.         {
  61.                 static ChatCommand WorldChatCommandTable[] =
  62.                 {
  63.                         {"chat",        rbac::RBAC_PERM_COMMAND_WORLD_CHAT,             true,           &HandleWorldChatCommand,        "", NULL},
  64.                         {NULL,          0,                              false,          NULL,                                           "", NULL}
  65.                 };
  66.  
  67.                 return WorldChatCommandTable;
  68.         }
  69.  
  70.         static bool HandleWorldChatCommand(ChatHandler * handler, const char * args)
  71.         {
  72.                 if (!handler->GetSession()->GetPlayer()->CanSpeak())
  73.                         return false;
  74.                 std::string temp = args;
  75.  
  76.                 if (!args || temp.find_first_not_of(' ') == std::string::npos)
  77.                         return false;
  78.  
  79.                 std::string msg = "";
  80.                 Player * player = handler->GetSession()->GetPlayer();
  81.  
  82.                 switch(player->GetSession()->GetSecurity())
  83.                 {
  84.                         // Player
  85.                         case SEC_PLAYER:
  86.                                 if (player->GetTeam() == ALLIANCE)
  87.                       {
  88.                                 msg += "|cffFF0000[Server Name]|TInterface\\icons\\Inv_Misc_Tournaments_banner_Human:15|t ";
  89.                                 msg += GetNameLink(player);
  90.                                 msg += " |cfffaeb00";
  91.                       }
  92.  
  93.                       else
  94.                      {
  95.                                msg += "|cffFF0000[Server Name]|TInterface\\icons\\Inv_Misc_Tournaments_banner_Orc:15|t ";
  96.                                msg += GetNameLink(player);
  97.                                msg += " |cfffaeb00";
  98.                    }
  99.                                break;
  100.                         // VIP
  101.                         case SEC_VIP:
  102.                                 if (player->GetTeam() == ALLIANCE)
  103.                       {
  104.                                 msg += "|cffFF0000[Server Name]|TInterface\\icons\\INV_Misc_Token_ArgentDawn3:15|t |cffFFFF00[V.I.P]|TInterface\\icons\\Inv_Misc_Tournaments_banner_Human:15|t ";
  105.                                 msg += GetNameLink(player);
  106.                                 msg += " |cfffaeb00";
  107.                       }
  108.  
  109.                       else
  110.                      {
  111.                                msg += "|cffFF0000[Server Name]|TInterface\\icons\\INV_Misc_Token_ArgentDawn3:15|t |cffFFFF00[V.I.P]|TInterface\\icons\\Inv_Misc_Tournaments_banner_Orc:15|t ";
  112.                                msg += GetNameLink(player);
  113.                                msg += " |cfffaeb00";
  114.                    }
  115.                                 break;
  116.                         // Trial GM
  117.                         case SEC_GAMEMASTER:
  118.                                 msg += "|cffFF0000[Server Name]|TInterface\\icons\\Mail_GMIcon:15|t |cffFF8C00[Trial GM] ";
  119.                                 msg += GetNameLink(player);
  120.                                 msg += " |cfffaeb00";
  121.                                 break;
  122.                         // GM
  123.                         case SEC_EVENTM:
  124.                                 msg += "|cffFF0000[Server Name]|TInterface\\icons\\Mail_GMIcon:15|t |cffFF8C00[GM] ";
  125.                                 msg += GetNameLink(player);
  126.                                 msg += " |cfffaeb00";
  127.                                 break;
  128.                         // Admin
  129.                         case SEC_HEADGM:
  130.                                 msg += "|cffFF0000[Server Name]|TInterface\\icons\\Mail_GMIcon:15|t |cffFFA500[Admin] ";
  131.                                 msg += GetNameLink(player);
  132.                                 msg += " |cfffaeb00";
  133.                                 break;
  134.                         // Developer
  135.                         case SEC_DEVELOPER:
  136.                                 msg += "|cffFF0000[Server Name]|TInterface\\icons\\Mail_GMIcon:15|t |cffFFA500[Developer] ";
  137.                                 msg += GetNameLink(player);
  138.                                 msg += " |cfffaeb00";
  139.                                 break;
  140.                         // Co-Owner
  141.                         case SEC_ADMINISTRATOR:
  142.                                 msg += "|cffFF0000[Server Name]|TInterface\\icons\\Mail_GMIcon:15|t |cffFF0000[Co-Owner] ";
  143.                                 msg += GetNameLink(player);
  144.                                 msg += " |cfffaeb00";
  145.                                 break;
  146.                         // Owner
  147.                         case SEC_OWNER:
  148.                                 msg += "|cffFF0000[Server Name]|TInterface\\icons\\Mail_GMIcon:15|t |cffFF0000[Owner] ";
  149.                                 msg += GetNameLink(player);
  150.                                 msg += " |cfffaeb00";
  151.                                 break;
  152.  
  153.                 }
  154.                        
  155.                 msg += args;
  156.                 if (FACTION_SPECIFIC)
  157.                 {
  158.                         SessionMap sessions = sWorld->GetAllSessions();
  159.                         for (SessionMap::iterator itr = sessions.begin(); itr != sessions.end(); ++itr)
  160.                                 if (Player* plr = itr->second->GetPlayer())
  161.                                         if (plr->GetTeam() == player->GetTeam())
  162.                                                 sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), plr);
  163.                 }
  164.                 else
  165.                         sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), 0);  
  166.  
  167.                 return true;
  168.         }
  169. };
  170.  
  171. void AddSC_World_Chat()
  172. {
  173.         new World_Chat;
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement