mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
Misc fixes.
This commit is contained in:
parent
6f2b9a7e80
commit
2d86aa4535
15 changed files with 53 additions and 76 deletions
|
|
@ -99,7 +99,7 @@ bool ArenaTeam::AddMember(const uint64& PlayerGuid)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
plClass = (uint8)pl->getClass();
|
plClass = pl->getClass();
|
||||||
plName = pl->GetName();
|
plName = pl->GetName();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -150,7 +150,7 @@ bool ArenaTeam::AddMember(const uint64& PlayerGuid)
|
||||||
|
|
||||||
if(pl)
|
if(pl)
|
||||||
{
|
{
|
||||||
pl->SetInArenaTeam(m_TeamId, GetSlot());
|
pl->SetInArenaTeam(m_TeamId, GetSlot(), GetType());
|
||||||
pl->SetArenaTeamIdInvited(0);
|
pl->SetArenaTeamIdInvited(0);
|
||||||
pl->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (GetSlot() * ARENA_TEAM_END) + ARENA_TEAM_PERSONAL_RATING, newmember.personal_rating );
|
pl->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (GetSlot() * ARENA_TEAM_END) + ARENA_TEAM_PERSONAL_RATING, newmember.personal_rating );
|
||||||
|
|
||||||
|
|
@ -277,18 +277,13 @@ void ArenaTeam::DelMember(uint64 guid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Player *player = objmgr.GetPlayer(guid);
|
if(Player *player = objmgr.GetPlayer(guid))
|
||||||
|
|
||||||
if(player)
|
|
||||||
{
|
{
|
||||||
player->SetInArenaTeam(0, GetSlot());
|
|
||||||
player->GetSession()->SendArenaTeamCommandResult(ERR_ARENA_TEAM_QUIT_S, GetName(), "", 0);
|
player->GetSession()->SendArenaTeamCommandResult(ERR_ARENA_TEAM_QUIT_S, GetName(), "", 0);
|
||||||
// delete all info regarding this team
|
// delete all info regarding this team
|
||||||
for(int i = 0; i < ARENA_TEAM_END; ++i)
|
for(int i = 0; i < ARENA_TEAM_END; ++i)
|
||||||
{
|
|
||||||
player->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (GetSlot() * ARENA_TEAM_END) + i, 0);
|
player->SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (GetSlot() * ARENA_TEAM_END) + i, 0);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u' AND guid = '%u'", GetId(), GUID_LOPART(guid));
|
CharacterDatabase.PExecute("DELETE FROM arena_team_member WHERE arenateamid = '%u' AND guid = '%u'", GetId(), GUID_LOPART(guid));
|
||||||
}
|
}
|
||||||
|
|
@ -537,8 +532,6 @@ void ArenaTeam::FinishGame(int32 mod)
|
||||||
if (i->second->GetType() == this->m_Type && i->second->GetStats().rating > m_stats.rating)
|
if (i->second->GetType() == this->m_Type && i->second->GetStats().rating > m_stats.rating)
|
||||||
++m_stats.rank;
|
++m_stats.rank;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 ArenaTeam::WonAgainst(uint32 againstRating)
|
int32 ArenaTeam::WonAgainst(uint32 againstRating)
|
||||||
|
|
@ -704,25 +697,3 @@ bool ArenaTeam::IsFighting() const
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
arenateam fields (id from 2.3.3 client):
|
|
||||||
1414 - arena team id 2v2
|
|
||||||
1415 - 0=captain, 1=member
|
|
||||||
1416 - played this week
|
|
||||||
1417 - played this season
|
|
||||||
1418 - unk - rank?
|
|
||||||
1419 - personal arena rating
|
|
||||||
1420 - arena team id 3v3
|
|
||||||
1421 - 0=captain, 1=member
|
|
||||||
1422 - played this week
|
|
||||||
1423 - played this season
|
|
||||||
1424 - unk - rank?
|
|
||||||
1425 - personal arena rating
|
|
||||||
1426 - arena team id 5v5
|
|
||||||
1427 - 0=captain, 1=member
|
|
||||||
1428 - played this week
|
|
||||||
1429 - played this season
|
|
||||||
1430 - unk - rank?
|
|
||||||
1431 - personal arena rating
|
|
||||||
*/
|
|
||||||
|
|
|
||||||
|
|
@ -1590,12 +1590,9 @@ bool BattleGround::AddSpiritGuide(uint32 type, float x, float y, float z, float
|
||||||
|
|
||||||
pCreature->setDeathState(DEAD);
|
pCreature->setDeathState(DEAD);
|
||||||
|
|
||||||
pCreature->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, pCreature->GetGUID());
|
pCreature->SetChannelObjectGUID(pCreature->GetGUID());
|
||||||
// aura
|
// aura
|
||||||
pCreature->SetVisibleAura(0, SPELL_SPIRIT_HEAL_CHANNEL);
|
pCreature->SetVisibleAura(0, SPELL_SPIRIT_HEAL_CHANNEL);
|
||||||
//pCreature->SetUInt32Value(UNIT_FIELD_AURAFLAGS, 0x00000009);
|
|
||||||
//pCreature->SetUInt32Value(UNIT_FIELD_AURALEVELS, 0x0000003C);
|
|
||||||
//pCreature->SetUInt32Value(UNIT_FIELD_AURAAPPLICATIONS, 0x000000FF);
|
|
||||||
// casting visual effect
|
// casting visual effect
|
||||||
pCreature->SetUInt32Value(UNIT_CHANNEL_SPELL, SPELL_SPIRIT_HEAL_CHANNEL);
|
pCreature->SetUInt32Value(UNIT_CHANNEL_SPELL, SPELL_SPIRIT_HEAL_CHANNEL);
|
||||||
// correct cast speed
|
// correct cast speed
|
||||||
|
|
|
||||||
|
|
@ -1511,7 +1511,7 @@ void Creature::setDeathState(DeathState s)
|
||||||
|
|
||||||
if(s == JUST_DIED)
|
if(s == JUST_DIED)
|
||||||
{
|
{
|
||||||
SetUInt64Value(UNIT_FIELD_TARGET,0); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState)
|
SetTargetGUID(0); // remove target selection in any cases (can be set at aura remove in Unit::setDeathState)
|
||||||
SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||||
|
|
||||||
if(!isPet() && GetCreatureInfo()->SkinLootId)
|
if(!isPet() && GetCreatureInfo()->SkinLootId)
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ FleeingMovementGenerator<Creature>::_Init(Creature &owner)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
owner.RemoveMonsterMoveFlag(MONSTER_MOVE_WALK);
|
owner.RemoveMonsterMoveFlag(MONSTER_MOVE_WALK);
|
||||||
owner.SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
owner.SetTargetGUID(0);
|
||||||
is_water_ok = owner.canSwim();
|
is_water_ok = owner.canSwim();
|
||||||
is_land_ok = owner.canWalk();
|
is_land_ok = owner.canWalk();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1340,7 +1340,6 @@ void WorldSession::HandleItemRefundInfoRequest(WorldPacket& recv_data)
|
||||||
sLog.outDebug("WORLD: CMSG_ITEM_REFUND_INFO_REQUEST");
|
sLog.outDebug("WORLD: CMSG_ITEM_REFUND_INFO_REQUEST");
|
||||||
|
|
||||||
uint64 guid;
|
uint64 guid;
|
||||||
|
|
||||||
recv_data >> guid; // item guid
|
recv_data >> guid; // item guid
|
||||||
|
|
||||||
Item *item = _player->GetItemByGuid(guid);
|
Item *item = _player->GetItemByGuid(guid);
|
||||||
|
|
@ -1357,5 +1356,5 @@ void WorldSession::HandleItemRefundInfoRequest(WorldPacket& recv_data)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// refund system not implemented yet
|
// item refund system not implemented yet
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -383,7 +383,7 @@ void WorldSession::HandleSetTargetOpcode( WorldPacket & recv_data )
|
||||||
uint64 guid ;
|
uint64 guid ;
|
||||||
recv_data >> guid;
|
recv_data >> guid;
|
||||||
|
|
||||||
_player->SetUInt32Value(UNIT_FIELD_TARGET, guid);
|
_player->SetTargetGUID(guid);
|
||||||
|
|
||||||
// update reputation list if need
|
// update reputation list if need
|
||||||
Unit* unit = ObjectAccessor::GetUnit(*_player, guid );
|
Unit* unit = ObjectAccessor::GetUnit(*_player, guid );
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData *data, Player *target) c
|
||||||
|
|
||||||
if(isType(TYPEMASK_UNIT))
|
if(isType(TYPEMASK_UNIT))
|
||||||
{
|
{
|
||||||
if(((Unit*)this)->getVictim())
|
if(((Unit*)this)->GetTargetGUID())
|
||||||
flags |= UPDATEFLAG_HAS_TARGET;
|
flags |= UPDATEFLAG_HAS_TARGET;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -554,10 +554,7 @@ void Object::_BuildMovementUpdate(ByteBuffer * data, uint16 flags, uint32 flags2
|
||||||
// 0x4
|
// 0x4
|
||||||
if(flags & UPDATEFLAG_HAS_TARGET) // packed guid (current target guid)
|
if(flags & UPDATEFLAG_HAS_TARGET) // packed guid (current target guid)
|
||||||
{
|
{
|
||||||
if(Unit *victim = ((Unit*)this)->getVictim())
|
data->appendPackGUID(((Unit*)this)->GetTargetGUID());
|
||||||
data->append(victim->GetPackGUID());
|
|
||||||
else
|
|
||||||
*data << uint8(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 0x2
|
// 0x2
|
||||||
|
|
|
||||||
|
|
@ -1609,6 +1609,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati
|
||||||
m_movementInfo.t_y = 0.0f;
|
m_movementInfo.t_y = 0.0f;
|
||||||
m_movementInfo.t_z = 0.0f;
|
m_movementInfo.t_z = 0.0f;
|
||||||
m_movementInfo.t_o = 0.0f;
|
m_movementInfo.t_o = 0.0f;
|
||||||
|
m_movementInfo.t_seat = -1;
|
||||||
m_movementInfo.t_time = 0;
|
m_movementInfo.t_time = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -13910,18 +13911,18 @@ void Player::_LoadArenaTeamInfo(QueryResult *result)
|
||||||
ArenaTeam* aTeam = objmgr.GetArenaTeamById(arenateamid);
|
ArenaTeam* aTeam = objmgr.GetArenaTeamById(arenateamid);
|
||||||
if(!aTeam)
|
if(!aTeam)
|
||||||
{
|
{
|
||||||
sLog.outError("Player::_LoadArenaTeamInfo: couldn't load arenateam %u, week %u, season %u, rating %u", arenateamid, played_week, played_season, personal_rating);
|
sLog.outError("Player::_LoadArenaTeamInfo: couldn't load arenateam %u", arenateamid);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
uint8 arenaSlot = aTeam->GetSlot();
|
uint8 arenaSlot = aTeam->GetSlot();
|
||||||
|
|
||||||
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_ID] = arenateamid; // TeamID
|
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_ID] = arenateamid; // TeamID
|
||||||
|
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_TYPE] = aTeam->GetType(); // team type
|
||||||
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_MEMBER] = ((aTeam->GetCaptain() == GetGUID()) ? (uint32)0 : (uint32)1); // Captain 0, member 1
|
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_MEMBER] = ((aTeam->GetCaptain() == GetGUID()) ? (uint32)0 : (uint32)1); // Captain 0, member 1
|
||||||
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_GAMES_WEEK] = played_week; // Played Week
|
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_GAMES_WEEK] = played_week; // Played Week
|
||||||
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_GAMES_SEASON] = played_season; // Played Season
|
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_GAMES_SEASON] = played_season; // Played Season
|
||||||
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_WINS_SEASON] = wons_season; // wins season
|
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_WINS_SEASON] = wons_season; // wins season
|
||||||
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_PERSONAL_RATING] = personal_rating; // Personal Rating
|
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_PERSONAL_RATING] = personal_rating; // Personal Rating
|
||||||
m_uint32Values[PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (arenaSlot * ARENA_TEAM_END) + ARENA_TEAM_UNK2] = 0; // unk 3.2
|
|
||||||
|
|
||||||
} while (result->NextRow());
|
} while (result->NextRow());
|
||||||
delete result;
|
delete result;
|
||||||
|
|
@ -14194,6 +14195,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
||||||
m_movementInfo.t_y = 0.0f;
|
m_movementInfo.t_y = 0.0f;
|
||||||
m_movementInfo.t_z = 0.0f;
|
m_movementInfo.t_z = 0.0f;
|
||||||
m_movementInfo.t_o = 0.0f;
|
m_movementInfo.t_o = 0.0f;
|
||||||
|
m_movementInfo.t_time = 0;
|
||||||
|
m_movementInfo.t_seat = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
_LoadBGData(holder->GetResult(PLAYER_LOGIN_QUERY_LOADBGDATA));
|
_LoadBGData(holder->GetResult(PLAYER_LOGIN_QUERY_LOADBGDATA));
|
||||||
|
|
@ -14261,6 +14264,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
||||||
m_movementInfo.t_y = 0.0f;
|
m_movementInfo.t_y = 0.0f;
|
||||||
m_movementInfo.t_z = 0.0f;
|
m_movementInfo.t_z = 0.0f;
|
||||||
m_movementInfo.t_o = 0.0f;
|
m_movementInfo.t_o = 0.0f;
|
||||||
|
m_movementInfo.t_time = 0;
|
||||||
|
m_movementInfo.t_seat = -1;
|
||||||
|
|
||||||
transGUID = 0;
|
transGUID = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -14298,6 +14303,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
||||||
m_movementInfo.t_y = 0.0f;
|
m_movementInfo.t_y = 0.0f;
|
||||||
m_movementInfo.t_z = 0.0f;
|
m_movementInfo.t_z = 0.0f;
|
||||||
m_movementInfo.t_o = 0.0f;
|
m_movementInfo.t_o = 0.0f;
|
||||||
|
m_movementInfo.t_time = 0;
|
||||||
|
m_movementInfo.t_seat = -1;
|
||||||
|
|
||||||
transGUID = 0;
|
transGUID = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -14400,7 +14407,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
|
||||||
delete result;
|
delete result;
|
||||||
|
|
||||||
// clear channel spell data (if saved at channel spell casting)
|
// clear channel spell data (if saved at channel spell casting)
|
||||||
SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, 0);
|
SetChannelObjectGUID(0);
|
||||||
SetUInt32Value(UNIT_CHANNEL_SPELL,0);
|
SetUInt32Value(UNIT_CHANNEL_SPELL,0);
|
||||||
|
|
||||||
// clear charm/summon related fields
|
// clear charm/summon related fields
|
||||||
|
|
|
||||||
|
|
@ -719,7 +719,7 @@ enum InstanceResetWarningType
|
||||||
enum ArenaTeamInfoType
|
enum ArenaTeamInfoType
|
||||||
{
|
{
|
||||||
ARENA_TEAM_ID = 0,
|
ARENA_TEAM_ID = 0,
|
||||||
ARENA_TEAM_UNK2 = 1, // new in 3.2 - team type?
|
ARENA_TEAM_TYPE = 1, // new in 3.2 - team type?
|
||||||
ARENA_TEAM_MEMBER = 2, // 0 - captain, 1 - member
|
ARENA_TEAM_MEMBER = 2, // 0 - captain, 1 - member
|
||||||
ARENA_TEAM_GAMES_WEEK = 3,
|
ARENA_TEAM_GAMES_WEEK = 3,
|
||||||
ARENA_TEAM_GAMES_SEASON = 4,
|
ARENA_TEAM_GAMES_SEASON = 4,
|
||||||
|
|
@ -1443,7 +1443,7 @@ class MANGOS_DLL_SPEC Player : public Unit
|
||||||
QuestStatusMap& getQuestStatusMap() { return mQuestStatus; };
|
QuestStatusMap& getQuestStatusMap() { return mQuestStatus; };
|
||||||
|
|
||||||
const uint64& GetSelection( ) const { return m_curSelection; }
|
const uint64& GetSelection( ) const { return m_curSelection; }
|
||||||
void SetSelection(const uint64 &guid) { m_curSelection = guid; SetUInt64Value(UNIT_FIELD_TARGET, guid); }
|
void SetSelection(const uint64 &guid) { m_curSelection = guid; SetTargetGUID(guid); }
|
||||||
|
|
||||||
uint8 GetComboPoints() { return m_comboPoints; }
|
uint8 GetComboPoints() { return m_comboPoints; }
|
||||||
const uint64& GetComboTarget() const { return m_comboTarget; }
|
const uint64& GetComboTarget() const { return m_comboTarget; }
|
||||||
|
|
@ -1659,9 +1659,10 @@ class MANGOS_DLL_SPEC Player : public Unit
|
||||||
static void RemovePetitionsAndSigns(uint64 guid, uint32 type);
|
static void RemovePetitionsAndSigns(uint64 guid, uint32 type);
|
||||||
|
|
||||||
// Arena Team
|
// Arena Team
|
||||||
void SetInArenaTeam(uint32 ArenaTeamId, uint8 slot)
|
void SetInArenaTeam(uint32 ArenaTeamId, uint8 slot, uint8 type)
|
||||||
{
|
{
|
||||||
SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * ARENA_TEAM_END), ArenaTeamId);
|
SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * ARENA_TEAM_END) + ARENA_TEAM_ID, ArenaTeamId);
|
||||||
|
SetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * ARENA_TEAM_END) + ARENA_TEAM_TYPE, type);
|
||||||
}
|
}
|
||||||
uint32 GetArenaTeamId(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * ARENA_TEAM_END)); }
|
uint32 GetArenaTeamId(uint8 slot) { return GetUInt32Value(PLAYER_FIELD_ARENA_TEAM_INFO_1_1 + (slot * ARENA_TEAM_END)); }
|
||||||
static uint32 GetArenaTeamIdFromDB(uint64 guid, uint8 slot);
|
static uint32 GetArenaTeamIdFromDB(uint64 guid, uint8 slot);
|
||||||
|
|
|
||||||
|
|
@ -336,7 +336,7 @@ void WorldSession::HandleNpcTextQueryOpcode( WorldPacket & recv_data )
|
||||||
sLog.outDetail("WORLD: CMSG_NPC_TEXT_QUERY ID '%u'", textID);
|
sLog.outDetail("WORLD: CMSG_NPC_TEXT_QUERY ID '%u'", textID);
|
||||||
|
|
||||||
recv_data >> guid;
|
recv_data >> guid;
|
||||||
GetPlayer()->SetUInt64Value(UNIT_FIELD_TARGET, guid);
|
_player->SetTargetGUID(guid);
|
||||||
|
|
||||||
GossipText const* pGossip = objmgr.GetGossipText(textID);
|
GossipText const* pGossip = objmgr.GetGossipText(textID);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3347,7 +3347,7 @@ void Spell::SendChannelUpdate(uint32 time)
|
||||||
{
|
{
|
||||||
if(time == 0)
|
if(time == 0)
|
||||||
{
|
{
|
||||||
m_caster->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, 0);
|
m_caster->SetChannelObjectGUID(0);
|
||||||
m_caster->SetUInt32Value(UNIT_CHANNEL_SPELL, 0);
|
m_caster->SetUInt32Value(UNIT_CHANNEL_SPELL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3401,7 +3401,7 @@ void Spell::SendChannelStart(uint32 duration)
|
||||||
|
|
||||||
m_timer = duration;
|
m_timer = duration;
|
||||||
if(target)
|
if(target)
|
||||||
m_caster->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, target->GetGUID());
|
m_caster->SetChannelObjectGUID(target->GetGUID());
|
||||||
m_caster->SetUInt32Value(UNIT_CHANNEL_SPELL, m_spellInfo->Id);
|
m_caster->SetUInt32Value(UNIT_CHANNEL_SPELL, m_spellInfo->Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -534,7 +534,7 @@ SingleEnemyTargetAura::SingleEnemyTargetAura(SpellEntry const* spellproto, uint3
|
||||||
Unit *caster, Item* castItem) : Aura(spellproto, eff, currentBasePoints, target, caster, castItem)
|
Unit *caster, Item* castItem) : Aura(spellproto, eff, currentBasePoints, target, caster, castItem)
|
||||||
{
|
{
|
||||||
if (caster)
|
if (caster)
|
||||||
m_casters_target_guid = caster->GetTypeId()==TYPEID_PLAYER ? ((Player*)caster)->GetSelection() : caster->GetUInt64Value(UNIT_FIELD_TARGET);
|
m_casters_target_guid = caster->GetTypeId()==TYPEID_PLAYER ? ((Player*)caster)->GetSelection() : caster->GetTargetGUID();
|
||||||
else
|
else
|
||||||
m_casters_target_guid = 0;
|
m_casters_target_guid = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -3665,7 +3665,7 @@ void Aura::HandleAuraModStun(bool apply, bool Real)
|
||||||
m_target->ModifyAuraState(AURA_STATE_FROZEN, apply);
|
m_target->ModifyAuraState(AURA_STATE_FROZEN, apply);
|
||||||
|
|
||||||
m_target->addUnitState(UNIT_STAT_STUNNED);
|
m_target->addUnitState(UNIT_STAT_STUNNED);
|
||||||
m_target->SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
m_target->SetTargetGUID(0);
|
||||||
|
|
||||||
m_target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
|
m_target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
|
||||||
m_target->CastStop(m_target->GetGUID() == GetCasterGUID() ? GetId() : 0);
|
m_target->CastStop(m_target->GetGUID() == GetCasterGUID() ? GetId() : 0);
|
||||||
|
|
@ -3735,7 +3735,7 @@ void Aura::HandleAuraModStun(bool apply, bool Real)
|
||||||
if(!m_target->hasUnitState(UNIT_STAT_ROOT)) // prevent allow move if have also root effect
|
if(!m_target->hasUnitState(UNIT_STAT_ROOT)) // prevent allow move if have also root effect
|
||||||
{
|
{
|
||||||
if(m_target->getVictim() && m_target->isAlive())
|
if(m_target->getVictim() && m_target->isAlive())
|
||||||
m_target->SetUInt64Value(UNIT_FIELD_TARGET,m_target->getVictim()->GetGUID() );
|
m_target->SetTargetGUID(m_target->getVictim()->GetGUID());
|
||||||
|
|
||||||
WorldPacket data(SMSG_FORCE_MOVE_UNROOT, 8+4);
|
WorldPacket data(SMSG_FORCE_MOVE_UNROOT, 8+4);
|
||||||
data.append(m_target->GetPackGUID());
|
data.append(m_target->GetPackGUID());
|
||||||
|
|
@ -3939,8 +3939,8 @@ void Aura::HandleAuraModRoot(bool apply, bool Real)
|
||||||
m_target->ModifyAuraState(AURA_STATE_FROZEN, apply);
|
m_target->ModifyAuraState(AURA_STATE_FROZEN, apply);
|
||||||
|
|
||||||
m_target->addUnitState(UNIT_STAT_ROOT);
|
m_target->addUnitState(UNIT_STAT_ROOT);
|
||||||
m_target->SetUInt64Value (UNIT_FIELD_TARGET, 0);
|
m_target->SetTargetGUID(0);
|
||||||
// probably wrong (this add skinable flag)
|
// probably wrong (this add skinnable flag)
|
||||||
// TODO: find correct flag
|
// TODO: find correct flag
|
||||||
//m_target->SetFlag(UNIT_FIELD_FLAGS,(apply_stat<<16));
|
//m_target->SetFlag(UNIT_FIELD_FLAGS,(apply_stat<<16));
|
||||||
|
|
||||||
|
|
@ -3991,14 +3991,14 @@ void Aura::HandleAuraModRoot(bool apply, bool Real)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_target->clearUnitState(UNIT_STAT_ROOT);
|
m_target->clearUnitState(UNIT_STAT_ROOT);
|
||||||
// probably wrong (this add skinable flag)
|
// probably wrong (this add skinnable flag)
|
||||||
// TODO: find correct flag
|
// TODO: find correct flag
|
||||||
//m_target->RemoveFlag(UNIT_FIELD_FLAGS,(apply_stat<<16));
|
//m_target->RemoveFlag(UNIT_FIELD_FLAGS,(apply_stat<<16));
|
||||||
|
|
||||||
if(!m_target->hasUnitState(UNIT_STAT_STUNNED)) // prevent allow move if have also stun effect
|
if(!m_target->hasUnitState(UNIT_STAT_STUNNED)) // prevent allow move if have also stun effect
|
||||||
{
|
{
|
||||||
if(m_target->getVictim() && m_target->isAlive())
|
if(m_target->getVictim() && m_target->isAlive())
|
||||||
m_target->SetUInt64Value (UNIT_FIELD_TARGET, m_target->getVictim()->GetGUID() );
|
m_target->SetTargetGUID(m_target->getVictim()->GetGUID());
|
||||||
|
|
||||||
if(m_target->GetTypeId() == TYPEID_PLAYER)
|
if(m_target->GetTypeId() == TYPEID_PLAYER)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -6518,7 +6518,7 @@ void Spell::EffectTransmitted(uint32 effIndex)
|
||||||
{
|
{
|
||||||
case GAMEOBJECT_TYPE_FISHINGNODE:
|
case GAMEOBJECT_TYPE_FISHINGNODE:
|
||||||
{
|
{
|
||||||
m_caster->SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT,pGameObj->GetGUID());
|
m_caster->SetChannelObjectGUID(pGameObj->GetGUID());
|
||||||
m_caster->AddGameObject(pGameObj); // will removed at spell cancel
|
m_caster->AddGameObject(pGameObj); // will removed at spell cancel
|
||||||
|
|
||||||
// end time of range when possible catch fish (FISHING_BOBBER_READY_TIME..GetDuration(m_spellInfo))
|
// end time of range when possible catch fish (FISHING_BOBBER_READY_TIME..GetDuration(m_spellInfo))
|
||||||
|
|
|
||||||
|
|
@ -7630,7 +7630,7 @@ bool Unit::Attack(Unit *victim, bool meleeAttack)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set our target
|
// Set our target
|
||||||
SetUInt64Value(UNIT_FIELD_TARGET, victim->GetGUID());
|
SetTargetGUID(victim->GetGUID());
|
||||||
|
|
||||||
if(meleeAttack)
|
if(meleeAttack)
|
||||||
addUnitState(UNIT_STAT_MELEE_ATTACKING);
|
addUnitState(UNIT_STAT_MELEE_ATTACKING);
|
||||||
|
|
@ -7669,7 +7669,7 @@ bool Unit::AttackStop(bool targetSwitch /*=false*/)
|
||||||
m_attacking = NULL;
|
m_attacking = NULL;
|
||||||
|
|
||||||
// Clear our target
|
// Clear our target
|
||||||
SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
SetTargetGUID(0);
|
||||||
|
|
||||||
clearUnitState(UNIT_STAT_MELEE_ATTACKING);
|
clearUnitState(UNIT_STAT_MELEE_ATTACKING);
|
||||||
|
|
||||||
|
|
@ -7831,6 +7831,7 @@ void Unit::ModifyAuraState(AuraState flag, bool apply)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Unit *Unit::GetOwner() const
|
Unit *Unit::GetOwner() const
|
||||||
{
|
{
|
||||||
if(uint64 ownerid = GetOwnerGUID())
|
if(uint64 ownerid = GetOwnerGUID())
|
||||||
|
|
@ -7894,7 +7895,7 @@ float Unit::GetCombatDistance( const Unit* target ) const
|
||||||
|
|
||||||
void Unit::SetPet(Pet* pet)
|
void Unit::SetPet(Pet* pet)
|
||||||
{
|
{
|
||||||
SetUInt64Value(UNIT_FIELD_SUMMON, pet ? pet->GetGUID() : 0);
|
SetPetGUID(pet ? pet->GetGUID() : 0);
|
||||||
|
|
||||||
// FIXME: hack, speed must be set only at follow
|
// FIXME: hack, speed must be set only at follow
|
||||||
if(pet && GetTypeId()==TYPEID_PLAYER)
|
if(pet && GetTypeId()==TYPEID_PLAYER)
|
||||||
|
|
@ -7904,16 +7905,14 @@ void Unit::SetPet(Pet* pet)
|
||||||
|
|
||||||
void Unit::SetCharm(Unit* pet)
|
void Unit::SetCharm(Unit* pet)
|
||||||
{
|
{
|
||||||
SetUInt64Value(UNIT_FIELD_CHARM, pet ? pet->GetGUID() : 0);
|
SetCharmGUID(pet ? pet->GetGUID() : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Unit::AddGuardian( Pet* pet )
|
void Unit::AddGuardian( Pet* pet )
|
||||||
{
|
{
|
||||||
m_guardianPets.insert(pet->GetGUID());
|
m_guardianPets.insert(pet->GetGUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Unit::RemoveGuardian( Pet* pet )
|
void Unit::RemoveGuardian( Pet* pet )
|
||||||
{
|
{
|
||||||
m_guardianPets.erase(pet->GetGUID());
|
m_guardianPets.erase(pet->GetGUID());
|
||||||
|
|
@ -12136,7 +12135,7 @@ bool Unit::HandleMendingAuraProc( Aura* triggeredByAura )
|
||||||
|
|
||||||
void Unit::RemoveAurasAtChanneledTarget(SpellEntry const* spellInfo)
|
void Unit::RemoveAurasAtChanneledTarget(SpellEntry const* spellInfo)
|
||||||
{
|
{
|
||||||
uint64 target_guid = GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT);
|
uint64 target_guid = GetChannelObjectGUID();
|
||||||
|
|
||||||
if(!IS_UNIT_GUID(target_guid))
|
if(!IS_UNIT_GUID(target_guid))
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -1156,9 +1156,15 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
|
||||||
uint64 GetCreatorGUID() const { return GetUInt64Value(UNIT_FIELD_CREATEDBY); }
|
uint64 GetCreatorGUID() const { return GetUInt64Value(UNIT_FIELD_CREATEDBY); }
|
||||||
void SetCreatorGUID(uint64 creator) { SetUInt64Value(UNIT_FIELD_CREATEDBY, creator); }
|
void SetCreatorGUID(uint64 creator) { SetUInt64Value(UNIT_FIELD_CREATEDBY, creator); }
|
||||||
uint64 GetPetGUID() const { return GetUInt64Value(UNIT_FIELD_SUMMON); }
|
uint64 GetPetGUID() const { return GetUInt64Value(UNIT_FIELD_SUMMON); }
|
||||||
|
void SetPetGUID(uint64 pet) { SetUInt64Value(UNIT_FIELD_SUMMON, pet); }
|
||||||
uint64 GetCharmerGUID() const { return GetUInt64Value(UNIT_FIELD_CHARMEDBY); }
|
uint64 GetCharmerGUID() const { return GetUInt64Value(UNIT_FIELD_CHARMEDBY); }
|
||||||
void SetCharmerGUID(uint64 owner) { SetUInt64Value(UNIT_FIELD_CHARMEDBY, owner); }
|
void SetCharmerGUID(uint64 owner) { SetUInt64Value(UNIT_FIELD_CHARMEDBY, owner); }
|
||||||
uint64 GetCharmGUID() const { return GetUInt64Value(UNIT_FIELD_CHARM); }
|
uint64 GetCharmGUID() const { return GetUInt64Value(UNIT_FIELD_CHARM); }
|
||||||
|
void SetCharmGUID(uint64 charm) { SetUInt64Value(UNIT_FIELD_CHARM, charm); }
|
||||||
|
uint64 GetTargetGUID() const { return GetUInt64Value(UNIT_FIELD_TARGET); }
|
||||||
|
void SetTargetGUID(uint64 targetGuid) { SetUInt64Value(UNIT_FIELD_TARGET, targetGuid); }
|
||||||
|
uint64 GetChannelObjectGUID() const { return GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT); }
|
||||||
|
void SetChannelObjectGUID(uint64 targetGuid) { SetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT, targetGuid); }
|
||||||
|
|
||||||
uint64 GetCharmerOrOwnerGUID() const { return GetCharmerGUID() ? GetCharmerGUID() : GetOwnerGUID(); }
|
uint64 GetCharmerOrOwnerGUID() const { return GetCharmerGUID() ? GetCharmerGUID() : GetOwnerGUID(); }
|
||||||
uint64 GetCharmerOrOwnerOrOwnGUID() const
|
uint64 GetCharmerOrOwnerOrOwnGUID() const
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue