Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- #define MIN_INTERVAL_TIMER 900000 // 15 minutes, in miliseconds.... 1 second = 1000 miliseconds
- #define MAX_INTERVAL_TIMER 1800000 // 30 minutes
- #define RANDOM_NPC_ENTRY 00000
- #define RANDOM_ITEM_REWARD_ENTRY 10000
- // edit all this shit ^
- class Random_Appearance : public WorldScript
- {
- public:
- Random_Appearance() : WorldScript("Random_Appearance") {}
- uint32 Timer;
- void DoRandomShit()
- {
- SessionMap Players = sWorld->GetAllSessions();
- if(Players.empty())
- return;
- SessionMap::iterator itr = Players.find(urand(0, Players.size()));
- Player* player = itr->second->GetPlayer();
- Position *pos;
- player->GetPosition(pos);
- pos->m_positionX -= 3;
- pos->m_positionY -= 3;
- Creature* Summoned = player->SummonCreature(RANDOM_NPC_ENTRY, *pos, TEMPSUMMON_MANUAL_DESPAWN, 5000);
- const ItemTemplate* rewardedItem = sObjectMgr->GetItemTemplate(RANDOM_ITEM_REWARD_ENTRY);
- std::ostringstream ss;
- ss << "Congratulations, you have been randomly gifted with ";
- ss << rewardedItem->Name1;
- ss << " !";
- Summoned->MonsterSay(ss.str().c_str(), LANG_UNIVERSAL, player->GetGUID());
- player->AddItem(RANDOM_ITEM_REWARD_ENTRY, 1);
- Timer = urand(MIN_INTERVAL_TIMER, MAX_INTERVAL_TIMER);
- }
- void OnStartup()
- {
- Timer = urand(MIN_INTERVAL_TIMER, MAX_INTERVAL_TIMER);
- }
- void OnUpdate(uint32 diff)
- {
- if(diff > Timer)
- DoRandomShit();
- else
- Timer -= diff;
- }
- };
- void AddSC_Random_Appearance()
- {
- new Random_Appearance();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement