aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp6
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp2
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.cpp7
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.h3
-rwxr-xr-xsrc/server/game/Battlegrounds/ArenaTeam.cpp2
-rwxr-xr-xsrc/server/game/Battlegrounds/Battleground.cpp2
-rwxr-xr-xsrc/server/game/Conditions/ConditionMgr.cpp2
-rwxr-xr-xsrc/server/game/Entities/Creature/Creature.cpp4
-rwxr-xr-xsrc/server/game/Entities/GameObject/GameObject.cpp2
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp6
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp164
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.h2
-rwxr-xr-xsrc/server/game/Grids/Notifiers/GridNotifiers.h2
-rwxr-xr-xsrc/server/game/Maps/Map.cpp2
-rwxr-xr-xsrc/server/game/Scripting/ScriptMgr.cpp16
-rwxr-xr-xsrc/server/game/Scripting/ScriptMgr.h8
-rwxr-xr-xsrc/server/game/Server/Protocol/Opcodes.cpp8
-rwxr-xr-xsrc/server/game/Server/WorldSession.h2
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp36
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp2
-rw-r--r--src/server/game/Spells/SpellInfo.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h1
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp23
-rw-r--r--src/server/scripts/EasternKingdoms/undercity.cpp6
-rw-r--r--src/server/scripts/Kalimdor/ashenvale.cpp196
-rw-r--r--src/server/scripts/Kalimdor/azshara.cpp225
-rw-r--r--src/server/scripts/Kalimdor/azuremyst_isle.cpp186
-rw-r--r--src/server/scripts/Kalimdor/bloodmyst_isle.cpp16
-rw-r--r--src/server/scripts/Kalimdor/boss_azuregos.cpp119
-rw-r--r--src/server/scripts/Kalimdor/darkshore.cpp135
-rw-r--r--src/server/scripts/Kalimdor/desolace.cpp27
-rw-r--r--src/server/scripts/Kalimdor/durotar.cpp20
-rw-r--r--src/server/scripts/Kalimdor/dustwallow_marsh.cpp61
-rw-r--r--src/server/scripts/Kalimdor/felwood.cpp25
-rw-r--r--src/server/scripts/Kalimdor/feralas.cpp6
-rw-r--r--src/server/scripts/Kalimdor/moonglade.cpp212
-rw-r--r--src/server/scripts/Kalimdor/mulgore.cpp171
-rw-r--r--src/server/scripts/Kalimdor/orgrimmar.cpp53
-rw-r--r--src/server/scripts/Kalimdor/silithus.cpp32
-rw-r--r--src/server/scripts/Kalimdor/stonetalon_mountains.cpp6
-rw-r--r--src/server/scripts/Kalimdor/tanaris.cpp306
-rw-r--r--src/server/scripts/Kalimdor/teldrassil.cpp17
-rw-r--r--src/server/scripts/Kalimdor/the_barrens.cpp138
-rw-r--r--src/server/scripts/Kalimdor/thousand_needles.cpp85
-rw-r--r--src/server/scripts/Kalimdor/thunder_bluff.cpp67
-rw-r--r--src/server/scripts/Kalimdor/ungoro_crater.cpp117
-rw-r--r--src/server/scripts/Kalimdor/winterspring.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp12
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp3
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp18
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp2
-rw-r--r--src/server/scripts/Spells/spell_item.cpp10
-rw-r--r--src/server/scripts/Spells/spell_paladin.cpp14
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp2
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp32
-rw-r--r--src/tools/map_extractor/System.cpp14
-rw-r--r--src/tools/map_extractor/mpq_libmpq04.h4
58 files changed, 1365 insertions, 1282 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp
index 2a412bffb22..08f1b18ffad 100644
--- a/src/server/game/AI/SmartScripts/SmartAI.cpp
+++ b/src/server/game/AI/SmartScripts/SmartAI.cpp
@@ -804,12 +804,12 @@ void SmartAI::SetFollow(Unit* target, float dist, float angle, uint32 credit, ui
return;
SetRun(mRun);
mFollowGuid = target->GetGUID();
- mFollowDist = dist ? dist : PET_FOLLOW_DIST;
- mFollowAngle = angle ? angle : me->GetFollowAngle();
+ mFollowDist = dist >= 0.0f ? dist : PET_FOLLOW_DIST;
+ mFollowAngle = angle >= 0.0f ? angle : me->GetFollowAngle();
mFollowArrivedTimer = 1000;
mFollowCredit = credit;
mFollowArrivedEntry = end;
- me->GetMotionMaster()->MoveFollow(target, dist, angle);
+ me->GetMotionMaster()->MoveFollow(target, mFollowDist, mFollowAngle);
mFollowCreditType = creditType;
}
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 893c8f4580e..85b117ccd8c 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -1925,7 +1925,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
break;
}
default:
- sLog->outErrorDb("SmartScript::ProcessAction: Unhandled Action type %u", e.GetActionType());
+ sLog->outErrorDb("SmartScript::ProcessAction: Entry %d SourceType %u, Event %u, Unhandled Action type %u", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType());
break;
}
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
index b0f1fcb8ede..a7149f37480 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
@@ -324,7 +324,7 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e)
sLog->outErrorDb("SmartAIMgr: EntryOrGuid %d, event type %u can not be used for Script type %u", e.entryOrGuid, e.GetEventType(), e.GetScriptType());
return false;
}
- if (e.action.type >= SMART_ACTION_END)
+ if (e.action.type <= 0 || e.action.type >= SMART_ACTION_END)
{
sLog->outErrorDb("SmartAIMgr: EntryOrGuid %d using event(%u) has invalid action type (%u), skipped.", e.entryOrGuid, e.event_id, e.GetActionType());
return false;
@@ -334,6 +334,11 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e)
sLog->outErrorDb("SmartAIMgr: EntryOrGuid %d using event(%u) has invalid phase mask (%u), skipped.", e.entryOrGuid, e.event_id, e.event.event_phase_mask);
return false;
}
+ if (e.event.event_flags > SMART_EVENT_FLAGS_ALL)
+ {
+ sLog->outErrorDb("SmartAIMgr: EntryOrGuid %d using event(%u) has invalid event flags (%u), skipped.", e.entryOrGuid, e.event_id, e.event.event_flags);
+ return false;
+ }
if (e.GetScriptType() == SMART_SCRIPT_TYPE_TIMED_ACTIONLIST)
{
e.event.type = SMART_EVENT_UPDATE_OOC;//force default OOC, can change when calling the script!
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
index 8d3686a265d..bde7768f036 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h
@@ -1175,7 +1175,8 @@ enum SmartEventFlags
SMART_EVENT_FLAG_DEBUG_ONLY = 0x080, //Event only occurs in debug build
SMART_EVENT_FLAG_DONT_RESET = 0x100, //Event will not reset in SmartScript::OnReset()
- SMART_EVENT_FLAG_DIFFICULTY_ALL = (SMART_EVENT_FLAG_DIFFICULTY_0|SMART_EVENT_FLAG_DIFFICULTY_1|SMART_EVENT_FLAG_DIFFICULTY_2|SMART_EVENT_FLAG_DIFFICULTY_3)
+ SMART_EVENT_FLAG_DIFFICULTY_ALL = (SMART_EVENT_FLAG_DIFFICULTY_0|SMART_EVENT_FLAG_DIFFICULTY_1|SMART_EVENT_FLAG_DIFFICULTY_2|SMART_EVENT_FLAG_DIFFICULTY_3),
+ SMART_EVENT_FLAGS_ALL = (SMART_EVENT_FLAG_NOT_REPEATABLE|SMART_EVENT_FLAG_DIFFICULTY_ALL|SMART_EVENT_FLAG_RESERVED_5|SMART_EVENT_FLAG_RESERVED_6|SMART_EVENT_FLAG_DEBUG_ONLY|SMART_EVENT_FLAG_DONT_RESET)
};
enum SmartCastFlags
diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp
index 73e24e5a3c3..89151b6395c 100755
--- a/src/server/game/Battlegrounds/ArenaTeam.cpp
+++ b/src/server/game/Battlegrounds/ArenaTeam.cpp
@@ -267,7 +267,7 @@ bool ArenaTeam::LoadMembersFromDB(QueryResult result)
if (Empty() || !captainPresentInTeam)
{
// Arena team is empty or captain is not in team, delete from db
- sLog->outErrorDb("ArenaTeam %u does not have any members or its captain is not in team, disbanding it...", TeamId);
+ sLog->outDebug(LOG_FILTER_BATTLEGROUND, "ArenaTeam %u does not have any members or its captain is not in team, disbanding it...", TeamId);
return false;
}
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 44192a74123..9d5858e1ca4 100755
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -550,7 +550,7 @@ inline void Battleground::_ProcessJoin(uint32 diff)
if (dist >= maxDist)
{
- sLog->outError("BATTLEGROUND: Sending %s back to start location (possible exploit)", plr->GetName());
+ sLog->outError("BATTLEGROUND: Sending %s back to start location (map: %u) (possible exploit)", plr->GetName(), GetMapId());
plr->TeleportTo(GetMapId(), x, y, z, o);
}
}
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 96f454fd3e2..4176d9f605b 100755
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -190,7 +190,7 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
}
case CONDITION_OBJECT_ENTRY:
{
- if (object->GetTypeId() == ConditionValue1)
+ if (uint32(object->GetTypeId()) == ConditionValue1)
condMeets = (!ConditionValue2) || (object->GetEntry() == ConditionValue2);
break;
}
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index d120713636d..6506a113ae1 100755
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -1668,8 +1668,8 @@ bool Creature::IsImmunedToSpell(SpellInfo const* spellInfo)
if (!spellInfo)
return false;
- // Spells that don't have effectMechanics.
- if (!spellInfo->HasAnyEffectMechanic() && GetCreatureTemplate()->MechanicImmuneMask & (1 << (spellInfo->Mechanic - 1)))
+ // Creature is immune to main mechanic of the spell
+ if (GetCreatureTemplate()->MechanicImmuneMask & (1 << (spellInfo->Mechanic - 1)))
return true;
// This check must be done instead of 'if (GetCreatureTemplate()->MechanicImmuneMask & (1 << (spellInfo->Mechanic - 1)))' for not break
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index e871f99b38c..10136c5fbd7 100755
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -1910,6 +1910,7 @@ void GameObject::SetLootState(LootState state, Unit* unit)
{
m_lootState = state;
AI()->OnStateChanged(state, unit);
+ sScriptMgr->OnGameObjectLootStateChanged(this, state, unit);
if (m_model)
{
// startOpen determines whether we are going to add or remove the LoS on activation
@@ -1929,6 +1930,7 @@ void GameObject::SetLootState(LootState state, Unit* unit)
void GameObject::SetGoState(GOState state)
{
SetByteValue(GAMEOBJECT_BYTES_1, 0, state);
+ sScriptMgr->OnGameObjectStateChanged(this, state);
if (m_model)
{
if (!IsInWorld())
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index d38489ef5a9..f5f336a2402 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -12019,7 +12019,7 @@ InventoryResult Player::CanRollForItemInLFG(ItemTemplate const* proto, WorldObje
Map const* map = lootedObject->GetMap();
if (uint32 dungeonId = sLFGMgr->GetDungeon(GetGroup()->GetGUID(), true))
if (LFGDungeonEntry const* dungeon = sLFGDungeonStore.LookupEntry(dungeonId))
- if (uint32(dungeon->map) == map->GetId() && dungeon->difficulty == map->GetDifficulty())
+ if (uint32(dungeon->map) == map->GetId() && dungeon->difficulty == uint32(map->GetDifficulty()))
lootedObjectInDungeon = true;
if (!lootedObjectInDungeon)
@@ -17658,7 +17658,7 @@ void Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff)
}
else
if (IsBagPos(item->GetPos()))
- if (Bag* pBag = item->ToBag())
+ if (item->IsBag())
invalidBagMap[item->GetGUIDLow()] = item;
}
else
@@ -17811,7 +17811,7 @@ Item* Player::_LoadItem(SQLTransaction& trans, uint32 zoneId, uint32 timeDiff, F
GameEventMgr::ActiveEvents const& activeEventsList = sGameEventMgr->GetActiveEventList();
for (GameEventMgr::ActiveEvents::const_iterator itr = activeEventsList.begin(); itr != activeEventsList.end(); ++itr)
{
- if (events[*itr].holiday_id == proto->HolidayId)
+ if (uint32(events[*itr].holiday_id) == proto->HolidayId)
{
remove = false;
break;
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 90c8ffaae63..e45f1214f4f 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5870,7 +5870,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
if (AuraEffect* aurEff = victim->GetAuraEffect(64413, 0, GetGUID()))
{
// The shield can grow to a maximum size of 20, 000 damage absorbtion
- aurEff->SetAmount(std::max<int32>(aurEff->GetAmount() + basepoints0, 20000));
+ aurEff->SetAmount(std::min<int32>(aurEff->GetAmount() + basepoints0, 20000));
// Refresh and return to prevent replacing the aura
aurEff->GetBase()->RefreshDuration();
@@ -7772,17 +7772,6 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
}
}
}
- // Item - Death Knight T10 Melee 4P Bonus
- if (dummySpell->Id == 70656)
- {
- Player* player = ToPlayer();
- if (!player)
- return false;
-
- for (uint32 i = 0; i < MAX_RUNES; ++i)
- if (player->GetRuneCooldown(i) == 0)
- return false;
- }
break;
}
case SPELLFAMILY_POTION:
@@ -8710,6 +8699,16 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
trigger_spell_id = 50475;
basepoints0 = CalculatePctN(int32(damage), triggerAmount);
}
+ // Item - Death Knight T10 Melee 4P Bonus
+ else if (auraSpellInfo->Id == 70656)
+ {
+ if (GetTypeId() != TYPEID_PLAYER || getClass() != CLASS_DEATH_KNIGHT)
+ return false;
+
+ for (uint8 i = 0; i < MAX_RUNES; ++i)
+ if (ToPlayer()->GetRuneCooldown(i) == 0)
+ return false;
+ }
break;
}
case SPELLFAMILY_ROGUE:
@@ -10393,20 +10392,24 @@ uint32 Unit::SpellDamageBonusDone(Unit* victim, SpellInfo const* spellProto, uin
if (GetTypeId() == TYPEID_UNIT && !ToCreature()->isPet())
DoneTotalMod *= ToCreature()->GetSpellDamageMod(ToCreature()->GetCreatureTemplate()->rank);
- AuraEffectList const& mModDamagePercentDone = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
- for (AuraEffectList::const_iterator i = mModDamagePercentDone.begin(); i != mModDamagePercentDone.end(); ++i)
+ // Some spells don't benefit from pct done mods
+ if (!(spellProto->AttributesEx6 & SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS) && !spellProto->IsRankOf(sSpellMgr->GetSpellInfo(12162)))
{
- if (spellProto->EquippedItemClass == -1 && (*i)->GetSpellInfo()->EquippedItemClass != -1) //prevent apply mods from weapon specific case to non weapon specific spells (Example: thunder clap and two-handed weapon specialization)
- continue;
-
- if ((*i)->GetMiscValue() & spellProto->GetSchoolMask())
+ AuraEffectList const& mModDamagePercentDone = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
+ for (AuraEffectList::const_iterator i = mModDamagePercentDone.begin(); i != mModDamagePercentDone.end(); ++i)
{
- if ((*i)->GetSpellInfo()->EquippedItemClass == -1)
- AddPctN(DoneTotalMod, (*i)->GetAmount());
- else if (!((*i)->GetSpellInfo()->AttributesEx5 & SPELL_ATTR5_SPECIAL_ITEM_CLASS_CHECK) && ((*i)->GetSpellInfo()->EquippedItemSubClassMask == 0))
- AddPctN(DoneTotalMod, (*i)->GetAmount());
- else if (ToPlayer() && ToPlayer()->HasItemFitToSpellRequirements((*i)->GetSpellInfo()))
- AddPctN(DoneTotalMod, (*i)->GetAmount());
+ if (spellProto->EquippedItemClass == -1 && (*i)->GetSpellInfo()->EquippedItemClass != -1) //prevent apply mods from weapon specific case to non weapon specific spells (Example: thunder clap and two-handed weapon specialization)
+ continue;
+
+ if ((*i)->GetMiscValue() & spellProto->GetSchoolMask())
+ {
+ if ((*i)->GetSpellInfo()->EquippedItemClass == -1)
+ AddPctN(DoneTotalMod, (*i)->GetAmount());
+ else if (!((*i)->GetSpellInfo()->AttributesEx5 & SPELL_ATTR5_SPECIAL_ITEM_CLASS_CHECK) && ((*i)->GetSpellInfo()->EquippedItemSubClassMask == 0))
+ AddPctN(DoneTotalMod, (*i)->GetAmount());
+ else if (ToPlayer() && ToPlayer()->HasItemFitToSpellRequirements((*i)->GetSpellInfo()))
+ AddPctN(DoneTotalMod, (*i)->GetAmount());
+ }
}
}
@@ -10778,12 +10781,6 @@ uint32 Unit::SpellDamageBonusDone(Unit* victim, SpellInfo const* spellProto, uin
DoneTotalMod = 1.0f;
}
- // Some spells don't benefit from pct done mods
- // maybe should be implemented like SPELL_ATTR3_NO_DONE_BONUS,
- // but then it may break spell power coeffs work on spell 31117
- if (spellProto->AttributesEx6 & SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS)
- DoneTotalMod = 1.0f;
-
float tmpDamage = (int32(pdamage) + DoneTotal) * DoneTotalMod;
// apply spellmod to Done damage (flat and pct)
if (Player* modOwner = GetSpellModOwner())
@@ -10800,11 +10797,11 @@ uint32 Unit::SpellDamageBonusTaken(Unit* caster, SpellInfo const* spellProto, ui
int32 TakenTotal = 0;
float TakenTotalMod = 1.0f;
- //from positive and negative SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN
- //multiplicative bonus, for example Dispersion + Shadowform (0.10*0.85=0.085)
+ // from positive and negative SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN
+ // multiplicative bonus, for example Dispersion + Shadowform (0.10*0.85=0.085)
TakenTotalMod *= GetTotalAuraMultiplierByMiscMask(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, spellProto->GetSchoolMask());
- //.. taken pct: dummy auras
+ //.. taken pct: dummy auras
AuraEffectList const& mDummyAuras = GetAuraEffectsByType(SPELL_AURA_DUMMY);
for (AuraEffectList::const_iterator i = mDummyAuras.begin(); i != mDummyAuras.end(); ++i)
{
@@ -10863,7 +10860,7 @@ uint32 Unit::SpellDamageBonusTaken(Unit* caster, SpellInfo const* spellProto, ui
TakenTotal+= int32(TakenAdvertisedBenefit * coeff * factorMod);
}
- float tmpDamage = (pdamage + TakenTotal) * TakenTotalMod;
+ float tmpDamage = (float(pdamage) + TakenTotal) * TakenTotalMod;
return uint32(std::max(tmpDamage, 0.0f));
}
@@ -10904,7 +10901,7 @@ int32 Unit::SpellBaseDamageBonusDone(SpellSchoolMask schoolMask)
DoneAdvertisedBenefit += int32(CalculatePctN(GetTotalAttackPowerValue(BASE_ATTACK), (*i)->GetAmount()));
}
- return DoneAdvertisedBenefit > 0 ? DoneAdvertisedBenefit : 0;
+ return DoneAdvertisedBenefit;
}
int32 Unit::SpellBaseDamageBonusTaken(SpellSchoolMask schoolMask)
@@ -10916,7 +10913,7 @@ int32 Unit::SpellBaseDamageBonusTaken(SpellSchoolMask schoolMask)
if (((*i)->GetMiscValue() & schoolMask) != 0)
TakenAdvertisedBenefit += (*i)->GetAmount();
- return TakenAdvertisedBenefit > 0 ? TakenAdvertisedBenefit : 0;
+ return TakenAdvertisedBenefit;
}
bool Unit::isSpellCrit(Unit* victim, SpellInfo const* spellProto, SpellSchoolMask schoolMask, WeaponAttackType attackType) const
@@ -11183,7 +11180,7 @@ uint32 Unit::SpellCriticalHealingBonus(SpellInfo const* spellProto, uint32 damag
uint32 Unit::SpellHealingBonusDone(Unit* victim, SpellInfo const* spellProto, uint32 healamount, DamageEffectType damagetype, uint32 stack)
{
// For totems get healing bonus from owner (statue isn't totem in fact)
- if (GetTypeId() == TYPEID_UNIT && ToCreature()->isTotem())
+ if (GetTypeId() == TYPEID_UNIT && isTotem())
if (Unit* owner = GetOwner())
return owner->SpellHealingBonusDone(victim, spellProto, healamount, damagetype, stack);
@@ -11283,7 +11280,7 @@ uint32 Unit::SpellHealingBonusDone(Unit* victim, SpellInfo const* spellProto, ui
{
// No bonus healing for SPELL_DAMAGE_CLASS_NONE class spells by default
if (spellProto->DmgClass == SPELL_DAMAGE_CLASS_NONE)
- return healamount < 0 ? 0 : healamount;
+ return healamount;
}
// Default calculation
@@ -11301,23 +11298,21 @@ uint32 Unit::SpellHealingBonusDone(Unit* victim, SpellInfo const* spellProto, ui
coeff /= 100.0f;
}
- // Gift of the Naaru
- if (spellProto->SpellFamilyFlags[2] & 0x80000000 && spellProto->SpellIconID == 329)
- {
- int32 apBonus = int32(std::max(GetTotalAttackPowerValue(BASE_ATTACK), GetTotalAttackPowerValue(RANGED_ATTACK)));
- if (apBonus > DoneAdvertisedBenefit)
- DoneTotal += int32(apBonus * 0.22f); // 22% of AP per tick
- else
- DoneTotal += int32(DoneAdvertisedBenefit * 0.377f); // 37.7% of BH per tick
- }
- else
- {
- // Earthliving - 0.45% of normal hot coeff
- if (spellProto->SpellFamilyName == SPELLFAMILY_SHAMAN && spellProto->SpellFamilyFlags[1] & 0x80000)
- factorMod *= 0.45f;
+ // Earthliving - 0.45% of normal hot coeff
+ if (spellProto->SpellFamilyName == SPELLFAMILY_SHAMAN && spellProto->SpellFamilyFlags[1] & 0x80000)
+ factorMod *= 0.45f;
- DoneTotal += int32(DoneAdvertisedBenefit * coeff * factorMod);
- }
+ DoneTotal += int32(DoneAdvertisedBenefit * coeff * factorMod);
+ }
+
+ // Gift of the Naaru
+ if (spellProto->SpellFamilyFlags[2] & 0x80000000 && spellProto->SpellIconID == 329)
+ {
+ int32 apBonus = int32(std::max(GetTotalAttackPowerValue(BASE_ATTACK), GetTotalAttackPowerValue(RANGED_ATTACK)));
+ if (apBonus > DoneAdvertisedBenefit)
+ DoneTotal += int32(apBonus * 0.22f); // 22% of AP per tick
+ else
+ DoneTotal += int32(DoneAdvertisedBenefit * 0.377f); // 37.7% of BH per tick
}
for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
@@ -11335,7 +11330,7 @@ uint32 Unit::SpellHealingBonusDone(Unit* victim, SpellInfo const* spellProto, ui
}
// use float as more appropriate for negative values and percent applying
- float heal = (int32(healamount) + DoneTotal) * DoneTotalMod;
+ float heal = float(int32(healamount) + DoneTotal) * DoneTotalMod;
// apply spellmod to Done amount
if (Player* modOwner = GetSpellModOwner())
modOwner->ApplySpellMod(spellProto->Id, damagetype == DOT ? SPELLMOD_DOT : SPELLMOD_DAMAGE, heal);
@@ -11397,7 +11392,10 @@ uint32 Unit::SpellHealingBonusTaken(Unit* caster, SpellInfo const* spellProto, u
{
// No bonus healing for SPELL_DAMAGE_CLASS_NONE class spells by default
if (spellProto->DmgClass == SPELL_DAMAGE_CLASS_NONE)
- return healamount < 0 ? 0 : healamount;
+ {
+ healamount = uint32(std::max((float(healamount) * TakenTotalMod), 0.0f));
+ return healamount;
+ }
}
// Default calculation
@@ -11440,7 +11438,7 @@ uint32 Unit::SpellHealingBonusTaken(Unit* caster, SpellInfo const* spellProto, u
TakenTotal = 0;
}
- float heal = (int32(healamount) + TakenTotal) * TakenTotalMod;
+ float heal = float(int32(healamount) + TakenTotal) * TakenTotalMod;
return uint32(std::max(heal, 0.0f));
}
@@ -11513,7 +11511,7 @@ bool Unit::IsImmunedToDamage(SpellInfo const* spellInfo)
return false;
uint32 shoolMask = spellInfo->GetSchoolMask();
- if (spellInfo->Id != 42292 && spellInfo->Id !=59752)
+ if (spellInfo->Id != 42292 && spellInfo->Id != 59752)
{
// If m_immuneToSchool type contain this school type, IMMUNE damage.
SpellImmuneList const& schoolList = m_spellImmune[IMMUNITY_SCHOOL];
@@ -11554,7 +11552,7 @@ bool Unit::IsImmunedToSpell(SpellInfo const* spellInfo)
}
// Spells that don't have effectMechanics.
- if (!spellInfo->HasAnyEffectMechanic() && spellInfo->Mechanic)
+ if (spellInfo->Mechanic)
{
SpellImmuneList const& mechanicList = m_spellImmune[IMMUNITY_MECHANIC];
for (SpellImmuneList::const_iterator itr = mechanicList.begin(); itr != mechanicList.end(); ++itr)
@@ -11567,16 +11565,17 @@ bool Unit::IsImmunedToSpell(SpellInfo const* spellInfo)
{
// State/effect immunities applied by aura expect full spell immunity
// Ignore effects with mechanic, they are supposed to be checked separately
- if (spellInfo->Effects[i].Mechanic || !IsImmunedToSpellEffect(spellInfo, i))
+ if (!IsImmunedToSpellEffect(spellInfo, i))
{
immuneToAllEffects = false;
break;
}
}
+
if (immuneToAllEffects) //Return immune only if the target is immune to all spell effects.
return true;
- if (spellInfo->Id != 42292 && spellInfo->Id !=59752)
+ if (spellInfo->Id != 42292 && spellInfo->Id != 59752)
{
SpellImmuneList const& schoolList = m_spellImmune[IMMUNITY_SCHOOL];
for (SpellImmuneList::const_iterator itr = schoolList.begin(); itr != schoolList.end(); ++itr)
@@ -11594,8 +11593,9 @@ bool Unit::IsImmunedToSpell(SpellInfo const* spellInfo)
bool Unit::IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) const
{
- if (!spellInfo)
+ if (!spellInfo || !spellInfo->Effects[index].IsEffect())
return false;
+
// If m_immuneToEffect type contain this effect type, IMMUNE effect.
uint32 effect = spellInfo->Effects[index].Effect;
SpellImmuneList const& effectList = m_spellImmune[IMMUNITY_EFFECT];
@@ -11631,10 +11631,7 @@ bool Unit::IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index) cons
uint32 Unit::MeleeDamageBonusDone(Unit* victim, uint32 pdamage, WeaponAttackType attType, SpellInfo const* spellProto)
{
- if (!victim)
- return 0;
-
- if (pdamage == 0)
+ if (!victim || pdamage == 0)
return 0;
uint32 creatureTypeMask = victim->GetCreatureTypeMask();
@@ -11691,23 +11688,24 @@ uint32 Unit::MeleeDamageBonusDone(Unit* victim, uint32 pdamage, WeaponAttackType
// Done total percent damage auras
float DoneTotalMod = 1.0f;
- // ..done
- AuraEffectList const& mModDamagePercentDone = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
- for (AuraEffectList::const_iterator i = mModDamagePercentDone.begin(); i != mModDamagePercentDone.end(); ++i)
- {
- if (spellProto)
+ // Some spells don't benefit from pct done mods
+ if (spellProto)
+ if (!(spellProto->AttributesEx6 & SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS) && !spellProto->IsRankOf(sSpellMgr->GetSpellInfo(12162)))
{
- if ((*i)->GetMiscValue() & spellProto->GetSchoolMask() && !(spellProto->GetSchoolMask() & SPELL_SCHOOL_MASK_NORMAL))
+ AuraEffectList const& mModDamagePercentDone = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_PERCENT_DONE);
+ for (AuraEffectList::const_iterator i = mModDamagePercentDone.begin(); i != mModDamagePercentDone.end(); ++i)
{
- if ((*i)->GetSpellInfo()->EquippedItemClass == -1)
- AddPctN(DoneTotalMod, (*i)->GetAmount());
- else if (!((*i)->GetSpellInfo()->AttributesEx5 & SPELL_ATTR5_SPECIAL_ITEM_CLASS_CHECK) && ((*i)->GetSpellInfo()->EquippedItemSubClassMask == 0))
- AddPctN(DoneTotalMod, (*i)->GetAmount());
- else if (ToPlayer() && ToPlayer()->HasItemFitToSpellRequirements((*i)->GetSpellInfo()))
- AddPctN(DoneTotalMod, (*i)->GetAmount());
+ if ((*i)->GetMiscValue() & spellProto->GetSchoolMask() && !(spellProto->GetSchoolMask() & SPELL_SCHOOL_MASK_NORMAL))
+ {
+ if ((*i)->GetSpellInfo()->EquippedItemClass == -1)
+ AddPctN(DoneTotalMod, (*i)->GetAmount());
+ else if (!((*i)->GetSpellInfo()->AttributesEx5 & SPELL_ATTR5_SPECIAL_ITEM_CLASS_CHECK) && ((*i)->GetSpellInfo()->EquippedItemSubClassMask == 0))
+ AddPctN(DoneTotalMod, (*i)->GetAmount());
+ else if (ToPlayer() && ToPlayer()->HasItemFitToSpellRequirements((*i)->GetSpellInfo()))
+ AddPctN(DoneTotalMod, (*i)->GetAmount());
+ }
}
}
- }
AuraEffectList const& mDamageDoneVersus = GetAuraEffectsByType(SPELL_AURA_MOD_DAMAGE_DONE_VERSUS);
for (AuraEffectList::const_iterator i = mDamageDoneVersus.begin(); i != mDamageDoneVersus.end(); ++i)
@@ -11806,7 +11804,7 @@ uint32 Unit::MeleeDamageBonusDone(Unit* victim, uint32 pdamage, WeaponAttackType
return uint32(std::max(tmpDamage, 0.0f));
}
-uint32 Unit::MeleeDamageBonusTaken(Unit* attacker, uint32 pdamage, WeaponAttackType attType, SpellInfo const *spellProto)
+uint32 Unit::MeleeDamageBonusTaken(Unit* attacker, uint32 pdamage, WeaponAttackType attType, SpellInfo const* spellProto)
{
if (pdamage == 0)
return 0;
@@ -12239,7 +12237,7 @@ bool Unit::IsValidAttackTarget(Unit const* target) const
}
// function based on function Unit::CanAttack from 13850 client
-bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell) const
+bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell, WorldObject const* obj) const
{
ASSERT(target);
@@ -12257,8 +12255,8 @@ bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell) co
if (IsOnVehicle(target) || m_vehicle->GetBase()->IsOnVehicle(target))
return false;
- // can't attack invisible (ignore stealth for aoe spells)
- if ((!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_CAN_TARGET_INVISIBLE)) && !canSeeOrDetect(target, bySpell && bySpell->IsAffectingArea()))
+ // can't attack invisible (ignore stealth for aoe spells) also if the area being looked at is from a spell use the dynamic object created instead of the casting unit.
+ if ((!bySpell || !(bySpell->AttributesEx6 & SPELL_ATTR6_CAN_TARGET_INVISIBLE)) && (obj ? !obj->canSeeOrDetect(target, bySpell && bySpell->IsAffectingArea()) : !canSeeOrDetect(target, bySpell && bySpell->IsAffectingArea())))
return false;
// can't attack dead
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 2d6c5b1a86e..f246f595dec 100755
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1573,7 +1573,7 @@ class Unit : public WorldObject
bool isTargetableForAttack(bool checkFakeDeath = true) const;
bool IsValidAttackTarget(Unit const* target) const;
- bool _IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell) const;
+ bool _IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell, WorldObject const* obj = NULL) const;
bool IsValidAssistTarget(Unit const* target) const;
bool _IsValidAssistTarget(Unit const* target, SpellInfo const* bySpell) const;
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h
index 6ca31b22e37..7bb4492f99c 100755
--- a/src/server/game/Grids/Notifiers/GridNotifiers.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiers.h
@@ -943,7 +943,7 @@ namespace Trinity
if (u->GetTypeId() == TYPEID_UNIT && ((Creature*)u)->isTotem())
return false;
- if (i_funit->_IsValidAttackTarget(u, _spellInfo) && i_obj->IsWithinDistInMap(u, i_range))
+ if (i_funit->_IsValidAttackTarget(u, _spellInfo,i_obj->GetTypeId() == TYPEID_DYNAMICOBJECT ? i_obj : NULL) && i_obj->IsWithinDistInMap(u, i_range))
return true;
return false;
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index a1b3d913c99..162dd12d121 100755
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -2470,7 +2470,7 @@ bool InstanceMap::AddPlayerToMap(Player* player)
if (uint32 dungeonId = sLFGMgr->GetDungeon(group->GetGUID(), true))
if (LFGDungeonEntry const* dungeon = sLFGDungeonStore.LookupEntry(dungeonId))
if (LFGDungeonEntry const* randomDungeon = sLFGDungeonStore.LookupEntry(*(sLFGMgr->GetSelectedDungeons(player->GetGUID()).begin())))
- if (uint32(dungeon->map) == GetId() && dungeon->difficulty == GetDifficulty() && randomDungeon->type == LFG_TYPE_RANDOM)
+ if (uint32(dungeon->map) == GetId() && dungeon->difficulty == uint32(GetDifficulty()) && randomDungeon->type == uint32(LFG_TYPE_RANDOM))
player->CastSpell(player, LFG_SPELL_LUCK_OF_THE_DRAW, true);
}
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp
index 01d56cf8060..23d18e12097 100755
--- a/src/server/game/Scripting/ScriptMgr.cpp
+++ b/src/server/game/Scripting/ScriptMgr.cpp
@@ -937,6 +937,22 @@ void ScriptMgr::OnGameObjectDamaged(GameObject* go, Player* player)
tmpscript->OnDamaged(go, player);
}
+void ScriptMgr::OnGameObjectLootStateChanged(GameObject* go, uint32 state, Unit* unit)
+{
+ ASSERT(go);
+
+ GET_SCRIPT(GameObjectScript, go->GetScriptId(), tmpscript);
+ tmpscript->OnLootStateChanged(go, state, unit);
+}
+
+void ScriptMgr::OnGameObjectStateChanged(GameObject* go, uint32 state)
+{
+ ASSERT(go);
+
+ GET_SCRIPT(GameObjectScript, go->GetScriptId(), tmpscript);
+ tmpscript->OnGameObjectStateChanged(go, state);
+}
+
void ScriptMgr::OnGameObjectUpdate(GameObject* go, uint32 diff)
{
ASSERT(go);
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 6fe058d336a..b3d445af0c6 100755
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -473,6 +473,12 @@ class GameObjectScript : public ScriptObject, public UpdatableScript<GameObject>
// Called when the game object is damaged (destructible buildings only).
virtual void OnDamaged(GameObject* /*go*/, Player* /*player*/) { }
+ // Called when the game object loot state is changed.
+ virtual void OnLootStateChanged(GameObject* /*go*/, uint32 /*state*/, Unit* /*unit*/) { }
+
+ // Called when the game object state is changed.
+ virtual void OnGameObjectStateChanged(GameObject* /*go*/, uint32 /*state*/) { }
+
// Called when a GameObjectAI object is needed for the gameobject.
virtual GameObjectAI* GetAI(GameObject* /*go*/) const { return NULL; }
};
@@ -914,6 +920,8 @@ class ScriptMgr
uint32 GetDialogStatus(Player* player, GameObject* go);
void OnGameObjectDestroyed(GameObject* go, Player* player);
void OnGameObjectDamaged(GameObject* go, Player* player);
+ void OnGameObjectLootStateChanged(GameObject* go, uint32 state, Unit* unit);
+ void OnGameObjectStateChanged(GameObject* go, uint32 state);
void OnGameObjectUpdate(GameObject* go, uint32 diff);
GameObjectAI* GetGameObjectAI(GameObject* go);
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index aa6013fae3d..517935acbd2 100755
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -270,8 +270,8 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x0F1*/ { "MSG_MOVE_KNOCK_BACK", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
/*0x0F2*/ { "SMSG_MOVE_FEATHER_FALL", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x0F3*/ { "SMSG_MOVE_NORMAL_FALL", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
- /*0x0F4*/ { "SMSG_MOVE_SET_HOVER", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
- /*0x0F5*/ { "SMSG_MOVE_UNSET_HOVER", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
+ /*0x0F4*/ { "SMSG_MOVE_SET_HOVER", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
+ /*0x0F5*/ { "SMSG_MOVE_UNSET_HOVER", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x0F6*/ { "CMSG_MOVE_HOVER_ACK", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMoveHoverAck },
/*0x0F7*/ { "MSG_MOVE_HOVER", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x0F8*/ { "CMSG_TRIGGER_CINEMATIC_CHEAT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
@@ -970,7 +970,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x3AD*/ { "MSG_MOVE_UPDATE_CAN_FLY", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
/*0x3AE*/ { "MSG_RAID_READY_CHECK_CONFIRM", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
/*0x3AF*/ { "CMSG_VOICE_SESSION_ENABLE", STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleVoiceSessionEnableOpcode },
- /*0x3B0*/ { "SMSG_VOICE_SESSION_ENABLE", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
+ /*0x3B0*/ { "SMSG_VOICE_SESSION_ENABLE", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x3B1*/ { "SMSG_VOICE_PARENTAL_CONTROLS", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x3B2*/ { "CMSG_GM_WHISPER", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
/*0x3B3*/ { "SMSG_GM_MESSAGECHAT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
@@ -1023,7 +1023,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x3E2*/ { "SMSG_COMSAT_CONNECT_FAIL", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x3E3*/ { "SMSG_VOICE_CHAT_STATUS", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x3E4*/ { "CMSG_REPORT_PVP_AFK", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReportPvPAFK },
- /*0x3E5*/ { "SMSG_REPORT_PVP_AFK_RESULT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL },
+ /*0x3E5*/ { "SMSG_REPORT_PVP_AFK_RESULT", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
/*0x3E6*/ { "CMSG_GUILD_BANKER_ACTIVATE", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankerActivate },
/*0x3E7*/ { "CMSG_GUILD_BANK_QUERY_TAB", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankQueryTab },
/*0x3E8*/ { "SMSG_GUILD_BANK_LIST", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide },
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 0fce0a372ff..bb54a0ae19e 100755
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -395,7 +395,7 @@ class WorldSession
public: // opcodes handlers
void Handle_NULL(WorldPacket& recvPacket); // not used
- void Handle_EarlyProccess(WorldPacket& recvPacket);// just mark packets processed in WorldSocket::OnRead
+ void Handle_EarlyProccess(WorldPacket& recvPacket); // just mark packets processed in WorldSocket::OnRead
void Handle_ServerSide(WorldPacket& recvPacket); // sever side only, can't be accepted from client
void Handle_Deprecated(WorldPacket& recvPacket); // never used anymore by client
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 48aa40a0e51..de432229e2c 100755
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2475,15 +2475,16 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
caster->ToPlayer()->CastItemCombatSpell(unitTarget, m_attackType, procVictim, procEx);
}
- caster->DealSpellDamage(&damageInfo, true);
-
// Haunt
if (m_spellInfo->SpellFamilyName == SPELLFAMILY_WARLOCK && m_spellInfo->SpellFamilyFlags[1] & 0x40000 && m_spellAura && m_spellAura->GetEffect(1))
{
AuraEffect* aurEff = m_spellAura->GetEffect(1);
aurEff->SetAmount(CalculatePctU(aurEff->GetAmount(), damageInfo.damage));
}
+
m_damage = damageInfo.damage;
+
+ caster->DealSpellDamage(&damageInfo, true);
}
// Passive spell hits/misses or active spells only misses (only triggers)
else
@@ -2504,7 +2505,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
}
}
- if (missInfo != SPELL_MISS_EVADE && m_caster && !m_caster->IsFriendlyTo(unit) && !m_spellInfo->IsPositive())
+ if (missInfo != SPELL_MISS_EVADE && m_caster && !m_caster->IsFriendlyTo(unit) && (!m_spellInfo->IsPositive() || m_spellInfo->HasEffect(SPELL_EFFECT_DISPEL)))
{
m_caster->CombatStart(unit, !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_NO_INITIAL_AGGRO));
@@ -3427,7 +3428,7 @@ void Spell::_handle_immediate_phase()
// process items
for (std::list<ItemTargetInfo>::iterator ihit= m_UniqueItemInfo.begin(); ihit != m_UniqueItemInfo.end(); ++ihit)
DoAllEffectOnTarget(&(*ihit));
-
+
if (!m_originalCaster)
return;
// Handle procs on cast
@@ -3437,7 +3438,7 @@ void Spell::_handle_immediate_phase()
uint32 procAttacker = m_procAttacker;
if (!procAttacker)
procAttacker |= PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS;
-
+
// Proc the spells that have DEST target
m_originalCaster->ProcDamageAndSpell(NULL, procAttacker, 0, m_procEx | PROC_EX_NORMAL_HIT, 0, BASE_ATTACK, m_spellInfo, m_triggeredByAuraSpell);
}
@@ -4986,35 +4987,12 @@ SpellCastResult Spell::CheckCast(bool strict)
{
case SPELL_EFFECT_DUMMY:
{
- if (m_spellInfo->Id == 51582) // Rocket Boots Engaged
- {
- if (m_caster->IsInWater())
- return SPELL_FAILED_ONLY_ABOVEWATER;
- }
- else if (m_spellInfo->SpellIconID == 156) // Holy Shock
- {
- // spell different for friends and enemies
- // hurt version required facing
- if (m_targets.GetUnitTarget() && !m_caster->IsFriendlyTo(m_targets.GetUnitTarget()) && !m_caster->HasInArc(static_cast<float>(M_PI), m_targets.GetUnitTarget()))
- return SPELL_FAILED_UNIT_NOT_INFRONT;
- }
- else if (m_spellInfo->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT && m_spellInfo->SpellFamilyFlags[0] == 0x2000) // Death Coil (DeathKnight)
- {
- Unit* target = m_targets.GetUnitTarget();
- if (!target || (target->IsFriendlyTo(m_caster) && target->GetCreatureType() != CREATURE_TYPE_UNDEAD))
- return SPELL_FAILED_BAD_TARGETS;
- }
- else if (m_spellInfo->Id == 19938) // Awaken Peon
+ if (m_spellInfo->Id == 19938) // Awaken Peon
{
Unit* unit = m_targets.GetUnitTarget();
if (!unit || !unit->HasAura(17743))
return SPELL_FAILED_BAD_TARGETS;
}
- else if (m_spellInfo->Id == 52264) // Deliver Stolen Horse
- {
- if (!m_caster->FindNearestCreature(28653, 5))
- return SPELL_FAILED_OUT_OF_RANGE;
- }
else if (m_spellInfo->Id == 31789) // Righteous Defense
{
if (m_caster->GetTypeId() != TYPEID_PLAYER)
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index c306da9d43b..07bea5f980c 100755
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -3539,7 +3539,7 @@ void Spell::EffectWeaponDmg(SpellEffIndex effIndex)
// Add melee damage bonuses (also check for negative)
uint32 damage = m_caster->MeleeDamageBonusDone(unitTarget, eff_damage, m_attackType, m_spellInfo);
-
+
m_damage += unitTarget->MeleeDamageBonusTaken(m_caster, damage, m_attackType, m_spellInfo);
}
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index e9e1b0eee8d..a931f759163 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -351,7 +351,7 @@ bool SpellEffectInfo::IsEffect() const
bool SpellEffectInfo::IsEffect(SpellEffects effectName) const
{
- return Effect == effectName;
+ return Effect == uint32(effectName);
}
bool SpellEffectInfo::IsAura() const
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h b/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
index cef08375c13..beef71ea857 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/blackrock_spire.h
@@ -57,6 +57,7 @@ enum AdditionalData
{
SPELL_SUMMON_ROOKERY_WHELP = 15745,
MAX_ENCOUNTER = 14,
+ MAX_DRAGONSPIRE_HALL_RUNES = 7,
};
enum GameObjects
diff --git a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
index ff97984fa09..b5b1b34a593 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
@@ -247,7 +247,30 @@ public:
};
+uint8 ActivatedRunes = 0;
+
+class go_dragonspire_hall_rune : public GameObjectScript
+{
+public:
+ go_dragonspire_hall_rune() : GameObjectScript("go_dragonspire_hall_rune") { }
+
+ void OnGameObjectStateChanged(GameObject* go, uint32 state)
+ {
+ if (state == GO_STATE_READY)
+ {
+ if (++ActivatedRunes == MAX_DRAGONSPIRE_HALL_RUNES)
+ {
+ if (GameObject* door1 = GetClosestGameObjectWithEntry(go, GO_EMBERSEER_IN, 150.0f))
+ door1->SetGoState(GO_STATE_ACTIVE);
+ if (GameObject* door2 = GetClosestGameObjectWithEntry(go, GO_DOORS, 150.0f))
+ door2->SetGoState(GO_STATE_ACTIVE);
+ }
+ }
+ }
+};
+
void AddSC_instance_blackrock_spire()
{
new instance_blackrock_spire();
+ new go_dragonspire_hall_rune;
}
diff --git a/src/server/scripts/EasternKingdoms/undercity.cpp b/src/server/scripts/EasternKingdoms/undercity.cpp
index d5896812007..a9b627ded34 100644
--- a/src/server/scripts/EasternKingdoms/undercity.cpp
+++ b/src/server/scripts/EasternKingdoms/undercity.cpp
@@ -184,7 +184,7 @@ public:
{
if (Unit* victim = me->getVictim())
{
- DoCast(me->getVictim(), SPELL_BLACK_ARROW);
+ DoCast(victim, SPELL_BLACK_ARROW);
BlackArrowTimer = 15000 + rand()%5000;
}
} else BlackArrowTimer -= diff;
@@ -193,7 +193,7 @@ public:
{
if (Unit* victim = me->getVictim())
{
- DoCast(me->getVictim(), SPELL_SHOT);
+ DoCast(victim, SPELL_SHOT);
ShotTimer = 8000 + rand()%2000;
}
} else ShotTimer -= diff;
@@ -202,7 +202,7 @@ public:
{
if (Unit* victim = me->getVictim())
{
- DoCast(me->getVictim(), SPELL_MULTI_SHOT);
+ DoCast(victim, SPELL_MULTI_SHOT);
MultiShotTimer = 10000 + rand()%3000;
}
} else MultiShotTimer -= diff;
diff --git a/src/server/scripts/Kalimdor/ashenvale.cpp b/src/server/scripts/Kalimdor/ashenvale.cpp
index cec5e42aee5..e28665c038e 100644
--- a/src/server/scripts/Kalimdor/ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/ashenvale.cpp
@@ -28,7 +28,8 @@ npc_torek
npc_ruul_snowhoof
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
/*####
@@ -78,32 +79,31 @@ class npc_torek : public CreatureScript
void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
- if (!player)
- return;
-
- switch (waypointId)
+ if (Player* player = GetPlayerForEscort())
{
- case 1:
- Talk(SAY_MOVE, player->GetGUID());
- break;
- case 8:
- Talk(SAY_PREPARE, player->GetGUID());
- break;
- case 19:
- //TODO: verify location and creatures amount.
- me->SummonCreature(ENTRY_DURIEL, 1776.73f, -2049.06f, 109.83f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(ENTRY_SILVERWING_SENTINEL, 1774.64f, -2049.41f, 109.83f, 1.40f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(ENTRY_SILVERWING_WARRIOR, 1778.73f, -2049.50f, 109.83f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- break;
- case 20:
- DoScriptText(SAY_WIN, me, player);
- Completed = true;
- player->GroupEventHappens(QUEST_TOREK_ASSULT, me);
- break;
- case 21:
- Talk(SAY_END, player->GetGUID());
- break;
+ switch (waypointId)
+ {
+ case 1:
+ Talk(SAY_MOVE, player->GetGUID());
+ break;
+ case 8:
+ Talk(SAY_PREPARE, player->GetGUID());
+ break;
+ case 19:
+ //TODO: verify location and creatures amount.
+ me->SummonCreature(ENTRY_DURIEL, 1776.73f, -2049.06f, 109.83f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(ENTRY_SILVERWING_SENTINEL, 1774.64f, -2049.41f, 109.83f, 1.40f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(ENTRY_SILVERWING_WARRIOR, 1778.73f, -2049.50f, 109.83f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ break;
+ case 20:
+ DoScriptText(SAY_WIN, me, player);
+ Completed = true;
+ player->GroupEventHappens(QUEST_TOREK_ASSULT, me);
+ break;
+ case 21:
+ Talk(SAY_END, player->GetGUID());
+ break;
+ }
}
}
@@ -169,8 +169,26 @@ class npc_torek : public CreatureScript
# npc_ruul_snowhoof
####*/
-#define QUEST_FREEDOM_TO_RUUL 6482
-#define GO_CAGE 178147
+enum RuulSnowhoof
+{
+ NPC_THISTLEFUR_URSA = 3921,
+ NPC_THISTLEFUR_TOTEMIC = 3922,
+ NPC_THISTLEFUR_PATHFINDER = 3926,
+
+ QUEST_FREEDOM_TO_RUUL = 6482,
+
+ GO_CAGE = 178147
+};
+
+Position const RuulSnowhoofSummonsCoord[6] =
+{
+ {3449.218018f, -587.825073f, 174.978867f, 4.714445f},
+ {3446.384521f, -587.830872f, 175.186279f, 4.714445f},
+ {3444.218994f, -587.835327f, 175.380600f, 4.714445f},
+ {3508.344482f, -492.024261f, 186.929031f, 4.145029f},
+ {3506.265625f, -490.531006f, 186.740128f, 4.239277f},
+ {3503.682373f, -489.393799f, 186.629684f, 4.349232f}
+};
class npc_ruul_snowhoof : public CreatureScript
{
@@ -195,14 +213,14 @@ class npc_ruul_snowhoof : public CreatureScript
Cage->SetGoState(GO_STATE_ACTIVE);
break;
case 13:
- me->SummonCreature(3922, 3449.218018f, -587.825073f, 174.978867f, 4.714445f, TEMPSUMMON_DEAD_DESPAWN, 60000);
- me->SummonCreature(3921, 3446.384521f, -587.830872f, 175.186279f, 4.714445f, TEMPSUMMON_DEAD_DESPAWN, 60000);
- me->SummonCreature(3926, 3444.218994f, -587.835327f, 175.380600f, 4.714445f, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_TOTEMIC, RuulSnowhoofSummonsCoord[0], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_URSA, RuulSnowhoofSummonsCoord[1], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_PATHFINDER, RuulSnowhoofSummonsCoord[2], TEMPSUMMON_DEAD_DESPAWN, 60000);
break;
case 19:
- me->SummonCreature(3922, 3508.344482f, -492.024261f, 186.929031f, 4.145029f, TEMPSUMMON_DEAD_DESPAWN, 60000);
- me->SummonCreature(3921, 3506.265625f, -490.531006f, 186.740128f, 4.239277f, TEMPSUMMON_DEAD_DESPAWN, 60000);
- me->SummonCreature(3926, 3503.682373f, -489.393799f, 186.629684f, 4.349232f, TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_TOTEMIC, RuulSnowhoofSummonsCoord[3], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_URSA, RuulSnowhoofSummonsCoord[4], TEMPSUMMON_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_THISTLEFUR_PATHFINDER, RuulSnowhoofSummonsCoord[5], TEMPSUMMON_DEAD_DESPAWN, 60000);
break;
case 21:
player->GroupEventHappens(QUEST_FREEDOM_TO_RUUL, me);
@@ -214,8 +232,7 @@ class npc_ruul_snowhoof : public CreatureScript
void Reset()
{
- GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20);
- if (Cage)
+ if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_READY);
}
@@ -249,7 +266,7 @@ class npc_ruul_snowhoof : public CreatureScript
}
};
-enum eEnums
+enum Muglash
{
SAY_MUG_START1 = -1800054,
SAY_MUG_START2 = -1800055,
@@ -278,21 +295,21 @@ enum eEnums
NPC_MUGLASH = 12717
};
-static float m_afFirstNagaCoord[3][3]=
+Position const FirstNagaCoord[3] =
{
- {3603.504150f, 1122.631104f, 1.635f}, // rider
- {3589.293945f, 1148.664063f, 5.565f}, // sorceress
- {3609.925537f, 1168.759521f, -1.168f} // razortail
+ {3603.504150f, 1122.631104f, 1.635f, 0.0f}, // rider
+ {3589.293945f, 1148.664063f, 5.565f, 0.0f}, // sorceress
+ {3609.925537f, 1168.759521f, -1.168f, 0.0f} // razortail
};
-static float m_afSecondNagaCoord[3][3]=
+Position const SecondNagaCoord[3] =
{
- {3609.925537f, 1168.759521f, -1.168f}, // witch
- {3645.652100f, 1139.425415f, 1.322f}, // priest
- {3583.602051f, 1128.405762f, 2.347f} // myrmidon
+ {3609.925537f, 1168.759521f, -1.168f, 0.0f}, // witch
+ {3645.652100f, 1139.425415f, 1.322f, 0.0f}, // priest
+ {3583.602051f, 1128.405762f, 2.347f, 0.0f} // myrmidon
};
-static float m_fVorshaCoord[]={3633.056885f, 1172.924072f, -5.388f};
+Position const VorshaCoord = {3633.056885f, 1172.924072f, -5.388f, 0.0f};
class npc_muglash : public CreatureScript
{
@@ -303,9 +320,9 @@ class npc_muglash : public CreatureScript
{
npc_muglashAI(Creature* creature) : npc_escortAI(creature) { }
- uint32 m_uiWaveId;
- uint32 m_uiEventTimer;
- bool m_bIsBrazierExtinguished;
+ uint8 WaveId;
+ uint32 EventTimer;
+ bool IsBrazierExtinguished;
void JustSummoned(Creature* summoned)
{
@@ -314,34 +331,33 @@ class npc_muglash : public CreatureScript
void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
-
- switch (waypointId)
+ if (Player* player = GetPlayerForEscort())
{
- case 0:
- if (player)
+ switch (waypointId)
+ {
+ case 0:
DoScriptText(SAY_MUG_START2, me, player);
- break;
- case 24:
- if (player)
+ break;
+ case 24:
DoScriptText(SAY_MUG_BRAZIER, me, player);
- if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE*2))
- {
- go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
- SetEscortPaused(true);
- }
- break;
- case 25:
- DoScriptText(SAY_MUG_GRATITUDE, me);
- player->GroupEventHappens(QUEST_VORSHA, me);
- break;
- case 26:
- DoScriptText(SAY_MUG_PATROL, me);
- break;
- case 27:
- DoScriptText(SAY_MUG_RETURN, me);
- break;
+ if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE*2))
+ {
+ go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
+ SetEscortPaused(true);
+ }
+ break;
+ case 25:
+ DoScriptText(SAY_MUG_GRATITUDE, me);
+ player->GroupEventHappens(QUEST_VORSHA, me);
+ break;
+ case 26:
+ DoScriptText(SAY_MUG_PATROL, me);
+ break;
+ case 27:
+ DoScriptText(SAY_MUG_RETURN, me);
+ break;
+ }
}
}
@@ -358,9 +374,9 @@ class npc_muglash : public CreatureScript
void Reset()
{
- m_uiEventTimer = 10000;
- m_uiWaveId = 0;
- m_bIsBrazierExtinguished = false;
+ EventTimer = 10000;
+ WaveId = 0;
+ IsBrazierExtinguished = false;
}
void JustDied(Unit* /*killer*/)
@@ -372,20 +388,20 @@ class npc_muglash : public CreatureScript
void DoWaveSummon()
{
- switch (m_uiWaveId)
+ switch (WaveId)
{
case 1:
- me->SummonCreature(NPC_WRATH_RIDER, m_afFirstNagaCoord[0][0], m_afFirstNagaCoord[0][1], m_afFirstNagaCoord[0][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- me->SummonCreature(NPC_WRATH_SORCERESS, m_afFirstNagaCoord[1][0], m_afFirstNagaCoord[1][1], m_afFirstNagaCoord[1][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- me->SummonCreature(NPC_WRATH_RAZORTAIL, m_afFirstNagaCoord[2][0], m_afFirstNagaCoord[2][1], m_afFirstNagaCoord[2][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_RIDER, FirstNagaCoord[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_SORCERESS, FirstNagaCoord[1], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_RAZORTAIL, FirstNagaCoord[2], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
break;
case 2:
- me->SummonCreature(NPC_WRATH_PRIESTESS, m_afSecondNagaCoord[0][0], m_afSecondNagaCoord[0][1], m_afSecondNagaCoord[0][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- me->SummonCreature(NPC_WRATH_MYRMIDON, m_afSecondNagaCoord[1][0], m_afSecondNagaCoord[1][1], m_afSecondNagaCoord[1][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
- me->SummonCreature(NPC_WRATH_SEAWITCH, m_afSecondNagaCoord[2][0], m_afSecondNagaCoord[2][1], m_afSecondNagaCoord[2][2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_PRIESTESS, SecondNagaCoord[0], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_MYRMIDON, SecondNagaCoord[1], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_WRATH_SEAWITCH, SecondNagaCoord[2], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
break;
case 3:
- me->SummonCreature(NPC_VORSHA, m_fVorshaCoord[0], m_fVorshaCoord[1], m_fVorshaCoord[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
+ me->SummonCreature(NPC_VORSHA, VorshaCoord, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
break;
case 4:
SetEscortPaused(false);
@@ -400,16 +416,16 @@ class npc_muglash : public CreatureScript
if (!me->getVictim())
{
- if (HasEscortState(STATE_ESCORT_PAUSED) && m_bIsBrazierExtinguished)
+ if (HasEscortState(STATE_ESCORT_PAUSED) && IsBrazierExtinguished)
{
- if (m_uiEventTimer < uiDiff)
+ if (EventTimer < uiDiff)
{
- ++m_uiWaveId;
+ ++WaveId;
DoWaveSummon();
- m_uiEventTimer = 10000;
+ EventTimer = 10000;
}
else
- m_uiEventTimer -= uiDiff;
+ EventTimer -= uiDiff;
}
return;
}
@@ -451,7 +467,7 @@ class go_naga_brazier : public GameObjectScript
{
DoScriptText(SAY_MUG_BRAZIER_WAIT, creature);
- pEscortAI->m_bIsBrazierExtinguished = true;
+ pEscortAI->IsBrazierExtinguished = true;
return false;
}
}
diff --git a/src/server/scripts/Kalimdor/azshara.cpp b/src/server/scripts/Kalimdor/azshara.cpp
index 2e7b0a684c1..eae5baa8db2 100644
--- a/src/server/scripts/Kalimdor/azshara.cpp
+++ b/src/server/scripts/Kalimdor/azshara.cpp
@@ -30,9 +30,9 @@ mob_rizzle_sprysprocket
mob_depth_charge
EndContentData */
-#include "ScriptPCH.h"
-#include "World.h"
-#include "WorldPacket.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## mobs_spitelashes
@@ -179,9 +179,12 @@ public:
# mob_rizzle_sprysprocket
####*/
-enum eRizzleSprysprocketData
+enum RizzleSprysprocketData
{
+ QUEST_CHASING_THE_MOONSTONE = 10994,
+
MOB_DEPTH_CHARGE = 23025,
+
SPELL_RIZZLE_BLACKJACK = 39865,
SPELL_RIZZLE_ESCAPE = 39871,
SPELL_RIZZLE_FROST_GRENADE = 40525,
@@ -199,67 +202,66 @@ enum eRizzleSprysprocketData
#define GOSSIP_GET_MOONSTONE "Hand over the Southfury moonstone and I'll let you go."
-float WPs[58][4] =
+Position const WPs[58] =
{
-//pos_x pos_y pos_z orien
-{3691.97f, -3962.41f, 35.9118f, 3.67f},
-{3675.02f, -3960.49f, 35.9118f, 3.67f},
-{3653.19f, -3958.33f, 33.9118f, 3.59f},
-{3621.12f, -3958.51f, 29.9118f, 3.48f},
-{3604.86f, -3963, 29.9118f, 3.48f},
-{3569.94f, -3970.25f, 29.9118f, 3.44f},
-{3541.03f, -3975.64f, 29.9118f, 3.41f},
-{3510.84f, -3978.71f, 29.9118f, 3.41f},
-{3472.7f, -3997.07f, 29.9118f, 3.35f},
-{3439.15f, -4014.55f, 29.9118f, 3.29f},
-{3412.8f, -4025.87f, 29.9118f, 3.25f},
-{3384.95f, -4038.04f, 29.9118f, 3.24f},
-{3346.77f, -4052.93f, 29.9118f, 3.22f},
-{3299.56f, -4071.59f, 29.9118f, 3.20f},
-{3261.22f, -4080.38f, 30.9118f, 3.19f},
-{3220.68f, -4083.09f, 31.9118f, 3.18f},
-{3187.11f, -4070.45f, 33.9118f, 3.16f},
-{3162.78f, -4062.75f, 33.9118f, 3.15f},
-{3136.09f, -4050.32f, 33.9118f, 3.07f},
-{3119.47f, -4044.51f, 36.0363f, 3.07f},
-{3098.95f, -4019.8f, 33.9118f, 3.07f},
-{3073.07f, -4011.42f, 33.9118f, 3.07f},
-{3051.71f, -3993.37f, 33.9118f, 3.02f},
-{3027.52f, -3978.6f, 33.9118f, 3.00f},
-{3003.78f, -3960.14f, 33.9118f, 2.98f},
-{2977.99f, -3941.98f, 31.9118f, 2.96f},
-{2964.57f, -3932.07f, 30.9118f, 2.96f},
-{2947.9f, -3921.31f, 29.9118f, 2.96f},
-{2924.91f, -3910.8f, 29.9118f, 2.94f},
-{2903.04f, -3896.42f, 29.9118f, 2.93f},
-{2884.75f, -3874.03f, 29.9118f, 2.90f},
-{2868.19f, -3851.48f, 29.9118f, 2.82f},
-{2854.62f, -3819.72f, 29.9118f, 2.80f},
-{2825.53f, -3790.4f, 29.9118f, 2.744f},
-{2804.31f, -3773.05f, 29.9118f, 2.71f},
-{2769.78f, -3763.57f, 29.9118f, 2.70f},
-{2727.23f, -3745.92f, 30.9118f, 2.69f},
-{2680.12f, -3737.49f, 30.9118f, 2.67f},
-{2647.62f, -3739.94f, 30.9118f, 2.66f},
-{2616.6f, -3745.75f, 30.9118f, 2.64f},
-{2589.38f, -3731.97f, 30.9118f, 2.61f},
-{2562.94f, -3722.35f, 31.9118f, 2.56f},
-{2521.05f, -3716.6f, 31.9118f, 2.55f},
-{2485.26f, -3706.67f, 31.9118f, 2.51f},
-{2458.93f, -3696.67f, 31.9118f, 2.51f},
-{2432, -3692.03f, 31.9118f, 2.46f},
-{2399.59f, -3681.97f, 31.9118f, 2.45f},
-{2357.75f, -3666.6f, 31.9118f, 2.44f},
-{2311.99f, -3656.88f, 31.9118f, 2.94f},
-{2263.41f, -3649.55f, 31.9118f, 3.02f},
-{2209.05f, -3641.76f, 31.9118f, 2.99f},
-{2164.83f, -3637.64f, 31.9118f, 3.15f},
-{2122.42f, -3639, 31.9118f, 3.21f},
-{2075.73f, -3643.59f, 31.9118f, 3.22f},
-{2033.59f, -3649.52f, 31.9118f, 3.42f},
-{1985.22f, -3662.99f, 31.9118f, 3.42f},
-{1927.09f, -3679.56f, 33.9118f, 3.42f},
-{1873.57f, -3695.32f, 33.9118f, 3.44f}
+ {3691.97f, -3962.41f, 35.9118f, 3.67f},
+ {3675.02f, -3960.49f, 35.9118f, 3.67f},
+ {3653.19f, -3958.33f, 33.9118f, 3.59f},
+ {3621.12f, -3958.51f, 29.9118f, 3.48f},
+ {3604.86f, -3963, 29.9118f, 3.48f},
+ {3569.94f, -3970.25f, 29.9118f, 3.44f},
+ {3541.03f, -3975.64f, 29.9118f, 3.41f},
+ {3510.84f, -3978.71f, 29.9118f, 3.41f},
+ {3472.7f, -3997.07f, 29.9118f, 3.35f},
+ {3439.15f, -4014.55f, 29.9118f, 3.29f},
+ {3412.8f, -4025.87f, 29.9118f, 3.25f},
+ {3384.95f, -4038.04f, 29.9118f, 3.24f},
+ {3346.77f, -4052.93f, 29.9118f, 3.22f},
+ {3299.56f, -4071.59f, 29.9118f, 3.20f},
+ {3261.22f, -4080.38f, 30.9118f, 3.19f},
+ {3220.68f, -4083.09f, 31.9118f, 3.18f},
+ {3187.11f, -4070.45f, 33.9118f, 3.16f},
+ {3162.78f, -4062.75f, 33.9118f, 3.15f},
+ {3136.09f, -4050.32f, 33.9118f, 3.07f},
+ {3119.47f, -4044.51f, 36.0363f, 3.07f},
+ {3098.95f, -4019.8f, 33.9118f, 3.07f},
+ {3073.07f, -4011.42f, 33.9118f, 3.07f},
+ {3051.71f, -3993.37f, 33.9118f, 3.02f},
+ {3027.52f, -3978.6f, 33.9118f, 3.00f},
+ {3003.78f, -3960.14f, 33.9118f, 2.98f},
+ {2977.99f, -3941.98f, 31.9118f, 2.96f},
+ {2964.57f, -3932.07f, 30.9118f, 2.96f},
+ {2947.9f, -3921.31f, 29.9118f, 2.96f},
+ {2924.91f, -3910.8f, 29.9118f, 2.94f},
+ {2903.04f, -3896.42f, 29.9118f, 2.93f},
+ {2884.75f, -3874.03f, 29.9118f, 2.90f},
+ {2868.19f, -3851.48f, 29.9118f, 2.82f},
+ {2854.62f, -3819.72f, 29.9118f, 2.80f},
+ {2825.53f, -3790.4f, 29.9118f, 2.744f},
+ {2804.31f, -3773.05f, 29.9118f, 2.71f},
+ {2769.78f, -3763.57f, 29.9118f, 2.70f},
+ {2727.23f, -3745.92f, 30.9118f, 2.69f},
+ {2680.12f, -3737.49f, 30.9118f, 2.67f},
+ {2647.62f, -3739.94f, 30.9118f, 2.66f},
+ {2616.6f, -3745.75f, 30.9118f, 2.64f},
+ {2589.38f, -3731.97f, 30.9118f, 2.61f},
+ {2562.94f, -3722.35f, 31.9118f, 2.56f},
+ {2521.05f, -3716.6f, 31.9118f, 2.55f},
+ {2485.26f, -3706.67f, 31.9118f, 2.51f},
+ {2458.93f, -3696.67f, 31.9118f, 2.51f},
+ {2432, -3692.03f, 31.9118f, 2.46f},
+ {2399.59f, -3681.97f, 31.9118f, 2.45f},
+ {2357.75f, -3666.6f, 31.9118f, 2.44f},
+ {2311.99f, -3656.88f, 31.9118f, 2.94f},
+ {2263.41f, -3649.55f, 31.9118f, 3.02f},
+ {2209.05f, -3641.76f, 31.9118f, 2.99f},
+ {2164.83f, -3637.64f, 31.9118f, 3.15f},
+ {2122.42f, -3639, 31.9118f, 3.21f},
+ {2075.73f, -3643.59f, 31.9118f, 3.22f},
+ {2033.59f, -3649.52f, 31.9118f, 3.42f},
+ {1985.22f, -3662.99f, 31.9118f, 3.42f},
+ {1927.09f, -3679.56f, 33.9118f, 3.42f},
+ {1873.57f, -3695.32f, 33.9118f, 3.44f}
};
class mob_rizzle_sprysprocket : public CreatureScript
@@ -270,19 +272,19 @@ public:
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF + 1 && player->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE)
+ if (action == GOSSIP_ACTION_INFO_DEF + 1 && player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) == QUEST_STATUS_INCOMPLETE)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, SPELL_GIVE_SOUTHFURY_MOONSTONE, true);
- CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->Must_Die_Timer = 3000;
- CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->Must_Die = true;
+ CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->MustDieTimer = 3000;
+ CAST_AI(mob_rizzle_sprysprocket::mob_rizzle_sprysprocketAI, creature->AI())->MustDie = true;
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature)
{
- if (player->GetQuestStatus(10994) != QUEST_STATUS_INCOMPLETE)
+ if (player->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) != QUEST_STATUS_INCOMPLETE)
return true;
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_GET_MOONSTONE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->SEND_GOSSIP_MENU(10811, creature->GetGUID());
@@ -298,32 +300,32 @@ public:
{
mob_rizzle_sprysprocketAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 spellEscape_Timer;
- uint32 Teleport_Timer;
- uint32 Check_Timer;
- uint32 Grenade_Timer;
- uint32 Must_Die_Timer;
+ uint32 SpellEscapeTimer;
+ uint32 TeleportTimer;
+ uint32 CheckTimer;
+ uint32 GrenadeTimer;
+ uint32 MustDieTimer;
uint32 CurrWP;
uint64 PlayerGUID;
- bool Must_Die;
+ bool MustDie;
bool Escape;
bool ContinueWP;
bool Reached;
void Reset()
{
- spellEscape_Timer = 1300;
- Teleport_Timer = 3500;
- Check_Timer = 10000;
- Grenade_Timer = 30000;
- Must_Die_Timer = 3000;
+ SpellEscapeTimer = 1300;
+ TeleportTimer = 3500;
+ CheckTimer = 10000;
+ GrenadeTimer = 30000;
+ MustDieTimer = 3000;
CurrWP = 0;
PlayerGUID = 0;
- Must_Die = false;
+ MustDie = false;
Escape = false;
ContinueWP = false;
Reached = false;
@@ -331,13 +333,13 @@ public:
void UpdateAI(const uint32 diff)
{
- if (Must_Die)
+ if (MustDie)
{
- if (Must_Die_Timer <= diff)
+ if (MustDieTimer <= diff)
{
me->DespawnOrUnsummon();
return;
- } else Must_Die_Timer -= diff;
+ } else MustDieTimer -= diff;
}
if (!Escape)
@@ -345,17 +347,16 @@ public:
if (!PlayerGUID)
return;
- if (spellEscape_Timer <= diff)
+ if (SpellEscapeTimer <= diff)
{
DoCast(me, SPELL_RIZZLE_ESCAPE, false);
- spellEscape_Timer = 10000;
- } else spellEscape_Timer -= diff;
+ SpellEscapeTimer = 10000;
+ } else SpellEscapeTimer -= diff;
- if (Teleport_Timer <= diff)
+ if (TeleportTimer <= diff)
{
//temp solution - unit can't be teleported by core using spelleffect 5, only players
- Map* map = me->GetMap();
- if (map)
+ if (me->GetMap())
{
me->SetPosition(3706.39f, -3969.15f, 35.9118f, 0);
me->AI_SendMoveToPacket(3706.39f, -3969.15f, 35.9118f, 0, 0, 0);
@@ -367,20 +368,20 @@ public:
me->SetUnitMovementFlags(MOVEMENTFLAG_HOVER | MOVEMENTFLAG_SWIMMING);
me->SetSpeed(MOVE_RUN, 0.85f, true);
me->GetMotionMaster()->MovementExpired();
- me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP][0], WPs[CurrWP][1], WPs[CurrWP][2]);
+ me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP]);
Escape = true;
- } else Teleport_Timer -= diff;
+ } else TeleportTimer -= diff;
return;
}
if (ContinueWP)
{
- me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP][0], WPs[CurrWP][1], WPs[CurrWP][2]);
+ me->GetMotionMaster()->MovePoint(CurrWP, WPs[CurrWP]);
ContinueWP = false;
}
- if (Grenade_Timer <= diff)
+ if (GrenadeTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (player)
@@ -388,10 +389,10 @@ public:
DoScriptText(SAY_RIZZLE_GRENADE, me, player);
DoCast(player, SPELL_RIZZLE_FROST_GRENADE, true);
}
- Grenade_Timer = 30000;
- } else Grenade_Timer -= diff;
+ GrenadeTimer = 30000;
+ } else GrenadeTimer -= diff;
- if (Check_Timer <= diff)
+ if (CheckTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (!player)
@@ -410,8 +411,8 @@ public:
Reached = true;
}
- Check_Timer = 1000;
- } else Check_Timer -= diff;
+ CheckTimer = 1000;
+ } else CheckTimer -= diff;
}
@@ -427,7 +428,7 @@ public:
if (!who || PlayerGUID)
return;
- if (who->GetTypeId() == TYPEID_PLAYER && CAST_PLR(who)->GetQuestStatus(10994) == QUEST_STATUS_INCOMPLETE)
+ if (who->GetTypeId() == TYPEID_PLAYER && CAST_PLR(who)->GetQuestStatus(QUEST_CHASING_THE_MOONSTONE) == QUEST_STATUS_INCOMPLETE)
{
PlayerGUID = who->GetGUID();
DoScriptText(SAY_RIZZLE_START, me);
@@ -472,25 +473,25 @@ public:
{
mob_depth_chargeAI(Creature* creature) : ScriptedAI(creature) {}
- bool we_must_die;
- uint32 must_die_timer;
+ bool WeMustDie;
+ uint32 WeMustDieTimer;
void Reset()
{
me->SetUnitMovementFlags(MOVEMENTFLAG_HOVER | MOVEMENTFLAG_SWIMMING);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- we_must_die = false;
- must_die_timer = 1000;
+ WeMustDie = false;
+ WeMustDieTimer = 1000;
}
void UpdateAI(const uint32 diff)
{
- if (we_must_die)
+ if (WeMustDie)
{
- if (must_die_timer <= diff)
- {
+ if (WeMustDieTimer <= diff)
me->DespawnOrUnsummon();
- } else must_die_timer -= diff;
+ else
+ WeMustDieTimer -= diff;
}
return;
}
@@ -503,18 +504,14 @@ public:
if (who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 5))
{
DoCast(who, SPELL_DEPTH_CHARGE_TRAP);
- we_must_die = true;
+ WeMustDie = true;
return;
}
}
- void AttackStart(Unit* /*who*/)
- {
- }
+ void AttackStart(Unit* /*who*/) {}
- void EnterCombat(Unit* /*who*/)
- {
- }
+ void EnterCombat(Unit* /*who*/) {}
};
};
diff --git a/src/server/scripts/Kalimdor/azuremyst_isle.cpp b/src/server/scripts/Kalimdor/azuremyst_isle.cpp
index dfb1f3b0bdf..608117ca9af 100644
--- a/src/server/scripts/Kalimdor/azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/azuremyst_isle.cpp
@@ -33,15 +33,19 @@ go_ravager_cage
npc_death_ravager
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
-#include <cmath>
+#include "ScriptedGossip.h"
+#include "Cell.h"
+#include "CellImpl.h"
+#include "GridNotifiers.h"
/*######
## npc_draenei_survivor
######*/
-enum eEnums
+enum draeneiSurvivor
{
SAY_HEAL1 = -1000176,
SAY_HEAL2 = -1000177,
@@ -175,7 +179,7 @@ public:
## npc_engineer_spark_overgrind
######*/
-enum eOvergrind
+enum Overgrind
{
SAY_TEXT = -1000184,
SAY_EMOTE = -1000185,
@@ -235,15 +239,15 @@ public:
uint32 NormFaction;
uint32 NpcFlags;
- uint32 Dynamite_Timer;
- uint32 Emote_Timer;
+ uint32 DynamiteTimer;
+ uint32 EmoteTimer;
bool IsTreeEvent;
void Reset()
{
- Dynamite_Timer = 8000;
- Emote_Timer = urand(120000, 150000);
+ DynamiteTimer = 8000;
+ EmoteTimer = urand(120000, 150000);
me->setFaction(NormFaction);
me->SetUInt32Value(UNIT_NPC_FLAGS, NpcFlags);
@@ -260,12 +264,12 @@ public:
{
if (!me->isInCombat() && !IsTreeEvent)
{
- if (Emote_Timer <= diff)
+ if (EmoteTimer <= diff)
{
DoScriptText(SAY_TEXT, me);
DoScriptText(SAY_EMOTE, me);
- Emote_Timer = urand(120000, 150000);
- } else Emote_Timer -= diff;
+ EmoteTimer = urand(120000, 150000);
+ } else EmoteTimer -= diff;
}
else if (IsTreeEvent)
return;
@@ -273,11 +277,11 @@ public:
if (!UpdateVictim())
return;
- if (Dynamite_Timer <= diff)
+ if (DynamiteTimer <= diff)
{
DoCast(me->getVictim(), SPELL_DYNAMITE);
- Dynamite_Timer = 8000;
- } else Dynamite_Timer -= diff;
+ DynamiteTimer = 8000;
+ } else DynamiteTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -307,7 +311,7 @@ public:
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
me->SetHealth(me->CountPctFromMaxHealth(15));
- switch (rand()%2)
+ switch (urand(0, 1))
{
case 0:
me->SetStandState(UNIT_STAND_STATE_SIT);
@@ -321,14 +325,9 @@ public:
void EnterCombat(Unit* /*who*/) {}
- void MoveInLineOfSight(Unit* /*who*/)
- {
- }
-
- void UpdateAI(const uint32 /*diff*/)
- {
- }
+ void MoveInLineOfSight(Unit* /*who*/) {}
+ void UpdateAI(const uint32 /*diff*/) {}
};
};
@@ -337,7 +336,7 @@ public:
## npc_magwin
######*/
-enum eMagwin
+enum Magwin
{
SAY_START = -1000111,
SAY_AGGRO = -1000112,
@@ -376,26 +375,25 @@ public:
void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
- if (!player)
- return;
-
- switch (waypointId)
+ if (Player* player = GetPlayerForEscort())
{
- case 0:
- DoScriptText(SAY_START, me, player);
- break;
- case 17:
- DoScriptText(SAY_PROGRESS, me, player);
- break;
- case 28:
- DoScriptText(SAY_END1, me, player);
- break;
- case 29:
- DoScriptText(EMOTE_HUG, me, player);
- DoScriptText(SAY_END2, me, player);
- player->GroupEventHappens(QUEST_A_CRY_FOR_SAY_HELP, me);
- break;
+ switch (waypointId)
+ {
+ case 0:
+ DoScriptText(SAY_START, me, player);
+ break;
+ case 17:
+ DoScriptText(SAY_PROGRESS, me, player);
+ break;
+ case 28:
+ DoScriptText(SAY_END1, me, player);
+ break;
+ case 29:
+ DoScriptText(EMOTE_HUG, me, player);
+ DoScriptText(SAY_END2, me, player);
+ player->GroupEventHappens(QUEST_A_CRY_FOR_SAY_HELP, me);
+ break;
+ }
}
}
@@ -404,7 +402,7 @@ public:
DoScriptText(SAY_AGGRO, me, who);
}
- void Reset() { }
+ void Reset() {}
};
};
@@ -413,7 +411,7 @@ public:
## npc_geezle
######*/
-enum eGeezle
+enum Geezle
{
QUEST_TREES_COMPANY = 9531,
@@ -433,7 +431,7 @@ enum eGeezle
GO_NAGA_FLAG = 181694
};
-static float SparkPos[3] = {-5029.91f, -11291.79f, 8.096f};
+Position const SparkPos = {-5029.91f, -11291.79f, 8.096f, 0.0f};
class npc_geezle : public CreatureScript
{
@@ -451,7 +449,7 @@ public:
uint64 SparkGUID;
- uint32 Step;
+ uint8 Step;
uint32 SayTimer;
bool EventStarted;
@@ -469,8 +467,7 @@ public:
{
Step = 0;
EventStarted = true;
- Creature* Spark = me->SummonCreature(MOB_SPARK, SparkPos[0], SparkPos[1], SparkPos[2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1000);
- if (Spark)
+ if (Creature* Spark = me->SummonCreature(MOB_SPARK, SparkPos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 1000))
{
SparkGUID = Spark->GetGUID();
Spark->setActive(true);
@@ -479,47 +476,47 @@ public:
SayTimer = 8000;
}
- uint32 NextStep(uint32 Step)
+ uint32 NextStep(uint8 Step)
{
Creature* Spark = Unit::GetCreature(*me, SparkGUID);
switch (Step)
{
- case 0:
- if (Spark)
- Spark->GetMotionMaster()->MovePoint(0, -5080.70f, -11253.61f, 0.56f);
- me->GetMotionMaster()->MovePoint(0, -5092.26f, -11252, 0.71f);
- return 9000; // NPCs are walking up to fire
- case 1:
- DespawnNagaFlag(true);
- DoScriptText(EMOTE_SPARK, Spark);
- return 1000;
- case 2:
- DoScriptText(GEEZLE_SAY_1, me, Spark);
- if (Spark)
- {
- Spark->SetInFront(me);
- me->SetInFront(Spark);
- }
- return 5000;
- case 3: DoScriptText(SPARK_SAY_2, Spark); return 7000;
- case 4: DoScriptText(SPARK_SAY_3, Spark); return 8000;
- case 5: DoScriptText(GEEZLE_SAY_4, me, Spark); return 8000;
- case 6: DoScriptText(SPARK_SAY_5, Spark); return 9000;
- case 7: DoScriptText(SPARK_SAY_6, Spark); return 8000;
- case 8: DoScriptText(GEEZLE_SAY_7, me, Spark); return 2000;
- case 9:
- me->GetMotionMaster()->MoveTargetedHome();
- if (Spark)
- Spark->GetMotionMaster()->MovePoint(0, SparkPos[0], SparkPos[1], SparkPos[2]);
- CompleteQuest();
- return 9000;
- case 10:
- if (Spark)
- Spark->DisappearAndDie();
- DespawnNagaFlag(false);
- me->DisappearAndDie();
- default: return 99999999;
+ case 0:
+ if (Spark)
+ Spark->GetMotionMaster()->MovePoint(0, -5080.70f, -11253.61f, 0.56f);
+ me->GetMotionMaster()->MovePoint(0, -5092.26f, -11252, 0.71f);
+ return 9000; // NPCs are walking up to fire
+ case 1:
+ DespawnNagaFlag(true);
+ DoScriptText(EMOTE_SPARK, Spark);
+ return 1000;
+ case 2:
+ DoScriptText(GEEZLE_SAY_1, me, Spark);
+ if (Spark)
+ {
+ Spark->SetInFront(me);
+ me->SetInFront(Spark);
+ }
+ return 5000;
+ case 3: DoScriptText(SPARK_SAY_2, Spark); return 7000;
+ case 4: DoScriptText(SPARK_SAY_3, Spark); return 8000;
+ case 5: DoScriptText(GEEZLE_SAY_4, me, Spark); return 8000;
+ case 6: DoScriptText(SPARK_SAY_5, Spark); return 9000;
+ case 7: DoScriptText(SPARK_SAY_6, Spark); return 8000;
+ case 8: DoScriptText(GEEZLE_SAY_7, me, Spark); return 2000;
+ case 9:
+ me->GetMotionMaster()->MoveTargetedHome();
+ if (Spark)
+ Spark->GetMotionMaster()->MovePoint(0, SparkPos);
+ CompleteQuest();
+ return 9000;
+ case 10:
+ if (Spark)
+ Spark->DisappearAndDie();
+ DespawnNagaFlag(false);
+ me->DisappearAndDie();
+ default: return 99999999;
}
}
@@ -533,13 +530,8 @@ public:
me->VisitNearbyWorldObject(radius, searcher);
for (std::list<Player*>::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- {
- if ((*itr)->GetQuestStatus(QUEST_TREES_COMPANY) == QUEST_STATUS_INCOMPLETE
- &&(*itr)->HasAura(SPELL_TREE_DISGUISE))
- {
+ if ((*itr)->GetQuestStatus(QUEST_TREES_COMPANY) == QUEST_STATUS_INCOMPLETE && (*itr)->HasAura(SPELL_TREE_DISGUISE))
(*itr)->KilledMonsterCredit(MOB_SPARK, 0);
- }
- }
}
void DespawnNagaFlag(bool despawn)
@@ -552,13 +544,13 @@ public:
for (std::list<GameObject*>::const_iterator itr = FlagList.begin(); itr != FlagList.end(); ++itr)
{
if (despawn)
- {
(*itr)->SetLootState(GO_JUST_DEACTIVATED);
- }
else
(*itr)->Respawn();
}
- } else sLog->outError("SD2 ERROR: FlagList is empty!");
+ }
+ else
+ sLog->outError("SD2 ERROR: FlagList is empty!");
}
void UpdateAI(const uint32 diff)
@@ -566,16 +558,16 @@ public:
if (SayTimer <= diff)
{
if (EventStarted)
- {
SayTimer = NextStep(Step++);
- }
- } else SayTimer -= diff;
+ }
+ else
+ SayTimer -= diff;
}
};
};
-enum eRavegerCage
+enum RavegerCage
{
NPC_DEATH_RAVAGER = 17556,
diff --git a/src/server/scripts/Kalimdor/bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
index 6c692a6738b..3883b740d02 100644
--- a/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/bloodmyst_isle.cpp
@@ -28,14 +28,16 @@ mob_webbed_creature
npc_captured_sunhawk_agent
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## mob_webbed_creature
######*/
//possible creatures to be spawned
-const uint32 possibleSpawns[32] = {17322, 17661, 17496, 17522, 17340, 17352, 17333, 17524, 17654, 17348, 17339, 17345, 17359, 17353, 17336, 17550, 17330, 17701, 17321, 17680, 17325, 17320, 17683, 17342, 17715, 17334, 17341, 17338, 17337, 17346, 17344, 17327};
+uint32 const possibleSpawns[32] = {17322, 17661, 17496, 17522, 17340, 17352, 17333, 17524, 17654, 17348, 17339, 17345, 17359, 17353, 17336, 17550, 17330, 17701, 17321, 17680, 17325, 17320, 17683, 17342, 17715, 17334, 17341, 17338, 17337, 17346, 17344, 17327};
class mob_webbed_creature : public CreatureScript
{
@@ -51,13 +53,9 @@ public:
{
mob_webbed_creatureAI(Creature* creature) : ScriptedAI(creature) {}
- void Reset()
- {
- }
+ void Reset() {}
- void EnterCombat(Unit* /*who*/)
- {
- }
+ void EnterCombat(Unit* /*who*/) {}
void JustDied(Unit* killer)
{
@@ -153,7 +151,7 @@ public:
## Quest 9667: Saving Princess Stillpine
######*/
-enum eStillpine
+enum Stillpine
{
QUEST_SAVING_PRINCESS_STILLPINE = 9667,
NPC_PRINCESS_STILLPINE = 17682,
diff --git a/src/server/scripts/Kalimdor/boss_azuregos.cpp b/src/server/scripts/Kalimdor/boss_azuregos.cpp
index c344de8cb51..ec098951c03 100644
--- a/src/server/scripts/Kalimdor/boss_azuregos.cpp
+++ b/src/server/scripts/Kalimdor/boss_azuregos.cpp
@@ -23,17 +23,24 @@ SDComment: Teleport not included, spell reflect not effecting dots (Core problem
SDCategory: Azshara
EndScriptData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
-#define SAY_TELEPORT -1000100
+enum Say
+{
+ SAY_TELEPORT = -1000100
+};
-#define SPELL_MARKOFFROST 23182
-#define SPELL_MANASTORM 21097
-#define SPELL_CHILL 21098
-#define SPELL_FROSTBREATH 21099
-#define SPELL_REFLECT 22067
-#define SPELL_CLEAVE 8255 //Perhaps not right ID
-#define SPELL_ENRAGE 23537
+enum Spells
+{
+ SPELL_MARKOFFROST = 23182,
+ SPELL_MANASTORM = 21097,
+ SPELL_CHILL = 21098,
+ SPELL_FROSTBREATH = 21099,
+ SPELL_REFLECT = 22067,
+ SPELL_CLEAVE = 8255, //Perhaps not right ID
+ SPELL_ENRAGE = 23537
+};
class boss_azuregos : public CreatureScript
{
@@ -49,26 +56,26 @@ public:
{
boss_azuregosAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 MarkOfFrost_Timer;
- uint32 ManaStorm_Timer;
- uint32 Chill_Timer;
- uint32 Breath_Timer;
- uint32 Teleport_Timer;
- uint32 Reflect_Timer;
- uint32 Cleave_Timer;
- uint32 Enrage_Timer;
+ uint32 MarkOfFrostTimer;
+ uint32 ManaStormTimer;
+ uint32 ChillTimer;
+ uint32 BreathTimer;
+ uint32 TeleportTimer;
+ uint32 ReflectTimer;
+ uint32 CleaveTimer;
+ uint32 EnrageTimer;
bool Enraged;
void Reset()
{
- MarkOfFrost_Timer = 35000;
- ManaStorm_Timer = urand(5000, 17000);
- Chill_Timer = urand(10000, 30000);
- Breath_Timer = urand(2000, 8000);
- Teleport_Timer = 30000;
- Reflect_Timer = urand(15000, 30000);
- Cleave_Timer = 7000;
- Enrage_Timer = 0;
+ MarkOfFrostTimer = 35000;
+ ManaStormTimer = urand(5000, 17000);
+ ChillTimer = urand(10000, 30000);
+ BreathTimer = urand(2000, 8000);
+ TeleportTimer = 30000;
+ ReflectTimer = urand(15000, 30000);
+ CleaveTimer = 7000;
+ EnrageTimer = 0;
Enraged = false;
}
@@ -80,12 +87,12 @@ public:
if (!UpdateVictim())
return;
- if (Teleport_Timer <= diff)
+ if (TeleportTimer <= diff)
{
DoScriptText(SAY_TELEPORT, me);
- std::list<HostileReference*>& m_threatlist = me->getThreatManager().getThreatList();
- std::list<HostileReference*>::const_iterator i = m_threatlist.begin();
- for (i = m_threatlist.begin(); i!= m_threatlist.end(); ++i)
+ std::list<HostileReference*>& threatlist = me->getThreatManager().getThreatList();
+ std::list<HostileReference*>::const_iterator i = threatlist.begin();
+ for (i = threatlist.begin(); i!= threatlist.end(); ++i)
{
Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());
if (unit && (unit->GetTypeId() == TYPEID_PLAYER))
@@ -95,53 +102,53 @@ public:
}
DoResetThreat();
- Teleport_Timer = 30000;
- } else Teleport_Timer -= diff;
+ TeleportTimer = 30000;
+ } else TeleportTimer -= diff;
- // //MarkOfFrost_Timer
- // if (MarkOfFrost_Timer <= diff)
+ // //MarkOfFrostTimer
+ // if (MarkOfFrostTimer <= diff)
// {
// DoCast(me->getVictim(), SPELL_MARKOFFROST);
- // MarkOfFrost_Timer = 25000;
- // } else MarkOfFrost_Timer -= diff;
+ // MarkOfFrostTimer = 25000;
+ // } else MarkOfFrostTimer -= diff;
- //Chill_Timer
- if (Chill_Timer <= diff)
+ //ChillTimer
+ if (ChillTimer <= diff)
{
DoCast(me->getVictim(), SPELL_CHILL);
- Chill_Timer = urand(13000, 25000);
- } else Chill_Timer -= diff;
+ ChillTimer = urand(13000, 25000);
+ } else ChillTimer -= diff;
- //Breath_Timer
- if (Breath_Timer <= diff)
+ //BreathTimer
+ if (BreathTimer <= diff)
{
DoCast(me->getVictim(), SPELL_FROSTBREATH);
- Breath_Timer = urand(10000, 15000);
- } else Breath_Timer -= diff;
+ BreathTimer = urand(10000, 15000);
+ } else BreathTimer -= diff;
- //ManaStorm_Timer
- if (ManaStorm_Timer <= diff)
+ //ManaStormTimer
+ if (ManaStormTimer <= diff)
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
DoCast(target, SPELL_MANASTORM);
- ManaStorm_Timer = urand(7500, 12500);
- } else ManaStorm_Timer -= diff;
+ ManaStormTimer = urand(7500, 12500);
+ } else ManaStormTimer -= diff;
- //Reflect_Timer
- if (Reflect_Timer <= diff)
+ //ReflectTimer
+ if (ReflectTimer <= diff)
{
DoCast(me, SPELL_REFLECT);
- Reflect_Timer = urand(20000, 35000);
- } else Reflect_Timer -= diff;
+ ReflectTimer = urand(20000, 35000);
+ } else ReflectTimer -= diff;
- //Cleave_Timer
- if (Cleave_Timer <= diff)
+ //CleaveTimer
+ if (CleaveTimer <= diff)
{
DoCast(me->getVictim(), SPELL_CLEAVE);
- Cleave_Timer = 7000;
- } else Cleave_Timer -= diff;
+ CleaveTimer = 7000;
+ } else CleaveTimer -= diff;
- //Enrage_Timer
+ //EnrageTimer
if (HealthBelowPct(26) && !Enraged)
{
DoCast(me, SPELL_ENRAGE);
diff --git a/src/server/scripts/Kalimdor/darkshore.cpp b/src/server/scripts/Kalimdor/darkshore.cpp
index 1de04db61c4..0e02a77169e 100644
--- a/src/server/scripts/Kalimdor/darkshore.cpp
+++ b/src/server/scripts/Kalimdor/darkshore.cpp
@@ -29,7 +29,9 @@ npc_prospector_remtravel
npc_threshwackonator
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
@@ -37,7 +39,7 @@ EndContentData */
# npc_kerlonian
####*/
-enum eKerlonian
+enum Kerlonian
{
SAY_KER_START = -1000434,
@@ -94,11 +96,11 @@ public:
{
npc_kerlonianAI(Creature* creature) : FollowerAI(creature) { }
- uint32 m_uiFallAsleepTimer;
+ uint32 FallAsleepTimer;
void Reset()
{
- m_uiFallAsleepTimer = urand(10000, 45000);
+ FallAsleepTimer = urand(10000, 45000);
}
void MoveInLineOfSight(Unit* who)
@@ -150,7 +152,7 @@ public:
SetFollowPaused(false);
}
- void UpdateFollowerAI(const uint32 uiDiff)
+ void UpdateFollowerAI(const uint32 Diff)
{
if (!UpdateVictim())
{
@@ -159,13 +161,13 @@ public:
if (!HasFollowState(STATE_FOLLOW_PAUSED))
{
- if (m_uiFallAsleepTimer <= uiDiff)
+ if (FallAsleepTimer <= Diff)
{
SetSleeping();
- m_uiFallAsleepTimer = urand(25000, 90000);
+ FallAsleepTimer = urand(25000, 90000);
}
else
- m_uiFallAsleepTimer -= uiDiff;
+ FallAsleepTimer -= Diff;
}
return;
@@ -181,7 +183,7 @@ public:
# npc_prospector_remtravel
####*/
-enum eRemtravel
+enum Remtravel
{
SAY_REM_START = -1000327,
SAY_REM_AGGRO = -1000328,
@@ -233,63 +235,62 @@ public:
void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
- if (!player)
- return;
-
- switch (waypointId)
+ if (Player* player = GetPlayerForEscort())
{
- case 0:
- DoScriptText(SAY_REM_START, me, player);
- break;
- case 5:
- DoScriptText(SAY_REM_RAMP1_1, me, player);
- break;
- case 6:
- DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- break;
- case 9:
- DoScriptText(SAY_REM_RAMP1_2, me, player);
- break;
- case 14:
- //depend quest rewarded?
- DoScriptText(SAY_REM_BOOK, me, player);
- break;
- case 15:
- DoScriptText(SAY_REM_TENT1_1, me, player);
- break;
- case 16:
- DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- break;
- case 17:
- DoScriptText(SAY_REM_TENT1_2, me, player);
- break;
- case 26:
- DoScriptText(SAY_REM_MOSS, me, player);
- break;
- case 27:
- DoScriptText(EMOTE_REM_MOSS, me, player);
- break;
- case 28:
- DoScriptText(SAY_REM_MOSS_PROGRESS, me, player);
- break;
- case 29:
- DoSpawnCreature(NPC_GRAVEL_SCOUT, -15.0f, 3.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- DoSpawnCreature(NPC_GRAVEL_BONE, -15.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- DoSpawnCreature(NPC_GRAVEL_GEO, -15.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
- break;
- case 31:
- DoScriptText(SAY_REM_PROGRESS, me, player);
- break;
- case 41:
- DoScriptText(SAY_REM_REMEMBER, me, player);
- break;
- case 42:
- DoScriptText(EMOTE_REM_END, me, player);
- player->GroupEventHappens(QUEST_ABSENT_MINDED_PT2, me);
- break;
+ switch (waypointId)
+ {
+ case 0:
+ DoScriptText(SAY_REM_START, me, player);
+ break;
+ case 5:
+ DoScriptText(SAY_REM_RAMP1_1, me, player);
+ break;
+ case 6:
+ DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+ case 9:
+ DoScriptText(SAY_REM_RAMP1_2, me, player);
+ break;
+ case 14:
+ //depend quest rewarded?
+ DoScriptText(SAY_REM_BOOK, me, player);
+ break;
+ case 15:
+ DoScriptText(SAY_REM_TENT1_1, me, player);
+ break;
+ case 16:
+ DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+ case 17:
+ DoScriptText(SAY_REM_TENT1_2, me, player);
+ break;
+ case 26:
+ DoScriptText(SAY_REM_MOSS, me, player);
+ break;
+ case 27:
+ DoScriptText(EMOTE_REM_MOSS, me, player);
+ break;
+ case 28:
+ DoScriptText(SAY_REM_MOSS_PROGRESS, me, player);
+ break;
+ case 29:
+ DoSpawnCreature(NPC_GRAVEL_SCOUT, -15.0f, 3.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ DoSpawnCreature(NPC_GRAVEL_BONE, -15.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ DoSpawnCreature(NPC_GRAVEL_GEO, -15.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+ break;
+ case 31:
+ DoScriptText(SAY_REM_PROGRESS, me, player);
+ break;
+ case 41:
+ DoScriptText(SAY_REM_REMEMBER, me, player);
+ break;
+ case 42:
+ DoScriptText(EMOTE_REM_END, me, player);
+ player->GroupEventHappens(QUEST_ABSENT_MINDED_PT2, me);
+ break;
+ }
}
}
@@ -297,7 +298,7 @@ public:
void EnterCombat(Unit* who)
{
- if (rand()%2)
+ if (urand(0, 1))
DoScriptText(SAY_REM_AGGRO, me, who);
}
@@ -314,7 +315,7 @@ public:
# npc_threshwackonator
####*/
-enum eThreshwackonator
+enum Threshwackonator
{
EMOTE_START = -1000325, //signed for 4966
SAY_AT_CLOSE = -1000326, //signed for 4966
diff --git a/src/server/scripts/Kalimdor/desolace.cpp b/src/server/scripts/Kalimdor/desolace.cpp
index f295d7626ac..e196c71f681 100644
--- a/src/server/scripts/Kalimdor/desolace.cpp
+++ b/src/server/scripts/Kalimdor/desolace.cpp
@@ -30,10 +30,12 @@ npc_dalinda_malem
go_demon_portal
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
-enum eDyingKodo
+enum DyingKodo
{
// signed for 9999
SAY_SMEED_HOME_1 = -1000348,
@@ -114,11 +116,11 @@ public:
{
npc_aged_dying_ancient_kodoAI(Creature* creature) : ScriptedAI(creature) { Reset(); }
- uint32 m_uiDespawnTimer;
+ uint32 DespawnTimer;
void Reset()
{
- m_uiDespawnTimer = 0;
+ DespawnTimer = 0;
}
void MoveInLineOfSight(Unit* who)
@@ -143,14 +145,14 @@ public:
if (pSpell->Id == SPELL_KODO_KOMBO_GOSSIP)
{
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- m_uiDespawnTimer = 60000;
+ DespawnTimer = 60000;
}
}
void UpdateAI(const uint32 diff)
{
//timer should always be == 0 unless we already updated entry of creature. Then not expect this updated to ever be in combat.
- if (m_uiDespawnTimer && m_uiDespawnTimer <= diff)
+ if (DespawnTimer && DespawnTimer <= diff)
{
if (!me->getVictim() && me->isAlive())
{
@@ -159,7 +161,7 @@ public:
me->Respawn();
return;
}
- } else m_uiDespawnTimer -= diff;
+ } else DespawnTimer -= diff;
if (!UpdateVictim())
return;
@@ -175,7 +177,7 @@ public:
## Hand of Iruxos
######*/
-enum
+enum Iruxos
{
QUEST_HAND_IRUXOS = 5381,
NPC_DEMON_SPIRIT = 11876,
@@ -199,7 +201,10 @@ class go_iruxos : public GameObjectScript
## npc_dalinda_malem. Quest 1440
######*/
-#define QUEST_RETURN_TO_VAHLARRIEL 1440
+enum Dalinda
+{
+ QUEST_RETURN_TO_VAHLARRIEL = 1440
+};
class npc_dalinda : public CreatureScript
{
@@ -255,9 +260,9 @@ public:
return;
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 Diff)
{
- npc_escortAI::UpdateAI(uiDiff);
+ npc_escortAI::UpdateAI(Diff);
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
diff --git a/src/server/scripts/Kalimdor/durotar.cpp b/src/server/scripts/Kalimdor/durotar.cpp
index fe5bedf4c98..ec06a542b6f 100644
--- a/src/server/scripts/Kalimdor/durotar.cpp
+++ b/src/server/scripts/Kalimdor/durotar.cpp
@@ -15,8 +15,10 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "Vehicle.h"
+#include "SpellScript.h"
/*######
##Quest 5441: Lazy Peons
@@ -50,15 +52,15 @@ public:
{
npc_lazy_peonAI(Creature* creature) : ScriptedAI(creature) {}
- uint64 uiPlayerGUID;
+ uint64 PlayerGUID;
- uint32 m_uiRebuffTimer;
+ uint32 RebuffTimer;
bool work;
void Reset()
{
- uiPlayerGUID = 0;
- m_uiRebuffTimer = 0;
+ PlayerGUID = 0;
+ RebuffTimer = 0;
work = false;
}
@@ -81,17 +83,17 @@ public:
}
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 Diff)
{
if (work == true)
me->HandleEmoteCommand(EMOTE_ONESHOT_WORK_CHOPWOOD);
- if (m_uiRebuffTimer <= uiDiff)
+ if (RebuffTimer <= Diff)
{
DoCast(me, SPELL_BUFF_SLEEP);
- m_uiRebuffTimer = 300000; //Rebuff agian in 5 minutes
+ RebuffTimer = 300000; //Rebuff agian in 5 minutes
}
else
- m_uiRebuffTimer -= uiDiff;
+ RebuffTimer -= Diff;
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
diff --git a/src/server/scripts/Kalimdor/dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
index e4ed3793385..45e1c1808c1 100644
--- a/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/dustwallow_marsh.cpp
@@ -32,8 +32,11 @@ npc_private_hendel
npc_cassa_crimsonwing - handled by npc_taxi
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
+#include "SpellScript.h"
/*######
## mobs_risen_husk_spirit
@@ -132,7 +135,7 @@ class mobs_risen_husk_spirit : public CreatureScript
## npc_deserter_agitator
######*/
-enum eDeserter
+enum Deserter
{
QUEST_TRAITORS_AMONG_US = 11126,
NPC_THERAMORE_DESERTER = 23602,
@@ -203,12 +206,12 @@ public:
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
- void MovementInform(uint32 uiType, uint32 uiId)
+ void MovementInform(uint32 Type, uint32 Id)
{
- if (uiType != POINT_MOTION_TYPE)
+ if (Type != POINT_MOTION_TYPE)
return;
- if (uiId == 1)
+ if (Id == 1)
me->DisappearAndDie();
}
};
@@ -218,7 +221,7 @@ public:
## npc_deserter_agitator
######*/
-enum eTheramoreGuard
+enum TheramoreGuard
{
SAY_QUEST1 = -1000641,
SAY_QUEST2 = -1000642,
@@ -266,7 +269,7 @@ public:
DoScriptText(SAY_QUEST1, creature);
creature->CastSpell(creature, SPELL_DOCTORED_LEAFLET, false);
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- CAST_AI(npc_theramore_guard::npc_theramore_guardAI, creature->AI())->uiYellTimer = 4000;
+ CAST_AI(npc_theramore_guard::npc_theramore_guardAI, creature->AI())->YellTimer = 4000;
CAST_AI(npc_theramore_guard::npc_theramore_guardAI, creature->AI())->bYellTimer = true;
}
@@ -282,40 +285,40 @@ public:
{
npc_theramore_guardAI(Creature* creature) : ScriptedAI(creature) { }
- uint32 uiYellTimer;
- uint32 uiStep;
+ uint32 YellTimer;
+ uint32 Step;
bool bYellTimer;
void Reset()
{
bYellTimer = false;
- uiStep = 0;
+ Step = 0;
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 Diff)
{
if (!me->HasAura(SPELL_PROPAGANDIZED))
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- if (bYellTimer && uiYellTimer <= uiDiff)
+ if (bYellTimer && YellTimer <= Diff)
{
- switch (uiStep)
+ switch (Step)
{
case 0:
DoScriptText(RAND(SAY_QUEST2, SAY_QUEST3, SAY_QUEST4, SAY_QUEST5, SAY_QUEST6), me);
- uiYellTimer = 3000;
- ++uiStep;
+ YellTimer = 3000;
+ ++Step;
break;
case 1:
DoScriptText(RAND(SAY_QUEST7, SAY_QUEST8, SAY_QUEST9), me);
me->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
- uiStep = 0;
+ Step = 0;
bYellTimer = false;
break;
}
}
else
- uiYellTimer -= uiDiff;
+ YellTimer -= Diff;
}
};
};
@@ -324,7 +327,7 @@ public:
## npc_lady_jaina_proudmoore
######*/
-enum eLadyJaina
+enum LadyJaina
{
QUEST_JAINAS_AUTOGRAPH = 558,
SPELL_JAINAS_AUTOGRAPH = 23122
@@ -367,7 +370,7 @@ public:
## npc_nat_pagle
######*/
-enum eNatPagle
+enum NatPagle
{
QUEST_NATS_MEASURING_TAPE = 8227
};
@@ -408,7 +411,7 @@ public:
## npc_private_hendel
######*/
-enum eHendel
+enum Hendel
{
// looks like all this text ids are wrong.
SAY_PROGRESS_1_TER = -1000411, // signed for 3568
@@ -464,11 +467,11 @@ public:
AttackStart(pAttacker);
}
- void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
+ void DamageTaken(Unit* pDoneBy, uint32 &Damage)
{
- if (uiDamage > me->GetHealth() || me->HealthBelowPctDamaged(20, uiDamage))
+ if (Damage > me->GetHealth() || me->HealthBelowPctDamaged(20, Damage))
{
- uiDamage = 0;
+ Damage = 0;
if (Player* player = pDoneBy->GetCharmerOrOwnerPlayerOrPlayerItself())
player->GroupEventHappens(QUEST_MISSING_DIPLO_PT16, me);
@@ -485,9 +488,9 @@ public:
## npc_zelfrax
######*/
-const Position MovePosition = {-2967.030f, -3872.1799f, 35.620f, 0.0f};
+Position const MovePosition = {-2967.030f, -3872.1799f, 35.620f, 0.0f};
-enum eZelfrax
+enum Zelfrax
{
SAY_ZELFRAX = -1000472,
SAY_ZELFRAX_2 = -1000473
@@ -525,9 +528,9 @@ public:
}
}
- void MovementInform(uint32 uiType, uint32 /*uiId*/)
+ void MovementInform(uint32 Type, uint32 /*Id*/)
{
- if (uiType != POINT_MOTION_TYPE)
+ if (Type != POINT_MOTION_TYPE)
return;
me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation());
@@ -547,7 +550,7 @@ public:
DoScriptText(SAY_ZELFRAX_2, me);
}
- void UpdateAI(uint32 const /*uiDiff*/)
+ void UpdateAI(uint32 const /*Diff*/)
{
if (!UpdateVictim())
return;
@@ -562,7 +565,7 @@ public:
## npc_stinky
######*/
-enum eStinky
+enum Stinky
{
QUEST_STINKYS_ESCAPE_H = 1270,
QUEST_STINKYS_ESCAPE_A = 1222,
diff --git a/src/server/scripts/Kalimdor/felwood.cpp b/src/server/scripts/Kalimdor/felwood.cpp
index e1f59ec26be..9243ea0017e 100644
--- a/src/server/scripts/Kalimdor/felwood.cpp
+++ b/src/server/scripts/Kalimdor/felwood.cpp
@@ -27,7 +27,9 @@ EndScriptData */
npcs_riverbreeze_and_silversky
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## npcs_riverbreeze_and_silversky
@@ -35,6 +37,17 @@ EndContentData */
#define GOSSIP_ITEM_BEACON "Please make me a Cenarion Beacon"
+enum RiverbreezeAndSilversky
+{
+ SPELL_CENARION_BEACON = 15120,
+
+ NPC_ARATHANDRIS_SILVERSKY = 9528,
+ NPC_MAYBESS_RIVERBREEZE = 9529,
+
+ QUEST_CLEASING_FELWOOD_A = 4101,
+ QUEST_CLEASING_FELWOOD_H = 4102
+};
+
class npcs_riverbreeze_and_silversky : public CreatureScript
{
public:
@@ -46,7 +59,7 @@ public:
if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
- creature->CastSpell(player, 15120, false);
+ creature->CastSpell(player, SPELL_CENARION_BEACON, false);
}
return true;
}
@@ -58,9 +71,9 @@ public:
uint32 creatureId = creature->GetEntry();
- if (creatureId == 9528)
+ if (creatureId == NPC_ARATHANDRIS_SILVERSKY)
{
- if (player->GetQuestRewardStatus(4101))
+ if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_A))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(2848, creature->GetGUID());
@@ -70,9 +83,9 @@ public:
player->SEND_GOSSIP_MENU(2844, creature->GetGUID());
}
- if (creatureId == 9529)
+ if (creatureId == NPC_MAYBESS_RIVERBREEZE)
{
- if (player->GetQuestRewardStatus(4102))
+ if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_H))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(2849, creature->GetGUID());
diff --git a/src/server/scripts/Kalimdor/feralas.cpp b/src/server/scripts/Kalimdor/feralas.cpp
index 480b94d6767..4fcd20951c9 100644
--- a/src/server/scripts/Kalimdor/feralas.cpp
+++ b/src/server/scripts/Kalimdor/feralas.cpp
@@ -23,8 +23,10 @@ SDComment: Quest support: 3520, 2767, Special vendor Gregan Brewspewer
SDCategory: Feralas
EndScriptData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
/*######
## npc_gregan_brewspewer
@@ -68,7 +70,7 @@ public:
## npc_oox22fe
######*/
-enum eOOX
+enum OOX
{
//signed for 7806
SAY_OOX_START = -1000287,
diff --git a/src/server/scripts/Kalimdor/moonglade.cpp b/src/server/scripts/Kalimdor/moonglade.cpp
index 08f5b2aa592..9df208d2578 100644
--- a/src/server/scripts/Kalimdor/moonglade.cpp
+++ b/src/server/scripts/Kalimdor/moonglade.cpp
@@ -31,14 +31,16 @@ npc_clintar_spirit
npc_clintar_dreamwalker
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
+#include "ScriptedGossip.h"
/*######
## npc_bunthen_plainswind
######*/
-enum eBunthen
+enum Bunthen
{
QUEST_SEA_LION_HORDE = 30,
QUEST_SEA_LION_ALLY = 272,
@@ -218,70 +220,68 @@ public:
## npc_clintar_spirit
######*/
-float Clintar_spirit_WP[41][5] =
+float const Clintar_spirit_WP[41][5] =
{
- //pos_x pos_y pos_z orien waitTime
-{7465.28f, -3115.46f, 439.327f, 0.83f, 4000},
-{7476.49f, -3101, 443.457f, 0.89f, 0},
-{7486.57f, -3085.59f, 439.478f, 1.07f, 0},
-{7472.19f, -3085.06f, 443.142f, 3.07f, 0},
-{7456.92f, -3085.91f, 438.862f, 3.24f, 0},
-{7446.68f, -3083.43f, 438.245f, 2.40f, 0},
-{7446.17f, -3080.21f, 439.826f, 1.10f, 6000},
-{7452.41f, -3085.8f, 438.984f, 5.78f, 0},
-{7469.11f, -3084.94f, 443.048f, 6.25f, 0},
-{7483.79f, -3085.44f, 439.607f, 6.25f, 0},
-{7491.14f, -3090.96f, 439.983f, 5.44f, 0},
-{7497.62f, -3098.22f, 436.854f, 5.44f, 0},
-{7498.72f, -3113.41f, 434.596f, 4.84f, 0},
-{7500.06f, -3122.51f, 434.749f, 5.17f, 0},
-{7504.96f, -3131.53f, 434.475f, 4.74f, 0},
-{7504.31f, -3133.53f, 435.693f, 3.84f, 6000},
-{7504.55f, -3133.27f, 435.476f, 0.68f, 15000},
-{7501.99f, -3126.01f, 434.93f, 1.83f, 0},
-{7490.76f, -3114.97f, 434.431f, 2.51f, 0},
-{7479.64f, -3105.51f, 431.123f, 1.83f, 0},
-{7474.63f, -3086.59f, 428.994f, 1.83f, 2000},
-{7472.96f, -3074.18f, 427.566f, 1.57f, 0},
-{7472.25f, -3063, 428.268f, 1.55f, 0},
-{7473.46f, -3054.22f, 427.588f, 0.36f, 0},
-{7475.08f, -3053.6f, 428.653f, 0.36f, 6000},
-{7474.66f, -3053.56f, 428.433f, 3.19f, 4000},
-{7471.81f, -3058.84f, 427.073f, 4.29f, 0},
-{7472.16f, -3064.91f, 427.772f, 4.95f, 0},
-{7471.56f, -3085.36f, 428.924f, 4.72f, 0},
-{7473.56f, -3093.48f, 429.294f, 5.04f, 0},
-{7478.94f, -3104.29f, 430.638f, 5.23f, 0},
-{7484.46f, -3109.61f, 432.769f, 5.79f, 0},
-{7490.23f, -3111.08f, 434.431f, 0.02f, 0},
-{7496.29f, -3108, 434.783f, 1.15f, 0},
-{7497.46f, -3100.66f, 436.191f, 1.50f, 0},
-{7495.64f, -3093.39f, 438.349f, 2.10f, 0},
-{7492.44f, -3086.01f, 440.267f, 1.38f, 0},
-{7498.26f, -3076.44f, 440.808f, 0.71f, 0},
-{7506.4f, -3067.35f, 443.64f, 0.77f, 0},
-{7518.37f, -3057.42f, 445.584f, 0.74f, 0},
-{7517.51f, -3056.3f, 444.568f, 2.49f, 4500}
+ //pos_x pos_y pos_z orien waitTime
+ {7465.28f, -3115.46f, 439.327f, 0.83f, 4000},
+ {7476.49f, -3101, 443.457f, 0.89f, 0},
+ {7486.57f, -3085.59f, 439.478f, 1.07f, 0},
+ {7472.19f, -3085.06f, 443.142f, 3.07f, 0},
+ {7456.92f, -3085.91f, 438.862f, 3.24f, 0},
+ {7446.68f, -3083.43f, 438.245f, 2.40f, 0},
+ {7446.17f, -3080.21f, 439.826f, 1.10f, 6000},
+ {7452.41f, -3085.8f, 438.984f, 5.78f, 0},
+ {7469.11f, -3084.94f, 443.048f, 6.25f, 0},
+ {7483.79f, -3085.44f, 439.607f, 6.25f, 0},
+ {7491.14f, -3090.96f, 439.983f, 5.44f, 0},
+ {7497.62f, -3098.22f, 436.854f, 5.44f, 0},
+ {7498.72f, -3113.41f, 434.596f, 4.84f, 0},
+ {7500.06f, -3122.51f, 434.749f, 5.17f, 0},
+ {7504.96f, -3131.53f, 434.475f, 4.74f, 0},
+ {7504.31f, -3133.53f, 435.693f, 3.84f, 6000},
+ {7504.55f, -3133.27f, 435.476f, 0.68f, 15000},
+ {7501.99f, -3126.01f, 434.93f, 1.83f, 0},
+ {7490.76f, -3114.97f, 434.431f, 2.51f, 0},
+ {7479.64f, -3105.51f, 431.123f, 1.83f, 0},
+ {7474.63f, -3086.59f, 428.994f, 1.83f, 2000},
+ {7472.96f, -3074.18f, 427.566f, 1.57f, 0},
+ {7472.25f, -3063, 428.268f, 1.55f, 0},
+ {7473.46f, -3054.22f, 427.588f, 0.36f, 0},
+ {7475.08f, -3053.6f, 428.653f, 0.36f, 6000},
+ {7474.66f, -3053.56f, 428.433f, 3.19f, 4000},
+ {7471.81f, -3058.84f, 427.073f, 4.29f, 0},
+ {7472.16f, -3064.91f, 427.772f, 4.95f, 0},
+ {7471.56f, -3085.36f, 428.924f, 4.72f, 0},
+ {7473.56f, -3093.48f, 429.294f, 5.04f, 0},
+ {7478.94f, -3104.29f, 430.638f, 5.23f, 0},
+ {7484.46f, -3109.61f, 432.769f, 5.79f, 0},
+ {7490.23f, -3111.08f, 434.431f, 0.02f, 0},
+ {7496.29f, -3108, 434.783f, 1.15f, 0},
+ {7497.46f, -3100.66f, 436.191f, 1.50f, 0},
+ {7495.64f, -3093.39f, 438.349f, 2.10f, 0},
+ {7492.44f, -3086.01f, 440.267f, 1.38f, 0},
+ {7498.26f, -3076.44f, 440.808f, 0.71f, 0},
+ {7506.4f, -3067.35f, 443.64f, 0.77f, 0},
+ {7518.37f, -3057.42f, 445.584f, 0.74f, 0},
+ {7517.51f, -3056.3f, 444.568f, 2.49f, 4500}
};
-#define ASPECT_RAVEN 22915
-
-#define ASPECT_RAVEN_SUMMON_X 7472.96f
-#define ASPECT_RAVEN_SUMMON_Y -3074.18f
-#define ASPECT_RAVEN_SUMMON_Z 427.566f
-#define CLINTAR_SPIRIT_SUMMON_X 7459.2275f
-#define CLINTAR_SPIRIT_SUMMON_Y -3122.5632f
-#define CLINTAR_SPIRIT_SUMMON_Z 438.9842f
-#define CLINTAR_SPIRIT_SUMMON_O 0.8594f
-
-//from -1000292 to -1000287 are signed for 7806. but all this texts ids wrong.
-#define CLINTAR_SPIRIT_SAY_START -1000286
-#define CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1 -1000287
-#define CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2 -1000288
-#define CLINTAR_SPIRIT_SAY_GET_ONE -1000289
-#define CLINTAR_SPIRIT_SAY_GET_TWO -1000290
-#define CLINTAR_SPIRIT_SAY_GET_THREE -1000291
-#define CLINTAR_SPIRIT_SAY_GET_FINAL -1000292
+Position const AspectRavenSummon = {7472.96f, -3074.18f, 427.566f, 0.0f};
+Position const ClintarSpiritSummon = {7459.2275f, -3122.5632f, 438.9842f, 0.8594f};
+
+enum ClintarSpirit
+{
+ ASPECT_RAVEN = 22915,
+
+ //from -1000292 to -1000287 are signed for 7806. but all this texts ids wrong.
+ CLINTAR_SPIRIT_SAY_START = -1000286,
+ CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1 = -1000287,
+ CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2 = -1000288,
+ CLINTAR_SPIRIT_SAY_GET_ONE = -1000289,
+ CLINTAR_SPIRIT_SAY_GET_TWO = -1000290,
+ CLINTAR_SPIRIT_SAY_GET_THREE = -1000291,
+ CLINTAR_SPIRIT_SAY_GET_FINAL = -1000292
+};
class npc_clintar_spirit : public CreatureScript
{
@@ -298,14 +298,14 @@ public:
public:
npc_clintar_spiritAI(Creature* creature) : npc_escortAI(creature) {}
- uint32 Step;
+ uint8 Step;
uint32 CurrWP;
- uint32 Event_Timer;
- uint32 checkPlayer_Timer;
+ uint32 EventTimer;
+ uint32 checkPlayerTimer;
uint64 PlayerGUID;
- bool Event_onWait;
+ bool EventOnWait;
void Reset()
{
@@ -313,10 +313,10 @@ public:
{
Step = 0;
CurrWP = 0;
- Event_Timer = 0;
+ EventTimer = 0;
PlayerGUID = 0;
- checkPlayer_Timer = 1000;
- Event_onWait = false;
+ checkPlayerTimer = 1000;
+ EventOnWait = false;
}
}
@@ -347,8 +347,7 @@ public:
void EnterCombat(Unit* who)
{
- uint32 rnd = rand()%2;
- switch (rnd)
+ switch (urand(0, 1))
{
case 0: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1, me, who); break;
case 1: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2, me, who); break;
@@ -357,9 +356,7 @@ public:
void StartEvent(Player* player)
{
- if (!player)
- return;
- if (player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
+ if (player && player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
{
for (uint8 i = 0; i < 41; ++i)
{
@@ -381,18 +378,18 @@ public:
return;
}
- if (!me->isInCombat() && !Event_onWait)
+ if (!me->isInCombat() && !EventOnWait)
{
- if (checkPlayer_Timer <= diff)
+ if (checkPlayerTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
if (player && player->isInCombat() && player->getAttackerForHelper())
AttackStart(player->getAttackerForHelper());
- checkPlayer_Timer = 1000;
- } else checkPlayer_Timer -= diff;
+ checkPlayerTimer = 1000;
+ } else checkPlayerTimer -= diff;
}
- if (Event_onWait && Event_Timer <= diff)
+ if (EventOnWait && EventTimer <= diff)
{
Player* player = Unit::GetPlayer(*me, PlayerGUID);
@@ -409,11 +406,11 @@ public:
{
case 0:
me->Say(CLINTAR_SPIRIT_SAY_START, 0, PlayerGUID);
- Event_Timer = 8000;
+ EventTimer = 8000;
Step = 1;
break;
case 1:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -422,13 +419,13 @@ public:
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
- Event_Timer = 5000;
+ EventTimer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_ONE, me, player);
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -437,12 +434,12 @@ public:
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
- Event_Timer = 5000;
+ EventTimer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -451,11 +448,11 @@ public:
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_TWO, me, player);
- Event_Timer = 15000;
+ EventTimer = 15000;
Step = 1;
break;
case 1:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -463,19 +460,16 @@ public:
switch (Step)
{
case 0:
- {
- Creature* mob = me->SummonCreature(ASPECT_RAVEN, ASPECT_RAVEN_SUMMON_X, ASPECT_RAVEN_SUMMON_Y, ASPECT_RAVEN_SUMMON_Z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2000);
- if (mob)
+ if (Creature* mob = me->SummonCreature(ASPECT_RAVEN, AspectRavenSummon, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2000))
{
mob->AddThreat(me, 10000.0f);
mob->AI()->AttackStart(me);
}
- Event_Timer = 2000;
+ EventTimer = 2000;
Step = 1;
break;
- }
case 1:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -484,12 +478,12 @@ public:
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
- Event_Timer = 5000;
+ EventTimer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -498,11 +492,11 @@ public:
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_THREE, me, player);
- Event_Timer = 4000;
+ EventTimer = 4000;
Step = 1;
break;
case 1:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
break;
@@ -513,12 +507,12 @@ public:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 2);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_FINAL, me, player);
player->CompleteQuest(10965);
- Event_Timer = 1500;
+ EventTimer = 1500;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
- Event_Timer = 3000;
+ EventTimer = 3000;
Step = 2;
break;
case 2:
@@ -530,19 +524,19 @@ public:
}
break;
default:
- Event_onWait = false;
+ EventOnWait = false;
break;
}
- } else if (Event_onWait) Event_Timer -= diff;
+ } else if (EventOnWait) EventTimer -= diff;
}
void WaypointReached(uint32 waypointId)
{
CurrWP = waypointId;
- Event_Timer = 0;
+ EventTimer = 0;
Step = 0;
- Event_onWait = true;
+ EventOnWait = true;
}
};
@@ -552,7 +546,10 @@ public:
# npc_clintar_dreamwalker
####*/
-#define CLINTAR_SPIRIT 22916
+enum Clintar
+{
+ CLINTAR_SPIRIT = 22916
+};
class npc_clintar_dreamwalker : public CreatureScript
{
@@ -562,11 +559,8 @@ public:
bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
{
if (quest->GetQuestId() == 10965)
- {
- Creature* clintar_spirit = creature->SummonCreature(CLINTAR_SPIRIT, CLINTAR_SPIRIT_SUMMON_X, CLINTAR_SPIRIT_SUMMON_Y, CLINTAR_SPIRIT_SUMMON_Z, CLINTAR_SPIRIT_SUMMON_O, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000);
- if (clintar_spirit)
+ if (Creature* clintar_spirit = creature->SummonCreature(CLINTAR_SPIRIT, ClintarSpiritSummon, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000))
CAST_AI(npc_clintar_spirit::npc_clintar_spiritAI, clintar_spirit->AI())->StartEvent(player);
- }
return true;
}
diff --git a/src/server/scripts/Kalimdor/mulgore.cpp b/src/server/scripts/Kalimdor/mulgore.cpp
index bd4cf55b7b2..5b35688c2b8 100644
--- a/src/server/scripts/Kalimdor/mulgore.cpp
+++ b/src/server/scripts/Kalimdor/mulgore.cpp
@@ -29,8 +29,9 @@ npc_kyle_frenzied
npc_plains_vision
EndContentData */
-#include "ScriptPCH.h"
-#include "ScriptedEscortAI.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
# npc_skorn_whitecloud
@@ -71,7 +72,7 @@ public:
# npc_kyle_frenzied
######*/
-enum eKyleFrenzied
+enum KyleFrenzied
{
//emote signed for 7780 but propably thats wrong id.
EMOTE_SEE_LUNCH = -1000340,
@@ -98,30 +99,30 @@ public:
{
npc_kyle_frenziedAI(Creature* creature) : ScriptedAI(creature) {}
- bool bEvent;
- bool m_bIsMovingToLunch;
- uint64 uiPlayerGUID;
- uint32 uiEventTimer;
- uint8 uiEventPhase;
+ bool EventActive;
+ bool IsMovingToLunch;
+ uint64 PlayerGUID;
+ uint32 EventTimer;
+ uint8 EventPhase;
void Reset()
{
- bEvent = false;
- m_bIsMovingToLunch = false;
- uiPlayerGUID = 0;
- uiEventTimer = 5000;
- uiEventPhase = 0;
+ EventActive = false;
+ IsMovingToLunch = false;
+ PlayerGUID = 0;
+ EventTimer = 5000;
+ EventPhase = 0;
if (me->GetEntry() == NPC_KYLE_FRIENDLY)
me->UpdateEntry(NPC_KYLE_FRENZIED);
}
- void SpellHit(Unit* pCaster, SpellInfo const* pSpell)
+ void SpellHit(Unit* Caster, SpellInfo const* Spell)
{
- if (!me->getVictim() && !bEvent && pSpell->Id == SPELL_LUNCH)
+ if (!me->getVictim() && !EventActive && Spell->Id == SPELL_LUNCH)
{
- if (pCaster->GetTypeId() == TYPEID_PLAYER)
- uiPlayerGUID = pCaster->GetGUID();
+ if (Caster->GetTypeId() == TYPEID_PLAYER)
+ PlayerGUID = Caster->GetGUID();
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE)
{
@@ -130,41 +131,41 @@ public:
me->StopMoving();
}
- bEvent = true;
+ EventActive = true;
DoScriptText(EMOTE_SEE_LUNCH, me);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_CREATURE_SPECIAL);
}
}
- void MovementInform(uint32 uiType, uint32 uiPointId)
+ void MovementInform(uint32 Type, uint32 PointId)
{
- if (uiType != POINT_MOTION_TYPE || !bEvent)
+ if (Type != POINT_MOTION_TYPE || !EventActive)
return;
- if (uiPointId == POINT_ID)
- m_bIsMovingToLunch = false;
+ if (PointId == POINT_ID)
+ IsMovingToLunch = false;
}
void UpdateAI(const uint32 diff)
{
- if (bEvent)
+ if (EventActive)
{
- if (m_bIsMovingToLunch)
+ if (IsMovingToLunch)
return;
- if (uiEventTimer <= diff)
+ if (EventTimer <= diff)
{
- uiEventTimer = 5000;
- ++uiEventPhase;
+ EventTimer = 5000;
+ ++EventPhase;
- switch (uiEventPhase)
+ switch (EventPhase)
{
case 1:
- if (Unit* unit = Unit::GetUnit(*me, uiPlayerGUID))
+ if (Unit* unit = Unit::GetUnit(*me, PlayerGUID))
{
if (GameObject* go = unit->GetGameObject(SPELL_LUNCH))
{
- m_bIsMovingToLunch = true;
+ IsMovingToLunch = true;
me->GetMotionMaster()->MovePoint(POINT_ID, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ());
}
}
@@ -174,13 +175,13 @@ public:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
break;
case 3:
- if (Player* unit = Unit::GetPlayer(*me, uiPlayerGUID))
+ if (Player* unit = Unit::GetPlayer(*me, PlayerGUID))
unit->TalkedToCreature(me->GetEntry(), me->GetGUID());
me->UpdateEntry(NPC_KYLE_FRIENDLY);
break;
case 4:
- uiEventTimer = 30000;
+ EventTimer = 30000;
DoScriptText(EMOTE_DANCE, me);
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCESPECIAL);
break;
@@ -192,7 +193,7 @@ public:
}
}
else
- uiEventTimer -= diff;
+ EventTimer -= diff;
}
}
};
@@ -203,58 +204,58 @@ public:
# npc_plains_vision
######*/
-float wp_plain_vision[50][3] =
+Position const wpPlainVision[50] =
{
- {-2226.32f, -408.095f, -9.36235f},
- {-2203.04f, -437.212f, -5.72498f},
- {-2163.91f, -457.851f, -7.09049f},
- {-2123.87f, -448.137f, -9.29591f},
- {-2104.66f, -427.166f, -6.49513f},
- {-2101.48f, -422.826f, -5.3567f},
- {-2097.56f, -417.083f, -7.16716f},
- {-2084.87f, -398.626f, -9.88973f},
- {-2072.71f, -382.324f, -10.2488f},
- {-2054.05f, -356.728f, -6.22468f},
- {-2051.8f, -353.645f, -5.35791f},
- {-2049.08f, -349.912f, -6.15723f},
- {-2030.6f, -310.724f, -9.59302f},
- {-2002.15f, -249.308f, -10.8124f},
- {-1972.85f, -195.811f, -10.6316f},
- {-1940.93f, -147.652f, -11.7055f},
- {-1888.06f, -81.943f, -11.4404f},
- {-1837.05f, -34.0109f, -12.258f},
- {-1796.12f, -14.6462f, -10.3581f},
- {-1732.61f, -4.27746f, -10.0213f},
- {-1688.94f, -0.829945f, -11.7103f},
- {-1681.32f, 13.0313f, -9.48056f},
- {-1677.04f, 36.8349f, -7.10318f},
- {-1675.2f, 68.559f, -8.95384f},
- {-1676.57f, 89.023f, -9.65104f},
- {-1678.16f, 110.939f, -10.1782f},
- {-1677.86f, 128.681f, -5.73869f},
- {-1675.27f, 144.324f, -3.47916f},
- {-1671.7f, 163.169f, -1.23098f},
- {-1666.61f, 181.584f, 5.26145f},
- {-1661.51f, 196.154f, 8.95252f},
- {-1655.47f, 210.811f, 8.38727f},
- {-1647.07f, 226.947f, 5.27755f},
- {-1621.65f, 232.91f, 2.69579f},
- {-1600.23f, 237.641f, 2.98539f},
- {-1576.07f, 242.546f, 4.66541f},
- {-1554.57f, 248.494f, 6.60377f},
- {-1547.53f, 259.302f, 10.6741f},
- {-1541.7f, 269.847f, 16.4418f},
- {-1539.83f, 278.989f, 21.0597f},
- {-1540.16f, 290.219f, 27.8247f},
- {-1538.99f, 298.983f, 34.0032f},
- {-1540.38f, 307.337f, 41.3557f},
- {-1536.61f, 314.884f, 48.0179f},
- {-1532.42f, 323.277f, 55.6667f},
- {-1528.77f, 329.774f, 61.1525f},
- {-1525.65f, 333.18f, 63.2161f},
- {-1517.01f, 350.713f, 62.4286f},
- {-1511.39f, 362.537f, 62.4539f},
- {-1508.68f, 366.822f, 62.733f}
+ {-2226.32f, -408.095f, -9.36235f, 0.0f},
+ {-2203.04f, -437.212f, -5.72498f, 0.0f},
+ {-2163.91f, -457.851f, -7.09049f, 0.0f},
+ {-2123.87f, -448.137f, -9.29591f, 0.0f},
+ {-2104.66f, -427.166f, -6.49513f, 0.0f},
+ {-2101.48f, -422.826f, -5.3567f, 0.0f},
+ {-2097.56f, -417.083f, -7.16716f, 0.0f},
+ {-2084.87f, -398.626f, -9.88973f, 0.0f},
+ {-2072.71f, -382.324f, -10.2488f, 0.0f},
+ {-2054.05f, -356.728f, -6.22468f, 0.0f},
+ {-2051.8f, -353.645f, -5.35791f, 0.0f},
+ {-2049.08f, -349.912f, -6.15723f, 0.0f},
+ {-2030.6f, -310.724f, -9.59302f, 0.0f},
+ {-2002.15f, -249.308f, -10.8124f, 0.0f},
+ {-1972.85f, -195.811f, -10.6316f, 0.0f},
+ {-1940.93f, -147.652f, -11.7055f, 0.0f},
+ {-1888.06f, -81.943f, -11.4404f, 0.0f},
+ {-1837.05f, -34.0109f, -12.258f, 0.0f},
+ {-1796.12f, -14.6462f, -10.3581f, 0.0f},
+ {-1732.61f, -4.27746f, -10.0213f, 0.0f},
+ {-1688.94f, -0.829945f, -11.7103f, 0.0f},
+ {-1681.32f, 13.0313f, -9.48056f, 0.0f},
+ {-1677.04f, 36.8349f, -7.10318f, 0.0f},
+ {-1675.2f, 68.559f, -8.95384f, 0.0f},
+ {-1676.57f, 89.023f, -9.65104f, 0.0f},
+ {-1678.16f, 110.939f, -10.1782f, 0.0f},
+ {-1677.86f, 128.681f, -5.73869f, 0.0f},
+ {-1675.27f, 144.324f, -3.47916f, 0.0f},
+ {-1671.7f, 163.169f, -1.23098f, 0.0f},
+ {-1666.61f, 181.584f, 5.26145f, 0.0f},
+ {-1661.51f, 196.154f, 8.95252f, 0.0f},
+ {-1655.47f, 210.811f, 8.38727f, 0.0f},
+ {-1647.07f, 226.947f, 5.27755f, 0.0f},
+ {-1621.65f, 232.91f, 2.69579f, 0.0f},
+ {-1600.23f, 237.641f, 2.98539f, 0.0f},
+ {-1576.07f, 242.546f, 4.66541f, 0.0f},
+ {-1554.57f, 248.494f, 6.60377f, 0.0f},
+ {-1547.53f, 259.302f, 10.6741f, 0.0f},
+ {-1541.7f, 269.847f, 16.4418f, 0.0f},
+ {-1539.83f, 278.989f, 21.0597f, 0.0f},
+ {-1540.16f, 290.219f, 27.8247f, 0.0f},
+ {-1538.99f, 298.983f, 34.0032f, 0.0f},
+ {-1540.38f, 307.337f, 41.3557f, 0.0f},
+ {-1536.61f, 314.884f, 48.0179f, 0.0f},
+ {-1532.42f, 323.277f, 55.6667f, 0.0f},
+ {-1528.77f, 329.774f, 61.1525f, 0.0f},
+ {-1525.65f, 333.18f, 63.2161f, 0.0f},
+ {-1517.01f, 350.713f, 62.4286f, 0.0f},
+ {-1511.39f, 362.537f, 62.4539f, 0.0f},
+ {-1508.68f, 366.822f, 62.733f, 0.0f}
};
class npc_plains_vision : public CreatureScript
@@ -305,7 +306,7 @@ public:
{
if (newWaypoint)
{
- me->GetMotionMaster()->MovePoint(WayPointId, wp_plain_vision[WayPointId][0], wp_plain_vision[WayPointId][1], wp_plain_vision[WayPointId][2]);
+ me->GetMotionMaster()->MovePoint(WayPointId, wpPlainVision[WayPointId]);
newWaypoint = false;
}
}
diff --git a/src/server/scripts/Kalimdor/orgrimmar.cpp b/src/server/scripts/Kalimdor/orgrimmar.cpp
index 2ff2d28768a..fca8d0f5fc5 100644
--- a/src/server/scripts/Kalimdor/orgrimmar.cpp
+++ b/src/server/scripts/Kalimdor/orgrimmar.cpp
@@ -28,13 +28,15 @@ npc_shenthul
npc_thrall_warchief
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## npc_shenthul
######*/
-enum eShenthul
+enum Shenthul
{
QUEST_SHATTERED_SALUTE = 2460
};
@@ -65,16 +67,16 @@ public:
bool CanTalk;
bool CanEmote;
- uint32 Salute_Timer;
- uint32 Reset_Timer;
+ uint32 SaluteTimer;
+ uint32 ResetTimer;
uint64 PlayerGUID;
void Reset()
{
CanTalk = false;
CanEmote = false;
- Salute_Timer = 6000;
- Reset_Timer = 0;
+ SaluteTimer = 6000;
+ ResetTimer = 0;
PlayerGUID = 0;
}
@@ -84,7 +86,7 @@ public:
{
if (CanEmote)
{
- if (Reset_Timer <= diff)
+ if (ResetTimer <= diff)
{
if (Player* player = Unit::GetPlayer(*me, PlayerGUID))
{
@@ -92,17 +94,17 @@ public:
player->FailQuest(QUEST_SHATTERED_SALUTE);
}
Reset();
- } else Reset_Timer -= diff;
+ } else ResetTimer -= diff;
}
if (CanTalk && !CanEmote)
{
- if (Salute_Timer <= diff)
+ if (SaluteTimer <= diff)
{
me->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE);
CanEmote = true;
- Reset_Timer = 60000;
- } else Salute_Timer -= diff;
+ ResetTimer = 60000;
+ } else SaluteTimer -= diff;
}
if (!UpdateVictim())
@@ -130,10 +132,13 @@ public:
## npc_thrall_warchief
######*/
-#define QUEST_6566 6566
+enum ThrallWarchief
+{
+ QUEST_6566 = 6566,
-#define SPELL_CHAIN_LIGHTNING 16033
-#define SPELL_SHOCK 16034
+ SPELL_CHAIN_LIGHTNING = 16033,
+ SPELL_SHOCK = 16034
+};
#define GOSSIP_HTW "Please share your wisdom with me, Warchief."
#define GOSSIP_STW1 "What discoveries?"
@@ -207,13 +212,13 @@ public:
{
npc_thrall_warchiefAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 ChainLightning_Timer;
- uint32 Shock_Timer;
+ uint32 ChainLightningTimer;
+ uint32 ShockTimer;
void Reset()
{
- ChainLightning_Timer = 2000;
- Shock_Timer = 8000;
+ ChainLightningTimer = 2000;
+ ShockTimer = 8000;
}
void EnterCombat(Unit* /*who*/) {}
@@ -223,17 +228,17 @@ public:
if (!UpdateVictim())
return;
- if (ChainLightning_Timer <= diff)
+ if (ChainLightningTimer <= diff)
{
DoCast(me->getVictim(), SPELL_CHAIN_LIGHTNING);
- ChainLightning_Timer = 9000;
- } else ChainLightning_Timer -= diff;
+ ChainLightningTimer = 9000;
+ } else ChainLightningTimer -= diff;
- if (Shock_Timer <= diff)
+ if (ShockTimer <= diff)
{
DoCast(me->getVictim(), SPELL_SHOCK);
- Shock_Timer = 15000;
- } else Shock_Timer -= diff;
+ ShockTimer = 15000;
+ } else ShockTimer -= diff;
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/Kalimdor/silithus.cpp b/src/server/scripts/Kalimdor/silithus.cpp
index 2d91f32fe9d..639de3dc3b2 100644
--- a/src/server/scripts/Kalimdor/silithus.cpp
+++ b/src/server/scripts/Kalimdor/silithus.cpp
@@ -29,7 +29,9 @@ npcs_rutgar_and_frankal
quest_a_pawn_on_the_eternal_pawn
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "Group.h"
/*###
@@ -125,9 +127,11 @@ public:
#define GOSSIP_ITEM14 "I should ask the monkey about this"
#define GOSSIP_ITEM15 "Then what..."
-//trigger creatures to kill
-#define TRIGGER_RUTGAR 15222
-#define TRIGGER_FRANKAL 15221
+enum RutgarAndFrankal //trigger creatures to kill
+{
+ TRIGGER_FRANKAL = 15221,
+ TRIGGER_RUTGAR = 15222
+};
class npcs_rutgar_and_frankal : public CreatureScript
{
@@ -223,7 +227,7 @@ public:
/*####
# quest_a_pawn_on_the_eternal_board (Defines)
####*/
-enum eEternalBoard
+enum EternalBoard
{
QUEST_A_PAWN_ON_THE_ETERNAL_BOARD = 8519,
@@ -290,7 +294,6 @@ TO DO: get correct spell IDs and timings for spells cast upon dragon transformat
TO DO: Dragons should use the HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF) after transformation, but for some unknown reason it doesnt work.
EndContentData */
-#define QUEST_A_PAWN_ON_THE_ETERNAL_BOARD 8519
#define EVENT_AREA_RADIUS 65 //65yds
#define EVENT_COOLDOWN 500000 //in ms. appear after event completed or failed (should be = Adds despawn time)
@@ -373,13 +376,8 @@ static QuestCinematic EventAnim[]=
{0, 0, 0}
};
-struct Location
-{
- float x, y, z, o;
-};
-
//Cordinates for Spawns
-static Location SpawnLocation[]=
+Position const SpawnLocation[] =
{
{-8085.0f, 1528.0f, 2.61f, 3.141592f}, //Kaldorei Infantry
{-8080.0f, 1526.0f, 2.61f, 3.141592f}, //Kaldorei Infantry
@@ -460,7 +458,7 @@ struct WaveData
int32 WaveTextId;
};
-static WaveData WavesInfo[] =
+static WaveData WavesInfo[5] =
{
{30, 0, 15423, 0, 0, 24000, 0}, // Kaldorei Soldier
{ 3, 35, 15424, 0, 0, 24000, 0}, // Anubisath Conqueror
@@ -475,7 +473,7 @@ struct SpawnSpells
uint32 Timer1, Timer2, SpellId;
};
-static SpawnSpells SpawnCast[]=//
+static SpawnSpells SpawnCast[4] =
{
{100000, 2000, 33652}, // Stop Time
{38500, 300000, 28528}, // Poison Cloud
@@ -977,13 +975,9 @@ public:
for (uint8 i = locIndex; i <= count; ++i)
{
- float x = SpawnLocation[i].x;
- float y = SpawnLocation[i].y;
- float z = SpawnLocation[i].z;
- float o = SpawnLocation[i].o;
uint32 desptimer = WavesInfo[WaveCount].DespTimer;
- if (Creature* spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, x, y, z, o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, desptimer))
+ if (Creature* spawn = me->SummonCreature(WavesInfo[WaveCount].CreatureId, SpawnLocation[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, desptimer))
{
if (spawn->GetEntry() == 15423)
spawn->SetUInt32Value(UNIT_FIELD_DISPLAYID, 15427+rand()%4);
diff --git a/src/server/scripts/Kalimdor/stonetalon_mountains.cpp b/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
index 635bb50509e..d38395c7b37 100644
--- a/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
+++ b/src/server/scripts/Kalimdor/stonetalon_mountains.cpp
@@ -28,7 +28,9 @@ npc_braug_dimspirit
npc_kaya_flathoof
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
/*######
@@ -90,7 +92,7 @@ public:
## npc_kaya_flathoof
######*/
-enum eKaya
+enum Kaya
{
FACTION_ESCORTEE_H = 775,
diff --git a/src/server/scripts/Kalimdor/tanaris.cpp b/src/server/scripts/Kalimdor/tanaris.cpp
index da0e0e738cf..9b742b495bb 100644
--- a/src/server/scripts/Kalimdor/tanaris.cpp
+++ b/src/server/scripts/Kalimdor/tanaris.cpp
@@ -33,7 +33,9 @@ npc_OOX17
npc_tooga
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
@@ -41,10 +43,13 @@ EndContentData */
## mob_aquementas
######*/
-#define AGGRO_YELL_AQUE -1000350
+enum Aquementas
+{
+ AGGRO_YELL_AQUE = -1000350,
-#define SPELL_AQUA_JET 13586
-#define SPELL_FROST_SHOCK 15089
+ SPELL_AQUA_JET = 13586,
+ SPELL_FROST_SHOCK = 15089
+};
class mob_aquementas : public CreatureScript
{
@@ -60,22 +65,22 @@ public:
{
mob_aquementasAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 SendItem_Timer;
- uint32 SwitchFaction_Timer;
+ uint32 SendItemTimer;
+ uint32 SwitchFactionTimer;
bool isFriendly;
- uint32 FrostShock_Timer;
- uint32 AquaJet_Timer;
+ uint32 FrostShockTimer;
+ uint32 AquaJetTimer;
void Reset()
{
- SendItem_Timer = 0;
- SwitchFaction_Timer = 10000;
+ SendItemTimer = 0;
+ SwitchFactionTimer = 10000;
me->setFaction(35);
isFriendly = true;
- AquaJet_Timer = 5000;
- FrostShock_Timer = 1000;
+ AquaJetTimer = 5000;
+ FrostShockTimer = 1000;
}
void SendItem(Unit* receiver)
@@ -101,11 +106,11 @@ public:
{
if (isFriendly)
{
- if (SwitchFaction_Timer <= diff)
+ if (SwitchFactionTimer <= diff)
{
me->setFaction(91);
isFriendly = false;
- } else SwitchFaction_Timer -= diff;
+ } else SwitchFactionTimer -= diff;
}
if (!UpdateVictim())
@@ -113,25 +118,25 @@ public:
if (!isFriendly)
{
- if (SendItem_Timer <= diff)
+ if (SendItemTimer <= diff)
{
if (me->getVictim()->GetTypeId() == TYPEID_PLAYER)
SendItem(me->getVictim());
- SendItem_Timer = 5000;
- } else SendItem_Timer -= diff;
+ SendItemTimer = 5000;
+ } else SendItemTimer -= diff;
}
- if (FrostShock_Timer <= diff)
+ if (FrostShockTimer <= diff)
{
DoCast(me->getVictim(), SPELL_FROST_SHOCK);
- FrostShock_Timer = 15000;
- } else FrostShock_Timer -= diff;
+ FrostShockTimer = 15000;
+ } else FrostShockTimer -= diff;
- if (AquaJet_Timer <= diff)
+ if (AquaJetTimer <= diff)
{
DoCast(me, SPELL_AQUA_JET);
- AquaJet_Timer = 15000;
- } else AquaJet_Timer -= diff;
+ AquaJetTimer = 15000;
+ } else AquaJetTimer -= diff;
DoMeleeAttackIfReady();
}
@@ -143,20 +148,23 @@ public:
## npc_custodian_of_time
######*/
-#define WHISPER_CUSTODIAN_1 -1000217
-#define WHISPER_CUSTODIAN_2 -1000218
-#define WHISPER_CUSTODIAN_3 -1000219
-#define WHISPER_CUSTODIAN_4 -1000220
-#define WHISPER_CUSTODIAN_5 -1000221
-#define WHISPER_CUSTODIAN_6 -1000222
-#define WHISPER_CUSTODIAN_7 -1000223
-#define WHISPER_CUSTODIAN_8 -1000224
-#define WHISPER_CUSTODIAN_9 -1000225
-#define WHISPER_CUSTODIAN_10 -1000226
-#define WHISPER_CUSTODIAN_11 -1000227
-#define WHISPER_CUSTODIAN_12 -1000228
-#define WHISPER_CUSTODIAN_13 -1000229
-#define WHISPER_CUSTODIAN_14 -1000230
+enum CustodianOfTime
+{
+ WHISPER_CUSTODIAN_1 = -1000217,
+ WHISPER_CUSTODIAN_2 = -1000218,
+ WHISPER_CUSTODIAN_3 = -1000219,
+ WHISPER_CUSTODIAN_4 = -1000220,
+ WHISPER_CUSTODIAN_5 = -1000221,
+ WHISPER_CUSTODIAN_6 = -1000222,
+ WHISPER_CUSTODIAN_7 = -1000223,
+ WHISPER_CUSTODIAN_8 = -1000224,
+ WHISPER_CUSTODIAN_9 = -1000225,
+ WHISPER_CUSTODIAN_10 = -1000226,
+ WHISPER_CUSTODIAN_11 = -1000227,
+ WHISPER_CUSTODIAN_12 = -1000228,
+ WHISPER_CUSTODIAN_13 = -1000229,
+ WHISPER_CUSTODIAN_14 = -1000230
+};
class npc_custodian_of_time : public CreatureScript
{
@@ -174,69 +182,68 @@ public:
void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
- if (!player)
- return;
-
- switch (waypointId)
+ if (Player* player = GetPlayerForEscort())
{
- case 0:
- DoScriptText(WHISPER_CUSTODIAN_1, me, player);
- break;
- case 1:
- DoScriptText(WHISPER_CUSTODIAN_2, me, player);
- break;
- case 2:
- DoScriptText(WHISPER_CUSTODIAN_3, me, player);
- break;
- case 3:
- DoScriptText(WHISPER_CUSTODIAN_4, me, player);
- break;
- case 5:
- DoScriptText(WHISPER_CUSTODIAN_5, me, player);
- break;
- case 6:
- DoScriptText(WHISPER_CUSTODIAN_6, me, player);
- break;
- case 7:
- DoScriptText(WHISPER_CUSTODIAN_7, me, player);
- break;
- case 8:
- DoScriptText(WHISPER_CUSTODIAN_8, me, player);
- break;
- case 9:
- DoScriptText(WHISPER_CUSTODIAN_9, me, player);
- break;
- case 10:
- DoScriptText(WHISPER_CUSTODIAN_4, me, player);
- break;
- case 13:
- DoScriptText(WHISPER_CUSTODIAN_10, me, player);
- break;
- case 14:
- DoScriptText(WHISPER_CUSTODIAN_4, me, player);
- break;
- case 16:
- DoScriptText(WHISPER_CUSTODIAN_11, me, player);
- break;
- case 17:
- DoScriptText(WHISPER_CUSTODIAN_12, me, player);
- break;
- case 18:
- DoScriptText(WHISPER_CUSTODIAN_4, me, player);
- break;
- case 22:
- DoScriptText(WHISPER_CUSTODIAN_13, me, player);
- break;
- case 23:
- DoScriptText(WHISPER_CUSTODIAN_4, me, player);
- break;
- case 24:
- DoScriptText(WHISPER_CUSTODIAN_14, me, player);
- DoCast(player, 34883);
- // below here is temporary workaround, to be removed when spell works properly
- player->AreaExploredOrEventHappens(10277);
- break;
+ switch (waypointId)
+ {
+ case 0:
+ DoScriptText(WHISPER_CUSTODIAN_1, me, player);
+ break;
+ case 1:
+ DoScriptText(WHISPER_CUSTODIAN_2, me, player);
+ break;
+ case 2:
+ DoScriptText(WHISPER_CUSTODIAN_3, me, player);
+ break;
+ case 3:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 5:
+ DoScriptText(WHISPER_CUSTODIAN_5, me, player);
+ break;
+ case 6:
+ DoScriptText(WHISPER_CUSTODIAN_6, me, player);
+ break;
+ case 7:
+ DoScriptText(WHISPER_CUSTODIAN_7, me, player);
+ break;
+ case 8:
+ DoScriptText(WHISPER_CUSTODIAN_8, me, player);
+ break;
+ case 9:
+ DoScriptText(WHISPER_CUSTODIAN_9, me, player);
+ break;
+ case 10:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 13:
+ DoScriptText(WHISPER_CUSTODIAN_10, me, player);
+ break;
+ case 14:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 16:
+ DoScriptText(WHISPER_CUSTODIAN_11, me, player);
+ break;
+ case 17:
+ DoScriptText(WHISPER_CUSTODIAN_12, me, player);
+ break;
+ case 18:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 22:
+ DoScriptText(WHISPER_CUSTODIAN_13, me, player);
+ break;
+ case 23:
+ DoScriptText(WHISPER_CUSTODIAN_4, me, player);
+ break;
+ case 24:
+ DoScriptText(WHISPER_CUSTODIAN_14, me, player);
+ DoCast(player, 34883);
+ // below here is temporary workaround, to be removed when spell works properly
+ player->AreaExploredOrEventHappens(10277);
+ break;
+ }
}
}
@@ -259,7 +266,7 @@ public:
}
void EnterCombat(Unit* /*who*/) {}
- void Reset() { }
+ void Reset() {}
void UpdateAI(const uint32 diff)
{
@@ -416,7 +423,7 @@ public:
## npc_OOX17
######*/
-enum e00X17
+enum Npc00X17
{
//texts are signed for 7806
SAY_OOX_START = -1000287,
@@ -464,30 +471,29 @@ public:
void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
- if (!player)
- return;
-
- switch (waypointId)
+ if (Player* player = GetPlayerForEscort())
{
- case 23:
- me->SummonCreature(SPAWN_FIRST, -8350.96f, -4445.79f, 10.10f, 6.20f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(SPAWN_FIRST, -8355.96f, -4447.79f, 10.10f, 6.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(SPAWN_FIRST, -8353.96f, -4442.79f, 10.10f, 6.08f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_OOX_AMBUSH, me);
- break;
- case 56:
- me->SummonCreature(SPAWN_SECOND_1, -7510.07f, -4795.50f, 9.35f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(SPAWN_SECOND_2, -7515.07f, -4797.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- me->SummonCreature(SPAWN_SECOND_2, -7518.07f, -4792.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_OOX_AMBUSH, me);
- if (Unit* scoff = me->FindNearestCreature(SPAWN_SECOND_2, 30))
- DoScriptText(SAY_OOX17_AMBUSH_REPLY, scoff);
- break;
- case 86:
- DoScriptText(SAY_OOX_END, me);
- player->GroupEventHappens(Q_OOX17, me);
- break;
+ switch (waypointId)
+ {
+ case 23:
+ me->SummonCreature(SPAWN_FIRST, -8350.96f, -4445.79f, 10.10f, 6.20f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(SPAWN_FIRST, -8355.96f, -4447.79f, 10.10f, 6.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(SPAWN_FIRST, -8353.96f, -4442.79f, 10.10f, 6.08f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_OOX_AMBUSH, me);
+ break;
+ case 56:
+ me->SummonCreature(SPAWN_SECOND_1, -7510.07f, -4795.50f, 9.35f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(SPAWN_SECOND_2, -7515.07f, -4797.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(SPAWN_SECOND_2, -7518.07f, -4792.50f, 9.35f, 6.22f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_OOX_AMBUSH, me);
+ if (Unit* scoff = me->FindNearestCreature(SPAWN_SECOND_2, 30))
+ DoScriptText(SAY_OOX17_AMBUSH_REPLY, scoff);
+ break;
+ case 86:
+ DoScriptText(SAY_OOX_END, me);
+ player->GroupEventHappens(Q_OOX17, me);
+ break;
+ }
}
}
@@ -509,7 +515,7 @@ public:
# npc_tooga
####*/
-enum eTooga
+enum Tooga
{
SAY_TOOG_THIRST = -1000391,
SAY_TOOG_WORRIED = -1000392,
@@ -527,7 +533,7 @@ enum eTooga
FACTION_TOOG_ESCORTEE = 113
};
-const float m_afToWaterLoc[] = {-7032.664551f, -4906.199219f, -1.606446f};
+Position const ToWaterLoc = {-7032.664551f, -4906.199219f, -1.606446f, 0.0f};
class npc_tooga : public CreatureScript
{
@@ -554,17 +560,17 @@ public:
{
npc_toogaAI(Creature* creature) : FollowerAI(creature) { }
- uint32 m_uiCheckSpeechTimer;
- uint32 m_uiPostEventTimer;
- uint32 m_uiPhasePostEvent;
+ uint32 CheckSpeechTimer;
+ uint32 PostEventTimer;
+ uint32 PhasePostEvent;
uint64 TortaGUID;
void Reset()
{
- m_uiCheckSpeechTimer = 2500;
- m_uiPostEventTimer = 1000;
- m_uiPhasePostEvent = 0;
+ CheckSpeechTimer = 2500;
+ PostEventTimer = 1000;
+ PhasePostEvent = 0;
TortaGUID = 0;
}
@@ -577,11 +583,9 @@ public:
{
if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE))
{
- if (Player* player = GetLeaderForFollower())
- {
- if (player->GetQuestStatus(QUEST_TOOGA) == QUEST_STATUS_INCOMPLETE)
- player->GroupEventHappens(QUEST_TOOGA, me);
- }
+ Player* player = GetLeaderForFollower();
+ if (player && player->GetQuestStatus(QUEST_TOOGA) == QUEST_STATUS_INCOMPLETE)
+ player->GroupEventHappens(QUEST_TOOGA, me);
TortaGUID = who->GetGUID();
SetFollowComplete(true);
@@ -589,27 +593,27 @@ public:
}
}
- void MovementInform(uint32 uiMotionType, uint32 uiPointId)
+ void MovementInform(uint32 MotionType, uint32 PointId)
{
- FollowerAI::MovementInform(uiMotionType, uiPointId);
+ FollowerAI::MovementInform(MotionType, PointId);
- if (uiMotionType != POINT_MOTION_TYPE)
+ if (MotionType != POINT_MOTION_TYPE)
return;
- if (uiPointId == POINT_ID_TO_WATER)
+ if (PointId == POINT_ID_TO_WATER)
SetFollowComplete();
}
- void UpdateFollowerAI(const uint32 uiDiff)
+ void UpdateFollowerAI(const uint32 Diff)
{
if (!UpdateVictim())
{
//we are doing the post-event, or...
if (HasFollowState(STATE_FOLLOW_POSTEVENT))
{
- if (m_uiPostEventTimer <= uiDiff)
+ if (PostEventTimer <= Diff)
{
- m_uiPostEventTimer = 5000;
+ PostEventTimer = 5000;
Unit* pTorta = Unit::GetUnit(*me, TortaGUID);
if (!pTorta || !pTorta->isAlive())
@@ -619,7 +623,7 @@ public:
return;
}
- switch (m_uiPhasePostEvent)
+ switch (PhasePostEvent)
{
case 1:
DoScriptText(SAY_TOOG_POST_1, me);
@@ -638,27 +642,27 @@ public:
break;
case 6:
DoScriptText(SAY_TORT_POST_6, pTorta);
- me->GetMotionMaster()->MovePoint(POINT_ID_TO_WATER, m_afToWaterLoc[0], m_afToWaterLoc[1], m_afToWaterLoc[2]);
+ me->GetMotionMaster()->MovePoint(POINT_ID_TO_WATER, ToWaterLoc);
break;
}
- ++m_uiPhasePostEvent;
+ ++PhasePostEvent;
}
else
- m_uiPostEventTimer -= uiDiff;
+ PostEventTimer -= Diff;
}
//...we are doing regular speech check
else if (HasFollowState(STATE_FOLLOW_INPROGRESS))
{
- if (m_uiCheckSpeechTimer <= uiDiff)
+ if (CheckSpeechTimer <= Diff)
{
- m_uiCheckSpeechTimer = 5000;
+ CheckSpeechTimer = 5000;
if (urand(0, 9) > 8)
DoScriptText(RAND(SAY_TOOG_THIRST, SAY_TOOG_WORRIED), me);
}
else
- m_uiCheckSpeechTimer -= uiDiff;
+ CheckSpeechTimer -= Diff;
}
return;
diff --git a/src/server/scripts/Kalimdor/teldrassil.cpp b/src/server/scripts/Kalimdor/teldrassil.cpp
index d7cac99c374..7f2b2fc7f05 100644
--- a/src/server/scripts/Kalimdor/teldrassil.cpp
+++ b/src/server/scripts/Kalimdor/teldrassil.cpp
@@ -27,14 +27,15 @@ EndScriptData */
npc_mist
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedFollowerAI.h"
/*####
# npc_mist
####*/
-enum eMist
+enum Mist
{
SAY_AT_HOME = -1000323,
EMOTE_AT_HOME = -1000324,
@@ -51,10 +52,8 @@ public:
bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest)
{
if (quest->GetQuestId() == QUEST_MIST)
- {
if (npc_mistAI* pMistAI = CAST_AI(npc_mist::npc_mistAI, creature->AI()))
pMistAI->StartFollow(player, FACTION_DARNASSUS, quest);
- }
return true;
}
@@ -88,18 +87,16 @@ public:
{
DoScriptText(EMOTE_AT_HOME, me);
- if (Player* player = GetLeaderForFollower())
- {
- if (player->GetQuestStatus(QUEST_MIST) == QUEST_STATUS_INCOMPLETE)
- player->GroupEventHappens(QUEST_MIST, me);
- }
+ Player* player = GetLeaderForFollower();
+ if (player && player->GetQuestStatus(QUEST_MIST) == QUEST_STATUS_INCOMPLETE)
+ player->GroupEventHappens(QUEST_MIST, me);
//The follow is over (and for later development, run off to the woods before really end)
SetFollowComplete();
}
//call not needed here, no known abilities
- /*void UpdateFollowerAI(const uint32 uiDiff)
+ /*void UpdateFollowerAI(const uint32 Diff)
{
if (!UpdateVictim())
return;
diff --git a/src/server/scripts/Kalimdor/the_barrens.cpp b/src/server/scripts/Kalimdor/the_barrens.cpp
index c56991e2553..f4983558b67 100644
--- a/src/server/scripts/Kalimdor/the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/the_barrens.cpp
@@ -32,7 +32,9 @@ npc_twiggy_flathead
npc_wizzlecrank_shredder
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
/*######
@@ -41,7 +43,7 @@ EndContentData */
#define GOSSIP_CORPSE "Examine corpse in detail..."
-enum eQuests
+enum BeatenCorpse
{
QUEST_LOST_IN_BATTLE = 4921
};
@@ -77,7 +79,7 @@ public:
# npc_gilthares
######*/
-enum eGilthares
+enum Gilthares
{
SAY_GIL_START = -1000370,
SAY_GIL_AT_LAST = -1000371,
@@ -214,7 +216,7 @@ public:
## npc_taskmaster_fizzule
######*/
-enum eEnums
+enum TaskmasterFizzule
{
FACTION_FRIENDLY_F = 35,
SPELL_FLARE = 10113,
@@ -240,13 +242,13 @@ public:
uint32 factionNorm;
bool IsFriend;
- uint32 Reset_Timer;
+ uint32 ResetTimer;
uint8 FlareCount;
void Reset()
{
IsFriend = false;
- Reset_Timer = 120000;
+ ResetTimer = 120000;
FlareCount = 0;
me->setFaction(factionNorm);
}
@@ -281,11 +283,11 @@ public:
{
if (IsFriend)
{
- if (Reset_Timer <= diff)
+ if (ResetTimer <= diff)
{
EnterEvadeMode();
return;
- } else Reset_Timer -= diff;
+ } else ResetTimer -= diff;
}
if (!UpdateVictim())
@@ -315,7 +317,7 @@ public:
## npc_twiggy_flathead
#####*/
-enum eTwiggyFlathead
+enum TwiggyFlathead
{
NPC_BIG_WILL = 6238,
NPC_AFFRAY_CHALLENGER = 6240,
@@ -327,7 +329,7 @@ enum eTwiggyFlathead
SAY_TWIGGY_FLATHEAD_OVER = -1000127,
};
-float AffrayChallengerLoc[6][4]=
+Position const AffrayChallengerLoc[6] =
{
{-1683.0f, -4326.0f, 2.79f, 0.0f},
{-1682.0f, -4329.0f, 2.79f, 0.0f},
@@ -354,10 +356,10 @@ public:
bool EventInProgress;
bool EventGrate;
bool EventBigWill;
- bool Challenger_down[6];
- uint32 Wave;
- uint32 Wave_Timer;
- uint32 Challenger_checker;
+ bool ChallengerDown[6];
+ uint8 Wave;
+ uint32 WaveTimer;
+ uint32 ChallengerChecker;
uint64 PlayerGUID;
uint64 AffrayChallenger[6];
uint64 BigWill;
@@ -367,15 +369,15 @@ public:
EventInProgress = false;
EventGrate = false;
EventBigWill = false;
- Wave_Timer = 600000;
- Challenger_checker = 0;
+ WaveTimer = 600000;
+ ChallengerChecker = 0;
Wave = 0;
PlayerGUID = 0;
for (uint8 i = 0; i < 6; ++i)
{
AffrayChallenger[i] = 0;
- Challenger_down[i] = false;
+ ChallengerDown[i] = false;
}
BigWill = 0;
}
@@ -408,42 +410,26 @@ public:
return;
if (!pWarrior->isAlive() && pWarrior->GetQuestStatus(1719) == QUEST_STATUS_INCOMPLETE) {
- EventInProgress = false;
DoScriptText(SAY_TWIGGY_FLATHEAD_DOWN, me);
pWarrior->FailQuest(1719);
- for (uint8 i = 0; i < 6; ++i)
+ for (uint8 i = 0; i < 6; ++i) // unsummon challengers
{
if (AffrayChallenger[i])
{
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]);
- if (creature) {
- if (creature->isAlive())
- {
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- creature->setDeathState(JUST_DIED);
- }
- }
+ if (creature && creature->isAlive())
+ creature->DisappearAndDie();
}
- AffrayChallenger[i] = 0;
- Challenger_down[i] = false;
}
- if (BigWill)
+ if (BigWill) // unsummon bigWill
{
Creature* creature = Unit::GetCreature((*me), BigWill);
- if (creature)
- {
- if (creature->isAlive())
- {
- creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
- creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- creature->setDeathState(JUST_DIED);
- }
- }
+ if (creature && creature->isAlive())
+ creature->DisappearAndDie();
}
- BigWill = 0;
+ Reset();
}
if (!EventGrate && EventInProgress)
@@ -453,11 +439,11 @@ public:
if (x >= -1684 && x <= -1674 && y >= -4334 && y <= -4324) {
pWarrior->AreaExploredOrEventHappens(1719);
- DoScriptText(SAY_TWIGGY_FLATHEAD_BEGIN, me);
+ DoScriptText(SAY_TWIGGY_FLATHEAD_BEGIN, me, pWarrior);
for (uint8 i = 0; i < 6; ++i)
{
- Creature* creature = me->SummonCreature(NPC_AFFRAY_CHALLENGER, AffrayChallengerLoc[i][0], AffrayChallengerLoc[i][1], AffrayChallengerLoc[i][2], AffrayChallengerLoc[i][3], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 600000);
+ Creature* creature = me->SummonCreature(NPC_AFFRAY_CHALLENGER, AffrayChallengerLoc[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 600000);
if (!creature)
continue;
creature->setFaction(35);
@@ -466,31 +452,31 @@ public:
creature->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
AffrayChallenger[i] = creature->GetGUID();
}
- Wave_Timer = 5000;
- Challenger_checker = 1000;
+ WaveTimer = 5000;
+ ChallengerChecker = 1000;
EventGrate = true;
}
}
else if (EventInProgress)
{
- if (Challenger_checker <= diff)
+ if (ChallengerChecker <= diff)
{
for (uint8 i = 0; i < 6; ++i)
{
if (AffrayChallenger[i])
{
Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]);
- if ((!creature || (!creature->isAlive())) && !Challenger_down[i])
+ if ((!creature || (!creature->isAlive())) && !ChallengerDown[i])
{
DoScriptText(SAY_TWIGGY_FLATHEAD_DOWN, me);
- Challenger_down[i] = true;
+ ChallengerDown[i] = true;
}
}
}
- Challenger_checker = 1000;
- } else Challenger_checker -= diff;
+ ChallengerChecker = 1000;
+ } else ChallengerChecker -= diff;
- if (Wave_Timer <= diff)
+ if (WaveTimer <= diff)
{
if (Wave < 6 && AffrayChallenger[Wave] && !EventBigWill)
{
@@ -504,7 +490,7 @@ public:
creature->setFaction(14);
creature->AI()->AttackStart(pWarrior);
++Wave;
- Wave_Timer = 20000;
+ WaveTimer = 20000;
}
}
else if (Wave >= 6 && !EventBigWill) {
@@ -516,7 +502,7 @@ public:
creature->GetMotionMaster()->MovePoint(2, -1682, -4329, 2.79f);
creature->HandleEmoteCommand(EMOTE_STATE_READY_UNARMED);
EventBigWill = true;
- Wave_Timer = 1000;
+ WaveTimer = 1000;
}
}
else if (Wave >= 6 && EventBigWill && BigWill)
@@ -525,14 +511,10 @@ public:
if (!creature || !creature->isAlive())
{
DoScriptText(SAY_TWIGGY_FLATHEAD_OVER, me);
- EventInProgress = false;
- EventBigWill = false;
- EventGrate = false;
- PlayerGUID = 0;
- Wave = 0;
+ Reset();
}
}
- } else Wave_Timer -= diff;
+ } else WaveTimer -= diff;
}
}
}
@@ -544,7 +526,7 @@ public:
## npc_wizzlecrank_shredder
#####*/
-enum eEnums_Wizzlecrank
+enum Wizzlecrank
{
SAY_START = -1000298,
SAY_STARTUP1 = -1000299,
@@ -570,14 +552,14 @@ public:
{
npc_wizzlecrank_shredderAI(Creature* creature) : npc_escortAI(creature)
{
- m_bIsPostEvent = false;
- m_uiPostEventTimer = 1000;
- m_uiPostEventCount = 0;
+ IsPostEvent = false;
+ PostEventTimer = 1000;
+ PostEventCount = 0;
}
- bool m_bIsPostEvent;
- uint32 m_uiPostEventTimer;
- uint32 m_uiPostEventCount;
+ bool IsPostEvent;
+ uint32 PostEventTimer;
+ uint32 PostEventCount;
void Reset()
{
@@ -586,9 +568,9 @@ public:
if (me->getStandState() == UNIT_STAND_STATE_DEAD)
me->SetStandState(UNIT_STAND_STATE_STAND);
- m_bIsPostEvent = false;
- m_uiPostEventTimer = 1000;
- m_uiPostEventCount = 0;
+ IsPostEvent = false;
+ PostEventTimer = 1000;
+ PostEventCount = 0;
}
}
@@ -610,19 +592,19 @@ public:
}
break;
case 24:
- m_bIsPostEvent = true;
+ IsPostEvent = true;
break;
}
}
- void WaypointStart(uint32 uiPointId)
+ void WaypointStart(uint32 PointId)
{
Player* player = GetPlayerForEscort();
if (!player)
return;
- switch (uiPointId)
+ switch (PointId)
{
case 9:
DoScriptText(SAY_STARTUP2, me, player);
@@ -643,15 +625,15 @@ public:
summoned->AI()->AttackStart(me);
}
- void UpdateEscortAI(const uint32 uiDiff)
+ void UpdateEscortAI(const uint32 Diff)
{
if (!UpdateVictim())
{
- if (m_bIsPostEvent)
+ if (IsPostEvent)
{
- if (m_uiPostEventTimer <= uiDiff)
+ if (PostEventTimer <= Diff)
{
- switch (m_uiPostEventCount)
+ switch (PostEventCount)
{
case 0:
DoScriptText(SAY_PROGRESS_2, me);
@@ -671,11 +653,11 @@ public:
break;
}
- ++m_uiPostEventCount;
- m_uiPostEventTimer = 5000;
+ ++PostEventCount;
+ PostEventTimer = 5000;
}
else
- m_uiPostEventTimer -= uiDiff;
+ PostEventTimer -= Diff;
}
return;
diff --git a/src/server/scripts/Kalimdor/thousand_needles.cpp b/src/server/scripts/Kalimdor/thousand_needles.cpp
index 5b77b8dc2c0..b9ae356ddf1 100644
--- a/src/server/scripts/Kalimdor/thousand_needles.cpp
+++ b/src/server/scripts/Kalimdor/thousand_needles.cpp
@@ -32,14 +32,16 @@ npc_enraged_panther
go_panther_cage
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
#include "ScriptedEscortAI.h"
/*#####
# npc_kanati
######*/
-enum eKanati
+enum Kanati
{
SAY_KAN_START = -1000410,
@@ -47,7 +49,7 @@ enum eKanati
NPC_GALAK_ASS = 10720
};
-const float m_afGalakLoc[]= {-4867.387695f, -1357.353760f, -48.226f };
+Position const GalakLoc = {-4867.387695f, -1357.353760f, -48.226f, 0.0f};
class npc_kanati : public CreatureScript
{
@@ -57,10 +59,9 @@ public:
bool OnQuestAccept(Player* player, Creature* creature, const Quest* quest)
{
if (quest->GetQuestId() == QUEST_PROTECT_KANATI)
- {
if (npc_kanatiAI* pEscortAI = CAST_AI(npc_kanati::npc_kanatiAI, creature->AI()))
pEscortAI->Start(false, false, player->GetGUID(), quest, true);
- }
+
return true;
}
@@ -73,7 +74,7 @@ public:
{
npc_kanatiAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() { }
+ void Reset() {}
void WaypointReached(uint32 waypointId)
{
@@ -93,9 +94,7 @@ public:
void DoSpawnGalak()
{
for (int i = 0; i < 3; ++i)
- me->SummonCreature(NPC_GALAK_ASS,
- m_afGalakLoc[0], m_afGalakLoc[1], m_afGalakLoc[2], 0.0f,
- TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ me->SummonCreature(NPC_GALAK_ASS, GalakLoc, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
}
void JustSummoned(Creature* summoned)
@@ -110,7 +109,7 @@ public:
# npc_lakota_windsong
######*/
-enum eLakota
+enum Lakota
{
SAY_LAKO_START = -1000365,
SAY_LAKO_LOOK_OUT = -1000366,
@@ -127,14 +126,14 @@ enum eLakota
ID_AMBUSH_3 = 4
};
-float m_afBanditLoc[6][6]=
+Position const BanditLoc[6] =
{
- {-4905.479492f, -2062.732666f, 84.352f},
- {-4915.201172f, -2073.528320f, 84.733f},
- {-4878.883301f, -1986.947876f, 91.966f},
- {-4877.503906f, -1966.113403f, 91.859f},
- {-4767.985352f, -1873.169189f, 90.192f},
- {-4788.861328f, -1888.007813f, 89.888f}
+ {-4905.479492f, -2062.732666f, 84.352f, 0.0f},
+ {-4915.201172f, -2073.528320f, 84.733f, 0.0f},
+ {-4878.883301f, -1986.947876f, 91.966f, 0.0f},
+ {-4877.503906f, -1966.113403f, 91.859f, 0.0f},
+ {-4767.985352f, -1873.169189f, 90.192f, 0.0f},
+ {-4788.861328f, -1888.007813f, 89.888f, 0.0f}
};
class npc_lakota_windsong : public CreatureScript
@@ -164,7 +163,7 @@ public:
{
npc_lakota_windsongAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() { }
+ void Reset() {}
void WaypointReached(uint32 waypointId)
{
@@ -189,12 +188,10 @@ public:
}
}
- void DoSpawnBandits(int uiAmbushId)
+ void DoSpawnBandits(int AmbushId)
{
for (int i = 0; i < 2; ++i)
- me->SummonCreature(NPC_GRIM_BANDIT,
- m_afBanditLoc[i+uiAmbushId][0], m_afBanditLoc[i+uiAmbushId][1], m_afBanditLoc[i+uiAmbushId][2], 0.0f,
- TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_GRIM_BANDIT, BanditLoc[i+AmbushId], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
}
};
@@ -204,7 +201,7 @@ public:
# npc_paoka_swiftmountain
######*/
-enum ePacka
+enum Packa
{
SAY_START = -1000362,
SAY_WYVERN = -1000363,
@@ -215,11 +212,11 @@ enum ePacka
FACTION_ESCORTEE = 232 //guessed
};
-float m_afWyvernLoc[3][3]=
+Position const WyvernLoc[3] =
{
- {-4990.606f, -906.057f, -5.343f},
- {-4970.241f, -927.378f, -4.951f},
- {-4985.364f, -952.528f, -5.199f}
+ {-4990.606f, -906.057f, -5.343f, 0.0f},
+ {-4970.241f, -927.378f, -4.951f, 0.0f},
+ {-4985.364f, -952.528f, -5.199f, 0.0f}
};
class npc_paoka_swiftmountain : public CreatureScript
@@ -249,7 +246,7 @@ public:
{
npc_paoka_swiftmountainAI(Creature* creature) : npc_escortAI(creature) { }
- void Reset() { }
+ void Reset() {}
void WaypointReached(uint32 waypointId)
{
@@ -272,9 +269,7 @@ public:
void DoSpawnWyvern()
{
for (int i = 0; i < 3; ++i)
- me->SummonCreature(NPC_WYVERN,
- m_afWyvernLoc[i][0], m_afWyvernLoc[i][1], m_afWyvernLoc[i][2], 0.0f,
- TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
+ me->SummonCreature(NPC_WYVERN, WyvernLoc[i], TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 60000);
}
};
};
@@ -285,7 +280,7 @@ public:
#define GOSSIP_P "Please tell me the Phrase.."
-enum ePlucky
+enum Plucky
{
FACTION_FRIENDLY = 35,
QUEST_SCOOP = 1950,
@@ -328,17 +323,17 @@ public:
struct npc_pluckyAI : public ScriptedAI
{
- npc_pluckyAI(Creature* creature) : ScriptedAI(creature) { m_uiNormFaction = creature->getFaction(); }
+ npc_pluckyAI(Creature* creature) : ScriptedAI(creature) { NormFaction = creature->getFaction(); }
- uint32 m_uiNormFaction;
- uint32 m_uiResetTimer;
+ uint32 NormFaction;
+ uint32 ResetTimer;
void Reset()
{
- m_uiResetTimer = 120000;
+ ResetTimer = 120000;
- if (me->getFaction() != m_uiNormFaction)
- me->setFaction(m_uiNormFaction);
+ if (me->getFaction() != NormFaction)
+ me->setFaction(NormFaction);
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
@@ -346,11 +341,11 @@ public:
DoCast(me, SPELL_PLUCKY_CHICKEN, false);
}
- void ReceiveEmote(Player* player, uint32 uiTextEmote)
+ void ReceiveEmote(Player* player, uint32 TextEmote)
{
if (player->GetQuestStatus(QUEST_SCOOP) == QUEST_STATUS_INCOMPLETE)
{
- if (uiTextEmote == TEXT_EMOTE_BECKON)
+ if (TextEmote == TEXT_EMOTE_BECKON)
{
me->setFaction(FACTION_FRIENDLY);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
@@ -358,7 +353,7 @@ public:
}
}
- if (uiTextEmote == TEXT_EMOTE_CHICKEN)
+ if (TextEmote == TEXT_EMOTE_CHICKEN)
{
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
return;
@@ -372,11 +367,11 @@ public:
}
}
- void UpdateAI(const uint32 uiDiff)
+ void UpdateAI(const uint32 Diff)
{
if (me->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP))
{
- if (m_uiResetTimer <= uiDiff)
+ if (ResetTimer <= Diff)
{
if (!me->getVictim())
EnterEvadeMode();
@@ -386,7 +381,7 @@ public:
return;
}
else
- m_uiResetTimer -= uiDiff;
+ ResetTimer -= Diff;
}
if (!UpdateVictim())
@@ -398,7 +393,7 @@ public:
};
-enum ePantherCage
+enum PantherCage
{
ENRAGED_PANTHER = 10992
};
diff --git a/src/server/scripts/Kalimdor/thunder_bluff.cpp b/src/server/scripts/Kalimdor/thunder_bluff.cpp
index 5aa55ddea66..b8b05b9692f 100644
--- a/src/server/scripts/Kalimdor/thunder_bluff.cpp
+++ b/src/server/scripts/Kalimdor/thunder_bluff.cpp
@@ -23,17 +23,22 @@ SDComment: Quest support: 925
SDCategory: Thunder Bluff
EndScriptData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*#####
# npc_cairne_bloodhoof
######*/
-#define SPELL_BERSERKER_CHARGE 16636
-#define SPELL_CLEAVE 16044
-#define SPELL_MORTAL_STRIKE 16856
-#define SPELL_THUNDERCLAP 23931
-#define SPELL_UPPERCUT 22916
+enum CairneBloodhoof
+{
+ SPELL_BERSERKER_CHARGE = 16636,
+ SPELL_CLEAVE = 16044,
+ SPELL_MORTAL_STRIKE = 16856,
+ SPELL_THUNDERCLAP = 23931,
+ SPELL_UPPERCUT = 22916
+};
#define GOSSIP_HCB "I know this is rather silly but a young ward who is a bit shy would like your hoofprint."
//TODO: verify abilities/timers
@@ -75,19 +80,19 @@ public:
{
npc_cairne_bloodhoofAI(Creature* creature) : ScriptedAI(creature) {}
- uint32 BerserkerCharge_Timer;
- uint32 Cleave_Timer;
- uint32 MortalStrike_Timer;
- uint32 Thunderclap_Timer;
- uint32 Uppercut_Timer;
+ uint32 BerserkerChargeTimer;
+ uint32 CleaveTimer;
+ uint32 MortalStrikeTimer;
+ uint32 ThunderclapTimer;
+ uint32 UppercutTimer;
void Reset()
{
- BerserkerCharge_Timer = 30000;
- Cleave_Timer = 5000;
- MortalStrike_Timer = 10000;
- Thunderclap_Timer = 15000;
- Uppercut_Timer = 10000;
+ BerserkerChargeTimer = 30000;
+ CleaveTimer = 5000;
+ MortalStrikeTimer = 10000;
+ ThunderclapTimer = 15000;
+ UppercutTimer = 10000;
}
void EnterCombat(Unit* /*who*/) {}
@@ -97,37 +102,37 @@ public:
if (!UpdateVictim())
return;
- if (BerserkerCharge_Timer <= diff)
+ if (BerserkerChargeTimer <= diff)
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
if (target)
DoCast(target, SPELL_BERSERKER_CHARGE);
- BerserkerCharge_Timer = 25000;
- } else BerserkerCharge_Timer -= diff;
+ BerserkerChargeTimer = 25000;
+ } else BerserkerChargeTimer -= diff;
- if (Uppercut_Timer <= diff)
+ if (UppercutTimer <= diff)
{
DoCast(me->getVictim(), SPELL_UPPERCUT);
- Uppercut_Timer = 20000;
- } else Uppercut_Timer -= diff;
+ UppercutTimer = 20000;
+ } else UppercutTimer -= diff;
- if (Thunderclap_Timer <= diff)
+ if (ThunderclapTimer <= diff)
{
DoCast(me->getVictim(), SPELL_THUNDERCLAP);
- Thunderclap_Timer = 15000;
- } else Thunderclap_Timer -= diff;
+ ThunderclapTimer = 15000;
+ } else ThunderclapTimer -= diff;
- if (MortalStrike_Timer <= diff)
+ if (MortalStrikeTimer <= diff)
{
DoCast(me->getVictim(), SPELL_MORTAL_STRIKE);
- MortalStrike_Timer = 15000;
- } else MortalStrike_Timer -= diff;
+ MortalStrikeTimer = 15000;
+ } else MortalStrikeTimer -= diff;
- if (Cleave_Timer <= diff)
+ if (CleaveTimer <= diff)
{
DoCast(me->getVictim(), SPELL_CLEAVE);
- Cleave_Timer = 7000;
- } else Cleave_Timer -= diff;
+ CleaveTimer = 7000;
+ } else CleaveTimer -= diff;
DoMeleeAttackIfReady();
}
diff --git a/src/server/scripts/Kalimdor/ungoro_crater.cpp b/src/server/scripts/Kalimdor/ungoro_crater.cpp
index 232dba404e0..786d2fc0cd3 100644
--- a/src/server/scripts/Kalimdor/ungoro_crater.cpp
+++ b/src/server/scripts/Kalimdor/ungoro_crater.cpp
@@ -28,11 +28,12 @@ npc_a-me
npc_ringo
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
-enum eAMeData
+enum AmeData
{
SAY_READY = -1000517,
SAY_AGGRO1 = -1000518,
@@ -76,41 +77,40 @@ public:
{
npc_ameAI(Creature* creature) : npc_escortAI(creature) {}
- uint32 DEMORALIZINGSHOUT_Timer;
+ uint32 DemoralizingShoutTimer;
void WaypointReached(uint32 waypointId)
{
- Player* player = GetPlayerForEscort();
- if (!player)
- return;
-
- switch (waypointId)
+ if (Player* player = GetPlayerForEscort())
{
- case 19:
- me->SummonCreature(ENTRY_STOMPER, -6391.69f, -1730.49f, -272.83f, 4.96f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_AGGRO1, me, player);
- break;
- case 28:
- DoScriptText(SAY_SEARCH, me, player);
- break;
- case 38:
- me->SummonCreature(ENTRY_TARLORD, -6370.75f, -1382.84f, -270.51f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_AGGRO2, me, player);
- break;
- case 49:
- me->SummonCreature(ENTRY_TARLORD1, -6324.44f, -1181.05f, -270.17f, 4.34f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- DoScriptText(SAY_AGGRO3, me, player);
- break;
- case 55:
- DoScriptText(SAY_FINISH, me, player);
- player->GroupEventHappens(QUEST_CHASING_AME, me);
- break;
+ switch (waypointId)
+ {
+ case 19:
+ me->SummonCreature(ENTRY_STOMPER, -6391.69f, -1730.49f, -272.83f, 4.96f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_AGGRO1, me, player);
+ break;
+ case 28:
+ DoScriptText(SAY_SEARCH, me, player);
+ break;
+ case 38:
+ me->SummonCreature(ENTRY_TARLORD, -6370.75f, -1382.84f, -270.51f, 6.06f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_AGGRO2, me, player);
+ break;
+ case 49:
+ me->SummonCreature(ENTRY_TARLORD1, -6324.44f, -1181.05f, -270.17f, 4.34f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ DoScriptText(SAY_AGGRO3, me, player);
+ break;
+ case 55:
+ DoScriptText(SAY_FINISH, me, player);
+ player->GroupEventHappens(QUEST_CHASING_AME, me);
+ break;
+ }
}
}
void Reset()
{
- DEMORALIZINGSHOUT_Timer = 5000;
+ DemoralizingShoutTimer = 5000;
}
void JustSummoned(Creature* summoned)
@@ -130,11 +130,11 @@ public:
if (!UpdateVictim())
return;
- if (DEMORALIZINGSHOUT_Timer <= diff)
+ if (DemoralizingShoutTimer <= diff)
{
DoCast(me->getVictim(), SPELL_DEMORALIZINGSHOUT);
- DEMORALIZINGSHOUT_Timer = 70000;
- } else DEMORALIZINGSHOUT_Timer -= diff;
+ DemoralizingShoutTimer = 70000;
+ } else DemoralizingShoutTimer -= diff;
}
};
};
@@ -143,7 +143,7 @@ public:
# npc_ringo
####*/
-enum eRingo
+enum Ringo
{
SAY_RIN_START_1 = -1000416,
SAY_RIN_START_2 = -1000417,
@@ -201,17 +201,17 @@ public:
{
npc_ringoAI(Creature* creature) : FollowerAI(creature) { }
- uint32 m_uiFaintTimer;
- uint32 m_uiEndEventProgress;
- uint32 m_uiEndEventTimer;
+ uint32 FaintTimer;
+ uint32 EndEventProgress;
+ uint32 EndEventTimer;
uint64 SpraggleGUID;
void Reset()
{
- m_uiFaintTimer = urand(30000, 60000);
- m_uiEndEventProgress = 0;
- m_uiEndEventTimer = 1000;
+ FaintTimer = urand(30000, 60000);
+ EndEventProgress = 0;
+ EndEventTimer = 1000;
SpraggleGUID = 0;
}
@@ -266,13 +266,13 @@ public:
SetFollowPaused(false);
}
- void UpdateFollowerAI(const uint32 uiDiff)
+ void UpdateFollowerAI(const uint32 Diff)
{
if (!UpdateVictim())
{
if (HasFollowState(STATE_FOLLOW_POSTEVENT))
{
- if (m_uiEndEventTimer <= uiDiff)
+ if (EndEventTimer <= Diff)
{
Unit* pSpraggle = Unit::GetUnit(*me, SpraggleGUID);
if (!pSpraggle || !pSpraggle->isAlive())
@@ -281,64 +281,61 @@ public:
return;
}
- switch (m_uiEndEventProgress)
+ switch (EndEventProgress)
{
case 1:
DoScriptText(SAY_RIN_END_1, me);
- m_uiEndEventTimer = 3000;
+ EndEventTimer = 3000;
break;
case 2:
DoScriptText(SAY_SPR_END_2, pSpraggle);
- m_uiEndEventTimer = 5000;
+ EndEventTimer = 5000;
break;
case 3:
DoScriptText(SAY_RIN_END_3, me);
- m_uiEndEventTimer = 1000;
+ EndEventTimer = 1000;
break;
case 4:
DoScriptText(EMOTE_RIN_END_4, me);
SetFaint();
- m_uiEndEventTimer = 9000;
+ EndEventTimer = 9000;
break;
case 5:
DoScriptText(EMOTE_RIN_END_5, me);
ClearFaint();
- m_uiEndEventTimer = 1000;
+ EndEventTimer = 1000;
break;
case 6:
DoScriptText(SAY_RIN_END_6, me);
- m_uiEndEventTimer = 3000;
+ EndEventTimer = 3000;
break;
case 7:
DoScriptText(SAY_SPR_END_7, pSpraggle);
- m_uiEndEventTimer = 10000;
+ EndEventTimer = 10000;
break;
case 8:
DoScriptText(EMOTE_RIN_END_8, me);
- m_uiEndEventTimer = 5000;
+ EndEventTimer = 5000;
break;
case 9:
SetFollowComplete();
break;
}
- ++m_uiEndEventProgress;
+ ++EndEventProgress;
}
else
- m_uiEndEventTimer -= uiDiff;
+ EndEventTimer -= Diff;
}
- else if (HasFollowState(STATE_FOLLOW_INPROGRESS))
+ else if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !HasFollowState(STATE_FOLLOW_PAUSED))
{
- if (!HasFollowState(STATE_FOLLOW_PAUSED))
+ if (FaintTimer <= Diff)
{
- if (m_uiFaintTimer <= uiDiff)
- {
- SetFaint();
- m_uiFaintTimer = urand(60000, 120000);
- }
- else
- m_uiFaintTimer -= uiDiff;
+ SetFaint();
+ FaintTimer = urand(60000, 120000);
}
+ else
+ FaintTimer -= Diff;
}
return;
diff --git a/src/server/scripts/Kalimdor/winterspring.cpp b/src/server/scripts/Kalimdor/winterspring.cpp
index ab5e4c4023a..a02156ee110 100644
--- a/src/server/scripts/Kalimdor/winterspring.cpp
+++ b/src/server/scripts/Kalimdor/winterspring.cpp
@@ -29,7 +29,9 @@ npc_rivern_frostwind
npc_witch_doctor_mauari
EndContentData */
-#include "ScriptPCH.h"
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "ScriptedGossip.h"
/*######
## npc_lorax
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
index 661b3530bb8..2af73389ecb 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
@@ -1044,7 +1044,7 @@ class spell_algalon_phase_punch : public SpellScriptLoader
{
PrepareAuraScript(spell_algalon_phase_punch_AuraScript);
- void HandlePeriodic(AuraEffect const* aurEff)
+ void HandlePeriodic(AuraEffect const* /*aurEff*/)
{
PreventDefaultAction();
if (GetStackAmount() != 1)
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp
index 948ca58e446..58ba125b994 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp
@@ -27,12 +27,12 @@ enum Sara
YELL_SLAY = 3,
// Phase 1 spells
- SPELL_SARAS_BLESSING = 63745, // Target Self
- SPELL_SARAS_ANGER = 63147, // Target Entry 33136
- SPELL_SARAS_ANGER = 63744, // Target Entry 33136
- SPELL_SARAS_FEVOR = 63138, // Target Player
- SPELL_SARAS_FEVOR = 63747, // Target Player
- SPELL_SARAS_BLESSING = 63134, // Target Player
+ SPELL_SARAS_ANGER_1 = 63147, // Target Entry 33136
+ SPELL_SARAS_ANGER_2 = 63744, // Target Entry 33136
+ SPELL_SARAS_FEVOR_1 = 63138, // Target Player
+ SPELL_SARAS_FEVOR_2 = 63747, // Target Player
+ SPELL_SARAS_BLESSING_1 = 63134, // Target Player
+ SPELL_SARAS_BLESSING_2 = 63745, // Target Self
// Phase 2 spells
SPELL_PHYCHOSIS = 63795, // Target Self
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index 79c54880430..37a13388b5f 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -690,7 +690,8 @@ public:
{
AddWave();
bActive = false;
- uiActivationTimer = 5000;
+ // 1 minute waiting time after each boss fight
+ uiActivationTimer = (uiWaveCount == 6 || uiWaveCount == 12) ? 60000 : 5000;
} else uiActivationTimer -= diff;
}
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index 13190ed013f..36dcb53ad00 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -750,8 +750,26 @@ class spell_dk_death_coil : public SpellScriptLoader
}
}
+ SpellCastResult CheckCast()
+ {
+ Unit* caster = GetCaster();
+ if (Unit* target = GetExplTargetUnit())
+ {
+ if (!caster->IsFriendlyTo(target) && !caster->isInFront(target))
+ return SPELL_FAILED_UNIT_NOT_INFRONT;
+
+ if (target->IsFriendlyTo(caster) && target->GetCreatureType() != CREATURE_TYPE_UNDEAD)
+ return SPELL_FAILED_BAD_TARGETS;
+ }
+ else
+ return SPELL_FAILED_BAD_TARGETS;
+
+ return SPELL_CAST_OK;
+ }
+
void Register()
{
+ OnCheckCast += SpellCheckCastFn(spell_dk_death_coil_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_dk_death_coil_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 501c7c47676..0c879cfb029 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1513,7 +1513,7 @@ class spell_gen_luck_of_the_draw : public SpellScriptLoader
if (group->isLFGGroup())
if (uint32 dungeonId = sLFGMgr->GetDungeon(group->GetGUID(), true))
if (LFGDungeonEntry const* dungeon = sLFGDungeonStore.LookupEntry(dungeonId))
- if (uint32(dungeon->map) == map->GetId() && dungeon->difficulty == map->GetDifficulty())
+ if (uint32(dungeon->map) == map->GetId() && dungeon->difficulty == uint32(map->GetDifficulty()))
if (randomDungeon && randomDungeon->type == LFG_TYPE_RANDOM)
return; // in correct dungeon
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 045ae5a6f9a..09ff5935b6e 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -1748,8 +1748,16 @@ class spell_item_rocket_boots : public SpellScriptLoader
caster->CastSpell(caster, SPELL_ROCKET_BOOTS_PROC, true, NULL);
}
+ SpellCastResult CheckCast()
+ {
+ if (GetCaster()->IsInWater())
+ return SPELL_FAILED_ONLY_ABOVEWATER;
+ return SPELL_CAST_OK;
+ }
+
void Register()
{
+ OnCheckCast += SpellCheckCastFn(spell_item_rocket_boots_SpellScript::CheckCast);
OnEffectHitTarget += SpellEffectFn(spell_item_rocket_boots_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
}
};
@@ -2036,7 +2044,7 @@ public:
void HandleDummy(SpellEffIndex /*effIndex*/)
{
- if (Unit* target = GetHitUnit())
+ if (GetHitUnit())
GetCaster()->CastSpell(GetCaster(),SPELL_FORCE_CAST_SUMMON_GNOME_SOUL);
}
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp
index cf8cae68c58..4baa1eb3735 100644
--- a/src/server/scripts/Spells/spell_paladin.cpp
+++ b/src/server/scripts/Spells/spell_paladin.cpp
@@ -289,8 +289,18 @@ class spell_pal_holy_shock : public SpellScriptLoader
{
Player* caster = GetCaster()->ToPlayer();
if (Unit* target = GetExplTargetUnit())
- if (!caster->IsFriendlyTo(target) && !caster->IsValidAttackTarget(target))
- return SPELL_FAILED_BAD_TARGETS;
+ {
+ if (!caster->IsFriendlyTo(target))
+ {
+ if (!caster->IsValidAttackTarget(target))
+ return SPELL_FAILED_BAD_TARGETS;
+
+ if (!caster->isInFront(target))
+ return SPELL_FAILED_UNIT_NOT_INFRONT;
+ }
+ }
+ else
+ return SPELL_FAILED_BAD_TARGETS;
return SPELL_CAST_OK;
}
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index f50dbb7773d..c9c036d5329 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -213,7 +213,7 @@ class spell_sha_earthbind_totem : public SpellScriptLoader
return true;
}
- void HandleEffectPeriodic(AuraEffect const* aurEff)
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
{
if (!GetCaster())
return;
diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp
index 194753d6e90..0ba5c866d63 100644
--- a/src/server/scripts/Spells/spell_warrior.cpp
+++ b/src/server/scripts/Spells/spell_warrior.cpp
@@ -177,27 +177,27 @@ class spell_warr_deep_wounds : public SpellScriptLoader
void HandleDummy(SpellEffIndex /* effIndex */)
{
int32 damage = GetEffectValue();
+ Unit* caster = GetCaster();
if (Unit* target = GetHitUnit())
- if (Unit* caster = GetCaster())
- {
- // apply percent damage mods
- damage = caster->SpellDamageBonusDone(target, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
-
- ApplyPctN(damage, 16 * sSpellMgr->GetSpellRank(GetSpellInfo()->Id));
-
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_DEEP_WOUNDS_RANK_PERIODIC);
- uint32 ticks = spellInfo->GetDuration() / spellInfo->Effects[EFFECT_0].Amplitude;
+ {
+ // apply percent damage mods
+ damage = caster->SpellDamageBonusDone(target, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
- // Add remaining ticks to damage done
- if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_DEEP_WOUNDS_RANK_PERIODIC, EFFECT_0, caster->GetGUID()))
- damage += aurEff->GetAmount() * (ticks - aurEff->GetTickNumber());
+ ApplyPctN(damage, 16 * sSpellMgr->GetSpellRank(GetSpellInfo()->Id));
+
+ damage = target->SpellDamageBonusTaken(caster, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
+
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_DEEP_WOUNDS_RANK_PERIODIC);
+ uint32 ticks = spellInfo->GetDuration() / spellInfo->Effects[EFFECT_0].Amplitude;
- damage = damage / ticks;
+ // Add remaining ticks to damage done
+ if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_DEEP_WOUNDS_RANK_PERIODIC, EFFECT_0, caster->GetGUID()))
+ damage += aurEff->GetAmount() * (ticks - aurEff->GetTickNumber());
- damage = target->SpellDamageBonusTaken(caster, GetSpellInfo(), damage, SPELL_DIRECT_DAMAGE);
+ damage = damage / ticks;
- caster->CastCustomSpell(target, SPELL_DEEP_WOUNDS_RANK_PERIODIC, &damage, NULL, NULL, true);
- }
+ caster->CastCustomSpell(target, SPELL_DEEP_WOUNDS_RANK_PERIODIC, &damage, NULL, NULL, true);
+ }
}
void Register()
diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp
index cf2f2188a70..1505f2c2cee 100644
--- a/src/tools/map_extractor/System.cpp
+++ b/src/tools/map_extractor/System.cpp
@@ -259,15 +259,15 @@ void ReadLiquidTypeTableDBC()
exit(1);
}
- size_t LiqType_count = dbc.getRecordCount();
- size_t LiqType_maxid = dbc.getMaxId();
- LiqType = new uint16[LiqType_maxid + 1];
- memset(LiqType, 0xff, (LiqType_maxid + 1) * sizeof(uint16));
+ size_t liqTypeCount = dbc.getRecordCount();
+ size_t liqTypeMaxId = dbc.getMaxId();
+ LiqType = new uint16[liqTypeMaxId + 1];
+ memset(LiqType, 0xff, (liqTypeMaxId + 1) * sizeof(uint16));
- for(uint32 x = 0; x < LiqType_count; ++x)
+ for(uint32 x = 0; x < liqTypeCount; ++x)
LiqType[dbc.getRecord(x).getUInt(0)] = dbc.getRecord(x).getUInt(3);
- printf("Done! (%u LiqTypes loaded)\n", LiqType_count);
+ printf("Done! (%u LiqTypes loaded)\n", liqTypeCount);
}
//
@@ -364,7 +364,7 @@ uint8 liquid_flags[ADT_CELLS_PER_GRID][ADT_CELLS_PER_GRID];
bool liquid_show[ADT_GRID_SIZE][ADT_GRID_SIZE];
float liquid_height[ADT_GRID_SIZE+1][ADT_GRID_SIZE+1];
-bool ConvertADT(char *filename, char *filename2, int cell_y, int cell_x, uint32 build)
+bool ConvertADT(char *filename, char *filename2, int /*cell_y*/, int /*cell_x*/, uint32 build)
{
ADT_file adt;
diff --git a/src/tools/map_extractor/mpq_libmpq04.h b/src/tools/map_extractor/mpq_libmpq04.h
index 1f3b259bbfc..89f715e9e87 100644
--- a/src/tools/map_extractor/mpq_libmpq04.h
+++ b/src/tools/map_extractor/mpq_libmpq04.h
@@ -60,8 +60,8 @@ class MPQFile
libmpq__off_t pointer,size;
// disable copying
- MPQFile(const MPQFile &f) {}
- void operator=(const MPQFile &f) {}
+ MPQFile(const MPQFile& /*f*/) {}
+ void operator=(const MPQFile& /*f*/) {}
public:
MPQFile(const char* filename); // filenames are not case sensitive