Advertisement
Guest User

Untitled

a guest
Nov 21st, 2013
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1.  
  2. #include "ScriptMgr.h"
  3. #include "ScriptedCreature.h"
  4. #include "ScriptedGossip.h"
  5. #include "Player.h"
  6. #include <cstring>
  7.  
  8.  
  9. #define GOSSIP_MENU1 "Weapons"
  10. #define GOSSIP_MENU2 "Item Sets"
  11. #define GOSSIP_MENU3 "Upgrading Materials"
  12. #define GOSSIP_MENU4 "Mounts and misc"
  13.  
  14. class example_gossip_codebox : public CreatureScript
  15. {
  16. public:
  17.  
  18. example_gossip_codebox()
  19. : CreatureScript("example_gossip_codebox")
  20. {
  21. }
  22.  
  23. bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
  24. {
  25. player->ADD_GOSSIP_ITEM(0, GOSSIP_MENU1, GOSSIP_SENDER_MAIN, 1);
  26. player->ADD_GOSSIP_ITEM(0, GOSSIP_MENU2, GOSSIP_SENDER_MAIN, 2);
  27.  
  28. player->PlayerTalkClass->SendGossipMenu(907, creature->GetGUID());
  29.  
  30. return true;
  31. }
  32.  
  33. bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
  34. {
  35. QueryResult select = LoginDatabase.PQuery("SELECT dp, vp FROM account WHERE id = '%u'", player->GetSession()->GetAccountId());
  36.  
  37. if(!select)
  38. {
  39. player->GetSession()->SendAreaTriggerMessage("Internal error!");
  40. return false;
  41. }
  42.  
  43. Field* fields = select->Fetch();
  44. uint32 dp = fields[0].GetUInt32();
  45. uint32 vp = fields[1].GetUInt32();
  46.  
  47. player->PlayerTalkClass->ClearMenus();
  48. return true;
  49. }
  50.  
  51. bool OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, char const* code) OVERRIDE
  52. {
  53. player->PlayerTalkClass->ClearMenus();
  54. if (sender == GOSSIP_SENDER_MAIN)
  55. {
  56. switch (action)
  57. {
  58.  
  59. case 1:// [1 Donor Point] For [1 Donor Token]
  60. if (dp < 1)
  61. {
  62. player->GetSession()->SendAreaTriggerMessage("You don't have the required points.");
  63. player->CLOSE_GOSSIP_MENU();
  64. }
  65. else
  66. {
  67. LoginDatabase.PExecute("UPDATE account SET dp = '%u' -1 WHERE id = '%u'", dp, player->GetSession()->GetAccountId()); // DP Exchange 1
  68. player->GetSession()->SendAreaTriggerMessage("Successfully!");
  69. player->AddItem(999, 1);
  70. player->SaveToDB();
  71. player->CLOSE_GOSSIP_MENU();
  72. }
  73. break;
  74.  
  75. case 999:// Show My Points
  76. player->GetSession()->SendAreaTriggerMessage("Donor Points: %u", dp);
  77. player->GetSession()->SendAreaTriggerMessage("Voter Points: %u", vp);
  78. player->CLOSE_GOSSIP_MENU();
  79. break;
  80.  
  81. return true;
  82. }
  83. }
  84.  
  85. return false;
  86. }
  87. };
  88.  
  89. void AddSC_example_gossip_codebox()
  90. {
  91. new example_gossip_codebox();
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement