Advertisement
randy336

[Trinity] Gossip Menu - Request BlackAce

Nov 13th, 2013
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.31 KB | None | 0 0
  1. /*
  2. <--------------------------------------------------------------------------->
  3. - Developer(s): Ghostcrawler336
  4. - Complete: %0
  5. - ScriptName: 'Multi Vendor'
  6. - Comment: N/A
  7. <--------------------------------------------------------------------------->
  8. */
  9. class npc_mounts : public CreatureScript
  10. {
  11. public:
  12.     npc_mounts() : CreatureScript("npc_mounts") { }
  13.  
  14.  
  15. uint32 GetTotalKill(Player* player)
  16.        {
  17.               QueryResult result = CharacterDatabase.PQuery("SELECT totalKills FROM characters WHERE guid = %u", player->GetGUID());
  18.                if (result)
  19.       {
  20.                   Field* field = result->Fetch();
  21.                if (field)
  22.                      return field[0].GetUInt32();
  23.        }
  24.                             return NULL;
  25.                 }
  26.    
  27.     bool OnGossipHello(Player* player, Creature* creature)
  28.        
  29.     {
  30.         if (player->getFaction == ALLIANCE) {
  31.         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "Menu #1", GOSSIP_SENDER_MAIN, 1);
  32.         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "Menu #2", GOSSIP_SENDER_MAIN, 2);
  33.         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "Menu #3", GOSSIP_SENDER_MAIN, 3);
  34.         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Nevermind", GOSSIP_SENDER_MAIN, 99);
  35.         player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  36.  
  37.     } else
  38.         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "Menu #1", GOSSIP_SENDER_MAIN, 4);
  39.         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "Menu #2", GOSSIP_SENDER_MAIN, 5);
  40.         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "Menu #3", GOSSIP_SENDER_MAIN, 6);
  41.        
  42.         return true;   
  43.     }
  44.  
  45.    
  46.     bool OnGossipSelect(Player* player, Creature* creature, uint32 /* sender */, uint32 actions)
  47.     {
  48.         player->PlayerTalkClass->ClearMenus();
  49.          WorldSession * PGS = player->GetSession();
  50.         switch (actions)
  51.         {
  52.             case 1: // Alliance vendor 1
  53.                 if (GetTotalKill(player) >= 100)
  54.                 PGS->SendListInventory(creature->GetGUID(), 70001);
  55.                 else
  56.                 player->PlayerTalkClass->SendGossipMenu(10, creature->GetGUID());  
  57.                 break;
  58.  
  59.            case 2: // Alliance vendor 2
  60.                 if (GetTotalKill(player) >= 300)
  61.                 PGS->SendListInventory(creature->GetGUID(), 70001);
  62.                 else
  63.                  player->PlayerTalkClass->SendGossipMenu(10, creature->GetGUID());  
  64.                 break; 
  65.  
  66.  
  67.            case 3: // Alliance vendor 3
  68.                 if (GetTotalKill(player) >= 500)
  69.                 PGS->SendListInventory(creature->GetGUID(), 70001);
  70.                 else
  71.                  player->PlayerTalkClass->SendGossipMenu(10, creature->GetGUID());  
  72.                 break; 
  73.  
  74.            case 4: // Horde Vendor 1
  75.                 if (GetTotalKill(player) >= 100)
  76.                 PGS->SendListInventory(creature->GetGUID(), 70001);
  77.                 else
  78.                  player->PlayerTalkClass->SendGossipMenu(10, creature->GetGUID());  
  79.                 break; 
  80.  
  81.          case 5: // Horde Vendor 2
  82.                 if (GetTotalKill(player) >= 300)
  83.                 PGS->SendListInventory(creature->GetGUID(), 70001);
  84.                 else
  85.                  player->PlayerTalkClass->SendGossipMenu(10, creature->GetGUID());  
  86.                 break; 
  87.  
  88.         case 6: // Horde Vendor 3
  89.                 if (GetTotalKill(player) >= 500)
  90.                 PGS->SendListInventory(creature->GetGUID(), 70001);
  91.                 else
  92.                  player->PlayerTalkClass->SendGossipMenu(10, creature->GetGUID());  
  93.                 break; 
  94.  
  95.             case 99:
  96.                 player->CLOSE_GOSSIP_MENU();
  97.                 break;
  98.         }
  99.         return true;
  100.     }
  101. };
  102.  
  103.  
  104.  
  105.  
  106. void AddSC_npc_mounts()
  107. {
  108.     new npc_mounts;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement