Advertisement
Erictemponi

Player Starting Guild

Aug 12th, 2020 (edited)
2,274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.35 KB | None | 0 0
  1. /*
  2. Made by: Erictemponi
  3. */
  4.  
  5. #include "ScriptMgr.h"
  6. #include "Config.h"
  7. #include "Log.h"
  8. #include "Guild.h"
  9. #include "GuildMgr.h"
  10.  
  11. class StartingGuildScript : public PlayerScript
  12. {
  13.     public:
  14.         StartingGuildScript() : PlayerScript("StartingGuildScript") { }
  15.  
  16.         // called when some player is created
  17.         void OnCreate(Player* pPlayer)
  18.         {
  19.             if (sConfigMgr->GetBoolDefault("StartingGuild.Enable", false))
  20.             {
  21.                 uint32 guildID;
  22.                 if (pPlayer->GetTeam() == HORDE)
  23.                     guildID = sConfigMgr->GetIntDefault("StartingGuild.GuildID.Horde", 0);
  24.                 else
  25.                     guildID = sConfigMgr->GetIntDefault("StartingGuild.GuildID.Alliance", 0);
  26.  
  27.                 Guild* targetGuild = sGuildMgr->GetGuildById(guildID);
  28.                 if (targetGuild)
  29.                 {
  30.                     ObjectGuid playerGuid = pPlayer->GetGUID();
  31.                     // player's guild membership checked in AddMember before add
  32.                     CharacterDatabaseTransaction trans(nullptr);
  33.                     targetGuild->AddMember(trans, playerGuid);
  34.                 }
  35.             }
  36.         }
  37. };
  38.  
  39.  
  40. class StartingGuildWorld : public WorldScript
  41. {
  42.     public:
  43.         StartingGuildWorld() :WorldScript("StartingGuildWorld") { }
  44.  
  45.         void OnStartup() override
  46.         {
  47.             if (sConfigMgr->GetBoolDefault("StartingGuild.Enable", false))
  48.             {
  49.                 uint32 hordeGuildID = sConfigMgr->GetIntDefault("StartingGuild.GuildID.Horde", 0);
  50.                 uint32 allianceGuildID = sConfigMgr->GetIntDefault("StartingGuild.GuildID.Alliance", 0);
  51.                 Guild* hordeTargetGuild = sGuildMgr->GetGuildById(hordeGuildID);
  52.                 Guild* allianceTargetGuild = sGuildMgr->GetGuildById(allianceGuildID);
  53.                 if (!hordeTargetGuild)
  54.                     sLog->outMessage("server", LOG_LEVEL_ERROR, "There is no Guild with ID %d. StartingGuild will not work for Horde players.", hordeGuildID);
  55.                 if (!allianceTargetGuild)
  56.                     sLog->outMessage("server", LOG_LEVEL_ERROR, "There is no Guild with ID %d. StartingGuild will not work for Alliance players.", allianceGuildID);
  57.             }
  58.         }
  59. };
  60.  
  61. void AddSC_starting_guild()
  62. {
  63.     new StartingGuildScript();
  64.     new StartingGuildWorld();
  65. }
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement