[12656m] Updated some enums and structures. Thanks R2/TC

This commit is contained in:
Antz 2020-02-17 21:30:38 +00:00
parent c8194124df
commit 93a3a9214b
No known key found for this signature in database
GPG key ID: 0DF907270598C85F
10 changed files with 120 additions and 27 deletions

View file

@ -539,8 +539,8 @@ bool VehicleInfo::IsUsableSeatForPlayer(uint32 seatFlags, uint32 seatFlagsB) con
return seatFlags & SEAT_FLAG_CAN_EXIT || return seatFlags & SEAT_FLAG_CAN_EXIT ||
seatFlags & SEAT_FLAG_UNCONTROLLED || seatFlags & SEAT_FLAG_UNCONTROLLED ||
seatFlagsB & seatFlagsB &
(SEAT_FLAG_B_USABLE_FORCED | SEAT_FLAG_B_USABLE_FORCED_2 | (VEHICLE_SEAT_FLAG_B_USABLE_FORCED | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 |
SEAT_FLAG_B_USABLE_FORCED_3 | SEAT_FLAG_B_USABLE_FORCED_4); VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3 | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4);
} }
/// Add control and such modifiers to a passenger if required /// Add control and such modifiers to a passenger if required

View file

@ -37,11 +37,6 @@
// Server side limitation. Base at used code requirements. // Server side limitation. Base at used code requirements.
// also see MAX_LEVEL and GT_MAX_LEVEL define // also see MAX_LEVEL and GT_MAX_LEVEL define
#define STRONG_MAX_LEVEL 255 #define STRONG_MAX_LEVEL 255
enum MountFlags
{
MOUNT_FLAG_CAN_PITCH = 0x4,
MOUNT_FLAG_CAN_SWIM = 0x8
};
enum BattleGroundBracketId // bracketId for level ranges enum BattleGroundBracketId // bracketId for level ranges
{ {
@ -70,7 +65,7 @@ enum AchievementFlags
{ {
ACHIEVEMENT_FLAG_NONE = 0x00000000, ACHIEVEMENT_FLAG_NONE = 0x00000000,
ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // ACHIEVEMENT_FLAG_STATISTIC Just count statistic (never stop and complete) ACHIEVEMENT_FLAG_COUNTER = 0x00000001, // ACHIEVEMENT_FLAG_STATISTIC Just count statistic (never stop and complete)
ACHIEVEMENT_FLAG_UNK2 = 0x00000002, // ACHIEVEMENT_FLAG_HIDDEN not used ACHIEVEMENT_FLAG_HIDDEN = 0x00000002, // ACHIEVEMENT_FLAG_HIDDEN Not show in client
ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // ACHIEVEMENT_FLAG_HIDDEN_TILL_AWARDED Store only max value? used only in "Reach level xx" ACHIEVEMENT_FLAG_STORE_MAX_VALUE = 0x00000004, // ACHIEVEMENT_FLAG_HIDDEN_TILL_AWARDED Store only max value? used only in "Reach level xx"
ACHIEVEMENT_FLAG_SUMM = 0x00000008, // ACHIEVEMENT_FLAG_CUMULATIVE Use summ criteria value from all requirements (and calculate max value) ACHIEVEMENT_FLAG_SUMM = 0x00000008, // ACHIEVEMENT_FLAG_CUMULATIVE Use summ criteria value from all requirements (and calculate max value)
ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // ACHIEVEMENT_FLAG_DISPLAY_HIGHEST Show max criteria (and calculate max value ??) ACHIEVEMENT_FLAG_MAX_USED = 0x00000010, // ACHIEVEMENT_FLAG_DISPLAY_HIGHEST Show max criteria (and calculate max value ??)
@ -325,7 +320,7 @@ enum Difficulty
DUNGEON_DIFFICULTY_NORMAL = 0, DUNGEON_DIFFICULTY_NORMAL = 0,
DUNGEON_DIFFICULTY_HEROIC = 1, DUNGEON_DIFFICULTY_HEROIC = 1,
// DUNGEON_DIFFICULTY_EPIC = 2, // not used, but exists DUNGEON_DIFFICULTY_CHALLENGE = 2, // 5.x Challenge mode dungeons
RAID_DIFFICULTY_10MAN_NORMAL = 0, RAID_DIFFICULTY_10MAN_NORMAL = 0,
RAID_DIFFICULTY_25MAN_NORMAL = 1, RAID_DIFFICULTY_25MAN_NORMAL = 1,
@ -333,7 +328,7 @@ enum Difficulty
RAID_DIFFICULTY_25MAN_HEROIC = 3, RAID_DIFFICULTY_25MAN_HEROIC = 3,
}; };
#define MAX_DUNGEON_DIFFICULTY 2 #define MAX_DUNGEON_DIFFICULTY 3
#define MAX_RAID_DIFFICULTY 4 #define MAX_RAID_DIFFICULTY 4
#define MAX_DIFFICULTY 4 #define MAX_DIFFICULTY 4
@ -343,7 +338,8 @@ enum SpawnMask
SPAWNMASK_DUNGEON_NORMAL = (1 << DUNGEON_DIFFICULTY_NORMAL), SPAWNMASK_DUNGEON_NORMAL = (1 << DUNGEON_DIFFICULTY_NORMAL),
SPAWNMASK_DUNGEON_HEROIC = (1 << DUNGEON_DIFFICULTY_HEROIC), SPAWNMASK_DUNGEON_HEROIC = (1 << DUNGEON_DIFFICULTY_HEROIC),
SPAWNMASK_DUNGEON_ALL = (SPAWNMASK_DUNGEON_NORMAL | SPAWNMASK_DUNGEON_HEROIC), SPAWNMASK_DUNGEON_CHALLENGE = (1 << DUNGEON_DIFFICULTY_CHALLENGE),
SPAWNMASK_DUNGEON_ALL = (SPAWNMASK_DUNGEON_NORMAL | SPAWNMASK_DUNGEON_HEROIC | SPAWNMASK_DUNGEON_CHALLENGE),
SPAWNMASK_RAID_10MAN_NORMAL = (1 << RAID_DIFFICULTY_10MAN_NORMAL), SPAWNMASK_RAID_10MAN_NORMAL = (1 << RAID_DIFFICULTY_10MAN_NORMAL),
SPAWNMASK_RAID_25MAN_NORMAL = (1 << RAID_DIFFICULTY_25MAN_NORMAL), SPAWNMASK_RAID_25MAN_NORMAL = (1 << RAID_DIFFICULTY_25MAN_NORMAL),
@ -377,7 +373,22 @@ enum MapTypes // Lua_IsInInstance
MAP_INSTANCE = 1, // party MAP_INSTANCE = 1, // party
MAP_RAID = 2, // raid MAP_RAID = 2, // raid
MAP_BATTLEGROUND = 3, // pvp MAP_BATTLEGROUND = 3, // pvp
MAP_ARENA = 4 // arena MAP_ARENA = 4, // arena
MAP_SCENARIO = 5 // scenario
};
enum MapFlags // Map flags (need more research)
{
MAP_FLAG_NONE = 0x00000000, // none specific
MAP_FLAG_INSTANCEABLE = 0x00000001, // or possible splittable for continent maps
MAP_FLAG_DEVELOPMENT = 0x00000002, // testing or development maps only
MAP_FLAG_UNK3 = 0x00000004, //
MAP_FLAG_UNK4 = 0x00000008, //
MAP_FLAG_UNK5 = 0x00000010, //
MAP_FLAG_UNK6 = 0x00000020, //
MAP_FLAG_UNK7 = 0x00000040, //
MAP_FLAG_UNK8 = 0x00000080, //
MAP_FLAG_VARIABLE_DIFFICULTY = 0x00000100, // maps, where has changeable difficulty
}; };
enum AbilytyLearnType enum AbilytyLearnType
@ -441,6 +452,12 @@ enum ItemLimitCategory
ITEM_LIMIT_CATEGORY_MANA_GEM = 4, ITEM_LIMIT_CATEGORY_MANA_GEM = 4,
}; };
enum MountFlags
{
MOUNT_FLAG_CAN_PITCH = 0x4, // client checks MOVEMENTFLAG2_FULL_SPEED_PITCHING
MOUNT_FLAG_CAN_SWIM = 0x8, // client checks MOVEMENTFLAG_SWIMMING
};
enum TalentTreeRole enum TalentTreeRole
{ {
TALENT_ROLE_TANK = 0x2, TALENT_ROLE_TANK = 0x2,
@ -616,6 +633,7 @@ enum VehicleFlags
enum VehicleSeatFlags enum VehicleSeatFlags
{ {
SEAT_FLAG_NONE = 0x00000000, //
SEAT_FLAG_UNK1 = 0x00000001, // "HasLowerAnimForEnter" SEAT_FLAG_UNK1 = 0x00000001, // "HasLowerAnimForEnter"
SEAT_FLAG_UNK2 = 0x00000002, // "HasLowerAnimForRide" SEAT_FLAG_UNK2 = 0x00000002, // "HasLowerAnimForRide"
SEAT_FLAG_UNK3 = 0x00000004, SEAT_FLAG_UNK3 = 0x00000004,
@ -626,12 +644,12 @@ enum VehicleSeatFlags
SEAT_FLAG_UNK8 = 0x00000080, SEAT_FLAG_UNK8 = 0x00000080,
SEAT_FLAG_UNK9 = 0x00000100, SEAT_FLAG_UNK9 = 0x00000100,
SEAT_FLAG_HIDE_PASSENGER = 0x00000200, // Passenger is hidden SEAT_FLAG_HIDE_PASSENGER = 0x00000200, // Passenger is hidden
SEAT_FLAG_UNK10 = 0x00000400, // "AllowsTurning" SEAT_FLAG_FREE_ACTION = 0x00000400, // "AllowsTurning"
SEAT_FLAG_CAN_CONTROL = 0x00000800, // Lua_UnitInVehicleControlSeat SEAT_FLAG_CAN_CONTROL = 0x00000800, // Lua_UnitInVehicleControlSeat
SEAT_FLAG_UNK11 = 0x00001000, // "Can Cast Mount Spell" SEAT_FLAG_UNK11 = 0x00001000, // "Can Cast Mount Spell"
SEAT_FLAG_UNCONTROLLED = 0x00002000, // "Uncontrolled" SEAT_FLAG_UNCONTROLLED = 0x00002000, // "Uncontrolled"
SEAT_FLAG_CAN_ATTACK = 0x00004000, // Can attack, cast spells and use items from vehicle? SEAT_FLAG_CAN_ATTACK = 0x00004000, // Can attack, cast spells and use items from vehicle?
SEAT_FLAG_UNK13 = 0x00008000, // "ShouldUseVehicleSeatExitAnimationOnForcedExit" SEAT_FLAG_UNATTACKABLE = 0x00008000, // "ShouldUseVehicleSeatExitAnimationOnForcedExit"
SEAT_FLAG_UNK14 = 0x00010000, SEAT_FLAG_UNK14 = 0x00010000,
SEAT_FLAG_UNK15 = 0x00020000, SEAT_FLAG_UNK15 = 0x00020000,
SEAT_FLAG_UNK16 = 0x00040000, // "HasVehicleExitAnimForVoluntaryExit" SEAT_FLAG_UNK16 = 0x00040000, // "HasVehicleExitAnimForVoluntaryExit"
@ -652,14 +670,26 @@ enum VehicleSeatFlags
enum VehicleSeatFlagsB enum VehicleSeatFlagsB
{ {
SEAT_FLAG_B_USABLE_FORCED = 0x00000002, VEHICLE_SEAT_FLAG_B_NONE = 0x00000000,
SEAT_FLAG_B_TARGETS_IN_RAIDUI = 0x00000008, // Lua_UnitTargetsVehicleInRaidUI VEHICLE_SEAT_FLAG_B_UNK1 = 0x00000001,
SEAT_FLAG_B_EJECTABLE = 0x00000020, // Ejectable VEHICLE_SEAT_FLAG_B_USABLE_FORCED = 0x00000002,
SEAT_FLAG_B_USABLE_FORCED_2 = 0x00000040, VEHICLE_SEAT_FLAG_B_UNK2 = 0x00000004,
SEAT_FLAG_B_USABLE_FORCED_3 = 0x00000100, VEHICLE_SEAT_FLAG_B_TARGETS_IN_RAIDUI = 0x00000008, // Lua_UnitTargetsVehicleInRaidUI
SEAT_FLAG_B_USABLE_FORCED_4 = 0x02000000, VEHICLE_SEAT_FLAG_B_UNK3 = 0x00000010,
SEAT_FLAG_B_CAN_SWITCH = 0x04000000, VEHICLE_SEAT_FLAG_B_EJECTABLE = 0x00000020, // ejectable
SEAT_FLAG_B_PLAYERFRAME_UI = 0x80000000 // Lua_UnitHasVehiclePlayerFrameUI VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 = 0x00000040,
VEHICLE_SEAT_FLAG_B_UNK6 = 0x00000080,
VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3 = 0x00000100,
VEHICLE_SEAT_FLAG_B_EJECTABLE_FORCED = 0x00200000, // seats for forced eject? 27 seats at 3.3.5a
VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4 = 0x02000000,
VEHICLE_SEAT_FLAG_B_CANSWITCH = 0x04000000, // can switch seats
VEHICLE_SEAT_FLAG_B_VEHICLE_PLAYERFRAME_UI = 0x80000000, // Lua_UnitHasVehiclePlayerFrameUI - actually checked for flagsb &~ 0x80000000
};
enum MapDifficultyFlags
{
MAP_DIFFICULTY_FLAG_NONE = 0x00000001, // Not used in 3.3.5
MAP_DIFFICULTY_FLAG_CONDITION = 0x00000002, // This map difficulty has condition
}; };
#endif #endif

View file

@ -219,6 +219,13 @@ struct AchievementCriteriaEntry
uint32 castCount; // 4 uint32 castCount; // 4
} cast_spell; } cast_spell;
// ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE = 30
struct
{
uint32 captureID; // 3
uint32 captureCount; // 4
} objective_capture;
// ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31 // ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA = 31
struct struct
{ {
@ -230,6 +237,7 @@ struct AchievementCriteriaEntry
struct struct
{ {
uint32 mapID; // 3 Reference to Map.dbc uint32 mapID; // 3 Reference to Map.dbc
uint32 count; // 4
} win_arena; } win_arena;
// ACHIEVEMENT_CRITERIA_TYPE_PLAY_ARENA = 33 // ACHIEVEMENT_CRITERIA_TYPE_PLAY_ARENA = 33
@ -1399,9 +1407,10 @@ struct MapEntry
// Helpers // Helpers
uint32 Expansion() const { return addon; } uint32 Expansion() const { return addon; }
bool IsDungeon() const { return map_type == MAP_INSTANCE || map_type == MAP_RAID; } bool IsDungeon() const { return map_type == MAP_INSTANCE || map_type == MAP_RAID || map_type == MAP_SCENARIO; }
bool IsNonRaidDungeon() const { return map_type == MAP_INSTANCE; } bool IsNonRaidDungeon() const { return map_type == MAP_INSTANCE || map_type == MAP_SCENARIO; }
bool Instanceable() const { return map_type == MAP_INSTANCE || map_type == MAP_RAID || map_type == MAP_BATTLEGROUND || map_type == MAP_ARENA; } bool Instanceable() const { return map_type == MAP_INSTANCE || map_type == MAP_RAID || map_type == MAP_BATTLEGROUND || map_type == MAP_ARENA || map_type == MAP_SCENARIO; }
bool IsScenario() const { return map_type == MAP_SCENARIO; }
bool IsRaid() const { return map_type == MAP_RAID; } bool IsRaid() const { return map_type == MAP_RAID; }
bool IsBattleGround() const { return map_type == MAP_BATTLEGROUND; } bool IsBattleGround() const { return map_type == MAP_BATTLEGROUND; }
bool IsBattleArena() const { return map_type == MAP_ARENA; } bool IsBattleArena() const { return map_type == MAP_ARENA; }
@ -1428,6 +1437,13 @@ struct MapEntry
{ {
return MapID == 0 || MapID == 1 || MapID == 530 || MapID == 571 || MapID == 870; return MapID == 0 || MapID == 1 || MapID == 530 || MapID == 571 || MapID == 870;
} }
bool IsTransport() const
{
if (IsContinent())
return false;
return map_type == MAP_COMMON && mapFlags == MAP_FLAG_INSTANCEABLE;
}
}; };
struct MapDifficultyEntry struct MapDifficultyEntry
@ -2478,6 +2494,15 @@ struct VehicleSeatEntry
//uint32 unk[6]; // 58-63 //uint32 unk[6]; // 58-63
//uint32 unk2; // 64 4.0.0 //uint32 unk2; // 64 4.0.0
//uint32 unk3; // 65 4.0.1 //uint32 unk3; // 65 4.0.1
bool IsUsable() const { return
(m_flags & SEAT_FLAG_CAN_EXIT) ||
(m_flags & SEAT_FLAG_CAN_CONTROL) ||
(m_flags & SEAT_FLAG_UNCONTROLLED) ||
(m_flagsB & VEHICLE_SEAT_FLAG_B_USABLE_FORCED) ||
(m_flagsB & VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2) ||
(m_flagsB & VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3) ||
(m_flagsB & VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4); }
}; };
struct WMOAreaTableEntry struct WMOAreaTableEntry

View file

@ -1122,7 +1122,9 @@ void WorldSession::ReadAddonsInfo(ByteBuffer &data)
addonInfo >> unk2; addonInfo >> unk2;
if (addonInfo.rpos() != addonInfo.size()) if (addonInfo.rpos() != addonInfo.size())
{
DEBUG_LOG("packet under read!"); DEBUG_LOG("packet under read!");
}
} }
else else
sLog.outError("Addon packet uncompress error!"); sLog.outError("Addon packet uncompress error!");

View file

@ -610,6 +610,15 @@ void AchievementMgr::LoadFromDB(QueryResult* achievementResult, QueryResult* cri
progress.timedCriteriaFailed = false; progress.timedCriteriaFailed = false;
AchievementEntry const* achievement = sAchievementStore.LookupEntry(criteria->referredAchievement); AchievementEntry const* achievement = sAchievementStore.LookupEntry(criteria->referredAchievement);
if (!achievement)
{
// we will remove nonexistent referred achievement for all characters
sLog.outError("Nonexistent achievement criteria %u (referred achievement %u) data removed from table `character_achievement_progress`.",id, criteria->referredAchievement);
CharacterDatabase.PExecute("DELETE FROM character_achievement_progress WHERE criteria = %u",id);
continue;
}
// Checked in LoadAchievementCriteriaList // Checked in LoadAchievementCriteriaList
// A failed achievement will be removed on next tick - TODO: Possible that timer 2 is reseted // A failed achievement will be removed on next tick - TODO: Possible that timer 2 is reseted
@ -650,6 +659,10 @@ void AchievementMgr::SendAchievementEarned(AchievementEntry const* achievement)
DEBUG_FILTER_LOG(LOG_FILTER_ACHIEVEMENT_UPDATES, "AchievementMgr::SendAchievementEarned(%u)", achievement->ID); DEBUG_FILTER_LOG(LOG_FILTER_ACHIEVEMENT_UPDATES, "AchievementMgr::SendAchievementEarned(%u)", achievement->ID);
// Not broadcast a hidden achievement
if(achievement->flags & ACHIEVEMENT_FLAG_HIDDEN)
return;
if (Guild* guild = sGuildMgr.GetGuildById(GetPlayer()->GetGuildId())) if (Guild* guild = sGuildMgr.GetGuildById(GetPlayer()->GetGuildId()))
{ {
MaNGOS::AchievementChatBuilder say_builder(*GetPlayer(), CHAT_MSG_GUILD_ACHIEVEMENT, LANG_ACHIEVEMENT_EARNED, achievement->ID); MaNGOS::AchievementChatBuilder say_builder(*GetPlayer(), CHAT_MSG_GUILD_ACHIEVEMENT, LANG_ACHIEVEMENT_EARNED, achievement->ID);
@ -2680,6 +2693,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaRequirements()
default: default:
continue; continue;
} }
break;
} }
case ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING: case ACHIEVEMENT_CRITERIA_TYPE_FALL_WITHOUT_DYING:
break; // any cases break; // any cases

