Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 KB | None | 0 0
  1. class npc_silvermoon_harry : public CreatureScript
  2. {
  3. public:
  4.     npc_silvermoon_harry() : CreatureScript("npc_silvermoon_harry") { }
  5.     bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
  6.     {
  7.         pPlayer->PlayerTalkClass->ClearMenus();
  8.         switch (uiAction)
  9.         {
  10.         case GOSSIP_ACTION_TRADE:
  11.             pPlayer->SEND_VENDORLIST(pCreature->GetGUID());
  12.             break;
  13.         case GOSSIP_ACTION_INFO_DEF:
  14.             pCreature->setFaction(168);
  15.             CAST_AI(npc_silvermoon_harry::npc_silvermoon_harryAI, pCreature->AI())->AttackStart(pPlayer);
  16.  
  17.             break; 
  18.         case GOSSIP_ACTION_INFO_DEF+1:
  19.             pPlayer->AddItem(34115,1);
  20.             CAST_AI(npc_silvermoon_harry::npc_silvermoon_harryAI, pCreature->AI())->m_owned = false;
  21.             break;
  22.         }//end switch
  23.         return true;
  24.     }
  25.     bool OnGossipHello(Player* pPlayer, Creature* pCreature)
  26.     {
  27.         if ((pPlayer->GetQuestStatus(11476) == QUEST_STATUS_INCOMPLETE) && !CAST_AI(npc_silvermoon_harry::npc_silvermoon_harryAI, pCreature->AI())->m_owned && !pPlayer->HasItemCount(34115,1))
  28.         {
  29.             pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Слышь, ДОЛГ ВЕРНУЛ!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
  30.         }
  31.         else
  32.             if ((pPlayer->GetQuestStatus(11476) == QUEST_STATUS_INCOMPLETE) && CAST_AI(npc_silvermoon_harry::npc_silvermoon_harryAI, pCreature->AI())->m_owned && !pPlayer->HasItemCount(34115,1))
  33.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Забирай, только РЅРµ бей!!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
  34.             else
  35.                 pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
  36.  
  37.         pPlayer->SEND_GOSSIP_MENU(7640, pCreature->GetGUID());
  38.         return true;
  39.     }
  40.     CreatureAI* GetAI(Creature* pCreature) const
  41.     {
  42.         return new npc_silvermoon_harryAI(pCreature);
  43.     }
  44.  
  45.     struct npc_silvermoon_harryAI : public ScriptedAI
  46.     {
  47.         npc_silvermoon_harryAI(Creature *c) : ScriptedAI(c)
  48.         {
  49.             m_uiNormalFaction = c->getFaction();
  50.             m_owned = false;
  51.         }
  52.         bool m_owned;
  53.         uint32 m_uiNormalFaction;
  54.  
  55.         void Reset()
  56.         {
  57.             if (me->getFaction() != m_uiNormalFaction)
  58.                 me->setFaction(m_uiNormalFaction);
  59.         }
  60.  
  61.         void AttackedBy(Unit* pAttacker)
  62.         {
  63.             if (me->getVictim())
  64.                 return;
  65.  
  66.             if (me->IsFriendlyTo(pAttacker))
  67.                 return;
  68.  
  69.             AttackStart(pAttacker);
  70.         }
  71.         void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
  72.         {
  73.             if (me->HealthBelowPct(30))
  74.             {
  75.                 m_owned = true;
  76.                 EnterEvadeMode();
  77.             }
  78.  
  79.         }
  80.  
  81.     };// end struct ai
  82. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement