Advertisement
Dinoza

npc modify price v2

Jan 16th, 2012
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.82 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.  
  12. #define HONOR 50000
  13. #define HONOR_GOLD 15000  //сколько хонора меняем
  14. #define ARENA 1000 //сколько апа
  15. #define GOLD_AP 100000000 //сколько голда на ап
  16. #define GOLD_HONOR 30000000 //сколько голда на хонор
  17.  
  18. class npc_modify_price : public CreatureScript
  19.  
  20. {
  21.     public:
  22.     npc_modify_price() : CreatureScript("npc_modify_price") { }
  23.  
  24.                 bool OnGossipHello(Player *player, Creature *creature)
  25.                         {
  26.                             creature->MonsterWhisper(TEXT_HI, player->GetGUID());
  27.                             player->PlayerTalkClass->ClearMenus();
  28.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_1, GOSSIP_SENDER_MAIN, 1);
  29.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_2, GOSSIP_SENDER_MAIN, 2);
  30.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_3, GOSSIP_SENDER_MAIN, 3);
  31.                             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_4, GOSSIP_SENDER_MAIN, 4);
  32.                             player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,creature->GetGUID());
  33.                             return true;
  34.                         }
  35.  
  36.                 bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action )
  37.                         {
  38.                                if (!player->getAttackers().empty())
  39.                                {
  40.                                       player->CLOSE_GOSSIP_MENU();
  41.                                       creature->MonsterTextEmote(TEXT_COMBAT, 0, true);
  42.                                       return false;  
  43.                                      }
  44.                        
  45.                                
  46.  
  47.   switch(action)
  48.   {
  49.        case 1:
  50.            if (player->GetHonorPoints() < HONOR || player->GetArenaPoints() == sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS) || player->GetHonorPoints() == 0)
  51.                     {
  52.                           player->CLOSE_GOSSIP_MENU();
  53.                           creature->MonsterWhisper(TEXT_NO, player->GetGUID());
  54.                     }else{
  55.                           player->ModifyArenaPoints(+ ARENA);                  
  56.                           player->ModifyHonorPoints(- HONOR);
  57.                           player->CLOSE_GOSSIP_MENU();
  58.                           creature->MonsterTextEmote(TEXT_YES, 0, true);
  59.                           break;
  60.                          }
  61.        case 2:     
  62.         if (player->GetArenaPoints() < ARENA || player->GetHonorPoints() == sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS) || player->GetArenaPoints() == 0)
  63.               {
  64.                           player->CLOSE_GOSSIP_MENU();
  65.                           creature->MonsterWhisper(TEXT_NO, player->GetGUID());
  66.                     }else{
  67.                           player->ModifyArenaPoints(- ARENA);
  68.                           player->ModifyHonorPoints(+ HONOR);
  69.                           player->CLOSE_GOSSIP_MENU();
  70.                           creature->MonsterTextEmote(TEXT_YES, 0, true);
  71.                           break;                                     
  72.                          }
  73.                    
  74.        case 3:     
  75.         if (player->GetMoney() < GOLD_AP || player->GetArenaPoints() == sWorld->getIntConfig(CONFIG_MAX_ARENA_POINTS) || player->GetMoney() == 0)
  76.                     {
  77.                           player->CLOSE_GOSSIP_MENU();
  78.                           creature->MonsterWhisper(TEXT_NO, player->GetGUID());
  79.                     }else{
  80.                           player->ModifyMoney(- GOLD_AP);
  81.                           player->ModifyArenaPoints(+ ARENA);
  82.                           player->CLOSE_GOSSIP_MENU();
  83.                           creature->MonsterTextEmote(TEXT_YES, 0, true);
  84.                           break;                                     
  85.                          } 
  86.        case 4:     
  87.         if (player->GetMoney() < GOLD_HONOR || player->GetHonorPoints() == sWorld->getIntConfig(CONFIG_MAX_HONOR_POINTS)|| player->GetMoney() == 0)
  88.                     {
  89.                           player->CLOSE_GOSSIP_MENU();
  90.                           creature->MonsterWhisper(TEXT_NO, player->GetGUID());
  91.                     }else{
  92.                           player->ModifyMoney(- GOLD_HONOR);
  93.                           player->ModifyHonorPoints(+ HONOR_GOLD);
  94.                           player->CLOSE_GOSSIP_MENU();
  95.                           creature->MonsterTextEmote(TEXT_YES, 0, true);
  96.                           break;                                     
  97.                          } 
  98.                    
  99.     }
  100.   return false;
  101.                         }
  102. };
  103.  
  104. void AddSC_npc_modify_price()
  105.  
  106. {
  107.  
  108.     new npc_modify_price;
  109.  
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement