Dinoza

npc modify price v3

Jan 21st, 2012
949
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.73 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2.  
  3. #define TEXT_HI "Привет"
  4. #define TEXT_NO "У тебя нету столько валюты"
  5. #define TEXT_COMBAT "Ты в режиме боя"
  6. #define TEXT_YES "Поменял"
  7. #define GOSSIP_TEXT_1 "Поменят 50к хонора на 1к апа"
  8. #define GOSSIP_TEXT_2 "Поменят 1к апа на 50к хонорa"
  9. #define GOSSIP_TEXT_3 "Купить 1к апа за 10к голдов"
  10. #define GOSSIP_TEXT_4 "Купить 15к хонора за 3к голдов"
  11. #define GOSSIP_TEXT_5 "Купить 30 эмблем льда за 50к хонора" //49426
  12. #define GOSSIP_TEXT_6 "Купить 30 эмблем триумфа за 25к хонора" //47241
  13.  
  14. #define HONOR 50000 //сколько хонора
  15. #define HONOR_GOLD 15000  //сколько хонора меняем
  16. #define HONOR_TRIUMPH 25000 //сколько хонора за эмблемы триумфа
  17. #define ARENA 1000 //сколько апа
  18. #define GOLD_AP 100000000 //сколько голда на ап
  19. #define GOLD_HONOR 30000000 //сколько голда на хонор
  20.  
  21. class npc_modify_price : public CreatureScript
  22.  
  23. {
  24.     public:
  25.     npc_modify_price() : CreatureScript("npc_modify_price") { }
  26.  
  27.                 bool OnGossipHello(Player *player, Creature *creature)
  28.                         {
  29.                             creature->MonsterWhisper(TEXT_HI, player->GetGUID());
  30.                             player->PlayerTalkClass->ClearMenus();
  31.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_1, GOSSIP_SENDER_MAIN, 1);
  32.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_2, GOSSIP_SENDER_MAIN, 2);
  33.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_3, GOSSIP_SENDER_MAIN, 3);
  34.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_4, GOSSIP_SENDER_MAIN, 4);
  35.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_5, GOSSIP_SENDER_MAIN, 5);
  36.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_6, GOSSIP_SENDER_MAIN, 6);
  37.                             player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,creature->GetGUID());
  38.                             return true;
  39.                         }
  40.  
  41.                 bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action )
  42.                         {
  43.                                if (!player->getAttackers().empty())
  44.                                {
  45.                                       player->CLOSE_GOSSIP_MENU();
  46.                                       creature->MonsterWhisper(TEXT_COMBAT, player->GetGUID());
  47.                                       return false;  
  48.                                      }
  49.                        
  50.                                
  51.  
  52.   switch(action)
  53.   {
  54.        case 1:
  55.            if (player->GetHonorPoints() < HONOR || player->GetArenaPoints() == sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS) || player->GetHonorPoints() == 0)
  56.                     {
  57.                           player->CLOSE_GOSSIP_MENU();
  58.                           creature->MonsterWhisper(TEXT_NO, player->GetGUID());
  59.                     }else{
  60.                           player->ModifyArenaPoints(+ ARENA);                  
  61.                           player->ModifyHonorPoints(- HONOR);
  62.                           player->CLOSE_GOSSIP_MENU();
  63.                           creature->MonsterWhisper(TEXT_YES, player->GetGUID());
  64.                           break;
  65.                          }
  66.        case 2:     
  67.         if (player->GetArenaPoints() < ARENA || player->GetHonorPoints() == sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS) || player->GetArenaPoints() == 0)
  68.               {
  69.                           player->CLOSE_GOSSIP_MENU();
  70.                           creature->MonsterWhisper(TEXT_NO, player->GetGUID());
  71.                     }else{
  72.                           player->ModifyArenaPoints(- ARENA);
  73.                           player->ModifyHonorPoints(+ HONOR);
  74.                           player->CLOSE_GOSSIP_MENU();
  75.                           creature->MonsterWhisper(TEXT_YES, player->GetGUID());
  76.                           break;                                     
  77.                          }
  78.                    
  79.        case 3:     
  80.         if (player->GetMoney() < GOLD_AP || player->GetArenaPoints() == sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS) || player->GetMoney() == 0)
  81.                     {
  82.                           player->CLOSE_GOSSIP_MENU();
  83.                           creature->MonsterWhisper(TEXT_NO, player->GetGUID());
  84.                     }else{
  85.                           player->ModifyMoney(- GOLD_AP);
  86.                           player->ModifyArenaPoints(+ ARENA);
  87.                           player->CLOSE_GOSSIP_MENU();
  88.                           creature->MonsterWhisper(TEXT_YES, player->GetGUID());
  89.                           break;                                     
  90.                          } 
  91.        case 4:     
  92.         if (player->GetMoney() < GOLD_HONOR || player->GetHonorPoints() == sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS)|| player->GetMoney() == 0)
  93.                     {
  94.                           player->CLOSE_GOSSIP_MENU();
  95.                           creature->MonsterWhisper(TEXT_NO, player->GetGUID());
  96.                     }else{
  97.                           player->ModifyMoney(- GOLD_HONOR);
  98.                           player->ModifyHonorPoints(+ HONOR_GOLD);
  99.                           player->CLOSE_GOSSIP_MENU();
  100.                           creature->MonsterWhisper(TEXT_YES, player->GetGUID());
  101.                           break;                                     
  102.                          } 
  103.        case 5:     
  104.         player->AddItem(49426, 30);
  105.         player->ModifyHonorPoints(- HONOR);
  106.         creature->MonsterWhisper(TEXT_YES, player->GetGUID());
  107.         break;                                   
  108.    
  109.        case 6:     
  110.         player->AddItem(47241, 30);
  111.         player->ModifyHonorPoints(- HONOR_TRIUMPH);
  112.         creature->MonsterWhisper(TEXT_YES, player->GetGUID());
  113.         break;                                   
  114.                            
  115.                    
  116.     }
  117.   return false;
  118.                         }
  119. };
  120.  
  121. void AddSC_npc_modify_price()
  122.  
  123. {
  124.  
  125.     new npc_modify_price;
  126.  
  127. }
Advertisement
Add Comment
Please, Sign In to add comment