C++ > npc_melizza_brimbuzzle

Titrenpc_melizza_brimbuzzle
Postée le07-01-2012
Affichée115
Mini-lien
Description

Script

EtatNe contient pas d'erreurs. Ne contient pas d'erreurs.
Code d'insertion
Options
Afficher les numéros de lignes  Mettre la source en plein ecran  Selectionner la source  Partager sur Facebook 
Téléchargement Telecharger en format txt  Telecharger en format pdf  Telecharger en format cpp
Plein ecran
#include "precompiled.h"
#include "escort_ai.h"

enum
{
        //Quete
        QUEST_FAITES_MOI_SORTIR       = 6132,
       
        //Donneur de quete
    NPC_MELIZZA_BRIMBUZZLE        = 12277,
       
        //Mob
        NPC_MOB_1                                       = 4659, //Mob Maraudeur
        NPC_MOB_2                                       = 4655, //Mob Wrangler
        NPC_MOB_3                                       = 4660, //Mob ChienChien
       
        //Objet
        Objet_1                                         = 30188 // Cage de Melizza / Doit s'ouvrir au debut de l'escort
};

struct MANGOS_DLL_DECL npc_melizza_brimbuzzleAI : public npc_escortAI
{
    npc_melizza_brimbuzzleAI(Creature* pCreature) : npc_escortAI(pCreature) { Reset(); }
       
        void WaypointReached(uint32 WP)
    {
        switch (WP)
        {                              
            case 10:
                m_creature->SummonCreature(NPC_MOB_1, -1281.74f, 2669.29f, 111.55f, 6.13f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                m_creature->SummonCreature(NPC_MOB_1, -1274.81f, 2657.07f, 111.61f, 1.49f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                m_creature->SummonCreature(NPC_MOB_1, -1260.38f, 2662.90f, 111.87f, 2.74f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                                m_creature->SummonCreature(NPC_MOB_1, -1264.36f, 2678.72f, 111.63f, 4.16f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                break;
                               
            case 19:
                m_creature->SummonCreature(NPC_MOB_3, -1377.03f, 2496.34f, 90.37f, 1.82f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                m_creature->SummonCreature(NPC_MOB_3, -1380.83f, 2496.86f, 90.16f, 1.45f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                m_creature->SummonCreature(NPC_MOB_3, -1385.38f, 2497.92f, 90.38f, 1.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                                m_creature->SummonCreature(NPC_MOB_2, -1384.53f, 2491.17f, 89.20f, 1.21f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                                m_creature->SummonCreature(NPC_MOB_2, -1378.99f, 2490.38f, 89.41f, 1.51f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
                break;
                               
            case 20:
                if (Player* pPlayer = GetPlayerForEscort())
                    pPlayer->GroupEventHappens(QUEST_FAITES_MOI_SORTIR, m_creature);
                break;
        }
    }
       
            void Reset()
    {
    }

    void Aggro(Unit* who)
    {
    }

    void JustSummoned(Creature* summoned)
    {
        summoned->AI()->AttackStart(m_creature);
    }
};

CreatureAI* GetAI_npc_melizza_brimbuzzle(Creature* pCreature)
{
    return new npc_melizza_brimbuzzleAI(pCreature);
}

bool QuestAccept_npc_melizza_brimbuzzle(Player* pPlayer, Creature* pCreature, const Quest* pQuest)
{
    if (pQuest->GetQuestId() == QUEST_FAITES_MOI_SORTIR)
    {
                pCreature->SetStandState(UNIT_STAND_STATE_STAND);
               
        if (pPlayer->GetTeam() == ALLIANCE)
            pCreature->setFaction(FACTION_ESCORT_A_PASSIVE);

        if (pPlayer->GetTeam() == HORDE)
            pCreature->setFaction(FACTION_ESCORT_H_PASSIVE);

        if (npc_melizza_brimbuzzleAI* pEscortAI = dynamic_cast<npc_melizza_brimbuzzleAI*>(pCreature->AI()))
            pEscortAI->Start(false, pPlayer, pQuest);
    }
    return true;
}

void AddSC_npc_melizza_brimbuzzle()
{
        Script* pNewScript;
    pNewScript = new Script;
    pNewScript->Name = "npc_melizza_brimbuzzle";
    pNewScript->GetAI = &GetAI_npc_melizza_brimbuzzle;
    pNewScript->pQuestAcceptNPC = &QuestAccept_npc_melizza_brimbuzzle;
    pNewScript->RegisterSelf();
}


//////////////////////
//////////////////////
//////////////////////
//////////////////////

INSERT INTO `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`)
VALUES
('29197','0','-1152.34','2707.53','111','0',''),
('29197','1','-1154.7','2709.02','111','0','Ouverture porte'),
('29197','2','-1163.82','2714','111','0',''),
('29197','3','-1173.41','2716.8','112','0',''),
('29197','4','-1187.24','2713.8','111','0',''),
('29197','5','-1199.4','2707.65','111','0',''),
('29197','6','-1214.77','2699.27','111','0',''),
('29197','7','-1233.21','2689.24','111','0',''),
('29197','8','-1251.66','2679.21','111','0',''),
('29197','9','-1271.41','2668.08','111','0',''),
('29197','10','-1285.41','2653.19','111','0','Attaque 1'),
('29197','11','-1298.29','2636.6','111','0',''),
('29197','12','-1311.85','2618.39','111','0',''),
('29197','13','-1326.23','2602.43','111','0',''),
('29197','14','-1347.03','2584.68','111','0',''),
('29197','15','-1357.15','2569.41','111','0',''),
('29197','16','-1368.22','2556.44','109','0',''),
('29197','17','-1372.17','2538.13','103','0',''),
('29197','18','-1375.69','2519.64','97','0',''),
('29197','19','-1379.79','2506.89','92','0','Attaque 2'),
('29197','20','-1381.12','2489.3','89','0','Valide quete'),
('29197','21','-1384.06','2469.5','88','0','');