Core: Updated to 10.0.5

Port From (https://github.com/TrinityCore/TrinityCore/commit/4bec7233badf9d3ab71dbdde8b24f66f7c4eedfb)
This commit is contained in:
hondacrx
2023-01-30 10:07:42 -05:00
parent e982be523a
commit 08fcedaf21
25 changed files with 1684 additions and 1470 deletions
@@ -421,7 +421,12 @@ namespace Framework.Constants
PlayerDaysSinceLogout = 344, PlayerDaysSinceLogout = 344,
CraftingOrderSkillLineAbility = 347, /*NYI*/ CraftingOrderSkillLineAbility = 347, /*NYI*/
CraftingOrderProfession = 348, /*NYI*/ // ProfessionEnum CraftingOrderProfession = 348, /*NYI*/ // ProfessionEnum
PlayerHasPerksProgramPendingReward = 350,
PlayerCanUseItem = 351, // Player can use item {#Item} PlayerCanUseItem = 351, // Player can use item {#Item}
PlayerHasAtLeastProfPathRanks = 355, // Player has purchased or granted at least {#Count} ranks in {SkillLine} config
PlayerHasAtLeastMissingProfPathRanks = 356, /*NYI*/ // Player is missing least {#Count} ranks in {SkillLine} config
} }
public enum CriteriaFailEvent : byte public enum CriteriaFailEvent : byte
@@ -716,6 +721,9 @@ namespace Framework.Constants
ReputationAmountGained = 243, /*NYI*/ // Gain reputation amount with {FactionID}; accumulate, not highest ReputationAmountGained = 243, /*NYI*/ // Gain reputation amount with {FactionID}; accumulate, not highest
FulfillAnyCraftingOrder = 245, /*NYI*/ FulfillAnyCraftingOrder = 245, /*NYI*/
FulfillCraftingOrderType = 246, /*NYI*/ // {CraftingOrderType} FulfillCraftingOrderType = 246, /*NYI*/ // {CraftingOrderType}
PerksProgramMonthComplete = 249, /*NYI*/
Count Count
} }
@@ -66,7 +66,10 @@ namespace Framework.Constants
GarrTalentTree = 58, GarrTalentTree = 58,
WeeklyRewardChest = 59, WeeklyRewardChest = 59,
ClientModel = 60, ClientModel = 60,
Max = 61 CraftingTable = 61,
PerksProgramChest = 62,
Max
} }
public enum GameObjectState public enum GameObjectState
File diff suppressed because it is too large Load Diff
+284 -283
View File
@@ -2763,289 +2763,290 @@ namespace Framework.Constants
DifficultyChangeEncounter = 828, DifficultyChangeEncounter = 828,
DifficultyChangeCombat = 829, DifficultyChangeCombat = 829,
DifficultyChangePlayerBusy = 830, DifficultyChangePlayerBusy = 830,
DifficultyChangeAlreadyStarted = 831, DifficultyChangePlayerOnVehicle = 831,
DifficultyChangeOtherHeroicS = 832, DifficultyChangeAlreadyStarted = 832,
DifficultyChangeHeroicInstanceAlreadyRunning = 833, DifficultyChangeOtherHeroicS = 833,
ArenaTeamPartySize = 834, DifficultyChangeHeroicInstanceAlreadyRunning = 834,
SoloShuffleWargameGroupSize = 835, ArenaTeamPartySize = 835,
SoloShuffleWargameGroupComp = 836, SoloShuffleWargameGroupSize = 836,
SoloShuffleMinItemLevel = 837, SoloShuffleWargameGroupComp = 837,
PvpPlayerAbandoned = 838, SoloShuffleMinItemLevel = 838,
QuestForceRemovedS = 839, PvpPlayerAbandoned = 839,
AttackNoActions = 840, QuestForceRemovedS = 840,
InRandomBg = 841, AttackNoActions = 841,
InNonRandomBg = 842, InRandomBg = 842,
BnFriendSelf = 843, InNonRandomBg = 843,
BnFriendAlready = 844, BnFriendSelf = 844,
BnFriendBlocked = 845, BnFriendAlready = 845,
BnFriendListFull = 846, BnFriendBlocked = 846,
BnFriendRequestSent = 847, BnFriendListFull = 847,
BnBroadcastThrottle = 848, BnFriendRequestSent = 848,
BgDeveloperOnly = 849, BnBroadcastThrottle = 849,
CurrencySpellSlotMismatch = 850, BgDeveloperOnly = 850,
CurrencyNotTradable = 851, CurrencySpellSlotMismatch = 851,
RequiresExpansionS = 852, CurrencyNotTradable = 852,
QuestFailedSpell = 853, RequiresExpansionS = 853,
TalentFailedUnspentTalentPoints = 854, QuestFailedSpell = 854,
TalentFailedNotEnoughTalentsInPrimaryTree = 855, TalentFailedUnspentTalentPoints = 855,
TalentFailedNoPrimaryTreeSelected = 856, TalentFailedNotEnoughTalentsInPrimaryTree = 856,
TalentFailedCantRemoveTalent = 857, TalentFailedNoPrimaryTreeSelected = 857,
TalentFailedUnknown = 858, TalentFailedCantRemoveTalent = 858,
TalentFailedInCombat = 859, TalentFailedUnknown = 859,
TalentFailedInPvpMatch = 860, TalentFailedInCombat = 860,
TalentFailedInMythicPlus = 861, TalentFailedInPvpMatch = 861,
WargameRequestFailure = 862, TalentFailedInMythicPlus = 862,
RankRequiresAuthenticator = 863, WargameRequestFailure = 863,
GuildBankVoucherFailed = 864, RankRequiresAuthenticator = 864,
WargameRequestSent = 865, GuildBankVoucherFailed = 865,
RequiresAchievementI = 866, WargameRequestSent = 866,
RefundResultExceedMaxCurrency = 867, RequiresAchievementI = 867,
CantBuyQuantity = 868, RefundResultExceedMaxCurrency = 868,
ItemIsBattlePayLocked = 869, CantBuyQuantity = 869,
PartyAlreadyInBattlegroundQueue = 870, ItemIsBattlePayLocked = 870,
PartyConfirmingBattlegroundQueue = 871, PartyAlreadyInBattlegroundQueue = 871,
BattlefieldTeamPartySize = 872, PartyConfirmingBattlegroundQueue = 872,
InsuffTrackedCurrencyIs = 873, BattlefieldTeamPartySize = 873,
NotOnTournamentRealm = 874, InsuffTrackedCurrencyIs = 874,
GuildTrialAccountTrial = 875, NotOnTournamentRealm = 875,
GuildTrialAccountVeteran = 876, GuildTrialAccountTrial = 876,
GuildUndeletableDueToLevel = 877, GuildTrialAccountVeteran = 877,
CantDoThatInAGroup = 878, GuildUndeletableDueToLevel = 878,
GuildLeaderReplaced = 879, CantDoThatInAGroup = 879,
TransmogrifyCantEquip = 880, GuildLeaderReplaced = 880,
TransmogrifyInvalidItemType = 881, TransmogrifyCantEquip = 881,
TransmogrifyNotSoulbound = 882, TransmogrifyInvalidItemType = 882,
TransmogrifyInvalidSource = 883, TransmogrifyNotSoulbound = 883,
TransmogrifyInvalidDestination = 884, TransmogrifyInvalidSource = 884,
TransmogrifyMismatch = 885, TransmogrifyInvalidDestination = 885,
TransmogrifyLegendary = 886, TransmogrifyMismatch = 886,
TransmogrifySameItem = 887, TransmogrifyLegendary = 887,
TransmogrifySameAppearance = 888, TransmogrifySameItem = 888,
TransmogrifyNotEquipped = 889, TransmogrifySameAppearance = 889,
VoidDepositFull = 890, TransmogrifyNotEquipped = 890,
VoidWithdrawFull = 891, VoidDepositFull = 891,
VoidStorageWrapped = 892, VoidWithdrawFull = 892,
VoidStorageStackable = 893, VoidStorageWrapped = 893,
VoidStorageUnbound = 894, VoidStorageStackable = 894,
VoidStorageRepair = 895, VoidStorageUnbound = 895,
VoidStorageCharges = 896, VoidStorageRepair = 896,
VoidStorageQuest = 897, VoidStorageCharges = 897,
VoidStorageConjured = 898, VoidStorageQuest = 898,
VoidStorageMail = 899, VoidStorageConjured = 899,
VoidStorageBag = 900, VoidStorageMail = 900,
VoidTransferStorageFull = 901, VoidStorageBag = 901,
VoidTransferInvFull = 902, VoidTransferStorageFull = 902,
VoidTransferInternalError = 903, VoidTransferInvFull = 903,
VoidTransferItemInvalid = 904, VoidTransferInternalError = 904,
DifficultyDisabledInLfg = 905, VoidTransferItemInvalid = 905,
VoidStorageUnique = 906, DifficultyDisabledInLfg = 906,
VoidStorageLoot = 907, VoidStorageUnique = 907,
VoidStorageHoliday = 908, VoidStorageLoot = 908,
VoidStorageDuration = 909, VoidStorageHoliday = 909,
VoidStorageLoadFailed = 910, VoidStorageDuration = 910,
VoidStorageInvalidItem = 911, VoidStorageLoadFailed = 911,
ParentalControlsChatMuted = 912, VoidStorageInvalidItem = 912,
SorStartExperienceIncomplete = 913, ParentalControlsChatMuted = 913,
SorInvalidEmail = 914, SorStartExperienceIncomplete = 914,
SorInvalidComment = 915, SorInvalidEmail = 915,
ChallengeModeResetCooldownS = 916, SorInvalidComment = 916,
ChallengeModeResetKeystone = 917, ChallengeModeResetCooldownS = 917,
PetJournalAlreadyInLoadout = 918, ChallengeModeResetKeystone = 918,
ReportSubmittedSuccessfully = 919, PetJournalAlreadyInLoadout = 919,
ReportSubmissionFailed = 920, ReportSubmittedSuccessfully = 920,
SuggestionSubmittedSuccessfully = 921, ReportSubmissionFailed = 921,
BugSubmittedSuccessfully = 922, SuggestionSubmittedSuccessfully = 922,
ChallengeModeEnabled = 923, BugSubmittedSuccessfully = 923,
ChallengeModeDisabled = 924, ChallengeModeEnabled = 924,
PetbattleCreateFailed = 925, ChallengeModeDisabled = 925,
PetbattleNotHere = 926, PetbattleCreateFailed = 926,
PetbattleNotHereOnTransport = 927, PetbattleNotHere = 927,
PetbattleNotHereUnevenGround = 928, PetbattleNotHereOnTransport = 928,
PetbattleNotHereObstructed = 929, PetbattleNotHereUnevenGround = 929,
PetbattleNotWhileInCombat = 930, PetbattleNotHereObstructed = 930,
PetbattleNotWhileDead = 931, PetbattleNotWhileInCombat = 931,
PetbattleNotWhileFlying = 932, PetbattleNotWhileDead = 932,
PetbattleTargetInvalid = 933, PetbattleNotWhileFlying = 933,
PetbattleTargetOutOfRange = 934, PetbattleTargetInvalid = 934,
PetbattleTargetNotCapturable = 935, PetbattleTargetOutOfRange = 935,
PetbattleNotATrainer = 936, PetbattleTargetNotCapturable = 936,
PetbattleDeclined = 937, PetbattleNotATrainer = 937,
PetbattleInBattle = 938, PetbattleDeclined = 938,
PetbattleInvalidLoadout = 939, PetbattleInBattle = 939,
PetbattleAllPetsDead = 940, PetbattleInvalidLoadout = 940,
PetbattleNoPetsInSlots = 941, PetbattleAllPetsDead = 941,
PetbattleNoAccountLock = 942, PetbattleNoPetsInSlots = 942,
PetbattleWildPetTapped = 943, PetbattleNoAccountLock = 943,
PetbattleRestrictedAccount = 944, PetbattleWildPetTapped = 944,
PetbattleOpponentNotAvailable = 945, PetbattleRestrictedAccount = 945,
PetbattleNotWhileInMatchedBattle = 946, PetbattleOpponentNotAvailable = 946,
CantHaveMorePetsOfThatType = 947, PetbattleNotWhileInMatchedBattle = 947,
CantHaveMorePets = 948, CantHaveMorePetsOfThatType = 948,
PvpMapNotFound = 949, CantHaveMorePets = 949,
PvpMapNotSet = 950, PvpMapNotFound = 950,
PetbattleQueueQueued = 951, PvpMapNotSet = 951,
PetbattleQueueAlreadyQueued = 952, PetbattleQueueQueued = 952,
PetbattleQueueJoinFailed = 953, PetbattleQueueAlreadyQueued = 953,
PetbattleQueueJournalLock = 954, PetbattleQueueJoinFailed = 954,
PetbattleQueueRemoved = 955, PetbattleQueueJournalLock = 955,
PetbattleQueueProposalDeclined = 956, PetbattleQueueRemoved = 956,
PetbattleQueueProposalTimeout = 957, PetbattleQueueProposalDeclined = 957,
PetbattleQueueOpponentDeclined = 958, PetbattleQueueProposalTimeout = 958,
PetbattleQueueRequeuedInternal = 959, PetbattleQueueOpponentDeclined = 959,
PetbattleQueueRequeuedRemoved = 960, PetbattleQueueRequeuedInternal = 960,
PetbattleQueueSlotLocked = 961, PetbattleQueueRequeuedRemoved = 961,
PetbattleQueueSlotEmpty = 962, PetbattleQueueSlotLocked = 962,
PetbattleQueueSlotNoTracker = 963, PetbattleQueueSlotEmpty = 963,
PetbattleQueueSlotNoSpecies = 964, PetbattleQueueSlotNoTracker = 964,
PetbattleQueueSlotCantBattle = 965, PetbattleQueueSlotNoSpecies = 965,
PetbattleQueueSlotRevoked = 966, PetbattleQueueSlotCantBattle = 966,
PetbattleQueueSlotDead = 967, PetbattleQueueSlotRevoked = 967,
PetbattleQueueSlotNoPet = 968, PetbattleQueueSlotDead = 968,
PetbattleQueueNotWhileNeutral = 969, PetbattleQueueSlotNoPet = 969,
PetbattleGameTimeLimitWarning = 970, PetbattleQueueNotWhileNeutral = 970,
PetbattleGameRoundsLimitWarning = 971, PetbattleGameTimeLimitWarning = 971,
HasRestriction = 972, PetbattleGameRoundsLimitWarning = 972,
ItemUpgradeItemTooLowLevel = 973, HasRestriction = 973,
ItemUpgradeNoPath = 974, ItemUpgradeItemTooLowLevel = 974,
ItemUpgradeNoMoreUpgrades = 975, ItemUpgradeNoPath = 975,
BonusRollEmpty = 976, ItemUpgradeNoMoreUpgrades = 976,
ChallengeModeFull = 977, BonusRollEmpty = 977,
ChallengeModeInProgress = 978, ChallengeModeFull = 978,
ChallengeModeIncorrectKeystone = 979, ChallengeModeInProgress = 979,
BattletagFriendNotFound = 980, ChallengeModeIncorrectKeystone = 980,
BattletagFriendNotValid = 981, BattletagFriendNotFound = 981,
BattletagFriendNotAllowed = 982, BattletagFriendNotValid = 982,
BattletagFriendThrottled = 983, BattletagFriendNotAllowed = 983,
BattletagFriendSuccess = 984, BattletagFriendThrottled = 984,
PetTooHighLevelToUncage = 985, BattletagFriendSuccess = 985,
PetbattleInternal = 986, PetTooHighLevelToUncage = 986,
CantCagePetYet = 987, PetbattleInternal = 987,
NoLootInChallengeMode = 988, CantCagePetYet = 988,
QuestPetBattleVictoriesPvpIi = 989, NoLootInChallengeMode = 989,
RoleCheckAlreadyInProgress = 990, QuestPetBattleVictoriesPvpIi = 990,
RecruitAFriendAccountLimit = 991, RoleCheckAlreadyInProgress = 991,
RecruitAFriendFailed = 992, RecruitAFriendAccountLimit = 992,
SetLootPersonal = 993, RecruitAFriendFailed = 993,
SetLootMethodFailedCombat = 994, SetLootPersonal = 994,
ReagentBankFull = 995, SetLootMethodFailedCombat = 995,
ReagentBankLocked = 996, ReagentBankFull = 996,
GarrisonBuildingExists = 997, ReagentBankLocked = 997,
GarrisonInvalidPlot = 998, GarrisonBuildingExists = 998,
GarrisonInvalidBuildingid = 999, GarrisonInvalidPlot = 999,
GarrisonInvalidPlotBuilding = 1000, GarrisonInvalidBuildingid = 1000,
GarrisonRequiresBlueprint = 1001, GarrisonInvalidPlotBuilding = 1001,
GarrisonNotEnoughCurrency = 1002, GarrisonRequiresBlueprint = 1002,
GarrisonNotEnoughGold = 1003, GarrisonNotEnoughCurrency = 1003,
GarrisonCompleteMissionWrongFollowerType = 1004, GarrisonNotEnoughGold = 1004,
AlreadyUsingLfgList = 1005, GarrisonCompleteMissionWrongFollowerType = 1005,
RestrictedAccountLfgListTrial = 1006, AlreadyUsingLfgList = 1006,
ToyUseLimitReached = 1007, RestrictedAccountLfgListTrial = 1007,
ToyAlreadyKnown = 1008, ToyUseLimitReached = 1008,
TransmogSetAlreadyKnown = 1009, ToyAlreadyKnown = 1009,
NotEnoughCurrency = 1010, TransmogSetAlreadyKnown = 1010,
SpecIsDisabled = 1011, NotEnoughCurrency = 1011,
FeatureRestrictedTrial = 1012, SpecIsDisabled = 1012,
CantBeObliterated = 1013, FeatureRestrictedTrial = 1013,
CantBeScrapped = 1014, CantBeObliterated = 1014,
CantBeRecrafted = 1015, CantBeScrapped = 1015,
ArtifactRelicDoesNotMatchArtifact = 1016, CantBeRecrafted = 1016,
MustEquipArtifact = 1017, ArtifactRelicDoesNotMatchArtifact = 1017,
CantDoThatRightNow = 1018, MustEquipArtifact = 1018,
AffectingCombat = 1019, CantDoThatRightNow = 1019,
EquipmentManagerCombatSwapS = 1020, AffectingCombat = 1020,
EquipmentManagerBagsFull = 1021, EquipmentManagerCombatSwapS = 1021,
EquipmentManagerMissingItemS = 1022, EquipmentManagerBagsFull = 1022,
MovieRecordingWarningPerf = 1023, EquipmentManagerMissingItemS = 1023,
MovieRecordingWarningDiskFull = 1024, MovieRecordingWarningPerf = 1024,
MovieRecordingWarningNoMovie = 1025, MovieRecordingWarningDiskFull = 1025,
MovieRecordingWarningRequirements = 1026, MovieRecordingWarningNoMovie = 1026,
MovieRecordingWarningCompressing = 1027, MovieRecordingWarningRequirements = 1027,
NoChallengeModeReward = 1028, MovieRecordingWarningCompressing = 1028,
ClaimedChallengeModeReward = 1029, NoChallengeModeReward = 1029,
ChallengeModePeriodResetSs = 1030, ClaimedChallengeModeReward = 1030,
CantDoThatChallengeModeActive = 1031, ChallengeModePeriodResetSs = 1031,
TalentFailedRestArea = 1032, CantDoThatChallengeModeActive = 1032,
CannotAbandonLastPet = 1033, TalentFailedRestArea = 1033,
TestCvarSetSss = 1034, CannotAbandonLastPet = 1034,
QuestTurnInFailReason = 1035, TestCvarSetSss = 1035,
ClaimedChallengeModeRewardOld = 1036, QuestTurnInFailReason = 1036,
TalentGrantedByAura = 1037, ClaimedChallengeModeRewardOld = 1037,
ChallengeModeAlreadyComplete = 1038, TalentGrantedByAura = 1038,
GlyphTargetNotAvailable = 1039, ChallengeModeAlreadyComplete = 1039,
PvpWarmodeToggleOn = 1040, GlyphTargetNotAvailable = 1040,
PvpWarmodeToggleOff = 1041, PvpWarmodeToggleOn = 1041,
SpellFailedLevelRequirement = 1042, PvpWarmodeToggleOff = 1042,
SpellFailedCantFlyHere = 1043, SpellFailedLevelRequirement = 1043,
BattlegroundJoinRequiresLevel = 1044, SpellFailedCantFlyHere = 1044,
BattlegroundJoinDisqualified = 1045, BattlegroundJoinRequiresLevel = 1045,
BattlegroundJoinDisqualifiedNoName = 1046, BattlegroundJoinDisqualified = 1046,
VoiceChatGenericUnableToConnect = 1047, BattlegroundJoinDisqualifiedNoName = 1047,
VoiceChatServiceLost = 1048, VoiceChatGenericUnableToConnect = 1048,
VoiceChatChannelNameTooShort = 1049, VoiceChatServiceLost = 1049,
VoiceChatChannelNameTooLong = 1050, VoiceChatChannelNameTooShort = 1050,
VoiceChatChannelAlreadyExists = 1051, VoiceChatChannelNameTooLong = 1051,
VoiceChatTargetNotFound = 1052, VoiceChatChannelAlreadyExists = 1052,
VoiceChatTooManyRequests = 1053, VoiceChatTargetNotFound = 1053,
VoiceChatPlayerSilenced = 1054, VoiceChatTooManyRequests = 1054,
VoiceChatParentalDisableAll = 1055, VoiceChatPlayerSilenced = 1055,
VoiceChatDisabled = 1056, VoiceChatParentalDisableAll = 1056,
NoPvpReward = 1057, VoiceChatDisabled = 1057,
ClaimedPvpReward = 1058, NoPvpReward = 1058,
AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1059, ClaimedPvpReward = 1059,
AzeriteEssenceSelectionFailedCantRemoveEssence = 1060, AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1060,
AzeriteEssenceSelectionFailedConditionFailed = 1061, AzeriteEssenceSelectionFailedCantRemoveEssence = 1061,
AzeriteEssenceSelectionFailedRestArea = 1062, AzeriteEssenceSelectionFailedConditionFailed = 1062,
AzeriteEssenceSelectionFailedSlotLocked = 1063, AzeriteEssenceSelectionFailedRestArea = 1063,
AzeriteEssenceSelectionFailedNotAtForge = 1064, AzeriteEssenceSelectionFailedSlotLocked = 1064,
AzeriteEssenceSelectionFailedHeartLevelTooLow = 1065, AzeriteEssenceSelectionFailedNotAtForge = 1065,
AzeriteEssenceSelectionFailedNotEquipped = 1066, AzeriteEssenceSelectionFailedHeartLevelTooLow = 1066,
SocketingRequiresPunchcardredGem = 1067, AzeriteEssenceSelectionFailedNotEquipped = 1067,
SocketingPunchcardredGemOnlyInPunchcardredslot = 1068, SocketingRequiresPunchcardredGem = 1068,
SocketingRequiresPunchcardyellowGem = 1069, SocketingPunchcardredGemOnlyInPunchcardredslot = 1069,
SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1070, SocketingRequiresPunchcardyellowGem = 1070,
SocketingRequiresPunchcardblueGem = 1071, SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1071,
SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1072, SocketingRequiresPunchcardblueGem = 1072,
SocketingRequiresDominationShard = 1073, SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1073,
SocketingDominationShardOnlyInDominationslot = 1074, SocketingRequiresDominationShard = 1074,
SocketingRequiresCypherGem = 1075, SocketingDominationShardOnlyInDominationslot = 1075,
SocketingCypherGemOnlyInCypherslot = 1076, SocketingRequiresCypherGem = 1076,
SocketingRequiresTinkerGem = 1077, SocketingCypherGemOnlyInCypherslot = 1077,
SocketingTinkerGemOnlyInTinkerslot = 1078, SocketingRequiresTinkerGem = 1078,
LevelLinkingResultLinked = 1079, SocketingTinkerGemOnlyInTinkerslot = 1079,
LevelLinkingResultUnlinked = 1080, LevelLinkingResultLinked = 1080,
ClubFinderErrorPostClub = 1081, LevelLinkingResultUnlinked = 1081,
ClubFinderErrorApplyClub = 1082, ClubFinderErrorPostClub = 1082,
ClubFinderErrorRespondApplicant = 1083, ClubFinderErrorApplyClub = 1083,
ClubFinderErrorCancelApplication = 1084, ClubFinderErrorRespondApplicant = 1084,
ClubFinderErrorTypeAcceptApplication = 1085, ClubFinderErrorCancelApplication = 1085,
ClubFinderErrorTypeNoInvitePermissions = 1086, ClubFinderErrorTypeAcceptApplication = 1086,
ClubFinderErrorTypeNoPostingPermissions = 1087, ClubFinderErrorTypeNoInvitePermissions = 1087,
ClubFinderErrorTypeApplicantList = 1088, ClubFinderErrorTypeNoPostingPermissions = 1088,
ClubFinderErrorTypeApplicantListNoPerm = 1089, ClubFinderErrorTypeApplicantList = 1089,
ClubFinderErrorTypeFinderNotAvailable = 1090, ClubFinderErrorTypeApplicantListNoPerm = 1090,
ClubFinderErrorTypeGetPostingIds = 1091, ClubFinderErrorTypeFinderNotAvailable = 1091,
ClubFinderErrorTypeJoinApplication = 1092, ClubFinderErrorTypeGetPostingIds = 1092,
ClubFinderErrorTypeRealmNotEligible = 1093, ClubFinderErrorTypeJoinApplication = 1093,
ClubFinderErrorTypeFlaggedRename = 1094, ClubFinderErrorTypeRealmNotEligible = 1094,
ClubFinderErrorTypeFlaggedDescriptionChange = 1095, ClubFinderErrorTypeFlaggedRename = 1095,
ItemInteractionNotEnoughGold = 1096, ClubFinderErrorTypeFlaggedDescriptionChange = 1096,
ItemInteractionNotEnoughCurrency = 1097, ItemInteractionNotEnoughGold = 1097,
PlayerChoiceErrorPendingChoice = 1098, ItemInteractionNotEnoughCurrency = 1098,
SoulbindInvalidConduit = 1099, PlayerChoiceErrorPendingChoice = 1099,
SoulbindInvalidConduitItem = 1100, SoulbindInvalidConduit = 1100,
SoulbindInvalidTalent = 1101, SoulbindInvalidConduitItem = 1101,
SoulbindDuplicateConduit = 1102, SoulbindInvalidTalent = 1102,
ActivateSoulbindS = 1103, SoulbindDuplicateConduit = 1103,
ActivateSoulbindFailedRestArea = 1104, ActivateSoulbindS = 1104,
CantUseProfanity = 1105, ActivateSoulbindFailedRestArea = 1105,
NotInPetBattle = 1106, CantUseProfanity = 1106,
NotInNpe = 1107, NotInPetBattle = 1107,
NoSpec = 1108, NotInNpe = 1108,
NoDominationshardOverwrite = 1109, NoSpec = 1109,
UseWeeklyRewardsDisabled = 1110, NoDominationshardOverwrite = 1110,
CrossFactionGroupJoined = 1111, UseWeeklyRewardsDisabled = 1111,
CantTargetUnfriendlyInOverworld = 1112, CrossFactionGroupJoined = 1112,
EquipablespellsSlotsFull = 1113 CantTargetUnfriendlyInOverworld = 1113,
EquipablespellsSlotsFull = 1114
} }
public enum SceneFlags public enum SceneFlags
@@ -3600,6 +3600,10 @@ namespace Game.Achievements
if (GameTime.GetGameTime() - referencePlayer.m_playerData.LogoutTime < reqValue * Time.Day) if (GameTime.GetGameTime() - referencePlayer.m_playerData.LogoutTime < reqValue * Time.Day)
return false; return false;
break; break;
case ModifierTreeType.PlayerHasPerksProgramPendingReward: // 350
if (!referencePlayer.m_activePlayerData.HasPerksProgramPendingReward)
return false;
break;
case ModifierTreeType.PlayerCanUseItem: // 351 case ModifierTreeType.PlayerCanUseItem: // 351
{ {
ItemTemplate itemTemplate = Global.ObjectMgr.GetItemTemplate(reqValue); ItemTemplate itemTemplate = Global.ObjectMgr.GetItemTemplate(reqValue);
@@ -3607,6 +3611,26 @@ namespace Game.Achievements
return false; return false;
break; 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: default:
return false; return false;
} }
+3 -1
View File
@@ -191,7 +191,9 @@ namespace Game.DataStorage
public uint Id; public uint Id;
public int TraitDefinitionID; public int TraitDefinitionID;
public int MaxRanks; public int MaxRanks;
public byte NodeRecordType; public byte NodeEntryType;
public TraitNodeEntryType GetNodeEntryType() { return (TraitNodeEntryType)NodeEntryType; }
} }
public sealed class TraitNodeEntryXTraitCondRecord public sealed class TraitNodeEntryXTraitCondRecord
@@ -1206,6 +1206,7 @@ namespace Game.Entities
public uint SitAnimKit; // 2 Sit Anim Kit, References: AnimKit, NoValue = 0 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 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 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 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 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 #endregion
} }
File diff suppressed because it is too large Load Diff
+7 -7
View File
@@ -1246,7 +1246,7 @@ namespace Game.Entities
{ {
m_mail.Clear(); m_mail.Clear();
Dictionary<uint, Mail> mailById = new(); Dictionary<ulong, Mail> mailById = new();
if (!mailsResult.IsEmpty()) if (!mailsResult.IsEmpty())
{ {
@@ -1254,7 +1254,7 @@ namespace Game.Entities
{ {
Mail m = new(); Mail m = new();
m.messageID = mailsResult.Read<uint>(0); m.messageID = mailsResult.Read<ulong>(0);
m.messageType = (MailMessageType)mailsResult.Read<byte>(1); m.messageType = (MailMessageType)mailsResult.Read<byte>(1);
m.sender = mailsResult.Read<uint>(2); m.sender = mailsResult.Read<uint>(2);
m.receiver = mailsResult.Read<uint>(3); m.receiver = mailsResult.Read<uint>(3);
@@ -1289,7 +1289,7 @@ namespace Game.Entities
do 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))); _LoadMailedItem(GetGUID(), this, mailId, mailById[mailId], mailItemsResult.GetFields(), additionalData.LookupByKey(mailItemsResult.Read<ulong>(0)));
} }
while (mailItemsResult.NextRow()); while (mailItemsResult.NextRow());
@@ -1298,7 +1298,7 @@ namespace Game.Entities
UpdateNextMailTimeAndUnreads(); 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); ulong itemGuid = fields.Read<ulong>(0);
uint itemEntry = fields.Read<uint>(1); uint itemEntry = fields.Read<uint>(1);
@@ -4081,7 +4081,7 @@ namespace Game.Entities
SQLResult resultMail = DB.Characters.Query(stmt); SQLResult resultMail = DB.Characters.Query(stmt);
if (!resultMail.IsEmpty()) if (!resultMail.IsEmpty())
{ {
MultiMap<uint, Item> itemsByMail = new(); MultiMap<ulong, Item> itemsByMail = new();
stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_MAILITEMS); stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_MAILITEMS);
stmt.AddValue(0, guid); stmt.AddValue(0, guid);
@@ -4114,7 +4114,7 @@ namespace Game.Entities
do 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))); Item mailItem = _LoadMailedItem(playerGuid, null, mailId, null, resultItems.GetFields(), additionalData.LookupByKey(resultItems.Read<ulong>(0)));
if (mailItem != null) if (mailItem != null)
itemsByMail.Add(mailId, mailItem); itemsByMail.Add(mailId, mailItem);
@@ -4124,7 +4124,7 @@ namespace Game.Entities
do do
{ {
uint mail_id = resultMail.Read<uint>(0); ulong mail_id = resultMail.Read<ulong>(0);
MailMessageType mailType = (MailMessageType)resultMail.Read<byte>(1); MailMessageType mailType = (MailMessageType)resultMail.Read<byte>(1);
ushort mailTemplateId = resultMail.Read<ushort>(2); ushort mailTemplateId = resultMail.Read<ushort>(2);
uint sender = resultMail.Read<uint>(3); uint sender = resultMail.Read<uint>(3);
+6 -1
View File
@@ -2879,10 +2879,15 @@ namespace Game.Entities
} }
public void SendQuestGiverStatusMultiple() public void SendQuestGiverStatusMultiple()
{
SendQuestGiverStatusMultiple(m_clientGUIDs);
}
public void SendQuestGiverStatusMultiple(List<ObjectGuid> guids)
{ {
QuestGiverStatusMultiple response = new(); QuestGiverStatusMultiple response = new();
foreach (var itr in m_clientGUIDs) foreach (var itr in guids)
{ {
if (itr.IsAnyTypeCreature()) if (itr.IsAnyTypeCreature())
{ {
+16 -8
View File
@@ -2763,7 +2763,8 @@ namespace Game.Entities
//Mail //Mail
public void AddMail(Mail mail) { m_mail.Insert(0, 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) 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(); MailCommandResult result = new();
result.MailID = mailId; result.MailID = mailId;
result.Command = (uint)mailAction; result.Command = (int)mailAction;
result.ErrorCode = (uint)mailError; result.ErrorCode = (int)mailError;
if (mailError == MailResponseResult.EquipError) if (mailError == MailResponseResult.EquipError)
result.BagResult = (uint)equipError; result.BagResult = (int)equipError;
else if (mailAction == MailResponseType.ItemTaken) else if (mailAction == MailResponseType.ItemTaken)
{ {
result.AttachID = item_guid; result.AttachID = itemGuid;
result.QtyInInventory = item_count; result.QtyInInventory = (int)itemCount;
} }
SendPacket(result); SendPacket(result);
} }
void SendNewMail() void SendNewMail()
{ {
SendPacket(new NotifyReceivedMail()); SendPacket(new NotifyReceivedMail());
} }
public void UpdateNextMailTimeAndUnreads() public void UpdateNextMailTimeAndUnreads()
{ {
// calculate next delivery time (min. from non-delivered mails // calculate next delivery time (min. from non-delivered mails
@@ -2814,6 +2818,7 @@ namespace Game.Entities
++unReadMails; ++unReadMails;
} }
} }
public void AddNewMailDeliverTime(long deliver_time) public void AddNewMailDeliverTime(long deliver_time)
{ {
if (deliver_time <= GameTime.GetGameTime()) // ready now if (deliver_time <= GameTime.GetGameTime()) // ready now
@@ -2827,16 +2832,19 @@ namespace Game.Entities
m_nextMailDelivereTime = deliver_time; m_nextMailDelivereTime = deliver_time;
} }
} }
public void AddMItem(Item it) public void AddMItem(Item it)
{ {
mMitems[it.GetGUID().GetCounter()] = it; mMitems[it.GetGUID().GetCounter()] = it;
} }
public bool RemoveMItem(ulong id) public bool RemoveMItem(ulong id)
{ {
return mMitems.Remove(id); return mMitems.Remove(id);
} }
public Item GetMItem(ulong id) { return mMitems.LookupByKey(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 List<Mail> GetMails() { return m_mail; }
public uint GetMailSize() { return (uint)m_mail.Count; } public uint GetMailSize() { return (uint)m_mail.Count; }
+6 -6
View File
@@ -9614,7 +9614,7 @@ namespace Game
return; // any mails need to be returned or deleted 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 = DB.Characters.GetPreparedStatement(CharStatements.SEL_EXPIRED_MAIL_ITEMS);
stmt.AddValue(0, curTime); stmt.AddValue(0, curTime);
SQLResult items = DB.Characters.Query(stmt); SQLResult items = DB.Characters.Query(stmt);
@@ -9625,7 +9625,7 @@ namespace Game
{ {
item.item_guid = result.Read<uint>(0); item.item_guid = result.Read<uint>(0);
item.item_template = result.Read<uint>(1); item.item_template = result.Read<uint>(1);
uint mailId = result.Read<uint>(2); ulong mailId = result.Read<ulong>(2);
itemsCache.Add(mailId, item); itemsCache.Add(mailId, item);
} while (items.NextRow()); } while (items.NextRow());
} }
@@ -9639,7 +9639,7 @@ namespace Game
continue; continue;
Mail m = new(); Mail m = new();
m.messageID = result.Read<uint>(0); m.messageID = result.Read<ulong>(0);
m.messageType = (MailMessageType)result.Read<byte>(1); m.messageType = (MailMessageType)result.Read<byte>(1);
m.sender = result.Read<uint>(2); m.sender = result.Read<uint>(2);
m.receiver = receiver; m.receiver = receiver;
@@ -10360,7 +10360,7 @@ namespace Game
result = DB.Characters.Query("SELECT MAX(id) FROM mail"); result = DB.Characters.Query("SELECT MAX(id) FROM mail");
if (!result.IsEmpty()) 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"); result = DB.Characters.Query("SELECT MAX(arenateamid) FROM arena_team");
if (!result.IsEmpty()) if (!result.IsEmpty())
@@ -10404,7 +10404,7 @@ namespace Game
} }
return _equipmentSetGuid++; return _equipmentSetGuid++;
} }
public uint GenerateMailID() public ulong GenerateMailID()
{ {
if (_mailId >= 0xFFFFFFFE) if (_mailId >= 0xFFFFFFFE)
{ {
@@ -11042,7 +11042,7 @@ namespace Game
// first free id for selected id type // first free id for selected id type
uint _auctionId; uint _auctionId;
ulong _equipmentSetGuid; ulong _equipmentSetGuid;
uint _mailId; ulong _mailId;
uint _hiPetNumber; uint _hiPetNumber;
ulong _creatureSpawnId; ulong _creatureSpawnId;
ulong _gameObjectSpawnId; ulong _gameObjectSpawnId;
-2
View File
@@ -1112,8 +1112,6 @@ namespace Game
// START OF DUMMY VALUES // START OF DUMMY VALUES
features.ComplaintStatus = (byte)ComplaintStatus.EnabledWithAutoIgnore; features.ComplaintStatus = (byte)ComplaintStatus.EnabledWithAutoIgnore;
features.ScrollOfResurrectionRequestsRemaining = 1;
features.ScrollOfResurrectionMaxRequestsPerDay = 1;
features.TwitterPostThrottleLimit = 60; features.TwitterPostThrottleLimit = 60;
features.TwitterPostThrottleCooldown = 20; features.TwitterPostThrottleCooldown = 20;
features.CfgRealmID = 2; features.CfgRealmID = 2;
+1 -1
View File
@@ -405,7 +405,7 @@ namespace Game
[WorldPacketHandler(ClientOpcodes.MailTakeItem)] [WorldPacketHandler(ClientOpcodes.MailTakeItem)]
void HandleMailTakeItem(MailTakeItem takeItem) void HandleMailTakeItem(MailTakeItem takeItem)
{ {
uint AttachID = takeItem.AttachID; ulong AttachID = takeItem.AttachID;
if (!CanOpenMailBox(takeItem.Mailbox)) if (!CanOpenMailBox(takeItem.Mailbox))
return; return;
+6
View File
@@ -755,6 +755,12 @@ namespace Game
_player.SendQuestGiverStatusMultiple(); _player.SendQuestGiverStatusMultiple();
} }
[WorldPacketHandler(ClientOpcodes.QuestGiverStatusTrackedQuery)]
void HandleQuestgiverStatusTrackedQueryOpcode(QuestGiverStatusTrackedQuery questGiverStatusTrackedQuery)
{
_player.SendQuestGiverStatusMultiple(questGiverStatusTrackedQuery.QuestGiverGUIDs);
}
[WorldPacketHandler(ClientOpcodes.RequestWorldQuestUpdate)] [WorldPacketHandler(ClientOpcodes.RequestWorldQuestUpdate)]
void HandleRequestWorldQuestUpdate(RequestWorldQuestUpdate packet) void HandleRequestWorldQuestUpdate(RequestWorldQuestUpdate packet)
{ {
+4 -4
View File
@@ -18,11 +18,11 @@ namespace Game.Mails
items.Add(mii); items.Add(mii);
} }
public bool RemoveItem(uint item_guid) public bool RemoveItem(ulong itemGuid)
{ {
foreach (var item in items) foreach (var item in items)
{ {
if (item.item_guid == item_guid) if (item.item_guid == itemGuid)
{ {
items.Remove(item); items.Remove(item);
return true; return true;
@@ -33,7 +33,7 @@ namespace Game.Mails
public bool HasItems() { return !items.Empty(); } public bool HasItems() { return !items.Empty(); }
public uint messageID; public ulong messageID;
public MailMessageType messageType; public MailMessageType messageType;
public MailStationery stationery; public MailStationery stationery;
public uint mailTemplateId; public uint mailTemplateId;
@@ -42,7 +42,7 @@ namespace Game.Mails
public string subject; public string subject;
public string body; public string body;
public List<MailItemInfo> items = new(); public List<MailItemInfo> items = new();
public List<uint> removedItems = new(); public List<ulong> removedItems = new();
public long expire_time; public long expire_time;
public long deliver_time; public long deliver_time;
public ulong money; public ulong money;
+1 -1
View File
@@ -131,7 +131,7 @@ namespace Game.Mails
if (pReceiver != null) if (pReceiver != null)
PrepareItems(pReceiver, trans); // generate mail template items PrepareItems(pReceiver, trans); // generate mail template items
uint mailId = Global.ObjectMgr.GenerateMailID(); ulong mailId = Global.ObjectMgr.GenerateMailID();
long deliver_time = GameTime.GetGameTime() + deliver_delay; long deliver_time = GameTime.GetGameTime() + deliver_delay;
@@ -478,7 +478,11 @@ namespace Game.Networking.Packets
_worldPacket.WriteUInt32(BattlemasterListID); _worldPacket.WriteUInt32(BattlemasterListID);
_worldPacket.WriteBit(Registered); _worldPacket.WriteBit(Registered);
_worldPacket.WriteBit(AffectsRating); _worldPacket.WriteBit(AffectsRating);
_worldPacket.WriteBit(DeserterPenalty != null);
_worldPacket.FlushBits(); _worldPacket.FlushBits();
if (DeserterPenalty != null)
DeserterPenalty.Write(_worldPacket);
} }
public enum MatchState public enum MatchState
@@ -492,6 +496,7 @@ namespace Game.Networking.Packets
public MatchState State = MatchState.Inactive; public MatchState State = MatchState.Inactive;
public long StartTime; public long StartTime;
public int Duration; public int Duration;
public RatedMatchDeserterPenalty DeserterPenalty;
public byte ArenaFaction; public byte ArenaFaction;
public uint BattlemasterListID; public uint BattlemasterListID;
public bool Registered; 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 class PVPMatchStatistics
{ {
public List<PVPMatchPlayerStatistics> Statistics = new(); public List<PVPMatchPlayerStatistics> Statistics = new();
@@ -21,11 +21,12 @@ namespace Game.Networking.Packets
class CraftingData class CraftingData
{ {
public int CraftingQualityID; public int CraftingQualityID;
public int field_4; public float QualityProgress;
public int field_8; public int SkillLineAbilityID;
public int CraftingDataID;
public int Multicraft; public int Multicraft;
public int field_10; public int SkillFromReagents;
public int field_14; public int Skill;
public int CritBonusSkill; public int CritBonusSkill;
public float field_1C; public float field_1C;
public ulong field_20; public ulong field_20;
@@ -44,11 +45,12 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data) public void Write(WorldPacket data)
{ {
data.WriteInt32(CraftingQualityID); data.WriteInt32(CraftingQualityID);
data.WriteInt32(field_4); data.WriteFloat(QualityProgress);
data.WriteInt32(field_8); data.WriteInt32(SkillLineAbilityID);
data.WriteInt32(CraftingDataID);
data.WriteInt32(Multicraft); data.WriteInt32(Multicraft);
data.WriteInt32(field_10); data.WriteInt32(SkillFromReagents);
data.WriteInt32(field_14); data.WriteInt32(Skill);
data.WriteInt32(CritBonusSkill); data.WriteInt32(CritBonusSkill);
data.WriteFloat(field_1C); data.WriteFloat(field_1C);
data.WriteUInt64(field_20); data.WriteUInt64(field_20);
+27 -27
View File
@@ -49,7 +49,7 @@ namespace Game.Networking.Packets
} }
public ObjectGuid Mailbox; public ObjectGuid Mailbox;
public uint MailID; public ulong MailID;
} }
public class SendMail : ClientPacket public class SendMail : ClientPacket
@@ -115,20 +115,20 @@ namespace Game.Networking.Packets
public override void Write() public override void Write()
{ {
_worldPacket.WriteUInt32(MailID); _worldPacket.WriteUInt64(MailID);
_worldPacket.WriteUInt32(Command); _worldPacket.WriteInt32(Command);
_worldPacket.WriteUInt32(ErrorCode); _worldPacket.WriteInt32(ErrorCode);
_worldPacket.WriteUInt32(BagResult); _worldPacket.WriteInt32(BagResult);
_worldPacket.WriteUInt32(AttachID); _worldPacket.WriteUInt64(AttachID);
_worldPacket.WriteUInt32(QtyInInventory); _worldPacket.WriteInt32(QtyInInventory);
} }
public uint MailID; public ulong MailID;
public uint Command; public int Command;
public uint ErrorCode; public int ErrorCode;
public uint BagResult; public int BagResult;
public uint AttachID; public ulong AttachID;
public uint QtyInInventory; public int QtyInInventory;
} }
public class MailReturnToSender : ClientPacket public class MailReturnToSender : ClientPacket
@@ -141,7 +141,7 @@ namespace Game.Networking.Packets
SenderGUID = _worldPacket.ReadPackedGuid(); SenderGUID = _worldPacket.ReadPackedGuid();
} }
public uint MailID; public ulong MailID;
public ObjectGuid SenderGUID; public ObjectGuid SenderGUID;
} }
@@ -156,7 +156,7 @@ namespace Game.Networking.Packets
} }
public ObjectGuid Mailbox; public ObjectGuid Mailbox;
public uint MailID; public ulong MailID;
} }
public class MailDelete : ClientPacket public class MailDelete : ClientPacket
@@ -169,7 +169,7 @@ namespace Game.Networking.Packets
DeleteReason = _worldPacket.ReadInt32(); DeleteReason = _worldPacket.ReadInt32();
} }
public uint MailID; public ulong MailID;
public int DeleteReason; public int DeleteReason;
} }
@@ -185,8 +185,8 @@ namespace Game.Networking.Packets
} }
public ObjectGuid Mailbox; public ObjectGuid Mailbox;
public uint MailID; public ulong MailID;
public uint AttachID; public ulong AttachID;
} }
public class MailTakeMoney : ClientPacket public class MailTakeMoney : ClientPacket
@@ -197,12 +197,12 @@ namespace Game.Networking.Packets
{ {
Mailbox = _worldPacket.ReadPackedGuid(); Mailbox = _worldPacket.ReadPackedGuid();
MailID = _worldPacket.ReadUInt32(); MailID = _worldPacket.ReadUInt32();
Money = _worldPacket.ReadInt64(); Money = _worldPacket.ReadUInt64();
} }
public ObjectGuid Mailbox; public ObjectGuid Mailbox;
public uint MailID; public ulong MailID;
public long Money; public ulong Money;
} }
public class MailQueryNextMailTime : ClientPacket public class MailQueryNextMailTime : ClientPacket
@@ -285,7 +285,7 @@ namespace Game.Networking.Packets
public MailAttachedItem(Item item, byte pos) public MailAttachedItem(Item item, byte pos)
{ {
Position = pos; Position = pos;
AttachID = (int)item.GetGUID().GetCounter(); AttachID = item.GetGUID().GetCounter();
Item = new ItemInstance(item); Item = new ItemInstance(item);
Count = item.GetCount(); Count = item.GetCount();
Charges = item.GetSpellCharges(); Charges = item.GetSpellCharges();
@@ -318,7 +318,7 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data) public void Write(WorldPacket data)
{ {
data.WriteUInt8(Position); data.WriteUInt8(Position);
data.WriteInt32(AttachID); data.WriteUInt64(AttachID);
data.WriteUInt32(Count); data.WriteUInt32(Count);
data.WriteInt32(Charges); data.WriteInt32(Charges);
data.WriteUInt32(MaxDurability); data.WriteUInt32(MaxDurability);
@@ -337,7 +337,7 @@ namespace Game.Networking.Packets
} }
public byte Position; public byte Position;
public int AttachID; public ulong AttachID;
public ItemInstance Item; public ItemInstance Item;
public uint Count; public uint Count;
public int Charges; public int Charges;
@@ -352,7 +352,7 @@ namespace Game.Networking.Packets
{ {
public MailListEntry(Mail mail, Player player) public MailListEntry(Mail mail, Player player)
{ {
MailID = (int)mail.messageID; MailID = mail.messageID;
SenderType = (byte)mail.messageType; SenderType = (byte)mail.messageType;
switch (mail.messageType) switch (mail.messageType)
@@ -387,7 +387,7 @@ namespace Game.Networking.Packets
public void Write(WorldPacket data) public void Write(WorldPacket data)
{ {
data.WriteInt32(MailID); data.WriteUInt64(MailID);
data.WriteUInt8(SenderType); data.WriteUInt8(SenderType);
data.WriteUInt64(Cod); data.WriteUInt64(Cod);
data.WriteInt32(StationeryID); data.WriteInt32(StationeryID);
@@ -415,7 +415,7 @@ namespace Game.Networking.Packets
data.WriteString(Body); data.WriteString(Body);
} }
public int MailID; public ulong MailID;
public byte SenderType; public byte SenderType;
public ObjectGuid? SenderCharacter; public ObjectGuid? SenderCharacter;
public uint? AltSenderID; 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() { } 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 class QuestGiverStatusPkt : ServerPacket
{ {
public QuestGiverStatusPkt() : base(ServerOpcodes.QuestGiverStatus, ConnectionType.Instance) public QuestGiverStatusPkt() : base(ServerOpcodes.QuestGiverStatus, ConnectionType.Instance)
@@ -899,11 +899,9 @@ namespace Game.Networking.Packets
public override void Read() public override void Read()
{ {
UnitGUID = _worldPacket.ReadPackedGuid(); UnitGUID = _worldPacket.ReadPackedGuid();
DisplayID = _worldPacket.ReadUInt32();
} }
public ObjectGuid UnitGUID; public ObjectGuid UnitGUID;
public uint DisplayID;
} }
class MirrorImageComponentedData : ServerPacket class MirrorImageComponentedData : ServerPacket
@@ -17,9 +17,6 @@ namespace Game.Networking.Packets
{ {
_worldPacket.WriteUInt8(ComplaintStatus); _worldPacket.WriteUInt8(ComplaintStatus);
_worldPacket.WriteUInt32(ScrollOfResurrectionRequestsRemaining);
_worldPacket.WriteUInt32(ScrollOfResurrectionMaxRequestsPerDay);
_worldPacket.WriteUInt32(CfgRealmID); _worldPacket.WriteUInt32(CfgRealmID);
_worldPacket.WriteInt32(CfgRealmRecID); _worldPacket.WriteInt32(CfgRealmRecID);
@@ -51,7 +48,6 @@ namespace Game.Networking.Packets
_worldPacket.WriteBit(VoiceEnabled); _worldPacket.WriteBit(VoiceEnabled);
_worldPacket.WriteBit(EuropaTicketSystemStatus.HasValue); _worldPacket.WriteBit(EuropaTicketSystemStatus.HasValue);
_worldPacket.WriteBit(ScrollOfResurrectionEnabled);
_worldPacket.WriteBit(BpayStoreEnabled); _worldPacket.WriteBit(BpayStoreEnabled);
_worldPacket.WriteBit(BpayStoreAvailable); _worldPacket.WriteBit(BpayStoreAvailable);
_worldPacket.WriteBit(BpayStoreDisabledByParentalControls); _worldPacket.WriteBit(BpayStoreDisabledByParentalControls);
@@ -140,10 +136,7 @@ namespace Game.Networking.Packets
public bool BpayStoreAvailable; public bool BpayStoreAvailable;
public bool BpayStoreEnabled; public bool BpayStoreEnabled;
public SessionAlertConfig? SessionAlert; public SessionAlertConfig? SessionAlert;
public uint ScrollOfResurrectionMaxRequestsPerDay;
public bool ScrollOfResurrectionEnabled;
public EuropaTicketConfig? EuropaTicketSystemStatus; public EuropaTicketConfig? EuropaTicketSystemStatus;
public uint ScrollOfResurrectionRequestsRemaining;
public uint CfgRealmID; public uint CfgRealmID;
public byte ComplaintStatus; public byte ComplaintStatus;
public int CfgRealmRecID; public int CfgRealmRecID;
+10 -10
View File
@@ -328,7 +328,7 @@ namespace Game.Networking.Packets
{ {
public void Read(WorldPacket data) public void Read(WorldPacket data)
{ {
MailID = data.ReadInt32(); MailID = data.ReadUInt64();
uint bodyLength = data.ReadBits<uint>(13); uint bodyLength = data.ReadBits<uint>(13);
uint subjectLength = data.ReadBits<uint>(9); uint subjectLength = data.ReadBits<uint>(9);
@@ -336,7 +336,7 @@ namespace Game.Networking.Packets
MailSubject = data.ReadString(subjectLength); MailSubject = data.ReadString(subjectLength);
} }
public int MailID; public ulong MailID;
public string MailSubject; public string MailSubject;
public string MailBody; public string MailBody;
} }
@@ -479,7 +479,7 @@ namespace Game.Networking.Packets
switch (ComplaintType) switch (ComplaintType)
{ {
case SupportSpamType.Mail: case SupportSpamType.Mail:
MailID = _worldPacket.ReadUInt32(); MailID = _worldPacket.ReadUInt64();
break; break;
case SupportSpamType.Chat: case SupportSpamType.Chat:
Chat.Read(_worldPacket); Chat.Read(_worldPacket);
@@ -492,14 +492,14 @@ namespace Game.Networking.Packets
} }
public SupportSpamType ComplaintType; public SupportSpamType ComplaintType;
ComplaintOffender Offender; public ComplaintOffender Offender;
uint MailID; public ulong MailID;
ComplaintChat Chat; public ComplaintChat Chat;
ulong EventGuid; public ulong EventGuid;
ulong InviteGuid; public ulong InviteGuid;
struct ComplaintOffender public struct ComplaintOffender
{ {
public void Read(WorldPacket data) public void Read(WorldPacket data)
{ {
@@ -513,7 +513,7 @@ namespace Game.Networking.Packets
public uint TimeSinceOffence; public uint TimeSinceOffence;
} }
struct ComplaintChat public struct ComplaintChat
{ {
public void Read(WorldPacket data) public void Read(WorldPacket data)
{ {