Misc Fixes
This commit is contained in:
@@ -127,7 +127,7 @@ namespace BNetServer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new AccountInfo();
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CleanupLoginTickets(object state)
|
public void CleanupLoginTickets(object state)
|
||||||
|
|||||||
@@ -236,7 +236,6 @@ namespace Framework.Constants
|
|||||||
MaskDemonOrUnDead = (1 << (Demon - 1)) | (1 << (Undead - 1)),
|
MaskDemonOrUnDead = (1 << (Demon - 1)) | (1 << (Undead - 1)),
|
||||||
MaskHumanoidOrUndead = (1 << (Humanoid - 1)) | (1 << (Undead - 1)),
|
MaskHumanoidOrUndead = (1 << (Humanoid - 1)) | (1 << (Undead - 1)),
|
||||||
MaskMechanicalOrElemental = (1 << (Mechanical - 1)) | (1 << (Elemental - 1))
|
MaskMechanicalOrElemental = (1 << (Mechanical - 1)) | (1 << (Elemental - 1))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum CreatureFamily
|
public enum CreatureFamily
|
||||||
|
|||||||
@@ -969,7 +969,7 @@ namespace Game.Achievements
|
|||||||
guildCriteriaProgress.PlayerGUID = progress.PlayerGUID;
|
guildCriteriaProgress.PlayerGUID = progress.PlayerGUID;
|
||||||
guildCriteriaProgress.Flags = 0;
|
guildCriteriaProgress.Flags = 0;
|
||||||
|
|
||||||
guildCriteriaUpdate.Progress[0] = guildCriteriaProgress;
|
guildCriteriaUpdate.Progress.Add(guildCriteriaProgress);
|
||||||
|
|
||||||
_owner.BroadcastPacketIfTrackingAchievement(guildCriteriaUpdate, entry.ID);
|
_owner.BroadcastPacketIfTrackingAchievement(guildCriteriaUpdate, entry.ID);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,8 +30,10 @@ namespace Game.Arenas
|
|||||||
TeamId = (int)(team == Team.Alliance ? BattlegroundTeamId.Alliance : BattlegroundTeamId.Horde);
|
TeamId = (int)(team == Team.Alliance ? BattlegroundTeamId.Alliance : BattlegroundTeamId.Horde);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildPvPLogPlayerDataPacket(PVPLogData.PlayerData playerData)
|
public override void BuildPvPLogPlayerDataPacket(out PVPLogData.PlayerData playerData)
|
||||||
{
|
{
|
||||||
|
base.BuildPvPLogPlayerDataPacket(out playerData);
|
||||||
|
|
||||||
if (PreMatchRating != 0)
|
if (PreMatchRating != 0)
|
||||||
playerData.PreMatchRating.Set(PreMatchRating);
|
playerData.PreMatchRating.Set(PreMatchRating);
|
||||||
|
|
||||||
|
|||||||
@@ -522,7 +522,7 @@ namespace Game.DataStorage
|
|||||||
|
|
||||||
public CharSectionsRecord GetCharSectionEntry(Race race, CharSectionType genType, Gender gender, byte type, byte color)
|
public CharSectionsRecord GetCharSectionEntry(Race race, CharSectionType genType, Gender gender, byte type, byte color)
|
||||||
{
|
{
|
||||||
var list = _charSections.LookupByKey((uint)genType | (uint)((int)gender << 8) | (uint)((int)race << 16));
|
var list = _charSections.LookupByKey((byte)genType | ((byte)gender << 8) | ((byte)race << 16));
|
||||||
foreach (var charSection in list)
|
foreach (var charSection in list)
|
||||||
if (charSection.Type == type && charSection.Color == color)
|
if (charSection.Type == type && charSection.Color == color)
|
||||||
return charSection;
|
return charSection;
|
||||||
|
|||||||
@@ -481,7 +481,6 @@ namespace Game.Entities
|
|||||||
return TotalCost;
|
return TotalCost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Store Item
|
//Store Item
|
||||||
public InventoryResult CanStoreItem(byte bag, byte slot, List<ItemPosCount> dest, Item pItem, bool swap = false)
|
public InventoryResult CanStoreItem(byte bag, byte slot, List<ItemPosCount> dest, Item pItem, bool swap = false)
|
||||||
{
|
{
|
||||||
@@ -3844,7 +3843,7 @@ namespace Game.Entities
|
|||||||
m_items[slot] = null;
|
m_items[slot] = null;
|
||||||
|
|
||||||
int eslot = (int)slot - InventorySlots.BuyBackStart;
|
int eslot = (int)slot - InventorySlots.BuyBackStart;
|
||||||
SetGuidValue(PlayerFields.InvSlotHead + (eslot * 4), ObjectGuid.Empty);
|
SetGuidValue(PlayerFields.InvSlotHead + (int)(slot * 4), ObjectGuid.Empty);
|
||||||
SetUInt32Value(PlayerFields.BuyBackPrice1 + eslot, 0);
|
SetUInt32Value(PlayerFields.BuyBackPrice1 + eslot, 0);
|
||||||
SetUInt32Value(PlayerFields.BuyBackTimestamp1 + eslot, 0);
|
SetUInt32Value(PlayerFields.BuyBackTimestamp1 + eslot, 0);
|
||||||
|
|
||||||
@@ -5635,7 +5634,7 @@ namespace Game.Entities
|
|||||||
pItem.DestroyForPlayer(this);
|
pItem.DestroyForPlayer(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
pItem.SetOwnerGUID(ObjectGuid.Empty);
|
//pItem.SetOwnerGUID(ObjectGuid.Empty);
|
||||||
pItem.SetGuidValue(ItemFields.Contained, ObjectGuid.Empty);
|
pItem.SetGuidValue(ItemFields.Contained, ObjectGuid.Empty);
|
||||||
pItem.SetSlot(ItemConst.NullSlot);
|
pItem.SetSlot(ItemConst.NullSlot);
|
||||||
pItem.SetState(ItemUpdateState.Removed, this);
|
pItem.SetState(ItemUpdateState.Removed, this);
|
||||||
|
|||||||
@@ -4116,12 +4116,9 @@ namespace Game.Entities
|
|||||||
if (!IsSectionFlagValid(hair, class_, create))
|
if (!IsSectionFlagValid(hair, class_, create))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (facialHairId != 0)
|
CharSectionsRecord facialHair = Global.DB2Mgr.GetCharSectionEntry(race, CharSectionType.Hair, gender, facialHairId, hairColor);
|
||||||
{
|
|
||||||
CharSectionsRecord facialHair = Global.DB2Mgr.GetCharSectionEntry(race, CharSectionType.FacialHair, gender, facialHairId, hairColor);
|
|
||||||
if (facialHair == null)
|
if (facialHair == null)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < PlayerConst.CustomDisplaySize; ++i)
|
for (int i = 0; i < PlayerConst.CustomDisplaySize; ++i)
|
||||||
{
|
{
|
||||||
@@ -5903,9 +5900,6 @@ namespace Game.Entities
|
|||||||
return reputationMgr;
|
return reputationMgr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#region Sends / Updates
|
#region Sends / Updates
|
||||||
void BeforeVisibilityDestroy(WorldObject obj, Player p)
|
void BeforeVisibilityDestroy(WorldObject obj, Player p)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -948,9 +948,9 @@ namespace Game.Guilds
|
|||||||
|
|
||||||
public void SendNewsUpdate(WorldSession session)
|
public void SendNewsUpdate(WorldSession session)
|
||||||
{
|
{
|
||||||
var logs = m_eventLog.GetGuildLog();
|
var logs = m_newsLog.GetGuildLog();
|
||||||
|
|
||||||
if (logs == null)
|
if (logs.Empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GuildNewsPkt packet = new GuildNewsPkt();
|
GuildNewsPkt packet = new GuildNewsPkt();
|
||||||
@@ -3026,6 +3026,7 @@ namespace Game.Guilds
|
|||||||
stmt.AddValue(1, m_rankId);
|
stmt.AddValue(1, m_rankId);
|
||||||
stmt.AddValue(2, m_name);
|
stmt.AddValue(2, m_name);
|
||||||
stmt.AddValue(3, m_rights);
|
stmt.AddValue(3, m_rights);
|
||||||
|
stmt.AddValue(4, m_bankMoneyPerDay);
|
||||||
DB.Characters.ExecuteOrAppend(trans, stmt);
|
DB.Characters.ExecuteOrAppend(trans, stmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -626,14 +626,14 @@ namespace Game
|
|||||||
|
|
||||||
Unit unit = Global.ObjAccessor.GetUnit(GetPlayer(), packet.Target);
|
Unit unit = Global.ObjAccessor.GetUnit(GetPlayer(), packet.Target);
|
||||||
|
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.DoEmote, (uint)packet.SoundIndex, 0, 0, unit);
|
GetPlayer().UpdateCriteria(CriteriaTypes.DoEmote, (uint)packet.EmoteID, 0, 0, unit);
|
||||||
|
|
||||||
// Send scripted event call
|
// Send scripted event call
|
||||||
if (unit)
|
if (unit)
|
||||||
{
|
{
|
||||||
Creature creature = unit.ToCreature();
|
Creature creature = unit.ToCreature();
|
||||||
if (creature)
|
if (creature)
|
||||||
creature.GetAI().ReceiveEmote(GetPlayer(), (TextEmotes)packet.SoundIndex);
|
creature.GetAI().ReceiveEmote(GetPlayer(), (TextEmotes)packet.EmoteID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -151,6 +151,9 @@ namespace Game
|
|||||||
if (guild.GetLeaderGUID() == player.GetGUID())
|
if (guild.GetLeaderGUID() == player.GetGUID())
|
||||||
{
|
{
|
||||||
LFGuildSettings settings = Global.GuildFinderMgr.GetGuildSettings(guild.GetGUID());
|
LFGuildSettings settings = Global.GuildFinderMgr.GetGuildSettings(guild.GetGUID());
|
||||||
|
if (settings == null)
|
||||||
|
return;
|
||||||
|
|
||||||
lfGuildPost.Post.HasValue = true;
|
lfGuildPost.Post.HasValue = true;
|
||||||
lfGuildPost.Post.Value.Active = settings.IsListed();
|
lfGuildPost.Post.Value.Active = settings.IsListed();
|
||||||
lfGuildPost.Post.Value.PlayStyle = settings.GetInterests();
|
lfGuildPost.Post.Value.PlayStyle = settings.GetInterests();
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ namespace Game.Network.Packets
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ObjectGuid GuildGUID;
|
public ObjectGuid GuildGUID;
|
||||||
public GuildInfo Info;
|
public GuildInfo Info = new GuildInfo();
|
||||||
public bool HasGuildInfo;
|
public bool HasGuildInfo;
|
||||||
|
|
||||||
public class GuildInfo
|
public class GuildInfo
|
||||||
@@ -453,7 +453,7 @@ namespace Game.Network.Packets
|
|||||||
public string NewLeaderName;
|
public string NewLeaderName;
|
||||||
public uint NewLeaderVirtualRealmAddress;
|
public uint NewLeaderVirtualRealmAddress;
|
||||||
public ObjectGuid OldLeaderGUID;
|
public ObjectGuid OldLeaderGUID;
|
||||||
public string OldLeaderName;
|
public string OldLeaderName = "";
|
||||||
public uint OldLeaderVirtualRealmAddress;
|
public uint OldLeaderVirtualRealmAddress;
|
||||||
public bool SelfPromoted;
|
public bool SelfPromoted;
|
||||||
}
|
}
|
||||||
@@ -587,11 +587,11 @@ namespace Game.Network.Packets
|
|||||||
|
|
||||||
public override void Read()
|
public override void Read()
|
||||||
{
|
{
|
||||||
_worldPacket.WriteBits(Name.Length, 7);
|
uint nameLen = _worldPacket.ReadBits<uint>(7);
|
||||||
_worldPacket.FlushBits();
|
_worldPacket.ResetBitPos();
|
||||||
|
|
||||||
RankOrder = _worldPacket.ReadInt32();
|
RankOrder = _worldPacket.ReadInt32();
|
||||||
_worldPacket.WriteString(Name);
|
Name = _worldPacket.ReadString(nameLen);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name;
|
public string Name;
|
||||||
@@ -874,10 +874,11 @@ namespace Game.Network.Packets
|
|||||||
|
|
||||||
public override void Write()
|
public override void Write()
|
||||||
{
|
{
|
||||||
_worldPacket .WriteUInt32( Version);
|
_worldPacket.WriteUInt32(Version);
|
||||||
_worldPacket.WriteUInt32(RewardItems.Count);
|
_worldPacket.WriteUInt32(RewardItems.Count);
|
||||||
|
|
||||||
RewardItems.ForEach(p => p.Write(_worldPacket));
|
foreach (var item in RewardItems)
|
||||||
|
item.Write(_worldPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<GuildRewardItem> RewardItems;
|
public List<GuildRewardItem> RewardItems;
|
||||||
@@ -1468,9 +1469,10 @@ namespace Game.Network.Packets
|
|||||||
data.WriteUInt32(RaceMask);
|
data.WriteUInt32(RaceMask);
|
||||||
data.WriteUInt32(MinGuildLevel);
|
data.WriteUInt32(MinGuildLevel);
|
||||||
data.WriteUInt32(MinGuildRep);
|
data.WriteUInt32(MinGuildRep);
|
||||||
data.WriteUInt32(Cost);
|
data.WriteUInt64(Cost);
|
||||||
|
|
||||||
AchievementsRequired.ForEach(p => data.WriteUInt32(p));
|
foreach (var achievementId in AchievementsRequired)
|
||||||
|
data.WriteUInt32(achievementId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public uint ItemID;
|
public uint ItemID;
|
||||||
|
|||||||
@@ -1138,15 +1138,20 @@ namespace Game.Network.Packets
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public long Health;
|
long Health;
|
||||||
public int AttackPower;
|
int AttackPower;
|
||||||
public int SpellPower;
|
int SpellPower;
|
||||||
List<SpellLogPowerData> PowerData = new List<SpellLogPowerData>();
|
List<SpellLogPowerData> PowerData = new List<SpellLogPowerData>();
|
||||||
}
|
}
|
||||||
|
|
||||||
class SandboxScalingData
|
class SandboxScalingData
|
||||||
{
|
{
|
||||||
public bool GenerateDataForUnits(Creature attacker, Player target)
|
bool GenerateDataPlayerToPlayer(Player attacker, Player target)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GenerateDataCreatureToPlayer(Creature attacker, Player target)
|
||||||
{
|
{
|
||||||
CreatureTemplate creatureTemplate = attacker.GetCreatureTemplate();
|
CreatureTemplate creatureTemplate = attacker.GetCreatureTemplate();
|
||||||
|
|
||||||
@@ -1162,7 +1167,7 @@ namespace Game.Network.Packets
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool GenerateDataForUnits(Player attacker, Creature target)
|
bool GenerateDataPlayerToCreature(Player attacker, Creature target)
|
||||||
{
|
{
|
||||||
CreatureTemplate creatureTemplate = target.GetCreatureTemplate();
|
CreatureTemplate creatureTemplate = target.GetCreatureTemplate();
|
||||||
|
|
||||||
@@ -1178,7 +1183,7 @@ namespace Game.Network.Packets
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool GenerateDataForUnits(Creature attacker, Creature target)
|
bool GenerateDataCreatureToCreature(Creature attacker, Creature target)
|
||||||
{
|
{
|
||||||
CreatureTemplate creatureTemplate = target.HasScalableLevels() ? target.GetCreatureTemplate() : attacker.GetCreatureTemplate();
|
CreatureTemplate creatureTemplate = target.HasScalableLevels() ? target.GetCreatureTemplate() : attacker.GetCreatureTemplate();
|
||||||
|
|
||||||
@@ -1203,11 +1208,11 @@ namespace Game.Network.Packets
|
|||||||
Player playerTarget = target.ToPlayer();
|
Player playerTarget = target.ToPlayer();
|
||||||
Creature creatureTarget = target.ToCreature();
|
Creature creatureTarget = target.ToCreature();
|
||||||
if (playerTarget)
|
if (playerTarget)
|
||||||
return GenerateDataForUnits(playerAttacker, playerTarget);
|
return GenerateDataPlayerToPlayer(playerAttacker, playerTarget);
|
||||||
else if (creatureTarget)
|
else if (creatureTarget)
|
||||||
{
|
{
|
||||||
if (creatureTarget.HasScalableLevels())
|
if (creatureTarget.HasScalableLevels())
|
||||||
return GenerateDataForUnits(playerAttacker, creatureTarget);
|
return GenerateDataPlayerToCreature(playerAttacker, creatureTarget);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (creatureAttacker)
|
else if (creatureAttacker)
|
||||||
@@ -1215,11 +1220,14 @@ namespace Game.Network.Packets
|
|||||||
Player playerTarget = target.ToPlayer();
|
Player playerTarget = target.ToPlayer();
|
||||||
Creature creatureTarget = target.ToCreature();
|
Creature creatureTarget = target.ToCreature();
|
||||||
if (playerTarget)
|
if (playerTarget)
|
||||||
return GenerateDataForUnits(creatureAttacker, playerTarget);
|
{
|
||||||
|
if (creatureAttacker.HasScalableLevels())
|
||||||
|
return GenerateDataCreatureToPlayer(creatureAttacker, playerTarget);
|
||||||
|
}
|
||||||
else if (creatureTarget)
|
else if (creatureTarget)
|
||||||
{
|
{
|
||||||
if (creatureAttacker.HasScalableLevels() || creatureTarget.HasScalableLevels())
|
if (creatureAttacker.HasScalableLevels() || creatureTarget.HasScalableLevels())
|
||||||
return GenerateDataForUnits(creatureAttacker, creatureTarget);
|
return GenerateDataCreatureToCreature(creatureAttacker, creatureTarget);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -160,10 +160,9 @@ namespace Game
|
|||||||
// some save parts only correctly work in case player present in map/player_lists (pets, etc)
|
// some save parts only correctly work in case player present in map/player_lists (pets, etc)
|
||||||
if (save)
|
if (save)
|
||||||
{
|
{
|
||||||
int eslot;
|
|
||||||
for (int j = InventorySlots.BuyBackStart; j < InventorySlots.BuyBackEnd; ++j)
|
for (int j = InventorySlots.BuyBackStart; j < InventorySlots.BuyBackEnd; ++j)
|
||||||
{
|
{
|
||||||
eslot = j - InventorySlots.BuyBackStart;
|
int eslot = j - InventorySlots.BuyBackStart;
|
||||||
_player.SetGuidValue(PlayerFields.InvSlotHead + (j * 4), ObjectGuid.Empty);
|
_player.SetGuidValue(PlayerFields.InvSlotHead + (j * 4), ObjectGuid.Empty);
|
||||||
_player.SetUInt32Value(PlayerFields.BuyBackPrice1 + eslot, 0);
|
_player.SetUInt32Value(PlayerFields.BuyBackPrice1 + eslot, 0);
|
||||||
_player.SetUInt32Value(PlayerFields.BuyBackTimestamp1 + eslot, 0);
|
_player.SetUInt32Value(PlayerFields.BuyBackTimestamp1 + eslot, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user