View file

@ -2197,7 +2197,9 @@ bool ChatHandler::isValidChatMessage(const char* message)
// check if every opened sequence was also closed properly // check if every opened sequence was also closed properly
if (validSequence != validSequenceIterator) if (validSequence != validSequenceIterator)
{
DEBUG_LOG("ChatHandler::isValidChatMessage EOF in active sequence"); DEBUG_LOG("ChatHandler::isValidChatMessage EOF in active sequence");
}
return validSequence == validSequenceIterator; return validSequence == validSequenceIterator;
} }

View file

@ -2014,8 +2014,10 @@ InstanceGroupBind* Group::BindToInstance(DungeonPersistentState* state, bool per
bind.state = state; bind.state = state;
bind.perm = permanent; bind.perm = permanent;
if (!load) if (!load)
{
DEBUG_LOG("Group::BindToInstance: Group (Id: %d) is now bound to map %d, instance %d, difficulty %d", DEBUG_LOG("Group::BindToInstance: Group (Id: %d) is now bound to map %d, instance %d, difficulty %d",
GetId(), state->GetMapId(), state->GetInstanceId(), state->GetDifficulty()); GetId(), state->GetMapId(), state->GetInstanceId(), state->GetDifficulty());
}
return &bind; return &bind;
} }
else else

View file

@ -1437,7 +1437,9 @@ void WorldSession::HandleTimeSyncResp(WorldPacket& recv_data)
DEBUG_LOG("WORLD: Received opcode CMSG_TIME_SYNC_RESP: counter %u, client ticks %u, time since last sync %u", counter, clientTicks, clientTicks - _player->m_timeSyncClient); DEBUG_LOG("WORLD: Received opcode CMSG_TIME_SYNC_RESP: counter %u, client ticks %u, time since last sync %u", counter, clientTicks, clientTicks - _player->m_timeSyncClient);
if (counter != _player->m_timeSyncCounter - 1) if (counter != _player->m_timeSyncCounter - 1)
{
DEBUG_LOG(" WORLD: Opcode CMSG_TIME_SYNC_RESP -- Wrong time sync counter from %s (cheater?)", _player->GetGuidStr().c_str()); DEBUG_LOG(" WORLD: Opcode CMSG_TIME_SYNC_RESP -- Wrong time sync counter from %s (cheater?)", _player->GetGuidStr().c_str());
}
uint32 ourTicks = clientTicks + (WorldTimer::getMSTime() - _player->m_timeSyncServer); uint32 ourTicks = clientTicks + (WorldTimer::getMSTime() - _player->m_timeSyncServer);

View file

