Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- enum defines
- {
- TOKEN_ID = 6265,
- AMOUNT_OF_TOKENS_REQUIRED = 1,
- };
- class Levelup : public CreatureScript
- {
- public:
- Levelup()
- : CreatureScript("Levelup")
- {
- }
- struct LevelupAI : public ScriptedAI
- {
- LevelupAI(Creature *c) : ScriptedAI(c)
- {
- }
- void Reset()
- {
- me->RestoreFaction();
- }
- void EnterEvadeMode()
- {
- me->GetMotionMaster()->Clear();
- ScriptedAI::EnterEvadeMode();
- }
- };
- uint32 PlayerMaxLevel() const
- {
- return sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL);
- }
- CreatureAI* GetAI(Creature* pCreature) const
- {
- return new LevelupAI(pCreature);
- }
- void CreatureWhisperBasedOnBool(const char *text, Creature *pCreature, Player *pPlayer, bool value)
- {
- if (value)
- pCreature->MonsterWhisper(text, pPlayer->GetGUID());
- }
- void MainMenu(Player *pPlayer, Creature *pCreature)
- {
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I would like to get Level 20", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I would like to get Level 40", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I would like to get Level 60", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I would like to get Level 80", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- pPlayer->SEND_GOSSIP_MENU(907, pCreature->GetGUID());
- }
- bool OnGossipHello(Player* pPlayer, Creature* pCreature)
- {
- MainMenu(pPlayer, pCreature);
- return true;
- }
- bool PlayerHasItem(const Player *plr, uint32 itemId, uint32 spellId) const
- {
- return plr->HasItemCount(itemId, 1, true);
- }
- bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
- {
- if (pPlayer->isInCombat())
- {
- pCreature->MonsterWhisper("You are in combat motherfucker, wait till your combat is gone!", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- return true;
- }
- pPlayer->PlayerTalkClass->ClearMenus();
- switch (uiAction)
- {
- //-------------------------------------------------------------------------
- case GOSSIP_ACTION_INFO_DEF + 1: // 20 levels
- if(pPlayer->HasItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED))
- {
- pPlayer->DestroyItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED, true, false);
- pPlayer->GiveLevel(20);
- pCreature->MonsterWhisper("You're level 20 now.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- if (pPlayer->getLevel() >= 20 && pPlayer->getLevel() <= 255)
- pCreature->MonsterWhisper("Your level is higher than 20!", pPlayer->GetGUID());
- else
- {
- pCreature->MonsterWhisper("You don't have enough tokens.... $C!.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 2: // 40 levels
- if(pPlayer->HasItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED))
- {
- pPlayer->DestroyItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED, true, false);
- pPlayer->GiveLevel(40);
- pCreature->MonsterWhisper("You're level 40 now.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- if (pPlayer->getLevel() >= 40 && pPlayer->getLevel() <= 255)
- pCreature->MonsterWhisper("Your level is higher than 40!", pPlayer->GetGUID());
- else
- {
- pCreature->MonsterWhisper("You don't have enough tokens.... $C!", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 3: // 60 levels
- if(pPlayer->HasItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED))
- {
- pPlayer->DestroyItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED, true, false);
- pPlayer->GiveLevel(60);
- pCreature->MonsterWhisper("You're level 60 now.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- if (pPlayer->getLevel() >= 60 && pPlayer->getLevel() <= 255)
- pCreature->MonsterWhisper("Your level is higher than 60!", pPlayer->GetGUID());
- else
- {
- pCreature->MonsterWhisper("You don't have enough tokens.... $C!.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- break;
- case GOSSIP_ACTION_INFO_DEF + 4: // 80 levels
- if(pPlayer->HasItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED))
- {
- pPlayer->DestroyItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED, true, false);
- pPlayer->GiveLevel(80);
- pCreature->MonsterWhisper("You're level 80 now.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- if (pPlayer->getLevel() >= 80 && pPlayer->getLevel() <= 255)
- pCreature->MonsterWhisper("Your level is higher than 80!", pPlayer->GetGUID());
- else
- {
- pCreature->MonsterWhisper("You don't have enough tokens.... $C!.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- break;
- }
- return true;
- }
- };
- void AddSC_Levelup()
- {
- new Levelup();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement