Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author : CallMephil / Philippovitch
- Multi Choice Leveling NPC
- Multi-Twink / Instant servers.
- Simple Script : Complete 100 %
- ScriptName : Leveling_NPC
- Note : please make sure to add coordinations of you're Custom Mall
- */
- #include "ScriptPCH.h"
- #define GOSSIP_TEXT_TEST 500000
- #define GOSSIP_XP_OFF_1 "I would like to be Twink 19."
- #define GOSSIP_XP_OFF_2 "I would like to be Twink 29."
- #define GOSSIP_XP_OFF_3 "I would like to be Twink 39."
- #define GOSSIP_XP_OFF_4 "I would like to be Twink 49."
- #define GOSSIP_XP_OFF_5 "I would like to be Twink 59."
- #define GOSSIP_XP_OFF_6 "I would like to be Twink 69."
- #define GOSSIP_XP_OFF_7 "I would like to be Twink 79."
- #define GOSSIP_XP_OFF_8 "I would like to be 80"
- enum eIcons
- {
- CHAT_ICON = 0,
- VENDOR_ICON = 1,
- FLIGHT_ICON = 2,
- TRAINER_ICON = 3,
- GEAR_ICON = 4,
- GEAR_ICON_2 = 5,
- BANK_ICON = 6,
- CHAT_DOTS_ICON = 7,
- TABARD_ICON = 8,
- SWORDS_ICON = 9,
- GOLD_DOT_ICON = 10
- };
- // Setup Mall Coordinations Map,X,Y,Z,O Replace 0 by the correct value.
- enum Mall_MAP_ZONES
- {
- // Twink 19
- Leveling_Map_1 = 0,
- Leveling_X_1 = 0,
- Leveling_Y_1 = 0,
- Leveling_Z_1 = 0,
- Leveling_O_1 = 0,
- // Twink 29
- Leveling_Map_2 = 0,
- Leveling_X_2 = 0,
- Leveling_Y_2 = 0,
- Leveling_Z_2 = 0,
- Leveling_O_2 = 0,
- // Twink 39
- Leveling_Map_3 = 0,
- Leveling_X_3 = 0,
- Leveling_Y_3 = 0,
- Leveling_Z_3 = 0,
- Leveling_O_3 = 0,
- // Twink 49
- Leveling_Map_4 = 0,
- Leveling_X_4 = 0,
- Leveling_Y_4 = 0,
- Leveling_Z_4 = 0,
- Leveling_O_4 = 0,
- // Twink 59
- Leveling_Map_5 = 0,
- Leveling_X_5 = 0,
- Leveling_Y_5 = 0,
- Leveling_Z_5 = 0,
- Leveling_O_5 = 0,
- // Twink 69
- Leveling_Map_6 = 0,
- Leveling_X_6 = 0,
- Leveling_Y_6 = 0,
- Leveling_Z_6 = 0,
- Leveling_O_6 = 0,
- // Twink 79
- Leveling_Map_7 = 0,
- Leveling_X_7 = 0,
- Leveling_Y_7 = 0,
- Leveling_Z_7 = 0,
- Leveling_O_7 = 0,
- // Instant 80
- Leveling_Map_8 = 0,
- Leveling_X_8 = 0,
- Leveling_Y_8 = 0,
- Leveling_Z_8 = 0,
- Leveling_O_8 = 0,
- };
- class Leveling_NPC : public CreatureScript
- {
- public:
- Leveling_NPC() : CreatureScript("Leveling_NPC") { }
- bool OnGossipHello(Player* player, Creature* creature)
- {
- // Check if player is new player
- if (player->getLevel() <= 18)
- {
- // 19 - 29 - 39 - 49 // ++DK 59 - 69 - 79 80
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_8, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
- player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXT_TEST, creature->GetGUID());
- }
- // Because default DK >= 55
- if(player->getClass() == CLASS_DEATH_KNIGHT)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_6, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_7, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_XP_OFF_8, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
- player->PlayerTalkClass->SendGossipMenu(GOSSIP_TEXT_TEST, creature->GetGUID());
- }
- return true;
- }
- bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- switch (action)
- {
- // Levelup 80
- case GOSSIP_ACTION_INFO_DEF + 8:
- {
- player->GiveLevel(80);
- player->TeleportTo(Leveling_Map_8, Leveling_X_8, Leveling_Y_8, Leveling_Z_8, Leveling_O_8);
- player->PlayerTalkClass->SendCloseGossip();
- }
- break;
- // Levelup Twink
- case GOSSIP_ACTION_INFO_DEF + 1://xp off
- player->GiveLevel(19);
- player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
- player->TeleportTo(Leveling_Map_1, Leveling_X_1, Leveling_Y_1, Leveling_Z_1, Leveling_O_1);
- break;
- // Levelup Twink
- case GOSSIP_ACTION_INFO_DEF + 2://xp off
- player->GiveLevel(29);
- player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
- player->TeleportTo(Leveling_Map_2, Leveling_X_2, Leveling_Y_2, Leveling_Z_2, Leveling_O_2);
- break;
- // Levelup Twink
- case GOSSIP_ACTION_INFO_DEF + 3://xp off
- player->GiveLevel(39);
- player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
- player->TeleportTo(Leveling_Map_3, Leveling_X_3, Leveling_Y_3, Leveling_Z_3, Leveling_O_3);
- break;
- // Levelup Twink
- case GOSSIP_ACTION_INFO_DEF + 4://xp off
- player->GiveLevel(49);
- player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
- player->TeleportTo(Leveling_Map_4, Leveling_X_4, Leveling_Y_4, Leveling_Z_4, Leveling_O_4);
- break;
- // Levelup Twink
- case GOSSIP_ACTION_INFO_DEF + 5://xp off
- player->GiveLevel(59);
- player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
- player->TeleportTo(Leveling_Map_5, Leveling_X_5, Leveling_Y_5, Leveling_Z_5, Leveling_O_5);
- break;
- // Levelup Twink
- case GOSSIP_ACTION_INFO_DEF + 6://xp off
- player->GiveLevel(69);
- player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
- player->TeleportTo(Leveling_Map_6, Leveling_X_6, Leveling_Y_6, Leveling_Z_6, Leveling_O_6);
- break;
- // Levelup Twink
- case GOSSIP_ACTION_INFO_DEF + 7://xp off
- player->GiveLevel(79);
- player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
- player->TeleportTo(Leveling_Map_7, Leveling_X_7, Leveling_Y_7, Leveling_Z_7, Leveling_O_7);
- break;
- player->PlayerTalkClass->SendCloseGossip();
- }
- return true;
- }
- };
- void AddSC_Leveling_NPC()
- {
- new Leveling_NPC;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement