Merge pull request #5755 from GyxTom/master
Core/Script: Clean-Up in Scripts.
This commit is contained in:
@@ -45,12 +45,12 @@ public:
|
||||
player->GetSession()->SendNotification("Instance script not initialized");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (instance->GetData(EVENT_STATE) != CANNON_NOT_USED)
|
||||
return false;
|
||||
|
||||
if (targets.GetGOTarget() && targets.GetGOTarget()->GetEntry() == GO_DEFIAS_CANNON)
|
||||
{
|
||||
instance->SetData(EVENT_STATE, CANNON_GUNPOWDER_USED);
|
||||
}
|
||||
|
||||
player->DestroyItemCount(item->GetEntry(), 1, true);
|
||||
return true;
|
||||
|
||||
@@ -111,12 +111,33 @@ public:
|
||||
|
||||
switch (uiSpeech_counter)
|
||||
{
|
||||
case 1: DoScriptText(SAY_PERSUADED1, me); uiSpeech_timer = 8000; break;
|
||||
case 2: DoScriptText(SAY_PERSUADED2, me); uiSpeech_timer = 8000; break;
|
||||
case 3: DoScriptText(SAY_PERSUADED3, me); uiSpeech_timer = 8000; break;
|
||||
case 4: DoScriptText(SAY_PERSUADED4, me); uiSpeech_timer = 8000; break;
|
||||
case 5: DoScriptText(SAY_PERSUADED5, player); uiSpeech_timer = 8000; break;
|
||||
case 6: DoScriptText(SAY_PERSUADED6, me);
|
||||
case 1:
|
||||
DoScriptText(SAY_PERSUADED1, me);
|
||||
uiSpeech_timer = 8000;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
DoScriptText(SAY_PERSUADED2, me);
|
||||
uiSpeech_timer = 8000;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
DoScriptText(SAY_PERSUADED3, me);
|
||||
uiSpeech_timer = 8000;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
DoScriptText(SAY_PERSUADED4, me);
|
||||
uiSpeech_timer = 8000;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
DoScriptText(SAY_PERSUADED5, player);
|
||||
uiSpeech_timer = 8000;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
DoScriptText(SAY_PERSUADED6, me);
|
||||
player->Kill(me);
|
||||
//me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
//me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
@@ -704,7 +725,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -732,7 +755,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -760,7 +785,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -788,7 +815,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -816,7 +845,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -844,7 +875,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -872,7 +905,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -900,7 +935,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -928,7 +965,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -956,7 +995,9 @@ public:
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case 10: DoScriptText(SAY_EXEC_WAITING, me, player); break;
|
||||
case 10:
|
||||
DoScriptText(SAY_EXEC_WAITING, me, player);
|
||||
break;
|
||||
case 11:
|
||||
DoScriptText(EMOTE_DIES, me);
|
||||
me->setDeathState(JUST_DIED);
|
||||
@@ -978,7 +1019,6 @@ public:
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_the_scarlet_enclave_c2()
|
||||
|
||||
@@ -578,7 +578,8 @@ public:
|
||||
temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[16].x, LightofDawnLoc[16].y, LightofDawnLoc[16].z);
|
||||
}
|
||||
JumpToNextStep(10000);
|
||||
} break;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
DoScriptText(SAY_LIGHT_OF_DAWN27, me);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
@@ -1309,7 +1310,6 @@ public:
|
||||
case 71:
|
||||
//if (GameObject* go = me->GetMap()->GetGameObject(uiDawnofLightGUID)) // Turn off dawn of light
|
||||
// go->SetPhaseMask(0, true);
|
||||
|
||||
{
|
||||
Map* map = me->GetMap(); // search players with in 50 yards for quest credit
|
||||
Map::PlayerList const &PlayerList = map->GetPlayers();
|
||||
|
||||
@@ -209,10 +209,8 @@ class boss_akilzon : public CreatureScript
|
||||
for (std::list<Unit*>::const_iterator i = tempUnitMap.begin(); i != tempUnitMap.end(); ++i)
|
||||
{
|
||||
if (!Cloud->IsWithinDist(*i, 6, false))
|
||||
{
|
||||
Cloud->CastCustomSpell(*i, 43137, &bp0, NULL, NULL, true, 0, 0, me->GetGUID());
|
||||
}
|
||||
}
|
||||
// visual
|
||||
float x, y, z;
|
||||
z = me->GetPositionZ();
|
||||
@@ -311,7 +309,8 @@ class boss_akilzon : public CreatureScript
|
||||
isRaining = true;
|
||||
}
|
||||
|
||||
if (ElectricalStorm_Timer <= diff) {
|
||||
if (ElectricalStorm_Timer <= diff)
|
||||
{
|
||||
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true);
|
||||
if (!target)
|
||||
{
|
||||
@@ -390,11 +389,7 @@ class boss_akilzon : public CreatureScript
|
||||
class mob_akilzon_eagle : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
mob_akilzon_eagle()
|
||||
: CreatureScript("mob_akilzon_eagle")
|
||||
{
|
||||
}
|
||||
mob_akilzon_eagle() : CreatureScript("mob_akilzon_eagle") { }
|
||||
|
||||
struct mob_akilzon_eagleAI : public ScriptedAI
|
||||
{
|
||||
@@ -412,7 +407,10 @@ class mob_akilzon_eagle : public CreatureScript
|
||||
me->SetUnitMovementFlags(MOVEMENTFLAG_DISABLE_GRAVITY);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {DoZoneInCombat();}
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* /*who*/) {}
|
||||
|
||||
|
||||
@@ -186,7 +186,10 @@ struct boss_hexlord_addAI : public ScriptedAI
|
||||
|
||||
void Reset() {}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {DoZoneInCombat();}
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 /*diff*/)
|
||||
{
|
||||
|
||||
@@ -73,21 +73,29 @@ class npc_professor_phizzlethorpe : public CreatureScript
|
||||
|
||||
switch (uiPointId)
|
||||
{
|
||||
case 4:Talk(SAY_PROGRESS_2, player->GetGUID());break;
|
||||
case 5:Talk(SAY_PROGRESS_3, player->GetGUID());break;
|
||||
case 8:Talk(EMOTE_PROGRESS_4);break;
|
||||
case 4:
|
||||
Talk(SAY_PROGRESS_2, player->GetGUID());
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_PROGRESS_3, player->GetGUID());
|
||||
break;
|
||||
case 8:
|
||||
Talk(EMOTE_PROGRESS_4);
|
||||
break;
|
||||
case 9:
|
||||
{
|
||||
me->SummonCreature(MOB_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||
me->SummonCreature(MOB_VENGEFUL_SURGE, -2052.96f, -2142.49f, 20.15f, 1.0f, TEMPSUMMON_CORPSE_DESPAWN, 0);
|
||||
break;
|
||||
}
|
||||
case 10:Talk(SAY_PROGRESS_5, player->GetGUID());break;
|
||||
case 10:
|
||||
Talk(SAY_PROGRESS_5, player->GetGUID());
|
||||
break;
|
||||
case 11:
|
||||
Talk(SAY_PROGRESS_6, player->GetGUID());
|
||||
SetRun();
|
||||
break;
|
||||
case 19:Talk(SAY_PROGRESS_7, player->GetGUID()); break;
|
||||
case 19:
|
||||
Talk(SAY_PROGRESS_7, player->GetGUID());
|
||||
break;
|
||||
case 20:
|
||||
Talk(EMOTE_PROGRESS_8);
|
||||
Talk(SAY_PROGRESS_9, player->GetGUID());
|
||||
|
||||
@@ -108,7 +108,10 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) { damage = 0; }
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage)
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -148,9 +151,12 @@ public:
|
||||
|
||||
void MoveInLineOfSight(Unit* /*who*/) {}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) { damage = 0; }
|
||||
};
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage)
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
/* This is the script for the Doomfire Spirit Mob. This mob simply follow players or
|
||||
@@ -188,7 +194,10 @@ public:
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage) { damage = 0; }
|
||||
void DamageTaken(Unit* /*done_by*/, uint32 &damage)
|
||||
{
|
||||
damage = 0;
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
|
||||
@@ -896,9 +896,17 @@ void hyjalAI::UpdateAI(const uint32 diff)
|
||||
|
||||
switch (Spells[i].TargetType)
|
||||
{
|
||||
case TARGETTYPE_SELF: target = me; break;
|
||||
case TARGETTYPE_RANDOM: target = SelectTarget(SELECT_TARGET_RANDOM, 0); break;
|
||||
case TARGETTYPE_VICTIM: target = me->getVictim(); break;
|
||||
case TARGETTYPE_SELF:
|
||||
target = me;
|
||||
break;
|
||||
|
||||
case TARGETTYPE_RANDOM:
|
||||
target = SelectTarget(SELECT_TARGET_RANDOM, 0);
|
||||
break;
|
||||
|
||||
case TARGETTYPE_VICTIM:
|
||||
target = me->getVictim();
|
||||
break;
|
||||
}
|
||||
|
||||
if (target && target->isAlive())
|
||||
|
||||
@@ -176,17 +176,23 @@ public:
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DATA_RAGEWINTERCHILLEVENT: m_auiEncounter[0] = data; break;
|
||||
case DATA_RAGEWINTERCHILLEVENT:
|
||||
m_auiEncounter[0] = data;
|
||||
break;
|
||||
case DATA_ANETHERONEVENT:
|
||||
m_auiEncounter[1] = data;
|
||||
break;
|
||||
case DATA_KAZROGALEVENT: m_auiEncounter[2] = data; break;
|
||||
case DATA_KAZROGALEVENT:
|
||||
m_auiEncounter[2] = data;
|
||||
break;
|
||||
case DATA_AZGALOREVENT:
|
||||
{
|
||||
m_auiEncounter[3] = data;
|
||||
if (data == DONE)
|
||||
{
|
||||
if (ArchiYell)break;
|
||||
if (ArchiYell)
|
||||
break;
|
||||
|
||||
ArchiYell = true;
|
||||
|
||||
Creature* creature = instance->GetCreature(Azgalor);
|
||||
@@ -220,12 +226,17 @@ public:
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DATA_ARCHIMONDEEVENT: m_auiEncounter[4] = data; break;
|
||||
case DATA_RESET_TRASH_COUNT: Trash = 0; break;
|
||||
|
||||
case DATA_ARCHIMONDEEVENT:
|
||||
m_auiEncounter[4] = data;
|
||||
break;
|
||||
case DATA_RESET_TRASH_COUNT:
|
||||
Trash = 0;
|
||||
break;
|
||||
case DATA_TRASH:
|
||||
if (data) Trash = data;
|
||||
else Trash--;
|
||||
if (data)
|
||||
Trash = data;
|
||||
else
|
||||
Trash--;
|
||||
DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, Trash);
|
||||
break;
|
||||
case TYPE_RETREAT:
|
||||
|
||||
@@ -318,11 +318,11 @@ public:
|
||||
|
||||
void DoSelectSummon()
|
||||
{
|
||||
uint32 entry = 0;
|
||||
|
||||
if ((mRiftWaveCount > 2 && mWaveId < 1) || mRiftWaveCount > 3)
|
||||
mRiftWaveCount = 0;
|
||||
|
||||
uint32 entry = 0;
|
||||
|
||||
entry = PortalWaves[mWaveId].PortalMob[mRiftWaveCount];
|
||||
sLog->outDebug(LOG_FILTER_TSCR, "TSCR: npc_time_rift: summoning wave Creature (Wave %u, Entry %u).", mRiftWaveCount, entry);
|
||||
|
||||
|
||||
@@ -516,7 +516,6 @@ public:
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_azshara()
|
||||
|
||||
@@ -309,8 +309,13 @@ public:
|
||||
me->SetHealth(me->CountPctFromMaxHealth(15));
|
||||
switch (rand()%2)
|
||||
{
|
||||
case 0: me->SetStandState(UNIT_STAND_STATE_SIT); break;
|
||||
case 1: me->SetStandState(UNIT_STAND_STATE_SLEEP); break;
|
||||
case 0:
|
||||
me->SetStandState(UNIT_STAND_STATE_SIT);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
me->SetStandState(UNIT_STAND_STATE_SLEEP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -402,8 +402,13 @@ public:
|
||||
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case GO_SPHERE1: instance->SetData(DATA_SPHERE1_EVENT, IN_PROGRESS); break;
|
||||
case GO_SPHERE2: instance->SetData(DATA_SPHERE2_EVENT, IN_PROGRESS); break;
|
||||
case GO_SPHERE1:
|
||||
instance->SetData(DATA_SPHERE1_EVENT, IN_PROGRESS);
|
||||
break;
|
||||
|
||||
case GO_SPHERE2:
|
||||
instance->SetData(DATA_SPHERE2_EVENT, IN_PROGRESS);
|
||||
break;
|
||||
}
|
||||
|
||||
CAST_AI(boss_taldaram::boss_taldaramAI, pPrinceTaldaram->AI())->CheckSpheres();
|
||||
|
||||
@@ -110,26 +110,37 @@ public:
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case 193564: Prince_TaldaramPlatform = go->GetGUID();
|
||||
if (m_auiEncounter[1] == DONE) HandleGameObject(0, true, go); break;
|
||||
case 193093: Prince_TaldaramSpheres[0] = go->GetGUID();
|
||||
case 193564:
|
||||
Prince_TaldaramPlatform = go->GetGUID();
|
||||
if (m_auiEncounter[1] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 193093:
|
||||
Prince_TaldaramSpheres[0] = go->GetGUID();
|
||||
if (spheres[0] == IN_PROGRESS)
|
||||
{
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
else go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case 193094: Prince_TaldaramSpheres[1] = go->GetGUID();
|
||||
case 193094:
|
||||
Prince_TaldaramSpheres[1] = go->GetGUID();
|
||||
if (spheres[1] == IN_PROGRESS)
|
||||
{
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
else go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
else
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case 192236:
|
||||
Prince_TaldaramGate = go->GetGUID(); // Web gate past Prince Taldaram
|
||||
if (m_auiEncounter[1] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
case 192236: Prince_TaldaramGate = go->GetGUID(); // Web gate past Prince Taldaram
|
||||
if (m_auiEncounter[1] == DONE)HandleGameObject(0, true, go);break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,8 +148,13 @@ public:
|
||||
{
|
||||
switch (idx)
|
||||
{
|
||||
case DATA_ADD_JEDOGA_OPFER: JedogaSacrifices = guid; break;
|
||||
case DATA_PL_JEDOGA_TARGET: JedogaTarget = guid; break;
|
||||
case DATA_ADD_JEDOGA_OPFER:
|
||||
JedogaSacrifices = guid;
|
||||
break;
|
||||
|
||||
case DATA_PL_JEDOGA_TARGET:
|
||||
JedogaTarget = guid;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,7 +195,9 @@ public:
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case DATA_ELDER_NADOX_EVENT: m_auiEncounter[0] = data; break;
|
||||
case DATA_ELDER_NADOX_EVENT:
|
||||
m_auiEncounter[0] = data;
|
||||
break;
|
||||
case DATA_PRINCE_TALDARAM_EVENT:
|
||||
if (data == DONE)
|
||||
HandleGameObject(Prince_TaldaramGate, true);
|
||||
@@ -201,11 +219,21 @@ public:
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DATA_HERALD_VOLAZJ_EVENT: m_auiEncounter[3] = data; break;
|
||||
case DATA_AMANITAR_EVENT: m_auiEncounter[4] = data; break;
|
||||
case DATA_SPHERE1_EVENT: spheres[0] = data; break;
|
||||
case DATA_SPHERE2_EVENT: spheres[1] = data; break;
|
||||
case DATA_JEDOGA_TRIGGER_SWITCH: switchtrigger = data; break;
|
||||
case DATA_HERALD_VOLAZJ_EVENT:
|
||||
m_auiEncounter[3] = data;
|
||||
break;
|
||||
case DATA_AMANITAR_EVENT:
|
||||
m_auiEncounter[4] = data;
|
||||
break;
|
||||
case DATA_SPHERE1_EVENT:
|
||||
spheres[0] = data;
|
||||
break;
|
||||
case DATA_SPHERE2_EVENT:
|
||||
spheres[1] = data;
|
||||
break;
|
||||
case DATA_JEDOGA_TRIGGER_SWITCH:
|
||||
switchtrigger = data;
|
||||
break;
|
||||
case DATA_JEDOGA_RESET_INITIANDS:
|
||||
for (std::set<uint64>::const_iterator itr = InitiandGUIDs.begin(); itr != InitiandGUIDs.end(); ++itr)
|
||||
{
|
||||
|
||||
@@ -426,9 +426,17 @@ public:
|
||||
{
|
||||
switch (urand(0, 2))
|
||||
{
|
||||
case 0: me->SummonCreature(CREATURE_YMIRJAR_WARRIOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break;
|
||||
case 1: me->SummonCreature(CREATURE_YMIRJAR_WITCH_DOCTOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break;
|
||||
case 2: me->SummonCreature(CREATURE_YMIRJAR_HARPOONER, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break;
|
||||
case 0:
|
||||
me->SummonCreature(CREATURE_YMIRJAR_WARRIOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
me->SummonCreature(CREATURE_YMIRJAR_WITCH_DOCTOR, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
me->SummonCreature(CREATURE_YMIRJAR_HARPOONER, SpawnLoc.GetPositionX()+rand()%5, SpawnLoc.GetPositionY()+rand()%5, SpawnLoc.GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,7 +309,6 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
{
|
||||
|
||||
if (player->GetQuestStatus(QUEST_SPIRITS_WATCH_OVER_US) == QUEST_STATUS_INCOMPLETE)
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_I, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
|
||||
@@ -588,6 +587,7 @@ public:
|
||||
Phase = 1;
|
||||
go_caribouGUID = 0;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
void MoveInLineOfSight(Unit* /*who*/) {}
|
||||
|
||||
@@ -617,7 +617,6 @@ public:
|
||||
uiPhaseTimer = 2000;
|
||||
Phase = 2;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (GameObject* go_fur = me->FindNearestGameObject(GO_HIGH_QUALITY_FUR, 11.0f))
|
||||
me->GetMotionMaster()->MovePoint(0, go_fur->GetPositionX(), go_fur->GetPositionY(), go_fur->GetPositionZ());
|
||||
@@ -645,7 +644,6 @@ public:
|
||||
uiPhaseTimer = 500;
|
||||
Phase = 7;
|
||||
break;
|
||||
|
||||
case 7:
|
||||
{
|
||||
GameObject* go_caribou = NULL;
|
||||
@@ -1017,7 +1015,6 @@ public:
|
||||
void WaypointReached(uint32 uiPointId)
|
||||
{
|
||||
Player* player = GetPlayerForEscort();
|
||||
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
@@ -1965,7 +1962,6 @@ public:
|
||||
switch (i)
|
||||
{
|
||||
case 29:
|
||||
if (player)
|
||||
player->GroupEventHappens(QUEST_GET_ME_OUTA_HERE, me);
|
||||
break;
|
||||
}
|
||||
@@ -2036,7 +2032,7 @@ public:
|
||||
uiTimer = 1500;
|
||||
bStarted = false;
|
||||
|
||||
GameObject* pTrap;
|
||||
GameObject* pTrap = NULL;
|
||||
for (uint8 i = 0; i < MammothTrapsNum; ++i)
|
||||
{
|
||||
pTrap = me->FindNearestGameObject(MammothTraps[i], 11.0f);
|
||||
@@ -2071,11 +2067,12 @@ public:
|
||||
|
||||
void MovementInform(uint32 uiType, uint32 /*uiId*/)
|
||||
{
|
||||
|
||||
if (uiType != POINT_MOTION_TYPE)
|
||||
return;
|
||||
|
||||
me->DisappearAndDie();
|
||||
GameObject* pTrap;
|
||||
|
||||
GameObject* pTrap = NULL;
|
||||
for (uint8 i = 0; i < MammothTrapsNum; ++i)
|
||||
{
|
||||
pTrap = me->FindNearestGameObject(MammothTraps[i], 11.0f);
|
||||
@@ -2153,10 +2150,12 @@ public:
|
||||
npc_seaforium_depth_chargeAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint32 uiExplosionTimer;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
uiExplosionTimer = urand(5000, 10000);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (uiExplosionTimer < diff)
|
||||
@@ -2229,7 +2228,6 @@ public:
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
@@ -2561,31 +2559,31 @@ public:
|
||||
|
||||
void AddSC_borean_tundra()
|
||||
{
|
||||
new npc_sinkhole_kill_credit;
|
||||
new npc_khunok_the_behemoth;
|
||||
new npc_keristrasza;
|
||||
new npc_corastrasza;
|
||||
new npc_iruk;
|
||||
new mob_nerubar_victim;
|
||||
new npc_scourge_prisoner;
|
||||
new npc_jenny;
|
||||
new npc_fezzix_geartwist;
|
||||
new npc_nesingwary_trapper;
|
||||
new npc_lurgglbr;
|
||||
new npc_nexus_drake_hatchling;
|
||||
new npc_thassarian;
|
||||
new npc_image_lich_king;
|
||||
new npc_counselor_talbot;
|
||||
new npc_leryssa;
|
||||
new npc_general_arlos;
|
||||
new npc_beryl_sorcerer;
|
||||
new npc_imprisoned_beryl_sorcerer;
|
||||
new npc_mootoo_the_younger;
|
||||
new npc_bonker_togglevolt;
|
||||
new npc_trapped_mammoth_calf;
|
||||
new npc_magmoth_crusher;
|
||||
new npc_seaforium_depth_charge;
|
||||
new npc_valiance_keep_cannoneer;
|
||||
new npc_warmage_coldarra;
|
||||
new npc_hidden_cultist;
|
||||
new npc_sinkhole_kill_credit();
|
||||
new npc_khunok_the_behemoth();
|
||||
new npc_keristrasza();
|
||||
new npc_corastrasza();
|
||||
new npc_iruk();
|
||||
new mob_nerubar_victim();
|
||||
new npc_scourge_prisoner();
|
||||
new npc_jenny();
|
||||
new npc_fezzix_geartwist();
|
||||
new npc_nesingwary_trapper();
|
||||
new npc_lurgglbr();
|
||||
new npc_nexus_drake_hatchling();
|
||||
new npc_thassarian();
|
||||
new npc_image_lich_king();
|
||||
new npc_counselor_talbot();
|
||||
new npc_leryssa();
|
||||
new npc_general_arlos();
|
||||
new npc_beryl_sorcerer();
|
||||
new npc_imprisoned_beryl_sorcerer();
|
||||
new npc_mootoo_the_younger();
|
||||
new npc_bonker_togglevolt();
|
||||
new npc_trapped_mammoth_calf();
|
||||
new npc_magmoth_crusher();
|
||||
new npc_seaforium_depth_charge();
|
||||
new npc_valiance_keep_cannoneer();
|
||||
new npc_warmage_coldarra();
|
||||
new npc_hidden_cultist();
|
||||
}
|
||||
|
||||
@@ -323,8 +323,13 @@ public:
|
||||
DoCast(me, SPELL_DUST_FIELD, true);
|
||||
switch (m_gender)
|
||||
{
|
||||
case GENDER_FEMALE: DoPlaySoundToSet(me, SOUND_FEMALE); break;
|
||||
case GENDER_MALE: DoPlaySoundToSet(me, SOUND_MALE); break;
|
||||
case GENDER_FEMALE:
|
||||
DoPlaySoundToSet(me, SOUND_FEMALE);
|
||||
break;
|
||||
|
||||
case GENDER_MALE:
|
||||
DoPlaySoundToSet(me, SOUND_MALE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -392,7 +392,10 @@ public:
|
||||
GlaiveGUID = 0;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {DoZoneInCombat();}
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
||||
void ChargeCheck()
|
||||
{
|
||||
@@ -2093,7 +2096,6 @@ public:
|
||||
// }
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class gameobject_cage_trap : public GameObjectScript
|
||||
@@ -2112,7 +2114,6 @@ public:
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
class mob_shadow_demon : public CreatureScript
|
||||
@@ -2131,7 +2132,10 @@ public:
|
||||
|
||||
uint64 TargetGUID;
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {DoZoneInCombat();}
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
||||
void Reset()
|
||||
{
|
||||
@@ -2165,7 +2169,6 @@ public:
|
||||
DoCast(me->getVictim(), SPELL_CONSUME_SOUL);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class mob_blade_of_azzinoth : public CreatureScript
|
||||
@@ -2224,7 +2227,10 @@ public:
|
||||
DoCast(me, SPELL_SHADOWFIEND_PASSIVE, true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) { DoZoneInCombat(); }
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
DoZoneInCombat();
|
||||
}
|
||||
|
||||
void DoMeleeAttackIfReady()
|
||||
{
|
||||
@@ -2270,7 +2276,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_illidan()
|
||||
|
||||
@@ -543,8 +543,13 @@ public:
|
||||
{
|
||||
switch (urand(0, 1))
|
||||
{
|
||||
case 0: DoCast(unit, SPELL_BLESS_SPELLWARD); break;
|
||||
case 1: DoCast(unit, SPELL_BLESS_PROTECTION); break;
|
||||
case 0:
|
||||
DoCast(unit, SPELL_BLESS_SPELLWARD);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
DoCast(unit, SPELL_BLESS_PROTECTION);
|
||||
break;
|
||||
}
|
||||
}
|
||||
BlessingTimer = 60000;
|
||||
|
||||
@@ -164,28 +164,75 @@ public:
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case 185483: NajentusGate = go->GetGUID();// Gate past Naj'entus (at the entrance to Supermoose's courtyards)
|
||||
if (m_auiEncounter[0] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 185882: MainTempleDoors = go->GetGUID();// Main Temple Doors - right past Supermoose (Supremus)
|
||||
if (m_auiEncounter[1] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 185478: ShadeOfAkamaDoor = go->GetGUID();break;
|
||||
case 185480: CommonDoor = go->GetGUID();
|
||||
if (m_auiEncounter[3] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 186153: TeronDoor = go->GetGUID();
|
||||
if (m_auiEncounter[3] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 185892: GuurtogDoor = go->GetGUID();
|
||||
if (m_auiEncounter[4] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 185479: TempleDoor = go->GetGUID();
|
||||
if (m_auiEncounter[5] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 185482: MotherDoor = go->GetGUID();
|
||||
if (m_auiEncounter[6] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 185481: CouncilDoor = go->GetGUID();
|
||||
if (m_auiEncounter[7] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 186152: SimpleDoor = go->GetGUID();
|
||||
if (m_auiEncounter[7] == DONE)HandleGameObject(0, true, go);break;
|
||||
case 185905: IllidanGate = go->GetGUID(); break; // Gate leading to Temple Summit
|
||||
case 186261: IllidanDoor[0] = go->GetGUID(); break; // Right door at Temple Summit
|
||||
case 186262: IllidanDoor[1] = go->GetGUID(); break; // Left door at Temple Summit
|
||||
case 185483:
|
||||
NajentusGate = go->GetGUID();// Gate past Naj'entus (at the entrance to Supermoose's courtyards)
|
||||
if (m_auiEncounter[0] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 185882:
|
||||
MainTempleDoors = go->GetGUID();// Main Temple Doors - right past Supermoose (Supremus)
|
||||
if (m_auiEncounter[1] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 185478:
|
||||
ShadeOfAkamaDoor = go->GetGUID();
|
||||
break;
|
||||
|
||||
case 185480:
|
||||
CommonDoor = go->GetGUID();
|
||||
if (m_auiEncounter[3] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 186153:
|
||||
TeronDoor = go->GetGUID();
|
||||
if (m_auiEncounter[3] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 185892:
|
||||
GuurtogDoor = go->GetGUID();
|
||||
if (m_auiEncounter[4] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 185479:
|
||||
TempleDoor = go->GetGUID();
|
||||
if (m_auiEncounter[5] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 185482:
|
||||
MotherDoor = go->GetGUID();
|
||||
if (m_auiEncounter[6] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 185481:
|
||||
CouncilDoor = go->GetGUID();
|
||||
if (m_auiEncounter[7] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 186152:
|
||||
SimpleDoor = go->GetGUID();
|
||||
if (m_auiEncounter[7] == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
break;
|
||||
|
||||
case 185905:
|
||||
IllidanGate = go->GetGUID(); // Gate leading to Temple Summit
|
||||
break;
|
||||
|
||||
case 186261:
|
||||
IllidanDoor[0] = go->GetGUID(); // Right door at Temple Summit
|
||||
break;
|
||||
|
||||
case 186262:
|
||||
IllidanDoor[1] = go->GetGUID(); // Left door at Temple Summit
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,63 +268,65 @@ public:
|
||||
{
|
||||
case DATA_HIGHWARLORDNAJENTUSEVENT:
|
||||
if (data == DONE)
|
||||
{
|
||||
HandleGameObject(NajentusGate, true);
|
||||
}
|
||||
m_auiEncounter[0] = data;break;
|
||||
m_auiEncounter[0] = data;
|
||||
break;
|
||||
case DATA_SUPREMUSEVENT:
|
||||
if (data == DONE)
|
||||
{
|
||||
HandleGameObject(NajentusGate, true);
|
||||
}
|
||||
m_auiEncounter[1] = data; break;
|
||||
m_auiEncounter[1] = data;
|
||||
break;
|
||||
case DATA_SHADEOFAKAMAEVENT:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
HandleGameObject(ShadeOfAkamaDoor, false);
|
||||
} else HandleGameObject(ShadeOfAkamaDoor, true);
|
||||
m_auiEncounter[2] = data; break;
|
||||
else
|
||||
HandleGameObject(ShadeOfAkamaDoor, true);
|
||||
m_auiEncounter[2] = data;
|
||||
break;
|
||||
case DATA_TERONGOREFIENDEVENT:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
HandleGameObject(TeronDoor, false);
|
||||
HandleGameObject(CommonDoor, false);
|
||||
}else
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleGameObject(TeronDoor, true);
|
||||
HandleGameObject(CommonDoor, true);
|
||||
}
|
||||
m_auiEncounter[3] = data; break;
|
||||
m_auiEncounter[3] = data;
|
||||
break;
|
||||
case DATA_GURTOGGBLOODBOILEVENT:
|
||||
if (data == DONE)
|
||||
{
|
||||
HandleGameObject(GuurtogDoor, true);
|
||||
}
|
||||
m_auiEncounter[4] = data; break;
|
||||
m_auiEncounter[4] = data;
|
||||
break;
|
||||
case DATA_RELIQUARYOFSOULSEVENT:
|
||||
if (data == DONE)
|
||||
{
|
||||
HandleGameObject(TempleDoor, true);
|
||||
}
|
||||
m_auiEncounter[5] = data; break;
|
||||
m_auiEncounter[5] = data;
|
||||
break;
|
||||
case DATA_MOTHERSHAHRAZEVENT:
|
||||
if (data == DONE)
|
||||
{
|
||||
HandleGameObject(MotherDoor, true);
|
||||
}
|
||||
m_auiEncounter[6] = data; break;
|
||||
m_auiEncounter[6] = data;
|
||||
break;
|
||||
case DATA_ILLIDARICOUNCILEVENT:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
HandleGameObject(CouncilDoor, false);
|
||||
HandleGameObject(SimpleDoor, false);
|
||||
}else
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleGameObject(CouncilDoor, true);
|
||||
HandleGameObject(SimpleDoor, true);
|
||||
}
|
||||
m_auiEncounter[7] = data; break;
|
||||
case DATA_ILLIDANSTORMRAGEEVENT: m_auiEncounter[8] = data; break;
|
||||
m_auiEncounter[7] = data;
|
||||
break;
|
||||
case DATA_ILLIDANSTORMRAGEEVENT:
|
||||
m_auiEncounter[8] = data;
|
||||
break;
|
||||
}
|
||||
|
||||
if (data == DONE)
|
||||
|
||||
+46
-17
@@ -177,14 +177,10 @@ public:
|
||||
void KilledUnit(Unit* /*victim*/)
|
||||
{
|
||||
if (CorruptedForm)
|
||||
{
|
||||
DoScriptText(RAND(SAY_CORRUPT_SLAY1, SAY_CORRUPT_SLAY2), me);
|
||||
}
|
||||
else
|
||||
{
|
||||
DoScriptText(RAND(SAY_CLEAN_SLAY1, SAY_CLEAN_SLAY2), me);
|
||||
}
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summoned)
|
||||
{
|
||||
@@ -242,12 +238,29 @@ public:
|
||||
|
||||
switch (MarkOfCorruption_Count)
|
||||
{
|
||||
case 0: mark_spell = SPELL_MARK_OF_CORRUPTION1; break;
|
||||
case 1: mark_spell = SPELL_MARK_OF_CORRUPTION2; break;
|
||||
case 2: mark_spell = SPELL_MARK_OF_CORRUPTION3; break;
|
||||
case 3: mark_spell = SPELL_MARK_OF_CORRUPTION4; break;
|
||||
case 4: mark_spell = SPELL_MARK_OF_CORRUPTION5; break;
|
||||
case 5: mark_spell = SPELL_MARK_OF_CORRUPTION6; break;
|
||||
case 0:
|
||||
mark_spell = SPELL_MARK_OF_CORRUPTION1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
mark_spell = SPELL_MARK_OF_CORRUPTION2;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mark_spell = SPELL_MARK_OF_CORRUPTION3;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mark_spell = SPELL_MARK_OF_CORRUPTION4;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mark_spell = SPELL_MARK_OF_CORRUPTION5;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mark_spell = SPELL_MARK_OF_CORRUPTION6;
|
||||
break;
|
||||
}
|
||||
|
||||
DoCast(me->getVictim(), mark_spell);
|
||||
@@ -309,12 +322,29 @@ public:
|
||||
|
||||
switch (MarkOfHydross_Count)
|
||||
{
|
||||
case 0: mark_spell = SPELL_MARK_OF_HYDROSS1; break;
|
||||
case 1: mark_spell = SPELL_MARK_OF_HYDROSS2; break;
|
||||
case 2: mark_spell = SPELL_MARK_OF_HYDROSS3; break;
|
||||
case 3: mark_spell = SPELL_MARK_OF_HYDROSS4; break;
|
||||
case 4: mark_spell = SPELL_MARK_OF_HYDROSS5; break;
|
||||
case 5: mark_spell = SPELL_MARK_OF_HYDROSS6; break;
|
||||
case 0:
|
||||
mark_spell = SPELL_MARK_OF_HYDROSS1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
mark_spell = SPELL_MARK_OF_HYDROSS2;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
mark_spell = SPELL_MARK_OF_HYDROSS3;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
mark_spell = SPELL_MARK_OF_HYDROSS4;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
mark_spell = SPELL_MARK_OF_HYDROSS5;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
mark_spell = SPELL_MARK_OF_HYDROSS6;
|
||||
break;
|
||||
}
|
||||
|
||||
DoCast(me->getVictim(), mark_spell);
|
||||
@@ -375,7 +405,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_hydross_the_unstable()
|
||||
|
||||
@@ -865,7 +865,6 @@ public:
|
||||
bool OnUse(Player* player, Item* /*item*/, SpellCastTargets const& targets)
|
||||
{
|
||||
InstanceScript* instance = player->GetInstanceScript();
|
||||
|
||||
if (!instance)
|
||||
{
|
||||
player->GetSession()->SendNotification(TEXT_NOT_INITIALIZED);
|
||||
@@ -908,12 +907,8 @@ public:
|
||||
}
|
||||
|
||||
// get and remove channel
|
||||
|
||||
if (Unit* channel = Unit::GetCreature(*vashj, CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->ShieldGeneratorChannel[channelIdentifier]))
|
||||
{
|
||||
// call Unsummon()
|
||||
channel->setDeathState(JUST_DIED);
|
||||
}
|
||||
channel->setDeathState(JUST_DIED); // call Unsummon()
|
||||
|
||||
instance->SetData(identifier, 1);
|
||||
|
||||
|
||||
@@ -130,8 +130,13 @@ public:
|
||||
{
|
||||
switch (urand(0, 1))
|
||||
{
|
||||
case 0: target->CastSpell(target, SPELL_MAGNETIC_PULL, true, NULL, NULL, me->GetGUID()); break;
|
||||
case 1: target->CastSpell(target, SPELL_KNOCK_BACK, true, NULL, NULL, me->GetGUID()); break;
|
||||
case 0:
|
||||
target->CastSpell(target, SPELL_MAGNETIC_PULL, true, NULL, NULL, me->GetGUID());
|
||||
break;
|
||||
|
||||
case 1:
|
||||
target->CastSpell(target, SPELL_KNOCK_BACK, true, NULL, NULL, me->GetGUID());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,12 +137,18 @@ public:
|
||||
switch (type)
|
||||
{
|
||||
case DATA_MAULGAREVENT:
|
||||
if (data == DONE) HandleGameObject(MaulgarDoor, true);
|
||||
m_auiEncounter[0] = data; break;
|
||||
if (data == DONE)
|
||||
HandleGameObject(MaulgarDoor, true);
|
||||
m_auiEncounter[0] = data;
|
||||
break;
|
||||
|
||||
case DATA_GRUULEVENT:
|
||||
if (data == IN_PROGRESS) HandleGameObject(GruulDoor, false);
|
||||
else HandleGameObject(GruulDoor, true);
|
||||
m_auiEncounter[1] = data; break;
|
||||
if (data == IN_PROGRESS)
|
||||
HandleGameObject(GruulDoor, false);
|
||||
else
|
||||
HandleGameObject(GruulDoor, true);
|
||||
m_auiEncounter[1] = data;
|
||||
break;
|
||||
}
|
||||
|
||||
if (data == DONE)
|
||||
|
||||
@@ -103,15 +103,41 @@ class instance_arcatraz : public InstanceMapScript
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case CONTAINMENT_CORE_SECURITY_FIELD_ALPHA: Containment_Core_Security_Field_AlphaGUID = go->GetGUID(); break;
|
||||
case CONTAINMENT_CORE_SECURITY_FIELD_BETA: Containment_Core_Security_Field_BetaGUID = go->GetGUID(); break;
|
||||
case POD_ALPHA: Pod_AlphaGUID = go->GetGUID(); break;
|
||||
case POD_GAMMA: Pod_GammaGUID = go->GetGUID(); break;
|
||||
case POD_BETA: Pod_BetaGUID = go->GetGUID(); break;
|
||||
case POD_DELTA: Pod_DeltaGUID = go->GetGUID(); break;
|
||||
case POD_OMEGA: Pod_OmegaGUID = go->GetGUID(); break;
|
||||
case SEAL_SPHERE: GoSphereGUID = go->GetGUID(); break;
|
||||
//case WARDENS_SHIELD: Wardens_ShieldGUID = go->GetGUID(); break;
|
||||
case CONTAINMENT_CORE_SECURITY_FIELD_ALPHA:
|
||||
Containment_Core_Security_Field_AlphaGUID = go->GetGUID();
|
||||
break;
|
||||
|
||||
case CONTAINMENT_CORE_SECURITY_FIELD_BETA:
|
||||
Containment_Core_Security_Field_BetaGUID = go->GetGUID();
|
||||
break;
|
||||
|
||||
case POD_ALPHA:
|
||||
Pod_AlphaGUID = go->GetGUID();
|
||||
break;
|
||||
|
||||
case POD_GAMMA:
|
||||
Pod_GammaGUID = go->GetGUID();
|
||||
break;
|
||||
|
||||
case POD_BETA:
|
||||
Pod_BetaGUID = go->GetGUID();
|
||||
break;
|
||||
|
||||
case POD_DELTA:
|
||||
Pod_DeltaGUID = go->GetGUID();
|
||||
break;
|
||||
|
||||
case POD_OMEGA:
|
||||
Pod_OmegaGUID = go->GetGUID();
|
||||
break;
|
||||
|
||||
case SEAL_SPHERE:
|
||||
GoSphereGUID = go->GetGUID();
|
||||
break;
|
||||
|
||||
/*case WARDENS_SHIELD:
|
||||
Wardens_ShieldGUID = go->GetGUID();
|
||||
break;*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -790,20 +790,42 @@ class npc_simon_bunny : public CreatureScript
|
||||
{
|
||||
switch (go->GetGOInfo()->displayId)
|
||||
{
|
||||
case GO_BLUE_CLUSTER_DISPLAY_LARGE: clusterIds[SIMON_BLUE] = go->GetEntry(); break;
|
||||
case GO_RED_CLUSTER_DISPLAY_LARGE: clusterIds[SIMON_RED] = go->GetEntry(); break;
|
||||
case GO_GREEN_CLUSTER_DISPLAY_LARGE: clusterIds[SIMON_GREEN] = go->GetEntry(); break;
|
||||
case GO_YELLOW_CLUSTER_DISPLAY_LARGE: clusterIds[SIMON_YELLOW] = go->GetEntry(); break;
|
||||
case GO_BLUE_CLUSTER_DISPLAY_LARGE:
|
||||
clusterIds[SIMON_BLUE] = go->GetEntry();
|
||||
break;
|
||||
|
||||
case GO_RED_CLUSTER_DISPLAY_LARGE:
|
||||
clusterIds[SIMON_RED] = go->GetEntry();
|
||||
break;
|
||||
|
||||
case GO_GREEN_CLUSTER_DISPLAY_LARGE:
|
||||
clusterIds[SIMON_GREEN] = go->GetEntry();
|
||||
break;
|
||||
|
||||
case GO_YELLOW_CLUSTER_DISPLAY_LARGE:
|
||||
clusterIds[SIMON_YELLOW] = go->GetEntry();
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (go->GetGOInfo()->displayId)
|
||||
{
|
||||
case GO_BLUE_CLUSTER_DISPLAY: clusterIds[SIMON_BLUE] = go->GetEntry(); break;
|
||||
case GO_RED_CLUSTER_DISPLAY: clusterIds[SIMON_RED] = go->GetEntry(); break;
|
||||
case GO_GREEN_CLUSTER_DISPLAY: clusterIds[SIMON_GREEN] = go->GetEntry(); break;
|
||||
case GO_YELLOW_CLUSTER_DISPLAY: clusterIds[SIMON_YELLOW] = go->GetEntry(); break;
|
||||
case GO_BLUE_CLUSTER_DISPLAY:
|
||||
clusterIds[SIMON_BLUE] = go->GetEntry();
|
||||
break;
|
||||
|
||||
case GO_RED_CLUSTER_DISPLAY:
|
||||
clusterIds[SIMON_RED] = go->GetEntry();
|
||||
break;
|
||||
|
||||
case GO_GREEN_CLUSTER_DISPLAY:
|
||||
clusterIds[SIMON_GREEN] = go->GetEntry();
|
||||
break;
|
||||
|
||||
case GO_YELLOW_CLUSTER_DISPLAY:
|
||||
clusterIds[SIMON_YELLOW] = go->GetEntry();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,8 +252,13 @@ class AreaTrigger_at_sholazar_waygate : public AreaTriggerScript
|
||||
{
|
||||
switch (trigger->id)
|
||||
{
|
||||
case AT_SHOLAZAR: player->CastSpell(player, SPELL_SHOLAZAR_TO_UNGORO_TELEPORT, false); break;
|
||||
case AT_UNGORO: player->CastSpell(player, SPELL_UNGORO_TO_SHOLAZAR_TELEPORT, false); break;
|
||||
case AT_SHOLAZAR:
|
||||
player->CastSpell(player, SPELL_SHOLAZAR_TO_UNGORO_TELEPORT, false);
|
||||
break;
|
||||
|
||||
case AT_UNGORO:
|
||||
player->CastSpell(player, SPELL_UNGORO_TO_SHOLAZAR_TELEPORT, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -195,12 +195,26 @@ public:
|
||||
{
|
||||
switch (emote)
|
||||
{
|
||||
case TEXT_EMOTE_KISS: me->HandleEmoteCommand(EMOTE_ONESHOT_BOW); break;
|
||||
case TEXT_EMOTE_WAVE: me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE); break;
|
||||
case TEXT_EMOTE_SALUTE: me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); break;
|
||||
case TEXT_EMOTE_SHY: me->HandleEmoteCommand(EMOTE_ONESHOT_FLEX); break;
|
||||
case TEXT_EMOTE_KISS:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
|
||||
break;
|
||||
|
||||
case TEXT_EMOTE_WAVE:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
|
||||
break;
|
||||
|
||||
case TEXT_EMOTE_SALUTE:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
|
||||
break;
|
||||
|
||||
case TEXT_EMOTE_SHY:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_FLEX);
|
||||
break;
|
||||
|
||||
case TEXT_EMOTE_RUDE:
|
||||
case TEXT_EMOTE_CHICKEN: me->HandleEmoteCommand(EMOTE_ONESHOT_POINT); break;
|
||||
case TEXT_EMOTE_CHICKEN:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ public:
|
||||
{
|
||||
if (Creature* nether = player->SummonCreature(22408, player->GetPositionX(), player->GetPositionY()+20, player->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 180000))
|
||||
nether->AI()->AttackStart(player);
|
||||
|
||||
if (Creature* nether = player->SummonCreature(22408, player->GetPositionX(), player->GetPositionY()-20, player->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 180000))
|
||||
nether->AI()->AttackStart(player);
|
||||
}
|
||||
@@ -340,7 +341,7 @@ public:
|
||||
if (!pMammoth)
|
||||
return false;
|
||||
|
||||
GameObject* pTrap;
|
||||
GameObject* pTrap = NULL;
|
||||
for (uint8 i = 0; i < MammothTrapsNum; ++i)
|
||||
{
|
||||
pTrap = player->FindNearestGameObject(MammothTraps[i], 11.0f);
|
||||
|
||||
@@ -83,11 +83,8 @@ there is no difference here (except that default text is chosen with `gameobject
|
||||
|
||||
#define BOX_UNLEARN_WEAPON_SPEC "Do you really want to unlearn your weaponsmith specialty and lose all associated recipes? \n Cost: "
|
||||
|
||||
#define GOSSIP_LEARN_DRAGON "I am absolutely certain that i want to learn dragonscale leatherworking"
|
||||
#define GOSSIP_UNLEARN_DRAGON "I wish to unlearn Dragonscale Leatherworking"
|
||||
#define GOSSIP_LEARN_ELEMENTAL "I am absolutely certain that i want to learn elemental leatherworking"
|
||||
#define GOSSIP_UNLEARN_ELEMENTAL "I wish to unlearn Elemental Leatherworking"
|
||||
#define GOSSIP_LEARN_TRIBAL "I am absolutely certain that i want to learn tribal leatherworking"
|
||||
#define GOSSIP_UNLEARN_TRIBAL "I wish to unlearn Tribal Leatherworking"
|
||||
|
||||
#define BOX_UNLEARN_LEATHER_SPEC "Do you really want to unlearn your leatherworking specialty and lose all associated recipes? \n Cost: "
|
||||
@@ -101,9 +98,6 @@ there is no difference here (except that default text is chosen with `gameobject
|
||||
|
||||
#define BOX_UNLEARN_TAILOR_SPEC "Do you really want to unlearn your tailoring specialty and lose all associated recipes? \n Cost: "
|
||||
|
||||
#define GOSSIP_LEARN_GOBLIN "I am absolutely certain that i want to learn Goblin engineering"
|
||||
#define GOSSIP_LEARN_GNOMISH "I am absolutely certain that i want to learn Gnomish engineering"
|
||||
|
||||
/*###
|
||||
# spells defines
|
||||
###*/
|
||||
@@ -387,8 +381,10 @@ public:
|
||||
{
|
||||
if (creature->isQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->isVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->isTrainer())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
@@ -512,10 +508,21 @@ public:
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN: SendActionMenu(player, creature, action); break;
|
||||
case GOSSIP_SENDER_LEARN: SendConfirmLearn(player, creature, action); break;
|
||||
case GOSSIP_SENDER_UNLEARN: SendConfirmUnlearn(player, creature, action); break;
|
||||
case GOSSIP_SENDER_CHECK: SendActionMenu(player, creature, action); break;
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
SendActionMenu(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_LEARN:
|
||||
SendConfirmLearn(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_UNLEARN:
|
||||
SendConfirmUnlearn(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_CHECK:
|
||||
SendActionMenu(player, creature, action);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -539,8 +546,10 @@ public:
|
||||
{
|
||||
if (creature->isQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->isVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->isTrainer())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
@@ -729,10 +738,21 @@ public:
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN: SendActionMenu(player, creature, action); break;
|
||||
case GOSSIP_SENDER_LEARN: SendConfirmLearn(player, creature, action); break;
|
||||
case GOSSIP_SENDER_UNLEARN: SendConfirmUnlearn(player, creature, action); break;
|
||||
case GOSSIP_SENDER_CHECK: SendActionMenu(player, creature, action); break;
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
SendActionMenu(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_LEARN:
|
||||
SendConfirmLearn(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_UNLEARN:
|
||||
SendConfirmUnlearn(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_CHECK:
|
||||
SendActionMenu(player, creature, action);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -763,7 +783,6 @@ enum eEngineeringTrinkets
|
||||
#define GOSSIP_ITEM_ZAP "[PH] Unknown"
|
||||
#define GOSSIP_ITEM_JHORDY "I must build a beacon for this marvelous device!"
|
||||
#define GOSSIP_ITEM_KABLAM "[PH] Unknown"
|
||||
#define GOSSIP_ITEM_SMILES "[PH] Unknown"
|
||||
|
||||
class npc_engineering_tele_trinket : public CreatureScript
|
||||
{
|
||||
@@ -866,8 +885,10 @@ public:
|
||||
{
|
||||
if (creature->isQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->isVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->isTrainer())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
@@ -953,9 +974,17 @@ public:
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN: SendActionMenu(player, creature, action); break;
|
||||
case GOSSIP_SENDER_UNLEARN: SendConfirmUnlearn(player, creature, action); break;
|
||||
case GOSSIP_SENDER_CHECK: SendActionMenu(player, creature, action); break;
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
SendActionMenu(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_UNLEARN:
|
||||
SendConfirmUnlearn(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_CHECK:
|
||||
SendActionMenu(player, creature, action);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -979,8 +1008,10 @@ public:
|
||||
{
|
||||
if (creature->isQuestGiver())
|
||||
player->PrepareQuestMenu(creature->GetGUID());
|
||||
|
||||
if (creature->isVendor())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
|
||||
|
||||
if (creature->isTrainer())
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
|
||||
|
||||
@@ -1105,24 +1136,31 @@ public:
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (sender)
|
||||
{
|
||||
case GOSSIP_SENDER_MAIN: SendActionMenu(player, creature, action); break;
|
||||
case GOSSIP_SENDER_LEARN: SendConfirmLearn(player, creature, action); break;
|
||||
case GOSSIP_SENDER_UNLEARN: SendConfirmUnlearn(player, creature, action); break;
|
||||
case GOSSIP_SENDER_CHECK: SendActionMenu(player, creature, action); break;
|
||||
case GOSSIP_SENDER_MAIN:
|
||||
SendActionMenu(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_LEARN:
|
||||
SendConfirmLearn(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_UNLEARN:
|
||||
SendConfirmUnlearn(player, creature, action);
|
||||
break;
|
||||
|
||||
case GOSSIP_SENDER_CHECK:
|
||||
SendActionMenu(player, creature, action);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/*###
|
||||
#
|
||||
###*/
|
||||
|
||||
void AddSC_npc_professions()
|
||||
{
|
||||
new npc_prof_alchemy;
|
||||
new npc_prof_blacksmith;
|
||||
new npc_engineering_tele_trinket;
|
||||
new npc_prof_leather;
|
||||
new npc_prof_tailor;
|
||||
new npc_prof_alchemy();
|
||||
new npc_prof_blacksmith();
|
||||
new npc_engineering_tele_trinket();
|
||||
new npc_prof_leather();
|
||||
new npc_prof_tailor();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user