Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptMgr.h"
- #include "ScriptedCreature.h"
- #include "ScriptedGossip.h"
- #include "Player.h"
- #include <cstring>
- #define GOSSIP_MENU1 "Weapons"
- #define GOSSIP_MENU2 "Item Sets"
- #define GOSSIP_MENU3 "Upgrading Materials"
- #define GOSSIP_MENU4 "Mounts and misc"
- class example_gossip_codebox : public CreatureScript
- {
- public:
- example_gossip_codebox()
- : CreatureScript("example_gossip_codebox")
- {
- }
- bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
- {
- player->ADD_GOSSIP_ITEM(0, GOSSIP_MENU1, GOSSIP_SENDER_MAIN, 1);
- player->ADD_GOSSIP_ITEM(0, GOSSIP_MENU2, GOSSIP_SENDER_MAIN, 2);
- player->PlayerTalkClass->SendGossipMenu(907, creature->GetGUID());
- return true;
- }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
- {
- QueryResult select = LoginDatabase.PQuery("SELECT dp, vp FROM account WHERE id = '%u'", player->GetSession()->GetAccountId());
- if(!select)
- {
- player->GetSession()->SendAreaTriggerMessage("Internal error!");
- return false;
- }
- Field* fields = select->Fetch();
- uint32 dp = fields[0].GetUInt32();
- uint32 vp = fields[1].GetUInt32();
- player->PlayerTalkClass->ClearMenus();
- return true;
- }
- bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, char const* code) OVERRIDE
- {
- player->PlayerTalkClass->ClearMenus();
- if (sender == GOSSIP_SENDER_MAIN)
- {
- switch (action)
- {
- case 1:// [1 Donor Point] For [1 Donor Token]
- if (dp < 1)
- {
- player->GetSession()->SendAreaTriggerMessage("You don't have the required points.");
- player->CLOSE_GOSSIP_MENU();
- }
- else
- {
- LoginDatabase.PExecute("UPDATE account SET dp = '%u' -1 WHERE id = '%u'", dp, player->GetSession()->GetAccountId()); // DP Exchange 1
- player->GetSession()->SendAreaTriggerMessage("Successfully!");
- player->AddItem(999, 1);
- player->SaveToDB();
- player->CLOSE_GOSSIP_MENU();
- }
- break;
- case 999:// Show My Points
- player->GetSession()->SendAreaTriggerMessage("Donor Points: %u", dp);
- player->GetSession()->SendAreaTriggerMessage("Voter Points: %u", vp);
- player->CLOSE_GOSSIP_MENU();
- break;
- return true;
- }
- }
- return false;
- }
- };
- void AddSC_example_gossip_codebox()
- {
- new example_gossip_codebox();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement