Advertisement
Rochet2

Timed jamey try this

Jul 3rd, 2012
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "ScriptPCH.h"
  2. #include "Chat.h"
  3. #define PlayerAmount    10
  4. // #define contestors 0 Teh fuck is this?
  5. static bool Countdownstart;
  6.  // Player*pPlayer; Teh fuck is this??
  7.  
  8. class PvP_Event_Announcer : public WorldScript
  9. {
  10. public:
  11.     PvP_Event_Announcer() : WorldScript("PvP_Event_Announcer"){}
  12.  
  13.     void OnStartup()
  14.     {
  15.         Events.ScheduleEvent(COUNTDOWN_60,60000);
  16.         Events.ExecuteEvent();
  17.     }
  18.  
  19.     void OnUpdate(uint32 diff)
  20.     {
  21.         Events.Update(diff);
  22.         while (uint32 eventId = Events.ExecuteEvent())
  23.         {
  24.             switch (eventId)
  25.             {
  26.             case COUNTDOWN_60:
  27.                 {
  28.                     sWorld->SendServerMessage(SERVER_MSG_STRING, "|cffffcc00[PvP Event Announcer]:|r|cFF8B0000The 1 versus 1 PvP event countdown is starting in 1 minute !");
  29.                     Events.ScheduleEvent(COUNTDOWN_30, 30000);
  30.                    
  31.                 }break;
  32.             case COUNTDOWN_30:
  33.                 {
  34.                     sWorld->SendServerMessage(SERVER_MSG_STRING, "|cffffcc00[PvP Event Announcer]:|r|cFF8B0000The 1 versus 1 PvP event countdown is starting in 30 seconds, contestors be ready!");
  35.                     Events.ScheduleEvent(EVENT_START_60, 30000);
  36.                    
  37.                 }break;
  38.             case EVENT_START_60:
  39.                 {
  40.                     Countdownstart = true;
  41.                     sWorld->SendServerMessage(SERVER_MSG_STRING, "|cffffcc00[PvP Event Announcer]:|r|cFF8B0000The 1 versus 1 PvP event countdown has started, you have 1 minute to enter by typing: .pvpevent enter , be fast cause only 10 players can enter!");
  42.                     Events.ScheduleEvent(EVENT_START_30, 30000);
  43.                    
  44.                 }break;
  45.             case EVENT_START_30:
  46.                 {
  47.                     sWorld->SendServerMessage(SERVER_MSG_STRING, "|cffffcc00[PvP Event Announcer]:|r|cFF8B0000The 1 versus 1 PvP event countdown is only 30 seconds more, enter fast if you still want to by typing : .pvpevent enter");
  48.                     Events.ScheduleEvent(EVENT_START, 30000);
  49.                    
  50.                 }break;
  51.             case EVENT_START:
  52.                 {
  53.                     sWorld->SendServerMessage(SERVER_MSG_STRING, "|cffffcc00[PvP Event Announcer]:|r|cFF8B0000The 1 versus 1 PvP event has started !");
  54.  
  55.                     // Events.ScheduleEvent(EVENT_END, 60000);
  56.                    
  57.                 }
  58.                 break;
  59.             }
  60.         }
  61.     }
  62.  
  63. private:
  64.     EventMap Events;
  65.  
  66.     enum eEvents
  67.     {
  68.         COUNTDOWN_60 ,
  69.         COUNTDOWN_30 ,
  70.         EVENT_START_60 ,
  71.         EVENT_START_30 ,
  72.         EVENT_START
  73.     };
  74.  
  75. };
  76.  
  77. struct Constestor_info
  78. {
  79.     const char* Name;
  80.     uint8 Level;
  81.     uint32 Class;
  82.     uint32 Race;
  83. };
  84.  
  85. std::vector<struct Constestor_info> Contestors;
  86.  
  87. class PvP_Event_Command : public CommandScript
  88. {
  89. public:
  90.     PvP_Event_Command() : CommandScript("PvP_Event_Command") {}
  91.  
  92.     ChatCommand* GetCommands() const
  93.     {
  94.         static ChatCommand PVPEventSubCommandTable[] =
  95.         {
  96.             { "enter",      SEC_PLAYER,     false&HandleEnterpvpcommand,     "", NULL },
  97.             { NULL,         0,              falseNULL,                       "", NULL }
  98.         };
  99.  
  100.         static ChatCommand CommandTable[] =
  101.         {
  102.             { "pvpevent",   SEC_PLAYER,     falseNULL,       "", PVPEventSubCommandTable },
  103.             { NULL,         0,              falseNULL,       "", NULL }
  104.         };
  105.         return CommandTable;
  106.     }
  107.  
  108.     static bool HandleEnterpvpcommand(ChatHandler* handler, const char* args)
  109.     {
  110.         WorldSession* Session = handler->GetSession();
  111.         Player* pPlayer = Session->GetPlayer();
  112.         if(!Countdownstart)
  113.             Session->SendNotification("There is currently no countdown for this event going on");
  114.         else if(Contestors.size() < PlayerAmount)
  115.         {
  116.             Session->SendAreaTriggerMessage("Thank you for entering %s, there is room for %u more players!",pPlayer->GetName(), PlayerAmount-Contestors.size()); // uint - uint may glitch.. test!
  117.             Constestor_info temp = {pPlayer->GetName(), pPlayer->getLevel(), pPlayer->getClassMask(), pPlayer->getRaceMask()}; // getclass and getrace instead?
  118.             Contestors.push_back(temp); // must use a temp variable, cant just push back an array like {1,2,3,4}
  119.         }
  120.         else
  121.             Session->SendNotification("The maximum player amount for this event is already reached, please try another time");
  122.         return true;
  123.     }
  124. };
  125.  
  126. void AddSC_PvP_Event()
  127. {
  128.     new PvP_Event_Announcer;
  129.     new PvP_Event_Command;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement