SHOW:
|
|
- or go back to the newest paste.
1 | // Original script by Ghostcrawler336 | |
2 | ||
3 | #include "ScriptPCH.h" | |
4 | #define TOKEN_ID 60007 // Replace 60007 to YOUR_TOKEN_ID | |
5 | ||
6 | class Level_NPC : public CreatureScript | |
7 | { | |
8 | public: | |
9 | - | Level_NPC() : CreatureScript("Level_NPC") {} |
9 | + | Level_NPC() : CreatureScript("Level_NPC") {} |
10 | ||
11 | - | bool OnGossipHello(Player* pPlayer, Creature* _creature) |
11 | + | bool OnGossipHello(Player* pPlayer, Creature* _creature) |
12 | - | { |
12 | + | { |
13 | - | pPlayer->ADD_GOSSIP_ITEM(7, "Welcome to the level NPC!", GOSSIP_SENDER_MAIN, 0); |
13 | + | pPlayer->ADD_GOSSIP_ITEM(7, "Welcome to the level NPC!", GOSSIP_SENDER_MAIN, 0); |
14 | - | pPlayer->ADD_GOSSIP_ITEM(10, "Level 10(1 Token)", GOSSIP_SENDER_MAIN, 1); |
14 | + | pPlayer->ADD_GOSSIP_ITEM(10, "Level 10(10 Token)", GOSSIP_SENDER_MAIN, 1); |
15 | - | pPlayer->ADD_GOSSIP_ITEM(10, "Level 20(2 Tokens)", GOSSIP_SENDER_MAIN, 2); |
15 | + | pPlayer->ADD_GOSSIP_ITEM(10, "Level 20(20 Tokens)", GOSSIP_SENDER_MAIN, 2); |
16 | - | pPlayer->ADD_GOSSIP_ITEM(10, "Level 30(3 Tokens)", GOSSIP_SENDER_MAIN, 3); |
16 | + | pPlayer->ADD_GOSSIP_ITEM(10, "Level 30(30 Tokens)", GOSSIP_SENDER_MAIN, 3); |
17 | - | pPlayer->ADD_GOSSIP_ITEM(10, "Level 40(4 Tokens)", GOSSIP_SENDER_MAIN, 4); |
17 | + | pPlayer->ADD_GOSSIP_ITEM(10, "Level 40(40 Tokens)", GOSSIP_SENDER_MAIN, 4); |
18 | - | pPlayer->ADD_GOSSIP_ITEM(10, "Level 50(5 Tokens)", GOSSIP_SENDER_MAIN, 5); |
18 | + | pPlayer->ADD_GOSSIP_ITEM(10, "Level 50(50 Tokens)", GOSSIP_SENDER_MAIN, 5); |
19 | - | pPlayer->ADD_GOSSIP_ITEM(10, "Level 60(6 Tokens)", GOSSIP_SENDER_MAIN, 6); |
19 | + | pPlayer->ADD_GOSSIP_ITEM(10, "Level 60(60 Tokens)", GOSSIP_SENDER_MAIN, 6); |
20 | - | pPlayer->ADD_GOSSIP_ITEM(10, "Level 70(7 Tokens)", GOSSIP_SENDER_MAIN, 7); |
20 | + | pPlayer->ADD_GOSSIP_ITEM(10, "Level 70(70 Tokens)", GOSSIP_SENDER_MAIN, 7); |
21 | - | pPlayer->ADD_GOSSIP_ITEM(10, "Level 80(8 Tokens)", GOSSIP_SENDER_MAIN, 8); |
21 | + | pPlayer->ADD_GOSSIP_ITEM(10, "Level 80(80 Tokens)", GOSSIP_SENDER_MAIN, 8); |
22 | ||
23 | - | pPlayer->PlayerTalkClass->SendGossipMenu(907, _creature->GetGUID()); |
23 | + | pPlayer->PlayerTalkClass->SendGossipMenu(907, _creature->GetGUID()); |
24 | - | return true; |
24 | + | return true; |
25 | - | } |
25 | + | } |
26 | ||
27 | - | bool OnGossipSelect(Player* pPlayer, Creature* _creature, uint32 uiSender, uint32 uiAction) |
27 | + | bool OnGossipSelect(Player* pPlayer, Creature* _creature, uint32 uiSender, uint32 uiAction) |
28 | - | { |
28 | + | { |
29 | - | pPlayer->PlayerTalkClass->ClearMenus(); |
29 | + | pPlayer->PlayerTalkClass->ClearMenus(); |
30 | - | if(uiAction != 0) |
30 | + | if(uiAction != 0) |
31 | - | if (pPlayer->HasItemCount(TOKEN_ID, uiAction, true)) |
31 | + | if (pPlayer->HasItemCount(TOKEN_ID, uiAction*10, false)) |
32 | - | { |
32 | + | { |
33 | - | pPlayer->SetLevel(uiAction*10); // changed to setlevel, give level gives X amount of levels I think. |
33 | + | if(pPlayer->getLevel() >= 80) |
34 | - | pPlayer->DestroyItemCount(TOKEN_ID, uiAction, true); |
34 | + | { |
35 | - | pPlayer->GetSession()->SendAreaTriggerMessage("You are now Level %u!", uiAction*10); |
35 | + | pPlayer->GetSession()->SendNotification("You are already level 80!"); |
36 | - | pPlayer->PlayerTalkClass->SendCloseGossip(); |
36 | + | } |
37 | - | return true; |
37 | + | else |
38 | - | } |
38 | + | { |
39 | - | else |
39 | + | uint8 newlevel = pPlayer->getLevel()+uiAction*10; |
40 | - | pPlayer->GetSession()->SendNotification("You don't have the required token"); |
40 | + | if(newlevel > 80) |
41 | - | OnGossipHello(pPlayer, _creature); |
41 | + | newlevel = 80; |
42 | - | return true; |
42 | + | pPlayer->GiveLevel(newlevel); |
43 | - | } |
43 | + | pPlayer->InitTalentForLevel(); |
44 | pPlayer->SetUInt32Value(PLAYER_XP, 0); | |
45 | pPlayer->DestroyItemCount(TOKEN_ID, uiAction*10, true); | |
46 | pPlayer->GetSession()->SendAreaTriggerMessage("You are now Level %u!", uint32(pPlayer->getLevel())); | |
47 | - | new Level_NPC(); |
47 | + | pPlayer->PlayerTalkClass->SendCloseGossip(); |
48 | return true; | |
49 | } | |
50 | } | |
51 | else | |
52 | pPlayer->GetSession()->SendNotification("You don't have the required token"); | |
53 | OnGossipHello(pPlayer, _creature); | |
54 | return true; | |
55 | } | |
56 | }; | |
57 | void AddSC_Level_NPC() | |
58 | { | |
59 | new Level_NPC(); | |
60 | } |