@ -4697,18 +4697,26 @@ void Spell::EffectTriggerMissileSpell(SpellEffectEntry const* effect)
m_caster->GetMap()->ScriptsStart(DBS_ON_SPELL, m_spellInfo->Id, m_caster, unitTarget); m_caster->GetMap()->ScriptsStart(DBS_ON_SPELL, m_spellInfo->Id, m_caster, unitTarget);
} }
else else
{
sLog.outError("EffectTriggerMissileSpell of spell %u (eff: %u): triggering unknown spell id %u", sLog.outError("EffectTriggerMissileSpell of spell %u (eff: %u): triggering unknown spell id %u",
m_spellInfo->Id, effect->EffectIndex, triggered_spell_id); m_spellInfo->Id, effect->EffectIndex, triggered_spell_id);
}
return; return;
} }
if (m_CastItem) if (m_CastItem)
{
DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "WORLD: cast Item spellId - %i", spellInfo->Id); DEBUG_FILTER_LOG(LOG_FILTER_SPELL_CAST, "WORLD: cast Item spellId - %i", spellInfo->Id);
}
if (m_targets.m_targetMask & TARGET_FLAG_DEST_LOCATION) if (m_targets.m_targetMask & TARGET_FLAG_DEST_LOCATION)
{
m_caster->CastSpell(m_targets.m_destX, m_targets.m_destY, m_targets.m_destZ, spellInfo, true, m_CastItem, NULL, m_originalCasterGUID, m_spellInfo); m_caster->CastSpell(m_targets.m_destX, m_targets.m_destY, m_targets.m_destZ, spellInfo, true, m_CastItem, NULL, m_originalCasterGUID, m_spellInfo);
else if (unitTarget) }
else if (unitTarget)
{
m_caster->CastSpell(unitTarget, spellInfo, true, m_CastItem, NULL, m_originalCasterGUID, m_spellInfo); m_caster->CastSpell(unitTarget, spellInfo, true, m_CastItem, NULL, m_originalCasterGUID, m_spellInfo);
}
} }
void Spell::EffectJump(SpellEffectEntry const* effect) void Spell::EffectJump(SpellEffectEntry const* effect)
@ -5024,7 +5032,9 @@ void Spell::EffectUnlearnSpecialization(SpellEffectEntry const* effect)
_player->removeSpell(spellToUnlearn); _player->removeSpell(spellToUnlearn);
if (WorldObject const* caster = GetCastingObject()) if (WorldObject const* caster = GetCastingObject())
{
DEBUG_LOG("Spell: %s has unlearned spell %u at %s", _player->GetGuidStr().c_str(), spellToUnlearn, caster->GetGuidStr().c_str()); DEBUG_LOG("Spell: %s has unlearned spell %u at %s", _player->GetGuidStr().c_str(), spellToUnlearn, caster->GetGuidStr().c_str());
}
} }
void Spell::EffectPowerDrain(SpellEffectEntry const* effect) void Spell::EffectPowerDrain(SpellEffectEntry const* effect)
@ -6583,7 +6593,9 @@ void Spell::EffectLearnSpell(SpellEffectEntry const* effect)
player->learnSpell(spellToLearn, false); player->learnSpell(spellToLearn, false);
if (WorldObject const* caster = GetCastingObject()) if (WorldObject const* caster = GetCastingObject())
{
DEBUG_LOG("Spell: %s has learned spell %u from %s", player->GetGuidStr().c_str(), spellToLearn, caster->GetGuidStr().c_str()); DEBUG_LOG("Spell: %s has learned spell %u from %s", player->GetGuidStr().c_str(), spellToLearn, caster->GetGuidStr().c_str());
}
} }
void Spell::EffectDispel(SpellEffectEntry const* effect) void Spell::EffectDispel(SpellEffectEntry const* effect)
@ -6852,7 +6864,9 @@ void Spell::EffectLearnSkill(SpellEffectEntry const* effect)
((Player*)unitTarget)->SetSkill(skillid, skillval ? skillval : 1, damage * 75, damage); ((Player*)unitTarget)->SetSkill(skillid, skillval ? skillval : 1, damage * 75, damage);
if (WorldObject const* caster = GetCastingObject()) if (WorldObject const* caster = GetCastingObject())
{
DEBUG_LOG("Spell: %s has learned skill %u (to maxlevel %u) from %s", unitTarget->GetGuidStr().c_str(), skillid, damage * 75, caster->GetGuidStr().c_str()); DEBUG_LOG("Spell: %s has learned skill %u (to maxlevel %u) from %s", unitTarget->GetGuidStr().c_str(), skillid, damage * 75, caster->GetGuidStr().c_str());
}
} }
void Spell::EffectTradeSkill(SpellEffectEntry const* /*effect*/) void Spell::EffectTradeSkill(SpellEffectEntry const* /*effect*/)
@ -7346,7 +7360,9 @@ void Spell::EffectLearnPetSpell(SpellEffectEntry const* effect)
_player->PetSpellInitialize(); _player->PetSpellInitialize();
if (WorldObject const* caster = GetCastingObject()) if (WorldObject const* caster = GetCastingObject())
{
DEBUG_LOG("Spell: %s has learned spell %u from %s", pet->GetGuidStr().c_str(), learn_spellproto->Id, caster->GetGuidStr().c_str()); DEBUG_LOG("Spell: %s has learned spell %u from %s", pet->GetGuidStr().c_str(), learn_spellproto->Id, caster->GetGuidStr().c_str());
}
} }
void Spell::EffectTaunt(SpellEffectEntry const* /*effect*/) void Spell::EffectTaunt(SpellEffectEntry const* /*effect*/)

View file

@ -215,7 +215,7 @@ void WorldSession::HandleEjectPassenger(WorldPacket& recvPacket)
// Check for eject flag // Check for eject flag
if (VehicleSeatEntry const* seatEntry = vehicleInfo->GetSeatEntry(passenger->GetTransportInfo()->GetTransportSeat())) if (VehicleSeatEntry const* seatEntry = vehicleInfo->GetSeatEntry(passenger->GetTransportInfo()->GetTransportSeat()))
if (seatEntry->m_flagsB & SEAT_FLAG_B_EJECTABLE) if (seatEntry->m_flagsB & VEHICLE_SEAT_FLAG_B_EJECTABLE)
_player->RemoveSpellsCausingAura(SPELL_AURA_CONTROL_VEHICLE, passengerGuid); _player->RemoveSpellsCausingAura(SPELL_AURA_CONTROL_VEHICLE, passengerGuid);
} }