Guest User

Untitled

a guest
Oct 17th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.11 KB | None | 0 0
  1.     bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
  2.     {
  3.         player->PlayerTalkClass->ClearMenus();
  4.         npc_arthasAI* pAI = CAST_AI(npc_arthas::npc_arthasAI, creature->AI());
  5.  
  6.         if (!pAI)
  7.             return false;
  8.  
  9.         switch (action)
  10.         {
  11.             case GOSSIP_ACTION_INFO_DEF: //phase 0 bridge
  12.                 pAI->SetEscortPaused(false);
  13.                 creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
  14.         pAI->culling_faction = player->getFaction();
  15.                 break;
  16.  
  17.             case GOSSIP_ACTION_INFO_DEF+1: //phase 1 strat entrance
  18.                 pAI->pInstance->SetData(TYPE_PHASE, 2);
  19.                 pAI->SetEscortPaused(false);
  20.                 creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
  21.                 break;
  22.  
  23.             case GOSSIP_ACTION_INFO_DEF+2:
  24.                 pAI->SetEscortPaused(false);
  25.                 creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
  26.                 break;
  27.             case GOSSIP_ACTION_INFO_DEF+3:
  28.                 pAI->SetEscortPaused(false);
  29.                 creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
  30.                 break;
  31.  
  32.             case GOSSIP_ACTION_INFO_DEF+4:
  33.                 pAI->SetEscortPaused(false);
  34.                 creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
  35.                 break;
  36.  
  37.             case GOSSIP_ACTION_INFO_DEF+5:
  38.                 pAI->SetEscortPaused(false);
  39.                 creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
  40.                  if(Creature* pMalganis = pAI->me->SummonCreature(NPC_MALGANIS,2296.665f,1502.362f,128.362f,4.961f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,900000))
  41.                  {
  42.                      pAI->pInstance->SetData64(NPC_MALGANIS, pMalganis->GetGUID());
  43.                    pMalganis->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
  44.          }
  45.                 break;
  46.         }
  47.         player->CLOSE_GOSSIP_MENU();
  48.        
  49.         return true;
  50.     }
  51.  
  52.     bool OnGossipHello(Player* player, Creature* creature)
  53.     {
  54.         npc_arthasAI* pAI = CAST_AI(npc_arthas::npc_arthasAI, creature->AI());
  55.  
  56.             switch (pAI->pInstance->GetData(TYPE_PHASE))
  57.             {
  58.                 case 1:
  59.                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); // strat entrance -> malganis gossip
  60.                     player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_0, creature->GetGUID());
  61.                     break;
  62.                 case 2:
  63.                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); // strat entrance -> malganis gossip
  64.                     player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_1, creature->GetGUID());
  65.                     break;
  66.                 case 5:
  67.                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); // after malganis gossip ->  waves
  68.                     player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_2, creature->GetGUID());
  69.                     break;
  70.                 case 8:
  71.                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3); //house -> epoch
  72.                     player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_3, creature->GetGUID());
  73.                     break;
  74.                 case 9:
  75.                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); // after house
  76.                     player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_4, creature->GetGUID());
  77.                     break;
  78.                 case 10:
  79.                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_ARTHAS_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5); // before malganis encounter
  80.                     player->SEND_GOSSIP_MENU(GOSSIP_MENU_ARTHAS_5, creature->GetGUID());
  81.                     break;
  82.                 default:
  83.                     return false;
  84.             }
  85.         return true;
  86.     }
Add Comment
Please, Sign In to add comment