Advertisement
Guest User

meh

a guest
Apr 15th, 2013
436
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2. #define MIN_INTERVAL_TIMER 900000 // 15 minutes, in miliseconds.... 1 second = 1000 miliseconds
  3. #define MAX_INTERVAL_TIMER 1800000 // 30 minutes
  4. #define RANDOM_NPC_ENTRY 00000
  5. #define RANDOM_ITEM_REWARD_ENTRY 10000
  6. // edit all this shit ^
  7. class Random_Appearance : public WorldScript
  8. {
  9. public:
  10. Random_Appearance() : WorldScript("Random_Appearance") {}
  11. uint32 Timer;
  12.  
  13. void DoRandomShit()
  14. {
  15. SessionMap Players = sWorld->GetAllSessions();
  16. if(Players.empty())
  17. return;
  18. SessionMap::iterator itr = Players.find(urand(0, Players.size()));
  19. Player* player = itr->second->GetPlayer();
  20. Position *pos;
  21. player->GetPosition(pos);
  22. pos->m_positionX -= 3;
  23. pos->m_positionY -= 3;
  24. Creature* Summoned = player->SummonCreature(RANDOM_NPC_ENTRY, *pos, TEMPSUMMON_MANUAL_DESPAWN, 5000);
  25. const ItemTemplate* rewardedItem = sObjectMgr->GetItemTemplate(RANDOM_ITEM_REWARD_ENTRY);
  26. std::ostringstream ss;
  27. ss << "Congratulations, you have been randomly gifted with ";
  28. ss << rewardedItem->Name1;
  29. ss << " !";
  30. Summoned->MonsterSay(ss.str().c_str(), LANG_UNIVERSAL, player->GetGUID());
  31. player->AddItem(RANDOM_ITEM_REWARD_ENTRY, 1);
  32. Timer = urand(MIN_INTERVAL_TIMER, MAX_INTERVAL_TIMER);
  33. }
  34.  
  35. void OnStartup()
  36. {
  37. Timer = urand(MIN_INTERVAL_TIMER, MAX_INTERVAL_TIMER);
  38. }
  39.  
  40. void OnUpdate(uint32 diff)
  41. {
  42. if(diff > Timer)
  43. DoRandomShit();
  44. else
  45. Timer -= diff;
  46. }
  47. };
  48. void AddSC_Random_Appearance()
  49. {
  50. new Random_Appearance();
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement