Script/Creature: Scarshield Infiltrator/Vaelan.

(cherry picked from commit fdc4ab4ab4)
This commit is contained in:
SnapperRy
2016-10-14 17:49:55 +02:00
committed by joschiwald
parent d7c85d7193
commit a2fce3a486
3 changed files with 125 additions and 2 deletions

View File

@@ -50,7 +50,8 @@ enum BRSDataTypes
DATA_HALL_RUNE_4 = 19,
DATA_HALL_RUNE_5 = 20,
DATA_HALL_RUNE_6 = 21,
DATA_HALL_RUNE_7 = 22
DATA_HALL_RUNE_7 = 22,
DATA_SCARSHIELD_INFILTRATOR = 23
};
enum BRSCreaturesIds
@@ -73,7 +74,8 @@ enum BRSCreaturesIds
NPC_BLACKHAND_SUMMONER = 9818,
NPC_BLACKHAND_VETERAN = 9819,
NPC_BLACKHAND_INCARCERATOR = 10316,
NPC_LORD_VICTOR_NEFARIUS = 10162
NPC_LORD_VICTOR_NEFARIUS = 10162,
NPC_SCARSHIELD_INFILTRATOR = 10299
};
enum BRSAdditionalData

View File

@@ -107,6 +107,9 @@ public:
if (GetBossState(DATA_GYTH) == DONE)
creature->DisappearAndDie();
break;
case NPC_SCARSHIELD_INFILTRATOR:
ScarshieldInfiltrator = creature->GetGUID();
break;
}
}
@@ -316,6 +319,8 @@ public:
return TheBeast;
case DATA_GENERAL_DRAKKISATH:
return GeneralDrakkisath;
case DATA_SCARSHIELD_INFILTRATOR:
return ScarshieldInfiltrator;
case GO_EMBERSEER_IN:
return go_emberseerin;
case GO_DOORS:
@@ -494,6 +499,7 @@ public:
ObjectGuid LordVictorNefarius;
ObjectGuid TheBeast;
ObjectGuid GeneralDrakkisath;
ObjectGuid ScarshieldInfiltrator;
ObjectGuid go_emberseerin;
ObjectGuid go_doors;
ObjectGuid go_emberseerout;
@@ -563,9 +569,33 @@ public:
}
};
class at_nearby_scarshield_infiltrator : public AreaTriggerScript
{
public:
at_nearby_scarshield_infiltrator() : AreaTriggerScript("at_nearby_scarshield_infiltrator") { }
bool OnTrigger(Player* player, const AreaTriggerEntry* /*at*/, bool /*entered*/) override
{
if (player && player->IsAlive())
if (InstanceScript* instance = player->GetInstanceScript())
if (Creature* infiltrator = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_SCARSHIELD_INFILTRATOR)))
{
if (player->getLevel() >= 57)
infiltrator->AI()->SetData(1, 1);
else if (infiltrator->GetEntry() == NPC_SCARSHIELD_INFILTRATOR)
infiltrator->AI()->Talk(0, player);
return true;
}
return false;
}
};
void AddSC_instance_blackrock_spire()
{
new instance_blackrock_spire();
new at_dragonspire_hall();
new at_blackrock_stadium();
new at_nearby_scarshield_infiltrator();
}