Core: Updated to 10.0.5
Port From (https://github.com/TrinityCore/TrinityCore/commit/4bec7233badf9d3ab71dbdde8b24f66f7c4eedfb)
This commit is contained in:
@@ -3600,6 +3600,10 @@ namespace Game.Achievements
|
||||
if (GameTime.GetGameTime() - referencePlayer.m_playerData.LogoutTime < reqValue * Time.Day)
|
||||
return false;
|
||||
break;
|
||||
case ModifierTreeType.PlayerHasPerksProgramPendingReward: // 350
|
||||
if (!referencePlayer.m_activePlayerData.HasPerksProgramPendingReward)
|
||||
return false;
|
||||
break;
|
||||
case ModifierTreeType.PlayerCanUseItem: // 351
|
||||
{
|
||||
ItemTemplate itemTemplate = Global.ObjectMgr.GetItemTemplate(reqValue);
|
||||
@@ -3607,6 +3611,26 @@ namespace Game.Achievements
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
case ModifierTreeType.PlayerHasAtLeastProfPathRanks: // 355
|
||||
{
|
||||
uint ranks = 0;
|
||||
foreach (TraitConfig traitConfig in referencePlayer.m_activePlayerData.TraitConfigs)
|
||||
{
|
||||
if ((TraitConfigType)(int)traitConfig.Type != TraitConfigType.Profession)
|
||||
continue;
|
||||
|
||||
if (traitConfig.SkillLineID != secondaryAsset)
|
||||
continue;
|
||||
|
||||
foreach (TraitEntry traitEntry in traitConfig.Entries)
|
||||
if (CliDB.TraitNodeEntryStorage.LookupByKey(traitEntry.TraitNodeEntryID)?.GetNodeEntryType() == TraitNodeEntryType.ProfPath)
|
||||
ranks += (uint)(traitEntry.Rank + traitEntry.GrantedRanks);
|
||||
}
|
||||
|
||||
if (ranks < reqValue)
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -191,7 +191,9 @@ namespace Game.DataStorage
|
||||
public uint Id;
|
||||
public int TraitDefinitionID;
|
||||
public int MaxRanks;
|
||||
public byte NodeRecordType;
|
||||
public byte NodeEntryType;
|
||||
|
||||
public TraitNodeEntryType GetNodeEntryType() { return (TraitNodeEntryType)NodeEntryType; }
|
||||
}
|
||||
|
||||
public sealed class TraitNodeEntryXTraitCondRecord
|
||||
|
||||
@@ -1206,6 +1206,7 @@ namespace Game.Entities
|
||||
public uint SitAnimKit; // 2 Sit Anim Kit, References: AnimKit, NoValue = 0
|
||||
public uint InteractRadiusOverride; // 3 Interact Radius Override (in hundredths), int, Min value: 0, Max value: 2147483647, Default value: 0
|
||||
public uint CustomizationScope; // 4 Customization Scope, int, Min value: 0, Max value: 2147483647, Default value: 0
|
||||
public uint Preventteleportingtheplayeroutofthebarbershopchair;// 5 Prevent teleporting the player out of the barbershop chair, enum { false, true, }; Default: false
|
||||
}
|
||||
|
||||
public struct destructiblebuilding
|
||||
@@ -1512,6 +1513,12 @@ namespace Game.Entities
|
||||
{
|
||||
public uint Profession; // 0 Profession, enum { First Aid, Blacksmithing, Leatherworking, Alchemy, Herbalism, Cooking, Mining, Tailoring, Engineering, Enchanting, Fishing, Skinning, Jewelcrafting, Inscription, Archaeology, }; Default: Blacksmithing
|
||||
}
|
||||
|
||||
public struct perksProgramChest
|
||||
{
|
||||
public uint Script; // 0 Script, References: SpellScript, NoValue = 0
|
||||
public uint autoClose; // 1 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1246,7 +1246,7 @@ namespace Game.Entities
|
||||
{
|
||||
m_mail.Clear();
|
||||
|
||||
Dictionary<uint, Mail> mailById = new();
|
||||
Dictionary<ulong, Mail> mailById = new();
|
||||
|
||||
if (!mailsResult.IsEmpty())
|
||||
{
|
||||
@@ -1254,7 +1254,7 @@ namespace Game.Entities
|
||||
{
|
||||
Mail m = new();
|
||||
|
||||
m.messageID = mailsResult.Read<uint>(0);
|
||||
m.messageID = mailsResult.Read<ulong>(0);
|
||||
m.messageType = (MailMessageType)mailsResult.Read<byte>(1);
|
||||
m.sender = mailsResult.Read<uint>(2);
|
||||
m.receiver = mailsResult.Read<uint>(3);
|
||||
@@ -1289,7 +1289,7 @@ namespace Game.Entities
|
||||
|
||||
do
|
||||
{
|
||||
uint mailId = mailItemsResult.Read<uint>(52);
|
||||
ulong mailId = mailItemsResult.Read<ulong>(52);
|
||||
_LoadMailedItem(GetGUID(), this, mailId, mailById[mailId], mailItemsResult.GetFields(), additionalData.LookupByKey(mailItemsResult.Read<ulong>(0)));
|
||||
}
|
||||
while (mailItemsResult.NextRow());
|
||||
@@ -1298,7 +1298,7 @@ namespace Game.Entities
|
||||
UpdateNextMailTimeAndUnreads();
|
||||
}
|
||||
|
||||
static Item _LoadMailedItem(ObjectGuid playerGuid, Player player, uint mailId, Mail mail, SQLFields fields, ItemAdditionalLoadInfo addionalData)
|
||||
static Item _LoadMailedItem(ObjectGuid playerGuid, Player player, ulong mailId, Mail mail, SQLFields fields, ItemAdditionalLoadInfo addionalData)
|
||||
{
|
||||
ulong itemGuid = fields.Read<ulong>(0);
|
||||
uint itemEntry = fields.Read<uint>(1);
|
||||
@@ -4081,7 +4081,7 @@ namespace Game.Entities
|
||||
SQLResult resultMail = DB.Characters.Query(stmt);
|
||||
if (!resultMail.IsEmpty())
|
||||
{
|
||||
MultiMap<uint, Item> itemsByMail = new();
|
||||
MultiMap<ulong, Item> itemsByMail = new();
|
||||
|
||||
stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_MAILITEMS);
|
||||
stmt.AddValue(0, guid);
|
||||
@@ -4114,7 +4114,7 @@ namespace Game.Entities
|
||||
|
||||
do
|
||||
{
|
||||
uint mailId = resultItems.Read<uint>(44);
|
||||
ulong mailId = resultItems.Read<ulong>(44);
|
||||
Item mailItem = _LoadMailedItem(playerGuid, null, mailId, null, resultItems.GetFields(), additionalData.LookupByKey(resultItems.Read<ulong>(0)));
|
||||
if (mailItem != null)
|
||||
itemsByMail.Add(mailId, mailItem);
|
||||
@@ -4124,7 +4124,7 @@ namespace Game.Entities
|
||||
|
||||
do
|
||||
{
|
||||
uint mail_id = resultMail.Read<uint>(0);
|
||||
ulong mail_id = resultMail.Read<ulong>(0);
|
||||
MailMessageType mailType = (MailMessageType)resultMail.Read<byte>(1);
|
||||
ushort mailTemplateId = resultMail.Read<ushort>(2);
|
||||
uint sender = resultMail.Read<uint>(3);
|
||||
|
||||
@@ -2879,10 +2879,15 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
public void SendQuestGiverStatusMultiple()
|
||||
{
|
||||
SendQuestGiverStatusMultiple(m_clientGUIDs);
|
||||
}
|
||||
|
||||
public void SendQuestGiverStatusMultiple(List<ObjectGuid> guids)
|
||||
{
|
||||
QuestGiverStatusMultiple response = new();
|
||||
|
||||
foreach (var itr in m_clientGUIDs)
|
||||
foreach (var itr in guids)
|
||||
{
|
||||
if (itr.IsAnyTypeCreature())
|
||||
{
|
||||
|
||||
@@ -2763,7 +2763,8 @@ namespace Game.Entities
|
||||
|
||||
//Mail
|
||||
public void AddMail(Mail mail) { m_mail.Insert(0, mail); }
|
||||
public void RemoveMail(uint id)
|
||||
|
||||
public void RemoveMail(ulong id)
|
||||
{
|
||||
foreach (var mail in m_mail)
|
||||
{
|
||||
@@ -2775,27 +2776,30 @@ namespace Game.Entities
|
||||
}
|
||||
}
|
||||
}
|
||||
public void SendMailResult(uint mailId, MailResponseType mailAction, MailResponseResult mailError, InventoryResult equipError = 0, uint item_guid = 0, uint item_count = 0)
|
||||
|
||||
public void SendMailResult(ulong mailId, MailResponseType mailAction, MailResponseResult mailError, InventoryResult equipError = 0, ulong itemGuid = 0, uint itemCount = 0)
|
||||
{
|
||||
MailCommandResult result = new();
|
||||
result.MailID = mailId;
|
||||
result.Command = (uint)mailAction;
|
||||
result.ErrorCode = (uint)mailError;
|
||||
result.Command = (int)mailAction;
|
||||
result.ErrorCode = (int)mailError;
|
||||
|
||||
if (mailError == MailResponseResult.EquipError)
|
||||
result.BagResult = (uint)equipError;
|
||||
result.BagResult = (int)equipError;
|
||||
else if (mailAction == MailResponseType.ItemTaken)
|
||||
{
|
||||
result.AttachID = item_guid;
|
||||
result.QtyInInventory = item_count;
|
||||
result.AttachID = itemGuid;
|
||||
result.QtyInInventory = (int)itemCount;
|
||||
}
|
||||
|
||||
SendPacket(result);
|
||||
}
|
||||
|
||||
void SendNewMail()
|
||||
{
|
||||
SendPacket(new NotifyReceivedMail());
|
||||
}
|
||||
|
||||
public void UpdateNextMailTimeAndUnreads()
|
||||
{
|
||||
// calculate next delivery time (min. from non-delivered mails
|
||||
@@ -2814,6 +2818,7 @@ namespace Game.Entities
|
||||
++unReadMails;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddNewMailDeliverTime(long deliver_time)
|
||||
{
|
||||
if (deliver_time <= GameTime.GetGameTime()) // ready now
|
||||
@@ -2827,16 +2832,19 @@ namespace Game.Entities
|
||||
m_nextMailDelivereTime = deliver_time;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddMItem(Item it)
|
||||
{
|
||||
mMitems[it.GetGUID().GetCounter()] = it;
|
||||
}
|
||||
|
||||
public bool RemoveMItem(ulong id)
|
||||
{
|
||||
return mMitems.Remove(id);
|
||||
}
|
||||
|
||||
public Item GetMItem(ulong id) { return mMitems.LookupByKey(id); }
|
||||
public Mail GetMail(uint id) { return m_mail.Find(p => p.messageID == id); }
|
||||
public Mail GetMail(ulong id) { return m_mail.Find(p => p.messageID == id); }
|
||||
public List<Mail> GetMails() { return m_mail; }
|
||||
public uint GetMailSize() { return (uint)m_mail.Count; }
|
||||
|
||||
|
||||
@@ -9614,7 +9614,7 @@ namespace Game
|
||||
return; // any mails need to be returned or deleted
|
||||
}
|
||||
|
||||
MultiMap<uint, MailItemInfo> itemsCache = new();
|
||||
MultiMap<ulong, MailItemInfo> itemsCache = new();
|
||||
stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_EXPIRED_MAIL_ITEMS);
|
||||
stmt.AddValue(0, curTime);
|
||||
SQLResult items = DB.Characters.Query(stmt);
|
||||
@@ -9625,7 +9625,7 @@ namespace Game
|
||||
{
|
||||
item.item_guid = result.Read<uint>(0);
|
||||
item.item_template = result.Read<uint>(1);
|
||||
uint mailId = result.Read<uint>(2);
|
||||
ulong mailId = result.Read<ulong>(2);
|
||||
itemsCache.Add(mailId, item);
|
||||
} while (items.NextRow());
|
||||
}
|
||||
@@ -9639,7 +9639,7 @@ namespace Game
|
||||
continue;
|
||||
|
||||
Mail m = new();
|
||||
m.messageID = result.Read<uint>(0);
|
||||
m.messageID = result.Read<ulong>(0);
|
||||
m.messageType = (MailMessageType)result.Read<byte>(1);
|
||||
m.sender = result.Read<uint>(2);
|
||||
m.receiver = receiver;
|
||||
@@ -10360,7 +10360,7 @@ namespace Game
|
||||
|
||||
result = DB.Characters.Query("SELECT MAX(id) FROM mail");
|
||||
if (!result.IsEmpty())
|
||||
_mailId = result.Read<uint>(0) + 1;
|
||||
_mailId = result.Read<ulong>(0) + 1;
|
||||
|
||||
result = DB.Characters.Query("SELECT MAX(arenateamid) FROM arena_team");
|
||||
if (!result.IsEmpty())
|
||||
@@ -10404,7 +10404,7 @@ namespace Game
|
||||
}
|
||||
return _equipmentSetGuid++;
|
||||
}
|
||||
public uint GenerateMailID()
|
||||
public ulong GenerateMailID()
|
||||
{
|
||||
if (_mailId >= 0xFFFFFFFE)
|
||||
{
|
||||
@@ -11042,7 +11042,7 @@ namespace Game
|
||||
// first free id for selected id type
|
||||
uint _auctionId;
|
||||
ulong _equipmentSetGuid;
|
||||
uint _mailId;
|
||||
ulong _mailId;
|
||||
uint _hiPetNumber;
|
||||
ulong _creatureSpawnId;
|
||||
ulong _gameObjectSpawnId;
|
||||
|
||||
@@ -1112,8 +1112,6 @@ namespace Game
|
||||
|
||||
// START OF DUMMY VALUES
|
||||
features.ComplaintStatus = (byte)ComplaintStatus.EnabledWithAutoIgnore;
|
||||
features.ScrollOfResurrectionRequestsRemaining = 1;
|
||||
features.ScrollOfResurrectionMaxRequestsPerDay = 1;
|
||||
features.TwitterPostThrottleLimit = 60;
|
||||
features.TwitterPostThrottleCooldown = 20;
|
||||
features.CfgRealmID = 2;
|
||||
|
||||
@@ -405,7 +405,7 @@ namespace Game
|
||||
[WorldPacketHandler(ClientOpcodes.MailTakeItem)]
|
||||
void HandleMailTakeItem(MailTakeItem takeItem)
|
||||
{
|
||||
uint AttachID = takeItem.AttachID;
|
||||
ulong AttachID = takeItem.AttachID;
|
||||
|
||||
if (!CanOpenMailBox(takeItem.Mailbox))
|
||||
return;
|
||||
|
||||
@@ -755,6 +755,12 @@ namespace Game
|
||||
_player.SendQuestGiverStatusMultiple();
|
||||
}
|
||||
|
||||
[WorldPacketHandler(ClientOpcodes.QuestGiverStatusTrackedQuery)]
|
||||
void HandleQuestgiverStatusTrackedQueryOpcode(QuestGiverStatusTrackedQuery questGiverStatusTrackedQuery)
|
||||
{
|
||||
_player.SendQuestGiverStatusMultiple(questGiverStatusTrackedQuery.QuestGiverGUIDs);
|
||||
}
|
||||
|
||||
[WorldPacketHandler(ClientOpcodes.RequestWorldQuestUpdate)]
|
||||
void HandleRequestWorldQuestUpdate(RequestWorldQuestUpdate packet)
|
||||
{
|
||||
|
||||
@@ -18,11 +18,11 @@ namespace Game.Mails
|
||||
items.Add(mii);
|
||||
}
|
||||
|
||||
public bool RemoveItem(uint item_guid)
|
||||
public bool RemoveItem(ulong itemGuid)
|
||||
{
|
||||
foreach (var item in items)
|
||||
{
|
||||
if (item.item_guid == item_guid)
|
||||
if (item.item_guid == itemGuid)
|
||||
{
|
||||
items.Remove(item);
|
||||
return true;
|
||||
@@ -33,7 +33,7 @@ namespace Game.Mails
|
||||
|
||||
public bool HasItems() { return !items.Empty(); }
|
||||
|
||||
public uint messageID;
|
||||
public ulong messageID;
|
||||
public MailMessageType messageType;
|
||||
public MailStationery stationery;
|
||||
public uint mailTemplateId;
|
||||
@@ -42,7 +42,7 @@ namespace Game.Mails
|
||||
public string subject;
|
||||
public string body;
|
||||
public List<MailItemInfo> items = new();
|
||||
public List<uint> removedItems = new();
|
||||
public List<ulong> removedItems = new();
|
||||
public long expire_time;
|
||||
public long deliver_time;
|
||||
public ulong money;
|
||||
|
||||
@@ -131,7 +131,7 @@ namespace Game.Mails
|
||||
if (pReceiver != null)
|
||||
PrepareItems(pReceiver, trans); // generate mail template items
|
||||
|
||||
uint mailId = Global.ObjectMgr.GenerateMailID();
|
||||
ulong mailId = Global.ObjectMgr.GenerateMailID();
|
||||
|
||||
long deliver_time = GameTime.GetGameTime() + deliver_delay;
|
||||
|
||||
|
||||
@@ -478,7 +478,11 @@ namespace Game.Networking.Packets
|
||||
_worldPacket.WriteUInt32(BattlemasterListID);
|
||||
_worldPacket.WriteBit(Registered);
|
||||
_worldPacket.WriteBit(AffectsRating);
|
||||
_worldPacket.WriteBit(DeserterPenalty != null);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
if (DeserterPenalty != null)
|
||||
DeserterPenalty.Write(_worldPacket);
|
||||
}
|
||||
|
||||
public enum MatchState
|
||||
@@ -492,6 +496,7 @@ namespace Game.Networking.Packets
|
||||
public MatchState State = MatchState.Inactive;
|
||||
public long StartTime;
|
||||
public int Duration;
|
||||
public RatedMatchDeserterPenalty DeserterPenalty;
|
||||
public byte ArenaFaction;
|
||||
public uint BattlemasterListID;
|
||||
public bool Registered;
|
||||
@@ -598,6 +603,20 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
}
|
||||
|
||||
class RatedMatchDeserterPenalty
|
||||
{
|
||||
public int PersonalRatingChange;
|
||||
public int QueuePenaltySpellID;
|
||||
public int QueuePenaltyDuration;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteInt32(PersonalRatingChange);
|
||||
data.WriteInt32(QueuePenaltySpellID);
|
||||
data.WriteInt32(QueuePenaltyDuration);
|
||||
}
|
||||
}
|
||||
|
||||
public class PVPMatchStatistics
|
||||
{
|
||||
public List<PVPMatchPlayerStatistics> Statistics = new();
|
||||
|
||||
@@ -21,11 +21,12 @@ namespace Game.Networking.Packets
|
||||
class CraftingData
|
||||
{
|
||||
public int CraftingQualityID;
|
||||
public int field_4;
|
||||
public int field_8;
|
||||
public float QualityProgress;
|
||||
public int SkillLineAbilityID;
|
||||
public int CraftingDataID;
|
||||
public int Multicraft;
|
||||
public int field_10;
|
||||
public int field_14;
|
||||
public int SkillFromReagents;
|
||||
public int Skill;
|
||||
public int CritBonusSkill;
|
||||
public float field_1C;
|
||||
public ulong field_20;
|
||||
@@ -44,11 +45,12 @@ namespace Game.Networking.Packets
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteInt32(CraftingQualityID);
|
||||
data.WriteInt32(field_4);
|
||||
data.WriteInt32(field_8);
|
||||
data.WriteFloat(QualityProgress);
|
||||
data.WriteInt32(SkillLineAbilityID);
|
||||
data.WriteInt32(CraftingDataID);
|
||||
data.WriteInt32(Multicraft);
|
||||
data.WriteInt32(field_10);
|
||||
data.WriteInt32(field_14);
|
||||
data.WriteInt32(SkillFromReagents);
|
||||
data.WriteInt32(Skill);
|
||||
data.WriteInt32(CritBonusSkill);
|
||||
data.WriteFloat(field_1C);
|
||||
data.WriteUInt64(field_20);
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
|
||||
public ObjectGuid Mailbox;
|
||||
public uint MailID;
|
||||
public ulong MailID;
|
||||
}
|
||||
|
||||
public class SendMail : ClientPacket
|
||||
@@ -115,20 +115,20 @@ namespace Game.Networking.Packets
|
||||
|
||||
public override void Write()
|
||||
{
|
||||
_worldPacket.WriteUInt32(MailID);
|
||||
_worldPacket.WriteUInt32(Command);
|
||||
_worldPacket.WriteUInt32(ErrorCode);
|
||||
_worldPacket.WriteUInt32(BagResult);
|
||||
_worldPacket.WriteUInt32(AttachID);
|
||||
_worldPacket.WriteUInt32(QtyInInventory);
|
||||
_worldPacket.WriteUInt64(MailID);
|
||||
_worldPacket.WriteInt32(Command);
|
||||
_worldPacket.WriteInt32(ErrorCode);
|
||||
_worldPacket.WriteInt32(BagResult);
|
||||
_worldPacket.WriteUInt64(AttachID);
|
||||
_worldPacket.WriteInt32(QtyInInventory);
|
||||
}
|
||||
|
||||
public uint MailID;
|
||||
public uint Command;
|
||||
public uint ErrorCode;
|
||||
public uint BagResult;
|
||||
public uint AttachID;
|
||||
public uint QtyInInventory;
|
||||
public ulong MailID;
|
||||
public int Command;
|
||||
public int ErrorCode;
|
||||
public int BagResult;
|
||||
public ulong AttachID;
|
||||
public int QtyInInventory;
|
||||
}
|
||||
|
||||
public class MailReturnToSender : ClientPacket
|
||||
@@ -141,7 +141,7 @@ namespace Game.Networking.Packets
|
||||
SenderGUID = _worldPacket.ReadPackedGuid();
|
||||
}
|
||||
|
||||
public uint MailID;
|
||||
public ulong MailID;
|
||||
public ObjectGuid SenderGUID;
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
|
||||
public ObjectGuid Mailbox;
|
||||
public uint MailID;
|
||||
public ulong MailID;
|
||||
}
|
||||
|
||||
public class MailDelete : ClientPacket
|
||||
@@ -169,7 +169,7 @@ namespace Game.Networking.Packets
|
||||
DeleteReason = _worldPacket.ReadInt32();
|
||||
}
|
||||
|
||||
public uint MailID;
|
||||
public ulong MailID;
|
||||
public int DeleteReason;
|
||||
}
|
||||
|
||||
@@ -185,8 +185,8 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
|
||||
public ObjectGuid Mailbox;
|
||||
public uint MailID;
|
||||
public uint AttachID;
|
||||
public ulong MailID;
|
||||
public ulong AttachID;
|
||||
}
|
||||
|
||||
public class MailTakeMoney : ClientPacket
|
||||
@@ -197,12 +197,12 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
Mailbox = _worldPacket.ReadPackedGuid();
|
||||
MailID = _worldPacket.ReadUInt32();
|
||||
Money = _worldPacket.ReadInt64();
|
||||
Money = _worldPacket.ReadUInt64();
|
||||
}
|
||||
|
||||
public ObjectGuid Mailbox;
|
||||
public uint MailID;
|
||||
public long Money;
|
||||
public ulong MailID;
|
||||
public ulong Money;
|
||||
}
|
||||
|
||||
public class MailQueryNextMailTime : ClientPacket
|
||||
@@ -285,7 +285,7 @@ namespace Game.Networking.Packets
|
||||
public MailAttachedItem(Item item, byte pos)
|
||||
{
|
||||
Position = pos;
|
||||
AttachID = (int)item.GetGUID().GetCounter();
|
||||
AttachID = item.GetGUID().GetCounter();
|
||||
Item = new ItemInstance(item);
|
||||
Count = item.GetCount();
|
||||
Charges = item.GetSpellCharges();
|
||||
@@ -318,7 +318,7 @@ namespace Game.Networking.Packets
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteUInt8(Position);
|
||||
data.WriteInt32(AttachID);
|
||||
data.WriteUInt64(AttachID);
|
||||
data.WriteUInt32(Count);
|
||||
data.WriteInt32(Charges);
|
||||
data.WriteUInt32(MaxDurability);
|
||||
@@ -337,7 +337,7 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
|
||||
public byte Position;
|
||||
public int AttachID;
|
||||
public ulong AttachID;
|
||||
public ItemInstance Item;
|
||||
public uint Count;
|
||||
public int Charges;
|
||||
@@ -352,7 +352,7 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
public MailListEntry(Mail mail, Player player)
|
||||
{
|
||||
MailID = (int)mail.messageID;
|
||||
MailID = mail.messageID;
|
||||
SenderType = (byte)mail.messageType;
|
||||
|
||||
switch (mail.messageType)
|
||||
@@ -387,7 +387,7 @@ namespace Game.Networking.Packets
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteInt32(MailID);
|
||||
data.WriteUInt64(MailID);
|
||||
data.WriteUInt8(SenderType);
|
||||
data.WriteUInt64(Cod);
|
||||
data.WriteInt32(StationeryID);
|
||||
@@ -415,7 +415,7 @@ namespace Game.Networking.Packets
|
||||
data.WriteString(Body);
|
||||
}
|
||||
|
||||
public int MailID;
|
||||
public ulong MailID;
|
||||
public byte SenderType;
|
||||
public ObjectGuid? SenderCharacter;
|
||||
public uint? AltSenderID;
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
// Copyright (c) CypherCore <http://github.com/CypherCore> All rights reserved.
|
||||
// Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information.
|
||||
|
||||
namespace Game.Networking.Packets
|
||||
{
|
||||
public struct PerksVendorItem
|
||||
{
|
||||
public int VendorItemID;
|
||||
public int MountID;
|
||||
public int BattlePetSpeciesID;
|
||||
public int TransmogSetID;
|
||||
public int ItemModifiedAppearanceID;
|
||||
public int Field_14;
|
||||
public int Field_18;
|
||||
public int Price;
|
||||
public long AvailableUntil;
|
||||
public bool Disabled;
|
||||
|
||||
public void Write(WorldPacket data)
|
||||
{
|
||||
data.WriteInt32(VendorItemID);
|
||||
data.WriteInt32(MountID);
|
||||
data.WriteInt32(BattlePetSpeciesID);
|
||||
data.WriteInt32(TransmogSetID);
|
||||
data.WriteInt32(ItemModifiedAppearanceID);
|
||||
data.WriteInt32(Field_14);
|
||||
data.WriteInt32(Field_18);
|
||||
data.WriteInt32(Price);
|
||||
data.WriteInt64(AvailableUntil);
|
||||
data.WriteBit(Disabled);
|
||||
data.FlushBits();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,21 @@ namespace Game.Networking.Packets
|
||||
public override void Read() { }
|
||||
}
|
||||
|
||||
class QuestGiverStatusTrackedQuery : ClientPacket
|
||||
{
|
||||
public List<ObjectGuid> QuestGiverGUIDs = new();
|
||||
|
||||
public QuestGiverStatusTrackedQuery(WorldPacket packet) : base(packet) { }
|
||||
|
||||
public override void Read()
|
||||
{
|
||||
uint guidCount = _worldPacket.ReadUInt32();
|
||||
|
||||
for (uint i = 0; i < guidCount; ++i)
|
||||
QuestGiverGUIDs.Add(_worldPacket.ReadPackedGuid());
|
||||
}
|
||||
}
|
||||
|
||||
public class QuestGiverStatusPkt : ServerPacket
|
||||
{
|
||||
public QuestGiverStatusPkt() : base(ServerOpcodes.QuestGiverStatus, ConnectionType.Instance)
|
||||
|
||||
@@ -899,11 +899,9 @@ namespace Game.Networking.Packets
|
||||
public override void Read()
|
||||
{
|
||||
UnitGUID = _worldPacket.ReadPackedGuid();
|
||||
DisplayID = _worldPacket.ReadUInt32();
|
||||
}
|
||||
|
||||
public ObjectGuid UnitGUID;
|
||||
public uint DisplayID;
|
||||
}
|
||||
|
||||
class MirrorImageComponentedData : ServerPacket
|
||||
|
||||
@@ -17,9 +17,6 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
_worldPacket.WriteUInt8(ComplaintStatus);
|
||||
|
||||
_worldPacket.WriteUInt32(ScrollOfResurrectionRequestsRemaining);
|
||||
_worldPacket.WriteUInt32(ScrollOfResurrectionMaxRequestsPerDay);
|
||||
|
||||
_worldPacket.WriteUInt32(CfgRealmID);
|
||||
_worldPacket.WriteInt32(CfgRealmRecID);
|
||||
|
||||
@@ -51,7 +48,6 @@ namespace Game.Networking.Packets
|
||||
|
||||
_worldPacket.WriteBit(VoiceEnabled);
|
||||
_worldPacket.WriteBit(EuropaTicketSystemStatus.HasValue);
|
||||
_worldPacket.WriteBit(ScrollOfResurrectionEnabled);
|
||||
_worldPacket.WriteBit(BpayStoreEnabled);
|
||||
_worldPacket.WriteBit(BpayStoreAvailable);
|
||||
_worldPacket.WriteBit(BpayStoreDisabledByParentalControls);
|
||||
@@ -140,10 +136,7 @@ namespace Game.Networking.Packets
|
||||
public bool BpayStoreAvailable;
|
||||
public bool BpayStoreEnabled;
|
||||
public SessionAlertConfig? SessionAlert;
|
||||
public uint ScrollOfResurrectionMaxRequestsPerDay;
|
||||
public bool ScrollOfResurrectionEnabled;
|
||||
public EuropaTicketConfig? EuropaTicketSystemStatus;
|
||||
public uint ScrollOfResurrectionRequestsRemaining;
|
||||
public uint CfgRealmID;
|
||||
public byte ComplaintStatus;
|
||||
public int CfgRealmRecID;
|
||||
|
||||
@@ -328,7 +328,7 @@ namespace Game.Networking.Packets
|
||||
{
|
||||
public void Read(WorldPacket data)
|
||||
{
|
||||
MailID = data.ReadInt32();
|
||||
MailID = data.ReadUInt64();
|
||||
uint bodyLength = data.ReadBits<uint>(13);
|
||||
uint subjectLength = data.ReadBits<uint>(9);
|
||||
|
||||
@@ -336,7 +336,7 @@ namespace Game.Networking.Packets
|
||||
MailSubject = data.ReadString(subjectLength);
|
||||
}
|
||||
|
||||
public int MailID;
|
||||
public ulong MailID;
|
||||
public string MailSubject;
|
||||
public string MailBody;
|
||||
}
|
||||
@@ -479,7 +479,7 @@ namespace Game.Networking.Packets
|
||||
switch (ComplaintType)
|
||||
{
|
||||
case SupportSpamType.Mail:
|
||||
MailID = _worldPacket.ReadUInt32();
|
||||
MailID = _worldPacket.ReadUInt64();
|
||||
break;
|
||||
case SupportSpamType.Chat:
|
||||
Chat.Read(_worldPacket);
|
||||
@@ -492,14 +492,14 @@ namespace Game.Networking.Packets
|
||||
}
|
||||
|
||||
public SupportSpamType ComplaintType;
|
||||
ComplaintOffender Offender;
|
||||
uint MailID;
|
||||
ComplaintChat Chat;
|
||||
public ComplaintOffender Offender;
|
||||
public ulong MailID;
|
||||
public ComplaintChat Chat;
|
||||
|
||||
ulong EventGuid;
|
||||
ulong InviteGuid;
|
||||
public ulong EventGuid;
|
||||
public ulong InviteGuid;
|
||||
|
||||
struct ComplaintOffender
|
||||
public struct ComplaintOffender
|
||||
{
|
||||
public void Read(WorldPacket data)
|
||||
{
|
||||
@@ -513,7 +513,7 @@ namespace Game.Networking.Packets
|
||||
public uint TimeSinceOffence;
|
||||
}
|
||||
|
||||
struct ComplaintChat
|
||||
public struct ComplaintChat
|
||||
{
|
||||
public void Read(WorldPacket data)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user