Advertisement
julienanid

[Trinity] Presentation of the Server

Oct 6th, 2013
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.11 KB | None | 0 0
  1. /*
  2. <--------------------------------------------------------------------------->
  3. - Developer(s): Mthsena
  4. - Complete: %100
  5. - ScriptName: 'PresentationOfTheServer'
  6. - Comment: Tested.
  7. - Shared for:Emudevs by Synth
  8. <--------------------------------------------------------------------------->
  9. */
  10.  
  11. #include "ScriptPCH.h"
  12.  
  13. enum Enums
  14. {
  15.     FIRST_TELEDELAY    = 10000,
  16.     SECOND_TELEDELAY   = 20000,
  17.     THIRD_TELEDELAY    = 30000,
  18.     FOURTH_TELEDELAY   = 40000,
  19.     BACK_TELEDELAY     = 50000,
  20. };
  21.  
  22. struct Event
  23. {
  24.     uint8 Events;
  25. };
  26. static std::map<uint32, Event> _events;
  27.  
  28. class Teleport : public BasicEvent
  29. {
  30. public:
  31.     Teleport(Player* player) : _Plr(player) {}
  32.  
  33.     bool Execute(uint64 /*time*/, uint32 /*diff*/)
  34.     {
  35.         uint32 pEvent;
  36.         pEvent = _Plr->GetGUID();
  37.  
  38.         switch(_events[pEvent].Events)
  39.         {
  40.         case 0: // First Teleport
  41.             _Plr->TeleportTo(530, -1880.0f, 5381.0f, -12.0f, 1.0f); // Teleport Coordenates
  42.             _Plr->GetSession()->SendAreaTriggerMessage("Here is Shattrath, blablabla..."); // Description, Tip
  43.             _events[pEvent].Events = 1;
  44.             break;
  45.  
  46.         case 1: // Second Teleport
  47.             _Plr->TeleportTo(0, -13196.0f, 283.0f, 22.0f, 2.0f);
  48.             _Plr->GetSession()->SendAreaTriggerMessage("Here is Gurubashi, blablabla...");
  49.             _events[pEvent].Events = 2;
  50.             break;
  51.  
  52.         case 2: // Third Teleport
  53.             _Plr->TeleportTo(0, -14285.0f, 557.5f, 9.0f, 4.0f);
  54.             _Plr->GetSession()->SendAreaTriggerMessage("Here is Booty Bay, blablabla...");
  55.             _events[pEvent].Events = 3;
  56.             break;
  57.  
  58.         case 3: // Fourth Teleport
  59.             _Plr->TeleportTo(1, 16224.0f, 16254.0f, 13.0f, 2.0f);
  60.             _Plr->GetSession()->SendAreaTriggerMessage("Here is GmIsland, blablabla...");
  61.             _events[pEvent].Events = 4;
  62.             break;
  63.  
  64.         case 4: // Back Teleport
  65.             _Plr->TeleportTo(_Plr->GetStartPosition());
  66.             _Plr->GetSession()->SendAreaTriggerMessage("Presentation finished, Enjoy!");
  67.             _events.clear();
  68.             break;
  69.         }
  70.         return true;
  71.     }
  72.     Player* _Plr;
  73. };
  74.  
  75. class PresentationOfTheServer : public PlayerScript
  76. {
  77. public:
  78.     PresentationOfTheServer() : PlayerScript("PresentationOfTheServer") {}
  79.  
  80.     void OnLogin(Player* player)
  81.     {
  82.  
  83.         if(player->GetTotalPlayedTime() < 5)
  84.         {
  85.             QueryResult result = LoginDatabase.PQuery("SELECT numchars FROM realmcharacters WHERE acctid = %u", player->GetSession()->GetAccountId());
  86.             Field* field = result->Fetch();
  87.             int8 chars = field[0].GetInt8();
  88.  
  89.             if(chars > 1)
  90.                 return;
  91.  
  92.             player->GetSession()->SendAreaTriggerMessage("The system will teleport you in few seconds to present some things!"); // Initial message before starting...
  93.             player->m_Events.AddEvent(new Teleport(player), player->m_Events.CalculateTime(FIRST_TELEDELAY));
  94.             player->m_Events.AddEvent(new Teleport(player), player->m_Events.CalculateTime(SECOND_TELEDELAY));
  95.             player->m_Events.AddEvent(new Teleport(player), player->m_Events.CalculateTime(THIRD_TELEDELAY));
  96.             player->m_Events.AddEvent(new Teleport(player), player->m_Events.CalculateTime(FOURTH_TELEDELAY));
  97.             player->m_Events.AddEvent(new Teleport(player), player->m_Events.CalculateTime(BACK_TELEDELAY));
  98.         }
  99.     }
  100. };
  101.  
  102. void AddSC_PresentationOfTheServer()
  103. {
  104.     new PresentationOfTheServer;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement