Core/Achievements: Update CriteriaType enum
Port From (https://github.com/TrinityCore/TrinityCore/commit/0a83f748766c49775d76412d2b98bb9b9dc8c4df)
This commit is contained in:
@@ -475,235 +475,242 @@ namespace Framework.Constants
|
|||||||
IsForQuest = 0x20 // Is For Quest
|
IsForQuest = 0x20 // Is For Quest
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum CriteriaTypes : byte
|
public enum CriteriaType : byte
|
||||||
{
|
{
|
||||||
KillCreature = 0,
|
KillCreature = 0, // Kill NPC "{Creature}"
|
||||||
WinBg = 1,
|
WinBattleground = 1, // Win battleground "{Map}"
|
||||||
// 2 - unused (Legion - 23420)
|
CompleteResearchProject = 2, /*NYI*/ // Complete research project "{ResearchProject}"
|
||||||
CompleteArchaeologyProjects = 3, // Struct { Uint32 Itemcount; }
|
CompleteAnyResearchProject = 3, /*NYI*/ // Complete any research project
|
||||||
SurveyGameobject = 4,
|
FindResearchObject = 4, /*NYI*/ // Find research object "{GameObjects}"
|
||||||
ReachLevel = 5,
|
ReachLevel = 5, // Reach level
|
||||||
ClearDigsite = 6,
|
ExhaustAnyResearchSite = 6, /*NYI*/ // Exhaust any research site
|
||||||
ReachSkillLevel = 7,
|
SkillRaised = 7, // Skill "{SkillLine}" raised
|
||||||
CompleteAchievement = 8,
|
EarnAchievement = 8, // Earn achievement "{Achievement}"
|
||||||
CompleteQuestCount = 9,
|
CompleteQuestsCount = 9, // Count of complete quests (quest count)
|
||||||
CompleteDailyQuestDaily = 10, // You Have To Complete A Daily Quest X Times In A Row
|
CompleteAnyDailyQuestPerDay = 10, // Complete any daily quest (per day)
|
||||||
CompleteQuestsInZone = 11,
|
CompleteQuestsInZone = 11, // Complete quests in "{AreaTable}"
|
||||||
Currency = 12,
|
CurrencyGained = 12, // Currency "{CurrencyTypes}" gained
|
||||||
DamageDone = 13,
|
DamageDealt = 13, // Damage dealt
|
||||||
CompleteDailyQuest = 14,
|
CompleteDailyQuest = 14, // Complete daily quest
|
||||||
CompleteBattleground = 15,
|
ParticipateInBattleground = 15, // Participate in battleground "{Map}"
|
||||||
DeathAtMap = 16,
|
DieOnMap = 16, // Die on map "{Map}"
|
||||||
Death = 17,
|
DieAnywhere = 17, // Die anywhere
|
||||||
DeathInDungeon = 18,
|
DieInInstance = 18, // Die in an instance which handles at most {#Max Players} players
|
||||||
CompleteRaid = 19,
|
RunInstance = 19, /*NYI*/ // Run an instance which handles at most {#Max Players} players
|
||||||
KilledByCreature = 20,
|
KilledByCreature = 20, // Get killed by "{Creature}"
|
||||||
ManualCompleteCriteria = 21,
|
CompleteInternalCriteria = 21, /*NYI*/ // Designer Value{`Uses Record ID}
|
||||||
CompleteChallengeModeGuild = 22,
|
CompleteAnyChallengeMode = 22, /*NYI*/ // Complete any challenge mode
|
||||||
KilledByPlayer = 23,
|
KilledByPlayer = 23, // Die to a player
|
||||||
FallWithoutDying = 24,
|
MaxDistFallenWithoutDying = 24, // Maximum distance fallen without dying
|
||||||
// 25 - unused (Legion - 23420)
|
EarnChallengeModeMedal = 25, /*NYI*/ // Earn a challenge mode medal of "{#Challenge Mode Medal (OBSOLETE)}" (OBSOLETE)
|
||||||
DeathsFrom = 26,
|
DieFromEnviromentalDamage = 26, // Die to "{$Env Damage}" environmental damage
|
||||||
CompleteQuest = 27,
|
CompleteQuest = 27, // Complete quest "{QuestV2}"
|
||||||
BeSpellTarget = 28,
|
BeSpellTarget = 28, // Have the spell "{Spell}" cast on you
|
||||||
CastSpell = 29,
|
CastSpell = 29, // Cast the spell "{Spell}"
|
||||||
BgObjectiveCapture = 30,
|
TrackedWorldStateUIModified = 30, // Tracked WorldStateUI value "{WorldStateUI}" is modified
|
||||||
HonorableKillAtArea = 31,
|
PVPKillInArea = 31, // Kill someone in PVP in "{AreaTable}"
|
||||||
WinArena = 32,
|
WinArena = 32, // Win arena "{Map}"
|
||||||
PlayArena = 33,
|
ParticipateInArena = 33, /*NYI*/ // Participate in arena "{Map}"
|
||||||
LearnSpell = 34,
|
LearnOrKnowSpell = 34, // Learn or Know spell "{Spell}"
|
||||||
HonorableKill = 35,
|
EarnHonorableKill = 35, // Earn an honorable kill
|
||||||
OwnItem = 36,
|
AcquireItem = 36, // Acquire item "{Item}"
|
||||||
WinRatedArena = 37,
|
WinAnyRankedArena = 37, // Win a ranked arena match (any arena)
|
||||||
HighestTeamRating = 38,
|
EarnTeamArenaRating = 38, /*NYI*/ // Earn a team arena rating of {#Arena Rating}
|
||||||
HighestPersonalRating = 39,
|
EarnPersonalArenaRating = 39, // Earn a personal arena rating of {#Arena Rating}
|
||||||
LearnSkillLevel = 40,
|
AchieveSkillStep = 40, // Achieve a skill step in "{SkillLine}"
|
||||||
UseItem = 41,
|
UseItem = 41, // Use item "{Item}"
|
||||||
LootItem = 42,
|
LootItem = 42, // Loot "{Item}" via corpse, pickpocket, fishing, disenchanting, etc.
|
||||||
ExploreArea = 43,
|
RevealWorldMapOverlay = 43, // Reveal world map overlay "{WorldMapOverlay}"
|
||||||
OwnRank = 44,
|
EarnTitle = 44, /*NYI*/ // Deprecated PVP Titles
|
||||||
BuyBankSlot = 45,
|
BankSlotsPurchased = 45, // Bank slots purchased
|
||||||
GainReputation = 46,
|
ReputationGained = 46, // Reputation gained with faction "{Faction}"
|
||||||
GainExaltedReputation = 47,
|
TotalExaltedFactions = 47, // Total exalted factions
|
||||||
VisitBarberShop = 48,
|
GotHaircut = 48, // Got a haircut
|
||||||
EquipItemInSlot = 49,
|
EquipItemInSlot = 49, // Equip item in slot "{$Equip Slot}"
|
||||||
RollNeedOnLoot = 50, /// Todo Itemlevel Is Mentioned In Text But Not Present In Dbc
|
RollNeed = 50, // Roll need and get {#Need Roll}
|
||||||
RollGreedOnLoot = 51,
|
RollGreed = 51, // Roll greed and get {#Greed Roll}
|
||||||
HkClass = 52,
|
DeliverKillingBlowToClass = 52, // Deliver a killing blow to a {ChrClasses}
|
||||||
HkRace = 53,
|
DeliverKillingBlowToRace = 53, // Deliver a killing blow to a {ChrRaces}
|
||||||
DoEmote = 54,
|
DoEmote = 54, // Do a "{EmotesText}" emote
|
||||||
HealingDone = 55,
|
HealingDone = 55, // Healing done
|
||||||
GetKillingBlows = 56, /// Todo In Some Cases Map Not Present, And In Some Cases Need Do Without Die
|
DeliveredKillingBlow = 56, // Delivered a killing blow
|
||||||
EquipItem = 57,
|
EquipItem = 57, // Equip item "{Item}"
|
||||||
// 58 - unused (Legion - 23420)
|
CompleteQuestsInSort = 58, /*NYI*/ // Complete quests in "{QuestSort}"
|
||||||
MoneyFromVendors = 59,
|
MoneyEarnedFromSales = 59, // Sell items to vendors
|
||||||
GoldSpentForTalents = 60,
|
MoneySpentOnRespecs = 60, // Money spent on respecs
|
||||||
NumberOfTalentResets = 61,
|
TotalRespecs = 61, // Total respecs
|
||||||
MoneyFromQuestReward = 62,
|
MoneyEarnedFromQuesting = 62, // Money earned from questing
|
||||||
GoldSpentForTravelling = 63,
|
MoneySpentOnTaxis = 63, // Money spent on taxis
|
||||||
DefeatCreatureGroup = 64,
|
KilledAllUnitsInSpawnRegion = 64, /*NYI*/ // Killed all units in spawn region "{SpawnRegion}"
|
||||||
GoldSpentAtBarber = 65,
|
MoneySpentAtBarberShop = 65, // Money spent at the barber shop
|
||||||
GoldSpentForMail = 66,
|
MoneySpentOnPostage = 66, // Money spent on postage
|
||||||
LootMoney = 67,
|
MoneyLootedFromCreatures = 67, // Money looted from creatures
|
||||||
UseGameobject = 68,
|
UseGameobject = 68, // Use Game Object "{GameObjects}"
|
||||||
BeSpellTarget2 = 69,
|
GainAura = 69, // Gain aura "{Spell}"
|
||||||
SpecialPvpKill = 70,
|
KillPlayer = 70, // Kill a player (no honor check)
|
||||||
CompleteChallengeMode = 71,
|
CompleteChallengeMode = 71, /*NYI*/ // Complete a challenge mode on map "{Map}"
|
||||||
FishInGameobject = 72,
|
CatchFishInFishingHole = 72, // Catch fish in the "{GameObjects}" fishing hole
|
||||||
SendEvent = 73,
|
PlayerTriggerGameEvent = 73, /*NYI*/ // Player will Trigger game event "{GameEvents}"
|
||||||
OnLogin = 74,
|
Login = 74, // Login (USE SPARINGLY!)
|
||||||
LearnSkilllineSpells = 75,
|
LearnSpellFromSkillLine = 75, // Learn spell from the "{SkillLine}" skill line
|
||||||
WinDuel = 76,
|
WinDuel = 76, // Win a duel
|
||||||
LoseDuel = 77,
|
LoseDuel = 77, // Lose a duel
|
||||||
KillCreatureType = 78,
|
KillAnyCreature = 78, // Kill any NPC
|
||||||
CookRecipesGuild = 79,
|
CreatedItemsByCastingSpellWithLimit = 79, /*NYI*/ // Created items by casting a spell (limit 1 per create...)
|
||||||
GoldEarnedByAuctions = 80,
|
MoneyEarnedFromAuctions = 80, // Money earned from auctions
|
||||||
EarnPetBattleAchievementPoints = 81,
|
BattlePetAchievementPointsEarned = 81, /*NYI*/ // Battle pet achievement points earned
|
||||||
CreateAuction = 82,
|
ItemsPostedAtAuction = 82, // Number of items posted at auction
|
||||||
HighestAuctionBid = 83,
|
HighestAuctionBid = 83, // Highest auction bid
|
||||||
WonAuctions = 84,
|
AuctionsWon = 84, // Auctions won
|
||||||
HighestAuctionSold = 85,
|
HighestAuctionSale = 85, // Highest coin value of item sold
|
||||||
HighestGoldValueOwned = 86,
|
MostMoneyOwned = 86, // Most money owned
|
||||||
GainReveredReputation = 87,
|
TotalReveredFactions = 87, // Total revered factions
|
||||||
GainHonoredReputation = 88,
|
TotalHonoredFactions = 88, // Total honored factions
|
||||||
KnownFactions = 89,
|
TotalFactionsEncountered = 89, // Total factions encountered
|
||||||
LootAnyItem = 90,
|
LootAnyItem = 90, // Loot any item
|
||||||
ObtainAnyItem = 91,
|
ObtainAnyItem = 91, // Obtain any item
|
||||||
SendEventScenario = 92,
|
AnyoneTriggerGameEventScenario = 92, /*NYI*/ // Anyone will Trigger game event "{GameEvents}" (Scenario Only)
|
||||||
RollNeed = 93,
|
RollAnyNeed = 93, // Roll any number on need
|
||||||
RollGreed = 94,
|
RollAnyGreed = 94, // Roll any number on greed
|
||||||
ReleaseSpirit = 95,
|
ReleasedSpirit = 95, /*NYI*/ // Released Spirit
|
||||||
OwnPet = 96,
|
AccountKnownPet = 96, /*NYI*/ // Account knows pet "{Creature}" (Backtracked)
|
||||||
GarrisonCompleteDungeonEncounter = 97,
|
DefeatDungeonEncounterWhileElegibleForLoot = 97, /*NYI*/ // Defeat Encounter "{DungeonEncounter}" While Eligible For Loot
|
||||||
// 98 - unused (Legion - 23420)
|
// UNUSED 18{} = 98, // Unused
|
||||||
// 99 - unused (Legion - 23420)
|
// UNUSED 19{} = 99, // Unused
|
||||||
// 100 - unused (Legion - 23420)
|
// UNUSED 20{} = 100, // Unused
|
||||||
HighestHitDealt = 101,
|
HighestDamageDone = 101, // Highest damage done in 1 single ability
|
||||||
HighestHitReceived = 102,
|
HighestDamageTaken = 102, // Most damage taken in 1 single hit
|
||||||
TotalDamageReceived = 103,
|
TotalDamageTaken = 103, // Total damage taken
|
||||||
HighestHealCasted = 104,
|
HighestHealCast = 104, // Largest heal cast
|
||||||
TotalHealingReceived = 105,
|
TotalHealReceived = 105, // Total healing received
|
||||||
HighestHealingReceived = 106,
|
HighestHealReceived = 106, // Largest heal received
|
||||||
QuestAbandoned = 107,
|
AbandonAnyQuest = 107, // Abandon any quest
|
||||||
FlightPathsTaken = 108,
|
BuyTaxi = 108, // Buy a taxi
|
||||||
LootType = 109,
|
GetLootByType = 109, // Get loot via "{$Loot Acquisition}"
|
||||||
CastSpell2 = 110, /// Todo Target Entry Is Missing
|
LandTargetedSpellOnTarget = 110, // Land targeted spell "{Spell}" on a target
|
||||||
// 111 - unused (Legion - 23420)
|
// UNUSED 21{} = 111, // Unused
|
||||||
LearnSkillLine = 112,
|
LearnTradeskillSkillLine = 112, // Learn tradeskill skill line "{SkillLine}"
|
||||||
EarnHonorableKill = 113,
|
HonorableKills = 113, // Honorable kills (number in interface, won't update except for login)
|
||||||
AcceptedSummonings = 114,
|
AcceptSummon = 114, // Accept a summon
|
||||||
EarnAchievementPoints = 115,
|
EarnAchievementPoints = 115, // Earn achievement points
|
||||||
// 116 - unused (Legion - 23420)
|
RollDisenchant = 116, /*NYI*/ // Roll disenchant and get {#Disenchant Roll}
|
||||||
// 117 - unused (Legion - 23420)
|
RollAnyDisenchant = 117, /*NYI*/ // Roll any number on disenchant
|
||||||
CompleteLfgDungeon = 118,
|
CompletedLFGDungeon = 118, /*NYI*/ // Completed an LFG dungeon
|
||||||
UseLfdToGroupWithPlayers = 119,
|
CompletedLFGDungeonWithStrangers = 119, // Completed an LFG dungeon with strangers
|
||||||
LfgVoteKicksInitiatedByPlayer = 120,
|
KickInitiatorInLFGDungeon = 120, /*NYI*/ // Kicked in an LFG dungeon (initiator)
|
||||||
LfgVoteKicksNotInitByPlayer = 121,
|
KickVoterInLFGDungeon = 121, /*NYI*/ // Kicked in an LFG dungeon (voter)
|
||||||
BeKickedFromLfg = 122,
|
KickTargetInLFGDungeon = 122, /*NYI*/ // Kicked in an LFG dungeon (target)
|
||||||
LfgLeaves = 123,
|
AbandonedLFGDungeon = 123, /*NYI*/ // Abandoned an LFG dungeon
|
||||||
SpentGoldGuildRepairs = 124,
|
MoneySpentOnGuildRepair = 124, /*NYI*/ // Guild repair amount spent
|
||||||
ReachGuildLevel = 125,
|
GuildAttainedLevel = 125, /*NYI*/ // Guild attained level
|
||||||
CraftItemsGuild = 126,
|
CreatedItemsByCastingSpell = 126, /*NYI*/ // Created items by casting a spell
|
||||||
CatchFromPool = 127,
|
FishInAnyPool = 127, /*NYI*/ // Fish in any pool
|
||||||
BuyGuildBankSlots = 128,
|
GuildBankTabsPurchased = 128, /*NYI*/ // Guild bank tabs purchased
|
||||||
EarnGuildAchievementPoints = 129,
|
EarnGuildAchievementPoints = 129, /*NYI*/ // Earn guild achievement points
|
||||||
WinRatedBattleground = 130,
|
WinAnyBattleground = 130, /*NYI*/ // Win any battleground
|
||||||
// 131 - unused (Legion - 23420)
|
ParticipateInAnyBattleground = 131, /*NYI*/ // Participate in any battleground
|
||||||
ReachBgRating = 132,
|
EarnBattlegroundRating = 132, /*NYI*/ // Earn a battleground rating
|
||||||
BuyGuildTabard = 133,
|
GuildTabardCreated = 133, /*NYI*/ // Guild tabard created
|
||||||
CompleteQuestsGuild = 134,
|
CompleteQuestsCountForGuild = 134, /*NYI*/ // Count of complete quests for guild (Quest count)
|
||||||
HonorableKillsGuild = 135,
|
HonorableKillsForGuild = 135, /*NYI*/ // Honorable kills for Guild
|
||||||
KillCreatureTypeGuild = 136,
|
KillAnyCreatureForGuild = 136, /*NYI*/ // Kill any NPC for Guild
|
||||||
CountOfLfgQueueBoostsByTank = 137,
|
GroupedTankLeftEarlyInLFGDungeon = 137, /*NYI*/ // Grouped tank left early in an LFG dungeon
|
||||||
CompleteGuildChallengeType = 138, //Struct { Flag Flag; Uint32 Count; } 1: Guild Dungeon, 2:Guild Challenge, 3:Guild Battlefield
|
CompleteGuildChallenge = 138, /*NYI*/ // Complete a "{$Guild Challenge}" guild challenge
|
||||||
CompleteGuildChallenge = 139, //Struct { Uint32 Count; } Guild Challenge
|
CompleteAnyGuildChallenge = 139, /*NYI*/ // Complete any guild challenge
|
||||||
// 140 - 1 criteria (16883), unused (Legion - 23420)
|
MarkedAFKInBattleground = 140, /*NYI*/ // Marked AFK in a battleground
|
||||||
// 141 - 1 criteria (16884), unused (Legion - 23420)
|
RemovedAFKInBattleground = 141, /*NYI*/ // Removed for being AFK in a battleground
|
||||||
// 142 - 1 criteria (16881), unused (Legion - 23420)
|
StartAnyBattleground = 142, /*NYI*/ // Start any battleground (AFK tracking)
|
||||||
// 143 - 1 criteria (16882), unused (Legion - 23420)
|
CompleteAnyBattleground = 143, /*NYI*/ // Complete any battleground (AFK tracking)
|
||||||
// 144 - 1 criteria (17386), unused (Legion - 23420)
|
MarkedSomeoneAFKInBattleground = 144, /*NYI*/ // Marked someone for being AFK in a battleground
|
||||||
LfrDungeonsCompleted = 145,
|
CompletedLFRDungeon = 145, /*NYI*/ // Completed an LFR dungeon
|
||||||
LfrLeaves = 146,
|
AbandonedLFRDungeon = 146, /*NYI*/ // Abandoned an LFR dungeon
|
||||||
LfrVoteKicksInitiatedByPlayer = 147,
|
KickInitiatorInLFRDungeon = 147, /*NYI*/ // Kicked in an LFR dungeon (initiator)
|
||||||
LfrVoteKicksNotInitByPlayer = 148,
|
KickVoterInLFRDungeon = 148, /*NYI*/ // Kicked in an LFR dungeon (voter)
|
||||||
BeKickedFromLfr = 149,
|
KickTargetInLFRDungeon = 149, /*NYI*/ // Kicked in an LFR dungeon (target)
|
||||||
CountOfLfrQueueBoostsByTank = 150,
|
GroupedTankLeftEarlyInLFRDungeon = 150, /*NYI*/ // Grouped tank left early in an LFR dungeon
|
||||||
CompleteScenarioCount = 151,
|
CompleteAnyScenario = 151, /*NYI*/ // Complete a Scenario
|
||||||
CompleteScenario = 152,
|
CompleteScenario = 152, /*NYI*/ // Complete scenario "{Scenario}"
|
||||||
ReachAreatriggerWithActionset = 153,
|
EnterAreaTriggerWithActionSet = 153, /*NYI*/ // Enter area trigger "{AreaTriggerActionSet}"
|
||||||
// 154 - unused (Legion - 23420)
|
LeaveAreaTriggerWithActionSet = 154, /*NYI*/ // Leave area trigger "{AreaTriggerActionSet}"
|
||||||
OwnBattlePet = 155,
|
LearnedNewPet = 155, // (Account Only) Learned a new pet
|
||||||
OwnBattlePetCount = 156,
|
UniquePetsOwned = 156, // (Account Only) Unique pets owned
|
||||||
CaptureBattlePet = 157,
|
AccountObtainPetThroughBattle = 157, /*NYI*/ // (Account Only) Obtain a pet through battle
|
||||||
WinPetBattle = 158,
|
WinPetBattle = 158, /*NYI*/ // Win a pet battle
|
||||||
// 159 - 2 criterias (22312,22314), unused (Legion - 23420)
|
LosePetBattle = 159, /*NYI*/ // Lose a pet battle
|
||||||
LevelBattlePet = 160,
|
BattlePetReachLevel = 160, /*NYI*/ // (Account Only) Battle pet has reached level {#Level}
|
||||||
CaptureBattlePetCredit = 161, // Triggers A Quest Credit
|
PlayerObtainPetThroughBattle = 161, /*NYI*/ // (Player) Obtain a pet through battle
|
||||||
LevelBattlePetCredit = 162, // Triggers A Quest Credit
|
ActivelyEarnPetLevel = 162, /*NYI*/ // (Player) Actively earn level {#Level} with a pet by a player
|
||||||
EnterArea = 163, // Triggers A Quest Credit
|
EnterArea = 163, /*NYI*/ // Enter Map Area "{AreaTable}"
|
||||||
LeaveArea = 164, // Triggers A Quest Credit
|
LeaveArea = 164, /*NYI*/ // Leave Map Area "{AreaTable}"
|
||||||
CompleteDungeonEncounter = 165,
|
DefeatDungeonEncounter = 165, /*NYI*/ // Defeat Encounter "{DungeonEncounter}"
|
||||||
// 166 - unused (Legion - 23420)
|
PlaceAnyGarrisonBuilding = 166, /*NYI*/ // Garrison Building: Place any
|
||||||
PlaceGarrisonBuilding = 167,
|
PlaceGarrisonBuilding = 167, // Garrison Building: Place "{GarrBuilding}"
|
||||||
UpgradeGarrisonBuilding = 168,
|
ActivateAnyGarrisonBuilding = 168, // Garrison Building: Activate any
|
||||||
ConstructGarrisonBuilding = 169,
|
ActivateGarrisonBuilding = 169, /*NYI*/ // Garrison Building: Activate "{GarrBuilding}"
|
||||||
UpgradeGarrison = 170,
|
UpgradeGarrison = 170, /*NYI*/ // Garrison: Upgrade Garrison to Tier "{#Tier:2,3}"
|
||||||
StartGarrisonMission = 171,
|
StartAnyGarrisonMissionWithFollowerType = 171, /*NYI*/ // Garrison Mission: Start any with FollowerType "{GarrFollowerType}"
|
||||||
StartOrderHallMission = 172,
|
StartGarrisonMission = 172, /*NYI*/ // Garrison Mission: Start "{GarrMission}"
|
||||||
CompleteGarrisonMissionCount = 173,
|
SucceedAnyGarrisonMissionWithFollowerType = 173, /*NYI*/ // Garrison Mission: Succeed any with FollowerType "{GarrFollowerType}"
|
||||||
CompleteGarrisonMission = 174,
|
SucceedGarrisonMission = 174, /*NYI*/ // Garrison Mission: Succeed "{GarrMission}"
|
||||||
RecruitGarrisonFollowerCount = 175,
|
RecruitAnyGarrisonFollower = 175, /*NYI*/ // Garrison Follower: Recruit any
|
||||||
RecruitGarrisonFollower = 176,
|
RecruitGarrisonFollower = 176, // Garrison Follower: Recruit "{GarrFollower}"
|
||||||
// 177 - 0 criterias (Legion - 23420)
|
AcquireGarrison = 177, /*NYI*/ // Garrison: Acquire a Garrison
|
||||||
LearnGarrisonBlueprintCount = 178,
|
LearnAnyGarrisonBlueprint = 178, /*NYI*/ // Garrison Blueprint: Learn any
|
||||||
// 179 - 0 criterias (Legion - 23420)
|
LearnGarrisonBlueprint = 179, /*NYI*/ // Garrison Blueprint: Learn "{GarrBuilding}"
|
||||||
// 180 - 0 criterias (Legion - 23420)
|
LearnAnyGarrisonSpecialization = 180, /*NYI*/ // Garrison Specialization: Learn any
|
||||||
// 181 - 0 criterias (Legion - 23420)
|
LearnGarrisonSpecialization = 181, /*NYI*/ // Garrison Specialization: Learn "{GarrSpecialization}"
|
||||||
CompleteGarrisonShipment = 182,
|
CollectGarrisonShipment = 182, /*NYI*/ // Garrison Shipment of type "{CharShipmentContainer}" collected
|
||||||
RaiseGarrisonFollowerItemLevel = 183,
|
ItemLevelChangedForGarrisonFollower = 183, /*NYI*/ // Garrison Follower: Item Level Changed
|
||||||
RaiseGarrisonFollowerLevel = 184,
|
LevelChangedForGarrisonFollower = 184, /*NYI*/ // Garrison Follower: Level Changed
|
||||||
OwnToy = 185,
|
LearnToy = 185, /*NYI*/ // Learn Toy "{Item}"
|
||||||
OwnToyCount = 186,
|
LearnAnyToy = 186, /*NYI*/ // Learn Any Toy
|
||||||
RecruitGarrisonFollowerWithQuality = 187,
|
QualityUpgradedForGarrisonFollower = 187, /*NYI*/ // Garrison Follower: Quality Upgraded
|
||||||
// 188 - 0 criterias (Legion - 23420)
|
LearnHeirloom = 188, /*NYI*/ // Learn Heirloom "{Item}"
|
||||||
OwnHeirlooms = 189,
|
LearnAnyHeirloom = 189, /*NYI*/ // Learn Any Heirloom
|
||||||
ArtifactPowerEarned = 190,
|
EarnArtifactXP = 190, /*NYI*/ // Earn Artifact XP
|
||||||
ArtifactTraitsUnlocked = 191,
|
AnyArtifactPowerRankPurchased = 191, /*NYI*/ // Artifact Power Ranks Purchased
|
||||||
OwnItemModifiedAppearance = 192,
|
LearnTransmog = 192, /*NYI*/ // Learn Transmog "{ItemModifiedAppearance}"
|
||||||
HonorLevelReached = 194,
|
LearnAnyTransmog = 193, /*NYI*/ // Learn Any Transmog
|
||||||
PrestigeReached = 195,
|
HonorLevelIncrease = 194, // (Player) honor level increase
|
||||||
ActivelyReachLevel = 196,
|
PrestigeLevelIncrease = 195, /*NYI*/ // (Player) prestige level increase
|
||||||
// 197 - Order Hall Advancement related
|
ActivelyReachLevel = 196, // Actively level to level {#Level}
|
||||||
OrderHallTalentLearned = 198,
|
CompleteResearchAnyGarrisonTalent = 197, /*NYI*/ // Garrison Talent: Complete Research Any
|
||||||
AppearanceUnlockedBySlot = 199,
|
CompleteResearchGarrisonTalent = 198, /*NYI*/ // Garrison Talent: Complete Research "{GarrTalent}"
|
||||||
OrderHallRecruitTroop = 200,
|
LearnAnyTransmogInSlot = 199, // Learn Any Transmog in Slot "{$Equip Slot}"
|
||||||
// 201 - 0 criterias (Legion - 23420)
|
RecruitAnyGarrisonTroop = 200, /*NYI*/ // Recruit any Garrison Troop
|
||||||
// 202 - 0 criterias (Legion - 23420)
|
StartResearchAnyGarrisonTalent = 201, /*NYI*/ // Garrison Talent: Start Research Any
|
||||||
CompleteWorldQuest = 203,
|
StartResearchGarrisonTalent = 202, /*NYI*/ // Garrison Talent: Start Research "{GarrTalent}"
|
||||||
// 204 - Special criteria type to award players for some external events? Comes with what looks like an identifier, so guessing it's not unique.
|
CompleteAnyWorldQuest = 203, /*NYI*/ // Complete Any Quest
|
||||||
TransmogSetUnlocked = 205,
|
EarnLicense = 204, /*NYI*/ // Earn License "{BattlePayDeliverable}" (does NOT work for box level)
|
||||||
GainParagonReputation = 206,
|
CollectTransmogSetFromGroup = 205, // (Account Only) Collect a Transmog Set from Group "{TransmogSetGroup}"
|
||||||
EarnHonorXp = 207,
|
ParagonLevelIncreaseWithFaction = 206, /*NYI*/ // (Player) paragon level increase with faction "{Faction}"
|
||||||
RelicTalentUnlocked = 211,
|
PlayerHasEarnedHonor = 207, /*NYI*/ // Player has earned honor
|
||||||
ExpansionLevel = 212,
|
KillCreatureScenario = 208, /*NYI*/ // Kill NPC "{Creature}" (scenario criteria only, do not use for player)
|
||||||
ReachAccountHonorLevel = 213,
|
ArtifactPowerRankPurchased = 209, /*NYI*/ // Artifact Power Rank of "{ArtifactPower}" Purchased
|
||||||
HeartOfAzerothArtifactPowerEarned = 214,
|
ChooseAnyRelicTalent = 210, /*NYI*/ // Choose any Relic Talent
|
||||||
HeartOfAzerothLevelReached = 215,
|
ChooseRelicTalent = 211, /*NYI*/ // Choose Relic Talent "{ArtifactPower}"
|
||||||
MythicKeystoneCompleted = 216, // NYI
|
EarnExpansionLevel = 212, /*NYI*/ // Earn Expansion Level "{$Expansion Level}"
|
||||||
// 217 - 0 Criterias
|
AccountHonorLevelReached = 213, /*NYI*/ // (Account Only) honor level {#Level} reached
|
||||||
CompleteQuestAccumulate = 218,
|
EarnArtifactXPForAzeriteItem = 214, // Earn Artifact experience for Azerite Item
|
||||||
BoughtItemFromVendor = 219,
|
AzeriteLevelReached = 215, // Azerite Level {#Azerite Level} reached
|
||||||
SoldItemToVendor = 220,
|
MythicPlusCompleted = 216, /*NYI*/ // Mythic Plus Completed
|
||||||
// 221 - 0 Criterias
|
ScenarioGroupCompleted = 217, /*NYI*/ // Scenario Group Completed
|
||||||
// 222 - 0 Criterias
|
CompleteAnyReplayQuest = 218, // Complete Any Replay Quest
|
||||||
// 223 - 0 Criterias
|
BuyItemsFromVendors = 219, // Buy items from vendors
|
||||||
// 224 - 0 Criterias
|
SellItemsToVendors = 220, // Sell items to vendors
|
||||||
TravelledToArea = 225,
|
ReachMaxLevel = 221, /*NYI*/ // Reach Max Level
|
||||||
// 226 - 0 Criterias
|
MemorizeSpell = 222, /*NYI*/ // Memorize Spell "{Spell}"
|
||||||
// 227 - 0 Criterias
|
LearnTransmogIllusion = 223, /*NYI*/ // Learn Transmog Illusion
|
||||||
ApplyConduit = 228,
|
LearnAnyTransmogIllusion = 224, /*NYI*/ // Learn Any Transmog Illusion
|
||||||
ConvertItemsToCurrency = 229,
|
EnterTopLevelArea = 225, // Enter Top Level Map Area "{AreaTable}"
|
||||||
TotalTypes = 232
|
LeaveTopLevelArea = 226, /*NYI*/ // Leave Top Level Map Area "{AreaTable}"
|
||||||
|
SocketGarrisonTalent = 227, /*NYI*/ // Socket Garrison Talent {GarrTalent}
|
||||||
|
SocketAnySoulbindConduit = 228, /*NYI*/ // Socket Any Soulbind Conduit
|
||||||
|
ObtainAnyItemWithCurrencyValue = 229, /*NYI*/ // Obtain Any Item With Currency Value "{CurrencyTypes}"
|
||||||
|
MythicPlusRatingAttained = 230, /*NYI*/ // (Player) Mythic+ Rating "{#DungeonScore}" attained
|
||||||
|
SpentTalentPoint = 231, /*NYI*/ // (Player) spent talent point
|
||||||
|
|
||||||
|
Count
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum CriteriaDataType
|
public enum CriteriaDataType
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace Game.Achievements
|
|||||||
public void CheckAllAchievementCriteria(Player referencePlayer)
|
public void CheckAllAchievementCriteria(Player referencePlayer)
|
||||||
{
|
{
|
||||||
// suppress sending packets
|
// suppress sending packets
|
||||||
for (CriteriaTypes i = 0; i < CriteriaTypes.TotalTypes; ++i)
|
for (CriteriaType i = 0; i < CriteriaType.Count; ++i)
|
||||||
UpdateCriteria(i, 0, 0, 0, null, referencePlayer);
|
UpdateCriteria(i, 0, 0, 0, null, referencePlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -533,8 +533,8 @@ namespace Game.Achievements
|
|||||||
if (!achievement.Flags.HasAnyFlag(AchievementFlags.TrackingFlag))
|
if (!achievement.Flags.HasAnyFlag(AchievementFlags.TrackingFlag))
|
||||||
_achievementPoints += achievement.Points;
|
_achievementPoints += achievement.Points;
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.CompleteAchievement, achievement.Id, 0, 0, null, referencePlayer);
|
UpdateCriteria(CriteriaType.EarnAchievement, achievement.Id, 0, 0, null, referencePlayer);
|
||||||
UpdateCriteria(CriteriaTypes.EarnAchievementPoints, achievement.Points, 0, 0, null, referencePlayer);
|
UpdateCriteria(CriteriaType.EarnAchievementPoints, achievement.Points, 0, 0, null, referencePlayer);
|
||||||
|
|
||||||
// reward items and titles if any
|
// reward items and titles if any
|
||||||
AchievementReward reward = Global.AchievementMgr.GetAchievementReward(achievement);
|
AchievementReward reward = Global.AchievementMgr.GetAchievementReward(achievement);
|
||||||
@@ -705,7 +705,7 @@ namespace Game.Achievements
|
|||||||
_owner.SendPacket(data);
|
_owner.SendPacket(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<Criteria> GetCriteriaByType(CriteriaTypes type, uint asset)
|
public override List<Criteria> GetCriteriaByType(CriteriaType type, uint asset)
|
||||||
{
|
{
|
||||||
return Global.CriteriaMgr.GetPlayerCriteriaByType(type, asset);
|
return Global.CriteriaMgr.GetPlayerCriteriaByType(type, asset);
|
||||||
}
|
}
|
||||||
@@ -1014,8 +1014,8 @@ namespace Game.Achievements
|
|||||||
if (!achievement.Flags.HasAnyFlag(AchievementFlags.TrackingFlag))
|
if (!achievement.Flags.HasAnyFlag(AchievementFlags.TrackingFlag))
|
||||||
_achievementPoints += achievement.Points;
|
_achievementPoints += achievement.Points;
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.CompleteAchievement, achievement.Id, 0, 0, null, referencePlayer);
|
UpdateCriteria(CriteriaType.EarnAchievement, achievement.Id, 0, 0, null, referencePlayer);
|
||||||
UpdateCriteria(CriteriaTypes.EarnAchievementPoints, achievement.Points, 0, 0, null, referencePlayer);
|
UpdateCriteria(CriteriaType.EarnAchievementPoints, achievement.Points, 0, 0, null, referencePlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SendCriteriaUpdate(Criteria entry, CriteriaProgress progress, TimeSpan timeElapsed, bool timedCompleted)
|
public override void SendCriteriaUpdate(Criteria entry, CriteriaProgress progress, TimeSpan timeElapsed, bool timedCompleted)
|
||||||
@@ -1069,7 +1069,7 @@ namespace Game.Achievements
|
|||||||
_owner.BroadcastPacket(data);
|
_owner.BroadcastPacket(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<Criteria> GetCriteriaByType(CriteriaTypes type, uint asset)
|
public override List<Criteria> GetCriteriaByType(CriteriaType type, uint asset)
|
||||||
{
|
{
|
||||||
return Global.CriteriaMgr.GetGuildCriteriaByType(type);
|
return Global.CriteriaMgr.GetGuildCriteriaByType(type);
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -253,8 +253,8 @@ namespace Game.Arenas
|
|||||||
{
|
{
|
||||||
// update achievement BEFORE personal rating update
|
// update achievement BEFORE personal rating update
|
||||||
uint rating = player.GetArenaPersonalRating(winnerArenaTeam.GetSlot());
|
uint rating = player.GetArenaPersonalRating(winnerArenaTeam.GetSlot());
|
||||||
player.UpdateCriteria(CriteriaTypes.WinRatedArena, rating != 0 ? rating : 1);
|
player.UpdateCriteria(CriteriaType.WinAnyRankedArena, rating != 0 ? rating : 1);
|
||||||
player.UpdateCriteria(CriteriaTypes.WinRatedArena, GetMapId());
|
player.UpdateCriteria(CriteriaType.WinArena, GetMapId());
|
||||||
|
|
||||||
// Last standing - Rated 5v5 arena & be solely alive player
|
// Last standing - Rated 5v5 arena & be solely alive player
|
||||||
if (GetArenaType() == ArenaTypes.Team5v5 && aliveWinners == 1 && player.IsAlive())
|
if (GetArenaType() == ArenaTypes.Team5v5 && aliveWinners == 1 && player.IsAlive())
|
||||||
@@ -268,7 +268,7 @@ namespace Game.Arenas
|
|||||||
{
|
{
|
||||||
Guild guild = Global.GuildMgr.GetGuildById(guildId);
|
Guild guild = Global.GuildMgr.GetGuildById(guildId);
|
||||||
if (guild)
|
if (guild)
|
||||||
guild.UpdateCriteria(CriteriaTypes.WinRatedArena, Math.Max(winnerArenaTeam.GetRating(), 1), 0, 0, null, player);
|
guild.UpdateCriteria(CriteriaType.WinAnyRankedArena, Math.Max(winnerArenaTeam.GetRating(), 1), 0, 0, null, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -559,7 +559,7 @@ namespace Game.Arenas
|
|||||||
{
|
{
|
||||||
Player player = Global.ObjAccessor.FindPlayer(member.Guid);
|
Player player = Global.ObjAccessor.FindPlayer(member.Guid);
|
||||||
if (player)
|
if (player)
|
||||||
player.UpdateCriteria(CriteriaTypes.HighestTeamRating, stats.Rating, type);
|
player.UpdateCriteria(CriteriaType.EarnTeamArenaRating, stats.Rating, type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -834,7 +834,7 @@ namespace Game.Arenas
|
|||||||
if (player)
|
if (player)
|
||||||
{
|
{
|
||||||
player.SetArenaTeamInfoField(ArenaTeam.GetSlotByType(type), ArenaTeamInfoType.PersonalRating, PersonalRating);
|
player.SetArenaTeamInfoField(ArenaTeam.GetSlotByType(type), ArenaTeamInfoType.PersonalRating, PersonalRating);
|
||||||
player.UpdateCriteria(CriteriaTypes.HighestPersonalRating, PersonalRating, type);
|
player.UpdateCriteria(CriteriaType.EarnPersonalArenaRating, PersonalRating, type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1318,8 +1318,8 @@ namespace Game
|
|||||||
Player owner = Global.ObjAccessor.FindConnectedPlayer(auction.Owner);
|
Player owner = Global.ObjAccessor.FindConnectedPlayer(auction.Owner);
|
||||||
if (owner != null)
|
if (owner != null)
|
||||||
{
|
{
|
||||||
owner.UpdateCriteria(CriteriaTypes.GoldEarnedByAuctions, profit);
|
owner.UpdateCriteria(CriteriaType.MoneyEarnedFromAuctions, profit);
|
||||||
owner.UpdateCriteria(CriteriaTypes.HighestAuctionSold, profit);
|
owner.UpdateCriteria(CriteriaType.HighestAuctionSale, profit);
|
||||||
owner.GetSession().SendAuctionClosedNotification(auction, (float)WorldConfig.GetIntValue(WorldCfg.MailDeliveryDelay), true);
|
owner.GetSession().SendAuctionClosedNotification(auction, (float)WorldConfig.GetIntValue(WorldCfg.MailDeliveryDelay), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1460,7 +1460,7 @@ namespace Game
|
|||||||
bidder.SendPacket(packet);
|
bidder.SendPacket(packet);
|
||||||
|
|
||||||
// FIXME: for offline player need also
|
// FIXME: for offline player need also
|
||||||
bidder.UpdateCriteria(CriteriaTypes.WonAuctions, 1);
|
bidder.UpdateCriteria(CriteriaType.AuctionsWon, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
mail.SendMailTo(trans, new MailReceiver(bidder, auction.Bidder), new MailSender(this), MailCheckMask.Copied);
|
mail.SendMailTo(trans, new MailReceiver(bidder, auction.Bidder), new MailSender(this), MailCheckMask.Copied);
|
||||||
@@ -1488,8 +1488,8 @@ namespace Game
|
|||||||
//FIXME: what do if owner offline
|
//FIXME: what do if owner offline
|
||||||
if (owner)
|
if (owner)
|
||||||
{
|
{
|
||||||
owner.UpdateCriteria(CriteriaTypes.GoldEarnedByAuctions, profit);
|
owner.UpdateCriteria(CriteriaType.MoneyEarnedFromAuctions, profit);
|
||||||
owner.UpdateCriteria(CriteriaTypes.HighestAuctionSold, auction.BidAmount);
|
owner.UpdateCriteria(CriteriaType.HighestAuctionSale, auction.BidAmount);
|
||||||
//send auction owner notification, bidder must be current!
|
//send auction owner notification, bidder must be current!
|
||||||
owner.GetSession().SendAuctionClosedNotification(auction, (float)WorldConfig.GetIntValue(WorldCfg.MailDeliveryDelay), true);
|
owner.GetSession().SendAuctionClosedNotification(auction, (float)WorldConfig.GetIntValue(WorldCfg.MailDeliveryDelay), true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -776,7 +776,7 @@ namespace Game.BattleGrounds
|
|||||||
// TODO: lose honor xp
|
// TODO: lose honor xp
|
||||||
}
|
}
|
||||||
|
|
||||||
player.UpdateCriteria(CriteriaTypes.WinBg, player.GetMapId());
|
player.UpdateCriteria(CriteriaType.WinBattleground, player.GetMapId());
|
||||||
if (!guildAwarded)
|
if (!guildAwarded)
|
||||||
{
|
{
|
||||||
guildAwarded = true;
|
guildAwarded = true;
|
||||||
@@ -785,7 +785,7 @@ namespace Game.BattleGrounds
|
|||||||
{
|
{
|
||||||
Guild guild = Global.GuildMgr.GetGuildById(guildId);
|
Guild guild = Global.GuildMgr.GetGuildById(guildId);
|
||||||
if (guild)
|
if (guild)
|
||||||
guild.UpdateCriteria(CriteriaTypes.WinBg, player.GetMapId(), 0, 0, null, player);
|
guild.UpdateCriteria(CriteriaType.WinBattleground, player.GetMapId(), 0, 0, null, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -802,7 +802,7 @@ namespace Game.BattleGrounds
|
|||||||
|
|
||||||
player.SendPacket(pvpMatchComplete);
|
player.SendPacket(pvpMatchComplete);
|
||||||
|
|
||||||
player.UpdateCriteria(CriteriaTypes.CompleteBattleground, player.GetMapId());
|
player.UpdateCriteria(CriteriaType.ParticipateInBattleground, player.GetMapId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -683,10 +683,10 @@ namespace Game.BattleGrounds.Zones
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case ScoreType.BasesAssaulted:
|
case ScoreType.BasesAssaulted:
|
||||||
player.UpdateCriteria(CriteriaTypes.BgObjectiveCapture, (uint)ABObjectives.AssaultBase);
|
player.UpdateCriteria(CriteriaType.TrackedWorldStateUIModified, (uint)ABObjectives.AssaultBase);
|
||||||
break;
|
break;
|
||||||
case ScoreType.BasesDefended:
|
case ScoreType.BasesDefended:
|
||||||
player.UpdateCriteria(CriteriaTypes.BgObjectiveCapture, (uint)ABObjectives.DefendBase);
|
player.UpdateCriteria(CriteriaType.TrackedWorldStateUIModified, (uint)ABObjectives.DefendBase);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -839,7 +839,7 @@ namespace Game.BattleGrounds.Zones
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case ScoreType.FlagCaptures:
|
case ScoreType.FlagCaptures:
|
||||||
player.UpdateCriteria(CriteriaTypes.BgObjectiveCapture, EotSMisc.ObjectiveCaptureFlag);
|
player.UpdateCriteria(CriteriaType.TrackedWorldStateUIModified, EotSMisc.ObjectiveCaptureFlag);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -927,7 +927,7 @@ namespace Game.BattleGrounds.Zones
|
|||||||
Player player = Global.ObjAccessor.FindPlayer(pair.Key);
|
Player player = Global.ObjAccessor.FindPlayer(pair.Key);
|
||||||
if (player)
|
if (player)
|
||||||
if (player.GetTeamId() == Attackers)
|
if (player.GetTeamId() == Attackers)
|
||||||
player.UpdateCriteria(CriteriaTypes.BeSpellTarget, 65246);
|
player.UpdateCriteria(CriteriaType.BeSpellTarget, 65246);
|
||||||
}
|
}
|
||||||
|
|
||||||
Attackers = (Attackers == TeamId.Alliance) ? TeamId.Horde : TeamId.Alliance;
|
Attackers = (Attackers == TeamId.Alliance) ? TeamId.Horde : TeamId.Alliance;
|
||||||
@@ -959,7 +959,7 @@ namespace Game.BattleGrounds.Zones
|
|||||||
Player player = Global.ObjAccessor.FindPlayer(pair.Key);
|
Player player = Global.ObjAccessor.FindPlayer(pair.Key);
|
||||||
if (player)
|
if (player)
|
||||||
if (player.GetTeamId() == Attackers && RoundScores[1].winner == Attackers)
|
if (player.GetTeamId() == Attackers && RoundScores[1].winner == Attackers)
|
||||||
player.UpdateCriteria(CriteriaTypes.BeSpellTarget, 65246);
|
player.UpdateCriteria(CriteriaType.BeSpellTarget, 65246);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RoundScores[0].time == RoundScores[1].time)
|
if (RoundScores[0].time == RoundScores[1].time)
|
||||||
@@ -1096,10 +1096,10 @@ namespace Game.BattleGrounds.Zones
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case ScoreType.DestroyedDemolisher:
|
case ScoreType.DestroyedDemolisher:
|
||||||
player.UpdateCriteria(CriteriaTypes.BgObjectiveCapture, (uint)SAObjectives.DemolishersDestroyed);
|
player.UpdateCriteria(CriteriaType.TrackedWorldStateUIModified, (uint)SAObjectives.DemolishersDestroyed);
|
||||||
break;
|
break;
|
||||||
case ScoreType.DestroyedWall:
|
case ScoreType.DestroyedWall:
|
||||||
player.UpdateCriteria(CriteriaTypes.BgObjectiveCapture, (uint)SAObjectives.GatesDestroyed);
|
player.UpdateCriteria(CriteriaType.TrackedWorldStateUIModified, (uint)SAObjectives.GatesDestroyed);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -762,10 +762,10 @@ namespace Game.BattleGrounds.Zones
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case ScoreType.FlagCaptures: // flags captured
|
case ScoreType.FlagCaptures: // flags captured
|
||||||
player.UpdateCriteria(CriteriaTypes.BgObjectiveCapture, WSObjectives.CaptureFlag);
|
player.UpdateCriteria(CriteriaType.TrackedWorldStateUIModified, WSObjectives.CaptureFlag);
|
||||||
break;
|
break;
|
||||||
case ScoreType.FlagReturns: // flags returned
|
case ScoreType.FlagReturns: // flags returned
|
||||||
player.UpdateCriteria(CriteriaTypes.BgObjectiveCapture, WSObjectives.ReturnFlag);
|
player.UpdateCriteria(CriteriaType.TrackedWorldStateUIModified, WSObjectives.ReturnFlag);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ namespace Game.BattlePets
|
|||||||
updates.Add(pet);
|
updates.Add(pet);
|
||||||
SendUpdates(updates, true);
|
SendUpdates(updates, true);
|
||||||
|
|
||||||
_owner.GetPlayer().UpdateCriteria(CriteriaTypes.OwnBattlePet, species);
|
_owner.GetPlayer().UpdateCriteria(CriteriaType.LearnedNewPet, species);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemovePet(ObjectGuid guid)
|
public void RemovePet(ObjectGuid guid)
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ namespace Game.Chat
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
target.ResetHonorStats();
|
target.ResetHonorStats();
|
||||||
target.UpdateCriteria(CriteriaTypes.EarnHonorableKill);
|
target.UpdateCriteria(CriteriaType.HonorableKills);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -480,7 +480,7 @@ namespace Game.DataStorage
|
|||||||
public sealed class CriteriaRecord
|
public sealed class CriteriaRecord
|
||||||
{
|
{
|
||||||
public uint Id;
|
public uint Id;
|
||||||
public CriteriaTypes Type;
|
public CriteriaType Type;
|
||||||
public uint Asset;
|
public uint Asset;
|
||||||
public uint ModifierTreeId;
|
public uint ModifierTreeId;
|
||||||
public byte StartEvent;
|
public byte StartEvent;
|
||||||
|
|||||||
@@ -1342,7 +1342,7 @@ namespace Game.DungeonFinding
|
|||||||
|
|
||||||
// Update achievements
|
// Update achievements
|
||||||
if (dungeon.difficulty == Difficulty.Heroic)
|
if (dungeon.difficulty == Difficulty.Heroic)
|
||||||
player.UpdateCriteria(CriteriaTypes.UseLfdToGroupWithPlayers, 1);
|
player.UpdateCriteria(CriteriaType.CompletedLFGDungeonWithStrangers, 1);
|
||||||
|
|
||||||
LfgReward reward = GetRandomDungeonReward(rDungeonId, player.GetLevel());
|
LfgReward reward = GetRandomDungeonReward(rDungeonId, player.GetLevel());
|
||||||
if (reward == null)
|
if (reward == null)
|
||||||
|
|||||||
@@ -1921,7 +1921,7 @@ namespace Game.Entities
|
|||||||
Player player = user.ToPlayer();
|
Player player = user.ToPlayer();
|
||||||
|
|
||||||
player.SendLoot(GetGUID(), LootType.Fishinghole);
|
player.SendLoot(GetGUID(), LootType.Fishinghole);
|
||||||
player.UpdateCriteria(CriteriaTypes.FishInGameobject, GetGoInfo().entry);
|
player.UpdateCriteria(CriteriaType.CatchFishInFishingHole, GetGoInfo().entry);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.Xp), currentXP);
|
SetUpdateFieldValue(m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.Xp), currentXP);
|
||||||
|
|
||||||
owner.UpdateCriteria(CriteriaTypes.HeartOfAzerothArtifactPowerEarned, xp);
|
owner.UpdateCriteria(CriteriaType.EarnArtifactXPForAzeriteItem, xp);
|
||||||
|
|
||||||
// changing azerite level changes item level, need to update stats
|
// changing azerite level changes item level, need to update stats
|
||||||
if (m_azeriteItemData.Level != level)
|
if (m_azeriteItemData.Level != level)
|
||||||
@@ -284,7 +284,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.Level), level);
|
SetUpdateFieldValue(m_values.ModifyValue(m_azeriteItemData).ModifyValue(m_azeriteItemData.Level), level);
|
||||||
UnlockDefaultMilestones();
|
UnlockDefaultMilestones();
|
||||||
owner.UpdateCriteria(CriteriaTypes.HeartOfAzerothLevelReached, level);
|
owner.UpdateCriteria(CriteriaType.AzeriteLevelReached, level);
|
||||||
|
|
||||||
if (IsEquipped())
|
if (IsEquipped())
|
||||||
owner._ApplyItemBonuses(this, GetSlot(), true);
|
owner._ApplyItemBonuses(this, GetSlot(), true);
|
||||||
|
|||||||
@@ -728,13 +728,13 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
int transmogSlot = Item.ItemTransmogrificationSlots[(int)item.inventoryType];
|
int transmogSlot = Item.ItemTransmogrificationSlots[(int)item.inventoryType];
|
||||||
if (transmogSlot >= 0)
|
if (transmogSlot >= 0)
|
||||||
_owner.GetPlayer().UpdateCriteria(CriteriaTypes.AppearanceUnlockedBySlot, (ulong)transmogSlot, itemModifiedAppearance.Id);
|
_owner.GetPlayer().UpdateCriteria(CriteriaType.LearnAnyTransmogInSlot, (ulong)transmogSlot, itemModifiedAppearance.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
var sets = Global.DB2Mgr.GetTransmogSetsForItemModifiedAppearance(itemModifiedAppearance.Id);
|
var sets = Global.DB2Mgr.GetTransmogSetsForItemModifiedAppearance(itemModifiedAppearance.Id);
|
||||||
foreach (TransmogSetRecord set in sets)
|
foreach (TransmogSetRecord set in sets)
|
||||||
if (IsSetCompleted(set.Id))
|
if (IsSetCompleted(set.Id))
|
||||||
_owner.GetPlayer().UpdateCriteria(CriteriaTypes.TransmogSetUnlocked, set.TransmogSetGroupID);
|
_owner.GetPlayer().UpdateCriteria(CriteriaType.CollectTransmogSetFromGroup, set.TransmogSetGroupID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddTemporaryAppearance(ObjectGuid itemGuid, ItemModifiedAppearanceRecord itemModifiedAppearance)
|
void AddTemporaryAppearance(ObjectGuid itemGuid, ItemModifiedAppearanceRecord itemModifiedAppearance)
|
||||||
|
|||||||
@@ -99,11 +99,11 @@ namespace Game.Entities
|
|||||||
uint guildId = victim.GetMap().GetOwnerGuildId();
|
uint guildId = victim.GetMap().GetOwnerGuildId();
|
||||||
var guild = Global.GuildMgr.GetGuildById(guildId);
|
var guild = Global.GuildMgr.GetGuildById(guildId);
|
||||||
if (guild != null)
|
if (guild != null)
|
||||||
guild.UpdateCriteria(CriteriaTypes.KillCreature, victim.GetEntry(), 1, 0, victim, _killer);
|
guild.UpdateCriteria(CriteriaType.KillCreature, victim.GetEntry(), 1, 0, victim, _killer);
|
||||||
|
|
||||||
Scenario scenario = victim.GetScenario();
|
Scenario scenario = victim.GetScenario();
|
||||||
if (scenario != null)
|
if (scenario != null)
|
||||||
scenario.UpdateCriteria(CriteriaTypes.KillCreature, victim.GetEntry(), 1, 0, victim, _killer);
|
scenario.UpdateCriteria(CriteriaType.KillCreature, victim.GetEntry(), 1, 0, victim, _killer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,7 +208,7 @@ namespace Game.Entities
|
|||||||
if (target != null)
|
if (target != null)
|
||||||
{
|
{
|
||||||
player.KilledMonster(target.GetCreatureTemplate(), target.GetGUID());
|
player.KilledMonster(target.GetCreatureTemplate(), target.GetGUID());
|
||||||
player.UpdateCriteria(CriteriaTypes.KillCreatureType, (ulong)target.GetCreatureType(), 1, 0, target);
|
player.UpdateCriteria(CriteriaType.KillAnyCreature, (ulong)target.GetCreatureType(), 1, 0, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -271,7 +271,7 @@ namespace Game.Entities
|
|||||||
if (_killer == member || member.IsAtGroupRewardDistance(_victim))
|
if (_killer == member || member.IsAtGroupRewardDistance(_victim))
|
||||||
{
|
{
|
||||||
_RewardPlayer(member, isDungeon);
|
_RewardPlayer(member, isDungeon);
|
||||||
member.UpdateCriteria(CriteriaTypes.SpecialPvpKill, 1, 0, 0, _victim);
|
member.UpdateCriteria(CriteriaType.KillPlayer, 1, 0, 0, _victim);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace Game.Entities
|
|||||||
m_questObjectiveCriteriaMgr.ResetCriteria(failEvent, failAsset, evenIfCriteriaComplete);
|
m_questObjectiveCriteriaMgr.ResetCriteria(failEvent, failAsset, evenIfCriteriaComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateCriteria(CriteriaTypes type, ulong miscValue1 = 0, ulong miscValue2 = 0, ulong miscValue3 = 0, WorldObject refe = null)
|
public void UpdateCriteria(CriteriaType type, ulong miscValue1 = 0, ulong miscValue2 = 0, ulong miscValue3 = 0, WorldObject refe = null)
|
||||||
{
|
{
|
||||||
m_achievementSys.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, refe, this);
|
m_achievementSys.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, refe, this);
|
||||||
m_questObjectiveCriteriaMgr.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, refe, this);
|
m_questObjectiveCriteriaMgr.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, refe, this);
|
||||||
|
|||||||
@@ -491,8 +491,8 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DuelCompleteType.Won:
|
case DuelCompleteType.Won:
|
||||||
UpdateCriteria(CriteriaTypes.LoseDuel, 1);
|
UpdateCriteria(CriteriaType.LoseDuel, 1);
|
||||||
duel.opponent.UpdateCriteria(CriteriaTypes.WinDuel, 1);
|
duel.opponent.UpdateCriteria(CriteriaType.WinDuel, 1);
|
||||||
|
|
||||||
// Credit for quest Death's Challenge
|
// Credit for quest Death's Challenge
|
||||||
if (GetClass() == Class.Deathknight && duel.opponent.GetQuestStatus(12733) == QuestStatus.Incomplete)
|
if (GetClass() == Class.Deathknight && duel.opponent.GetQuestStatus(12733) == QuestStatus.Incomplete)
|
||||||
|
|||||||
@@ -1268,8 +1268,8 @@ namespace Game.Entities
|
|||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
ItemAddedQuestCheck(itemId, count);
|
ItemAddedQuestCheck(itemId, count);
|
||||||
UpdateCriteria(CriteriaTypes.ObtainAnyItem, itemId, count);
|
UpdateCriteria(CriteriaType.ObtainAnyItem, itemId, count);
|
||||||
UpdateCriteria(CriteriaTypes.OwnItem, itemId, 1);
|
UpdateCriteria(CriteriaType.AcquireItem, itemId, 1);
|
||||||
|
|
||||||
item.AddItemFlag(ItemFieldFlags.NewItem);
|
item.AddItemFlag(ItemFieldFlags.NewItem);
|
||||||
|
|
||||||
@@ -1539,7 +1539,7 @@ namespace Game.Entities
|
|||||||
if (pItem != null)
|
if (pItem != null)
|
||||||
{
|
{
|
||||||
ItemAddedQuestCheck(item, 1);
|
ItemAddedQuestCheck(item, 1);
|
||||||
UpdateCriteria(CriteriaTypes.ObtainAnyItem, item, 1);
|
UpdateCriteria(CriteriaType.ObtainAnyItem, item, 1);
|
||||||
return EquipItem(pos, pItem, update);
|
return EquipItem(pos, pItem, update);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1647,8 +1647,8 @@ namespace Game.Entities
|
|||||||
CheckTitanGripPenalty();
|
CheckTitanGripPenalty();
|
||||||
|
|
||||||
// only for full equip instead adding to stack
|
// only for full equip instead adding to stack
|
||||||
UpdateCriteria(CriteriaTypes.EquipItem, pItem.GetEntry());
|
UpdateCriteria(CriteriaType.EquipItem, pItem.GetEntry());
|
||||||
UpdateCriteria(CriteriaTypes.EquipItemInSlot, slot, pItem.GetEntry());
|
UpdateCriteria(CriteriaType.EquipItemInSlot, slot, pItem.GetEntry());
|
||||||
|
|
||||||
UpdateAverageItemLevelEquipped();
|
UpdateAverageItemLevelEquipped();
|
||||||
|
|
||||||
@@ -1775,8 +1775,8 @@ namespace Game.Entities
|
|||||||
if (slot == EquipmentSlot.MainHand || slot == EquipmentSlot.OffHand)
|
if (slot == EquipmentSlot.MainHand || slot == EquipmentSlot.OffHand)
|
||||||
CheckTitanGripPenalty();
|
CheckTitanGripPenalty();
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.EquipItem, pItem.GetEntry());
|
UpdateCriteria(CriteriaType.EquipItem, pItem.GetEntry());
|
||||||
UpdateCriteria(CriteriaTypes.EquipItemInSlot, slot, pItem.GetEntry());
|
UpdateCriteria(CriteriaType.EquipItemInSlot, slot, pItem.GetEntry());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void SendEquipError(InventoryResult msg, Item item1 = null, Item item2 = null, uint itemId = 0)
|
public void SendEquipError(InventoryResult msg, Item item1 = null, Item item2 = null, uint itemId = 0)
|
||||||
@@ -3423,7 +3423,7 @@ namespace Game.Entities
|
|||||||
guild.AddGuildNews(GuildNews.ItemPurchased, GetGUID(), 0, item);
|
guild.AddGuildNews(GuildNews.ItemPurchased, GetGUID(), 0, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.BoughtItemFromVendor, 1);
|
UpdateCriteria(CriteriaType.BuyItemsFromVendors, 1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4238,7 +4238,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
// update quest counters
|
// update quest counters
|
||||||
ItemAddedQuestCheck(pItem.GetEntry(), pItem.GetCount());
|
ItemAddedQuestCheck(pItem.GetEntry(), pItem.GetCount());
|
||||||
UpdateCriteria(CriteriaTypes.ObtainAnyItem, pItem.GetEntry(), pItem.GetCount());
|
UpdateCriteria(CriteriaType.ObtainAnyItem, pItem.GetEntry(), pItem.GetCount());
|
||||||
|
|
||||||
// store item
|
// store item
|
||||||
Item pLastItem = StoreItem(dest, pItem, update);
|
Item pLastItem = StoreItem(dest, pItem, update);
|
||||||
@@ -5941,9 +5941,9 @@ namespace Game.Entities
|
|||||||
if (aeResult == null)
|
if (aeResult == null)
|
||||||
{
|
{
|
||||||
SendNewItem(newitem, item.count, false, false, true);
|
SendNewItem(newitem, item.count, false, false, true);
|
||||||
UpdateCriteria(CriteriaTypes.LootItem, item.itemid, item.count);
|
UpdateCriteria(CriteriaType.LootItem, item.itemid, item.count);
|
||||||
UpdateCriteria(CriteriaTypes.LootType, item.itemid, item.count, (ulong)loot.loot_type);
|
UpdateCriteria(CriteriaType.GetLootByType, item.itemid, item.count, (ulong)loot.loot_type);
|
||||||
UpdateCriteria(CriteriaTypes.LootAnyItem, item.itemid, item.count);
|
UpdateCriteria(CriteriaType.LootAnyItem, item.itemid, item.count);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
aeResult.Add(newitem, item.count, loot.loot_type);
|
aeResult.Add(newitem, item.count, loot.loot_type);
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
PushQuests();
|
PushQuests();
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.TravelledToArea, newArea);
|
UpdateCriteria(CriteriaType.EnterTopLevelArea, newArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateZone(uint newZone, uint newArea)
|
public void UpdateZone(uint newZone, uint newArea)
|
||||||
|
|||||||
@@ -139,11 +139,11 @@ namespace Game.Entities
|
|||||||
ApplyModUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.TodayHonorableKills), (ushort)1, true);
|
ApplyModUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.TodayHonorableKills), (ushort)1, true);
|
||||||
// and those in a lifetime
|
// and those in a lifetime
|
||||||
ApplyModUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.LifetimeHonorableKills), 1u, true);
|
ApplyModUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.LifetimeHonorableKills), 1u, true);
|
||||||
UpdateCriteria(CriteriaTypes.EarnHonorableKill);
|
UpdateCriteria(CriteriaType.HonorableKills);
|
||||||
UpdateCriteria(CriteriaTypes.HkClass, (uint)victim.GetClass());
|
UpdateCriteria(CriteriaType.DeliverKillingBlowToClass, (uint)victim.GetClass());
|
||||||
UpdateCriteria(CriteriaTypes.HkRace, (uint)victim.GetRace());
|
UpdateCriteria(CriteriaType.DeliverKillingBlowToRace, (uint)victim.GetRace());
|
||||||
UpdateCriteria(CriteriaTypes.HonorableKillAtArea, GetAreaId());
|
UpdateCriteria(CriteriaType.PVPKillInArea, GetAreaId());
|
||||||
UpdateCriteria(CriteriaTypes.HonorableKill, 1, 0, 0, victim);
|
UpdateCriteria(CriteriaType.EarnHonorableKill, 1, 0, 0, victim);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -290,7 +290,7 @@ namespace Game.Entities
|
|||||||
SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.HonorLevel), level);
|
SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.HonorLevel), level);
|
||||||
UpdateHonorNextLevel();
|
UpdateHonorNextLevel();
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.HonorLevelReached);
|
UpdateCriteria(CriteriaType.HonorLevelIncrease);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateHonorNextLevel()
|
void UpdateHonorNextLevel()
|
||||||
|
|||||||
@@ -1056,7 +1056,7 @@ namespace Game.Entities
|
|||||||
ModifyMoney(moneyRew);
|
ModifyMoney(moneyRew);
|
||||||
|
|
||||||
if (moneyRew > 0)
|
if (moneyRew > 0)
|
||||||
UpdateCriteria(CriteriaTypes.MoneyFromQuestReward, (uint)(moneyRew));
|
UpdateCriteria(CriteriaType.MoneyEarnedFromQuesting, (uint)moneyRew);
|
||||||
}
|
}
|
||||||
|
|
||||||
// honor reward
|
// honor reward
|
||||||
@@ -1091,8 +1091,8 @@ namespace Game.Entities
|
|||||||
SetDailyQuestStatus(questId);
|
SetDailyQuestStatus(questId);
|
||||||
if (quest.IsDaily())
|
if (quest.IsDaily())
|
||||||
{
|
{
|
||||||
UpdateCriteria(CriteriaTypes.CompleteDailyQuest, questId);
|
UpdateCriteria(CriteriaType.CompleteDailyQuest, questId);
|
||||||
UpdateCriteria(CriteriaTypes.CompleteDailyQuestDaily, questId);
|
UpdateCriteria(CriteriaType.CompleteAnyDailyQuestPerDay, questId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (quest.IsWeekly())
|
else if (quest.IsWeekly())
|
||||||
@@ -1147,11 +1147,11 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (quest.QuestSortID > 0)
|
if (quest.QuestSortID > 0)
|
||||||
UpdateCriteria(CriteriaTypes.CompleteQuestsInZone, quest.Id);
|
UpdateCriteria(CriteriaType.CompleteQuestsInZone, quest.Id);
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.CompleteQuestCount);
|
UpdateCriteria(CriteriaType.CompleteQuestsCount);
|
||||||
UpdateCriteria(CriteriaTypes.CompleteQuest, quest.Id);
|
UpdateCriteria(CriteriaType.CompleteQuest, quest.Id);
|
||||||
UpdateCriteria(CriteriaTypes.CompleteQuestAccumulate, 1);
|
UpdateCriteria(CriteriaType.CompleteAnyReplayQuest, 1);
|
||||||
|
|
||||||
// make full db save
|
// make full db save
|
||||||
SaveToDB(false);
|
SaveToDB(false);
|
||||||
@@ -2232,7 +2232,7 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
|
|
||||||
StartCriteriaTimer(CriteriaStartEvent.KillNPC, real_entry); // MUST BE CALLED FIRST
|
StartCriteriaTimer(CriteriaStartEvent.KillNPC, real_entry); // MUST BE CALLED FIRST
|
||||||
UpdateCriteria(CriteriaTypes.KillCreature, real_entry, addKillCount, 0, killed);
|
UpdateCriteria(CriteriaType.KillCreature, real_entry, addKillCount, 0, killed);
|
||||||
|
|
||||||
UpdateQuestObjectiveProgress(QuestObjectiveType.Monster, (int)entry, 1, guid);
|
UpdateQuestObjectiveProgress(QuestObjectiveType.Monster, (int)entry, 1, guid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -436,7 +436,7 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
|
|
||||||
UpdateSkillEnchantments(skillId, value, new_value);
|
UpdateSkillEnchantments(skillId, value, new_value);
|
||||||
UpdateCriteria(CriteriaTypes.ReachSkillLevel, skillId);
|
UpdateCriteria(CriteriaType.SkillRaised, skillId);
|
||||||
Log.outDebug(LogFilter.Player, "Player:UpdateSkillPro Chance={0:F3}% taken", chance / 10.0f);
|
Log.outDebug(LogFilter.Player, "Player:UpdateSkillPro Chance={0:F3}% taken", chance / 10.0f);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -1071,8 +1071,8 @@ namespace Game.Entities
|
|||||||
if (newVal > currVal)
|
if (newVal > currVal)
|
||||||
UpdateSkillEnchantments(id, currVal, (ushort)newVal);
|
UpdateSkillEnchantments(id, currVal, (ushort)newVal);
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.ReachSkillLevel, id);
|
UpdateCriteria(CriteriaType.SkillRaised, id);
|
||||||
UpdateCriteria(CriteriaTypes.LearnSkillLevel, id);
|
UpdateCriteria(CriteriaType.AchieveSkillStep, id);
|
||||||
|
|
||||||
// update skill state
|
// update skill state
|
||||||
if (skillStatusData.State == SkillState.Unchanged)
|
if (skillStatusData.State == SkillState.Unchanged)
|
||||||
@@ -1202,8 +1202,8 @@ namespace Game.Entities
|
|||||||
|
|
||||||
if (newVal != 0)
|
if (newVal != 0)
|
||||||
{
|
{
|
||||||
UpdateCriteria(CriteriaTypes.ReachSkillLevel, id);
|
UpdateCriteria(CriteriaType.SkillRaised, id);
|
||||||
UpdateCriteria(CriteriaTypes.LearnSkillLevel, id);
|
UpdateCriteria(CriteriaType.AchieveSkillStep, id);
|
||||||
|
|
||||||
// temporary bonuses
|
// temporary bonuses
|
||||||
foreach (var auraEffect in GetAuraEffectsByType(AuraType.ModSkill))
|
foreach (var auraEffect in GetAuraEffectsByType(AuraType.ModSkill))
|
||||||
@@ -2636,11 +2636,11 @@ namespace Game.Entities
|
|||||||
// not ranked skills
|
// not ranked skills
|
||||||
foreach (var _spell_idx in skill_bounds)
|
foreach (var _spell_idx in skill_bounds)
|
||||||
{
|
{
|
||||||
UpdateCriteria(CriteriaTypes.LearnSkillLine, _spell_idx.SkillLine);
|
UpdateCriteria(CriteriaType.LearnTradeskillSkillLine, _spell_idx.SkillLine);
|
||||||
UpdateCriteria(CriteriaTypes.LearnSkilllineSpells, _spell_idx.SkillLine);
|
UpdateCriteria(CriteriaType.LearnSpellFromSkillLine, _spell_idx.SkillLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.LearnSpell, spellId);
|
UpdateCriteria(CriteriaType.LearnOrKnowSpell, spellId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// needs to be when spell is already learned, to prevent infinite recursion crashes
|
// needs to be when spell is already learned, to prevent infinite recursion crashes
|
||||||
@@ -2653,7 +2653,7 @@ namespace Game.Entities
|
|||||||
if (entry.SummonSpellID == spellId && GetSession().GetBattlePetMgr().GetPetCount(entry.Id) == 0)
|
if (entry.SummonSpellID == spellId && GetSession().GetBattlePetMgr().GetPetCount(entry.Id) == 0)
|
||||||
{
|
{
|
||||||
GetSession().GetBattlePetMgr().AddPet(entry.Id, entry.CreatureID, BattlePetMgr.RollPetBreed(entry.Id), BattlePetMgr.GetDefaultPetQuality(entry.Id));
|
GetSession().GetBattlePetMgr().AddPet(entry.Id, entry.CreatureID, BattlePetMgr.RollPetBreed(entry.Id), BattlePetMgr.GetDefaultPetQuality(entry.Id));
|
||||||
UpdateCriteria(CriteriaTypes.OwnBattlePetCount);
|
UpdateCriteria(CriteriaType.UniquePetsOwned);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -535,8 +535,8 @@ namespace Game.Entities
|
|||||||
if (!noCost)
|
if (!noCost)
|
||||||
{
|
{
|
||||||
ModifyMoney(-cost);
|
ModifyMoney(-cost);
|
||||||
UpdateCriteria(CriteriaTypes.GoldSpentForTalents, cost);
|
UpdateCriteria(CriteriaType.MoneySpentOnRespecs, cost);
|
||||||
UpdateCriteria(CriteriaTypes.NumberOfTalentResets, 1);
|
UpdateCriteria(CriteriaType.TotalRespecs, 1);
|
||||||
|
|
||||||
SetTalentResetCost(cost);
|
SetTalentResetCost(cost);
|
||||||
SetTalentResetTime(GameTime.GetGameTime());
|
SetTalentResetTime(GameTime.GetGameTime());
|
||||||
|
|||||||
@@ -653,9 +653,9 @@ namespace Game.Entities
|
|||||||
|
|
||||||
InitializeSelfResurrectionSpells();
|
InitializeSelfResurrectionSpells();
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.DeathAtMap, 1);
|
UpdateCriteria(CriteriaType.DieOnMap, 1);
|
||||||
UpdateCriteria(CriteriaTypes.Death, 1);
|
UpdateCriteria(CriteriaType.DieAnywhere, 1);
|
||||||
UpdateCriteria(CriteriaTypes.DeathInDungeon, 1);
|
UpdateCriteria(CriteriaType.DieInInstance, 1);
|
||||||
|
|
||||||
// reset all death criterias
|
// reset all death criterias
|
||||||
ResetCriteria(CriteriaFailEvent.Death, 0);
|
ResetCriteria(CriteriaFailEvent.Death, 0);
|
||||||
@@ -1213,7 +1213,7 @@ namespace Game.Entities
|
|||||||
playerCurrency.TrackedQuantity = (uint)newTrackedCount;
|
playerCurrency.TrackedQuantity = (uint)newTrackedCount;
|
||||||
|
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
UpdateCriteria(CriteriaTypes.Currency, (uint)id, (uint)count);
|
UpdateCriteria(CriteriaType.CurrencyGained, (uint)id, (uint)count);
|
||||||
|
|
||||||
_currencyStorage[(uint)id] = playerCurrency;
|
_currencyStorage[(uint)id] = playerCurrency;
|
||||||
|
|
||||||
@@ -2036,7 +2036,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
// recheck alive, might have died of EnvironmentalDamage, avoid cases when player die in fact like Spirit of Redemption case
|
// recheck alive, might have died of EnvironmentalDamage, avoid cases when player die in fact like Spirit of Redemption case
|
||||||
if (IsAlive() && final_damage < original_health)
|
if (IsAlive() && final_damage < original_health)
|
||||||
UpdateCriteria(CriteriaTypes.FallWithoutDying, (uint)z_diff * 100);
|
UpdateCriteria(CriteriaType.MaxDistFallenWithoutDying, (uint)z_diff * 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Z given by moveinfo, LastZ, FallTime, WaterZ, MapZ, Damage, Safefall reduction
|
//Z given by moveinfo, LastZ, FallTime, WaterZ, MapZ, Damage, Safefall reduction
|
||||||
@@ -2134,7 +2134,7 @@ namespace Game.Entities
|
|||||||
|
|
||||||
m_summon_expire = 0;
|
m_summon_expire = 0;
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.AcceptedSummonings, 1);
|
UpdateCriteria(CriteriaType.AcceptSummon, 1);
|
||||||
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.Summon);
|
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.Summon);
|
||||||
|
|
||||||
m_summon_location.SetOrientation(GetOrientation());
|
m_summon_location.SetOrientation(GetOrientation());
|
||||||
@@ -3980,7 +3980,7 @@ namespace Game.Entities
|
|||||||
SendDurabilityLoss(this, 10);
|
SendDurabilityLoss(this, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.DeathsFrom, 1, (ulong)type);
|
UpdateCriteria(CriteriaType.DieFromEnviromentalDamage, 1, (ulong)type);
|
||||||
}
|
}
|
||||||
|
|
||||||
return final_damage;
|
return final_damage;
|
||||||
@@ -5106,7 +5106,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
MoneyChanged((uint)value);
|
MoneyChanged((uint)value);
|
||||||
SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.Coinage), value);
|
SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.Coinage), value);
|
||||||
UpdateCriteria(CriteriaTypes.HighestGoldValueOwned);
|
UpdateCriteria(CriteriaType.MostMoneyOwned);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Target
|
//Target
|
||||||
@@ -5258,8 +5258,8 @@ namespace Game.Entities
|
|||||||
DB.Characters.CommitTransaction(trans);
|
DB.Characters.CommitTransaction(trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.ReachLevel);
|
UpdateCriteria(CriteriaType.ReachLevel);
|
||||||
UpdateCriteria(CriteriaTypes.ActivelyReachLevel, level);
|
UpdateCriteria(CriteriaType.ActivelyReachLevel, level);
|
||||||
|
|
||||||
PushQuests();
|
PushQuests();
|
||||||
|
|
||||||
@@ -6173,7 +6173,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.ExploredZones, (int)offset), val);
|
SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.ExploredZones, (int)offset), val);
|
||||||
|
|
||||||
UpdateCriteria(CriteriaTypes.ExploreArea, GetAreaId());
|
UpdateCriteria(CriteriaType.RevealWorldMapOverlay, GetAreaId());
|
||||||
|
|
||||||
var areaLevels = Global.DB2Mgr.GetContentTuningData(areaEntry.ContentTuningID, m_playerData.CtrOptions.GetValue().ContentTuningConditionMask);
|
var areaLevels = Global.DB2Mgr.GetContentTuningData(areaEntry.ContentTuningID, m_playerData.CtrOptions.GetValue().ContentTuningConditionMask);
|
||||||
if (areaLevels.HasValue)
|
if (areaLevels.HasValue)
|
||||||
@@ -6845,21 +6845,21 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Checks and preparations done, DO FLIGHT
|
//Checks and preparations done, DO FLIGHT
|
||||||
UpdateCriteria(CriteriaTypes.FlightPathsTaken, 1);
|
UpdateCriteria(CriteriaType.BuyTaxi, 1);
|
||||||
|
|
||||||
if (WorldConfig.GetBoolValue(WorldCfg.InstantTaxi))
|
if (WorldConfig.GetBoolValue(WorldCfg.InstantTaxi))
|
||||||
{
|
{
|
||||||
var lastPathNode = CliDB.TaxiNodesStorage.LookupByKey(nodes[^1]);
|
var lastPathNode = CliDB.TaxiNodesStorage.LookupByKey(nodes[^1]);
|
||||||
m_taxi.ClearTaxiDestinations();
|
m_taxi.ClearTaxiDestinations();
|
||||||
ModifyMoney(-totalcost);
|
ModifyMoney(-totalcost);
|
||||||
UpdateCriteria(CriteriaTypes.GoldSpentForTravelling, totalcost);
|
UpdateCriteria(CriteriaType.MoneySpentOnTaxis, totalcost);
|
||||||
TeleportTo(lastPathNode.ContinentID, lastPathNode.Pos.X, lastPathNode.Pos.Y, lastPathNode.Pos.Z, GetOrientation());
|
TeleportTo(lastPathNode.ContinentID, lastPathNode.Pos.X, lastPathNode.Pos.Y, lastPathNode.Pos.Z, GetOrientation());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ModifyMoney(-firstcost);
|
ModifyMoney(-firstcost);
|
||||||
UpdateCriteria(CriteriaTypes.GoldSpentForTravelling, firstcost);
|
UpdateCriteria(CriteriaType.MoneySpentOnTaxis, firstcost);
|
||||||
GetSession().SendActivateTaxiReply();
|
GetSession().SendActivateTaxiReply();
|
||||||
GetSession().SendDoFlight(mount_display_id, sourcepath);
|
GetSession().SendDoFlight(mount_display_id, sourcepath);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -843,7 +843,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
Player killerPlayer = attacker.GetCharmerOrOwnerPlayerOrPlayerItself();
|
Player killerPlayer = attacker.GetCharmerOrOwnerPlayerOrPlayerItself();
|
||||||
if (killerPlayer != null)
|
if (killerPlayer != null)
|
||||||
killerPlayer.UpdateCriteria(CriteriaTypes.GetKillingBlows, 1, 0, 0, victim);
|
killerPlayer.UpdateCriteria(CriteriaType.DeliveredKillingBlow, 1, 0, 0, victim);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skipSettingDeathState)
|
if (!skipSettingDeathState)
|
||||||
@@ -983,9 +983,9 @@ namespace Game.Entities
|
|||||||
if (attacker != null && victim.IsPlayer())
|
if (attacker != null && victim.IsPlayer())
|
||||||
{
|
{
|
||||||
if (attacker.IsCreature())
|
if (attacker.IsCreature())
|
||||||
victim.ToPlayer().UpdateCriteria(CriteriaTypes.KilledByCreature, attacker.GetEntry());
|
victim.ToPlayer().UpdateCriteria(CriteriaType.KilledByCreature, attacker.GetEntry());
|
||||||
else if (attacker.IsPlayer() && victim != attacker)
|
else if (attacker.IsPlayer() && victim != attacker)
|
||||||
victim.ToPlayer().UpdateCriteria(CriteriaTypes.KilledByPlayer, 1, (ulong)attacker.ToPlayer().GetTeam());
|
victim.ToPlayer().UpdateCriteria(CriteriaType.KilledByPlayer, 1, (ulong)attacker.ToPlayer().GetTeam());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hook for OnPVPKill Event
|
// Hook for OnPVPKill Event
|
||||||
|
|||||||
@@ -1813,17 +1813,17 @@ namespace Game.Entities
|
|||||||
|
|
||||||
// use the actual gain, as the overheal shall not be counted, skip gain 0 (it ignored anyway in to criteria)
|
// use the actual gain, as the overheal shall not be counted, skip gain 0 (it ignored anyway in to criteria)
|
||||||
if (gain != 0)
|
if (gain != 0)
|
||||||
bgPlayer.UpdateCriteria(CriteriaTypes.HealingDone, (uint)gain, 0, 0, victim);
|
bgPlayer.UpdateCriteria(CriteriaType.HealingDone, (uint)gain, 0, 0, victim);
|
||||||
|
|
||||||
bgPlayer.UpdateCriteria(CriteriaTypes.HighestHealCasted, addhealth);
|
bgPlayer.UpdateCriteria(CriteriaType.HighestHealCast, addhealth);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = victim.ToPlayer();
|
Player player = victim.ToPlayer();
|
||||||
if (player != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
player.UpdateCriteria(CriteriaTypes.TotalHealingReceived, (uint)gain);
|
player.UpdateCriteria(CriteriaType.TotalHealReceived, (uint)gain);
|
||||||
player.UpdateCriteria(CriteriaTypes.HighestHealingReceived, addhealth);
|
player.UpdateCriteria(CriteriaType.HighestHealReceived, addhealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gain != 0)
|
if (gain != 0)
|
||||||
|
|||||||
@@ -2402,13 +2402,13 @@ namespace Game.Entities
|
|||||||
bg.UpdatePlayerScore(killer, ScoreType.DamageDone, damage);
|
bg.UpdatePlayerScore(killer, ScoreType.DamageDone, damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
killer.UpdateCriteria(CriteriaTypes.DamageDone, health > damage ? damage : health, 0, 0, victim);
|
killer.UpdateCriteria(CriteriaType.DamageDealt, health > damage ? damage : health, 0, 0, victim);
|
||||||
killer.UpdateCriteria(CriteriaTypes.HighestHitDealt, damage);
|
killer.UpdateCriteria(CriteriaType.HighestDamageDone, damage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (victim.IsPlayer())
|
if (victim.IsPlayer())
|
||||||
victim.ToPlayer().UpdateCriteria(CriteriaTypes.HighestHitReceived, damage);
|
victim.ToPlayer().UpdateCriteria(CriteriaType.HighestDamageTaken, damage);
|
||||||
|
|
||||||
if (attacker != null)
|
if (attacker != null)
|
||||||
damage = (uint)(damage / victim.GetHealthMultiplierForTarget(attacker));
|
damage = (uint)(damage / victim.GetHealthMultiplierForTarget(attacker));
|
||||||
@@ -2430,7 +2430,7 @@ namespace Game.Entities
|
|||||||
killed = true;
|
killed = true;
|
||||||
|
|
||||||
if (victim.IsPlayer() && victim != attacker)
|
if (victim.IsPlayer() && victim != attacker)
|
||||||
victim.ToPlayer().UpdateCriteria(CriteriaTypes.TotalDamageReceived, health);
|
victim.ToPlayer().UpdateCriteria(CriteriaType.TotalDamageTaken, health);
|
||||||
|
|
||||||
if (damagetype != DamageEffectType.NoDamage && damagetype != DamageEffectType.Self && victim.HasAuraType(AuraType.SchoolAbsorbOverkill))
|
if (damagetype != DamageEffectType.NoDamage && damagetype != DamageEffectType.Self && victim.HasAuraType(AuraType.SchoolAbsorbOverkill))
|
||||||
{
|
{
|
||||||
@@ -2499,7 +2499,7 @@ namespace Game.Entities
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (victim.IsTypeId(TypeId.Player))
|
if (victim.IsTypeId(TypeId.Player))
|
||||||
victim.ToPlayer().UpdateCriteria(CriteriaTypes.TotalDamageReceived, damage);
|
victim.ToPlayer().UpdateCriteria(CriteriaType.TotalDamageTaken, damage);
|
||||||
|
|
||||||
victim.ModifyHealth(-(int)damage);
|
victim.ModifyHealth(-(int)damage);
|
||||||
|
|
||||||
|
|||||||
@@ -397,7 +397,7 @@ namespace Game.Garrisons
|
|||||||
_owner.SendPacket(buildingRemoved);
|
_owner.SendPacket(buildingRemoved);
|
||||||
}
|
}
|
||||||
|
|
||||||
_owner.UpdateCriteria(CriteriaTypes.PlaceGarrisonBuilding, garrBuildingId);
|
_owner.UpdateCriteria(CriteriaType.PlaceGarrisonBuilding, garrBuildingId);
|
||||||
}
|
}
|
||||||
|
|
||||||
_owner.SendPacket(placeBuildingResult);
|
_owner.SendPacket(placeBuildingResult);
|
||||||
@@ -477,7 +477,7 @@ namespace Game.Garrisons
|
|||||||
buildingActivated.GarrPlotInstanceID = garrPlotInstanceId;
|
buildingActivated.GarrPlotInstanceID = garrPlotInstanceId;
|
||||||
_owner.SendPacket(buildingActivated);
|
_owner.SendPacket(buildingActivated);
|
||||||
|
|
||||||
_owner.UpdateCriteria(CriteriaTypes.UpgradeGarrisonBuilding, plot.BuildingInfo.PacketInfo.Value.GarrBuildingID);
|
_owner.UpdateCriteria(CriteriaType.ActivateAnyGarrisonBuilding, plot.BuildingInfo.PacketInfo.Value.GarrBuildingID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -514,7 +514,7 @@ namespace Game.Garrisons
|
|||||||
addFollowerResult.Follower = follower.PacketInfo;
|
addFollowerResult.Follower = follower.PacketInfo;
|
||||||
_owner.SendPacket(addFollowerResult);
|
_owner.SendPacket(addFollowerResult);
|
||||||
|
|
||||||
_owner.UpdateCriteria(CriteriaTypes.RecruitGarrisonFollower, follower.PacketInfo.DbID);
|
_owner.UpdateCriteria(CriteriaType.RecruitGarrisonFollower, follower.PacketInfo.DbID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Follower GetFollower(ulong dbId)
|
public Follower GetFollower(ulong dbId)
|
||||||
|
|||||||
@@ -1174,7 +1174,7 @@ namespace Game.Groups
|
|||||||
|
|
||||||
if (player && player.GetSession())
|
if (player && player.GetSession())
|
||||||
{
|
{
|
||||||
player.UpdateCriteria(CriteriaTypes.RollNeedOnLoot, roll.itemid, maxresul);
|
player.UpdateCriteria(CriteriaType.RollNeed, roll.itemid, maxresul);
|
||||||
|
|
||||||
List<ItemPosCount> dest = new();
|
List<ItemPosCount> dest = new();
|
||||||
LootItem item = (roll.itemSlot >= roll.GetLoot().items.Count ? roll.GetLoot().quest_items[roll.itemSlot - roll.GetLoot().items.Count] : roll.GetLoot().items[roll.itemSlot]);
|
LootItem item = (roll.itemSlot >= roll.GetLoot().items.Count ? roll.GetLoot().quest_items[roll.itemSlot - roll.GetLoot().items.Count] : roll.GetLoot().items[roll.itemSlot]);
|
||||||
@@ -1237,7 +1237,7 @@ namespace Game.Groups
|
|||||||
|
|
||||||
if (player && player.GetSession() != null)
|
if (player && player.GetSession() != null)
|
||||||
{
|
{
|
||||||
player.UpdateCriteria(CriteriaTypes.RollGreedOnLoot, roll.itemid, maxresul);
|
player.UpdateCriteria(CriteriaType.RollGreed, roll.itemid, maxresul);
|
||||||
|
|
||||||
LootItem item = roll.itemSlot >= roll.GetLoot().items.Count ? roll.GetLoot().quest_items[roll.itemSlot - roll.GetLoot().items.Count] : roll.GetLoot().items[roll.itemSlot];
|
LootItem item = roll.itemSlot >= roll.GetLoot().items.Count ? roll.GetLoot().quest_items[roll.itemSlot - roll.GetLoot().items.Count] : roll.GetLoot().items[roll.itemSlot];
|
||||||
|
|
||||||
@@ -1264,7 +1264,7 @@ namespace Game.Groups
|
|||||||
item.is_looted = true;
|
item.is_looted = true;
|
||||||
roll.GetLoot().NotifyItemRemoved(roll.itemSlot);
|
roll.GetLoot().NotifyItemRemoved(roll.itemSlot);
|
||||||
roll.GetLoot().unlootedCount--;
|
roll.GetLoot().unlootedCount--;
|
||||||
player.UpdateCriteria(CriteriaTypes.CastSpell, 13262); // Disenchant
|
player.UpdateCriteria(CriteriaType.CastSpell, 13262); // Disenchant
|
||||||
|
|
||||||
ItemDisenchantLootRecord disenchant = roll.GetItemDisenchantLoot(player);
|
ItemDisenchantLootRecord disenchant = roll.GetItemDisenchantLoot(player);
|
||||||
|
|
||||||
|
|||||||
@@ -2331,7 +2331,7 @@ namespace Game.Guilds
|
|||||||
return m_achievementSys.HasAchieved(achievementId);
|
return m_achievementSys.HasAchieved(achievementId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateCriteria(CriteriaTypes type, ulong miscValue1, ulong miscValue2, ulong miscValue3, WorldObject refe, Player player)
|
public void UpdateCriteria(CriteriaType type, ulong miscValue1, ulong miscValue2, ulong miscValue3, WorldObject refe, Player player)
|
||||||
{
|
{
|
||||||
m_achievementSys.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, refe, player);
|
m_achievementSys.UpdateCriteria(type, miscValue1, miscValue2, miscValue3, refe, player);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ namespace Game
|
|||||||
{
|
{
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.WonAuctions, 1);
|
GetPlayer().UpdateCriteria(CriteriaType.AuctionsWon, 1);
|
||||||
SendAuctionCommandResult(0, AuctionCommand.PlaceBid, AuctionResult.Ok, throttle.DelayUntilNext);
|
SendAuctionCommandResult(0, AuctionCommand.PlaceBid, AuctionResult.Ok, throttle.DelayUntilNext);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -435,7 +435,7 @@ namespace Game
|
|||||||
{
|
{
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.HighestAuctionBid, placeBid.BidAmount);
|
GetPlayer().UpdateCriteria(CriteriaType.HighestAuctionBid, placeBid.BidAmount);
|
||||||
SendAuctionCommandResult(placeBid.AuctionID, AuctionCommand.PlaceBid, AuctionResult.Ok, throttle.DelayUntilNext);
|
SendAuctionCommandResult(placeBid.AuctionID, AuctionCommand.PlaceBid, AuctionResult.Ok, throttle.DelayUntilNext);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -740,7 +740,7 @@ namespace Game
|
|||||||
{
|
{
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.CreateAuction, 1);
|
GetPlayer().UpdateCriteria(CriteriaType.ItemsPostedAtAuction, 1);
|
||||||
SendAuctionCommandResult(auctionId, AuctionCommand.SellItem, AuctionResult.Ok, throttle.DelayUntilNext);
|
SendAuctionCommandResult(auctionId, AuctionCommand.SellItem, AuctionResult.Ok, throttle.DelayUntilNext);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -886,7 +886,7 @@ namespace Game
|
|||||||
{
|
{
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.CreateAuction, 1);
|
GetPlayer().UpdateCriteria(CriteriaType.ItemsPostedAtAuction, 1);
|
||||||
SendAuctionCommandResult(auctionId, AuctionCommand.SellItem, AuctionResult.Ok, throttle.DelayUntilNext);
|
SendAuctionCommandResult(auctionId, AuctionCommand.SellItem, AuctionResult.Ok, throttle.DelayUntilNext);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ namespace Game
|
|||||||
|
|
||||||
GetPlayer().SetBankBagSlotCount((byte)slot);
|
GetPlayer().SetBankBagSlotCount((byte)slot);
|
||||||
GetPlayer().ModifyMoney(-price);
|
GetPlayer().ModifyMoney(-price);
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.BuyBankSlot);
|
GetPlayer().UpdateCriteria(CriteriaType.BankSlotsPurchased);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendShowBank(ObjectGuid guid)
|
public void SendShowBank(ObjectGuid guid)
|
||||||
|
|||||||
@@ -1033,6 +1033,9 @@ namespace Game
|
|||||||
|
|
||||||
m_playerLoading.Clear();
|
m_playerLoading.Clear();
|
||||||
|
|
||||||
|
// Handle Login-Achievements (should be handled after loading)
|
||||||
|
_player.UpdateCriteria(CriteriaType.Login, 1);
|
||||||
|
|
||||||
Global.ScriptMgr.OnPlayerLogin(pCurrChar);
|
Global.ScriptMgr.OnPlayerLogin(pCurrChar);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1357,7 +1360,7 @@ namespace Game
|
|||||||
SendPacket(new BarberShopResult(BarberShopResult.ResultEnum.Success));
|
SendPacket(new BarberShopResult(BarberShopResult.ResultEnum.Success));
|
||||||
|
|
||||||
_player.ModifyMoney(-cost);
|
_player.ModifyMoney(-cost);
|
||||||
_player.UpdateCriteria(CriteriaTypes.GoldSpentAtBarber, (ulong)cost);
|
_player.UpdateCriteria(CriteriaType.MoneySpentAtBarberShop, (ulong)cost);
|
||||||
|
|
||||||
if (_player.GetNativeSex() != (Gender)packet.NewSex)
|
if (_player.GetNativeSex() != (Gender)packet.NewSex)
|
||||||
{
|
{
|
||||||
@@ -1368,7 +1371,7 @@ namespace Game
|
|||||||
|
|
||||||
_player.SetCustomizations(packet.Customizations);
|
_player.SetCustomizations(packet.Customizations);
|
||||||
|
|
||||||
_player.UpdateCriteria(CriteriaTypes.VisitBarberShop, 1);
|
_player.UpdateCriteria(CriteriaType.GotHaircut, 1);
|
||||||
|
|
||||||
_player.SetStandState(UnitStandStateType.Stand);
|
_player.SetStandState(UnitStandStateType.Stand);
|
||||||
|
|
||||||
|
|||||||
@@ -593,7 +593,7 @@ namespace Game
|
|||||||
|
|
||||||
Unit unit = Global.ObjAccessor.GetUnit(GetPlayer(), packet.Target);
|
Unit unit = Global.ObjAccessor.GetUnit(GetPlayer(), packet.Target);
|
||||||
|
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.DoEmote, (uint)packet.EmoteID, 0, 0, unit);
|
GetPlayer().UpdateCriteria(CriteriaType.DoEmote, (uint)packet.EmoteID, 0, 0, unit);
|
||||||
|
|
||||||
// Send scripted event call
|
// Send scripted event call
|
||||||
if (unit)
|
if (unit)
|
||||||
|
|||||||
@@ -394,10 +394,10 @@ namespace Game
|
|||||||
switch (packet.RollType)
|
switch (packet.RollType)
|
||||||
{
|
{
|
||||||
case RollType.Need:
|
case RollType.Need:
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.RollNeed, 1);
|
GetPlayer().UpdateCriteria(CriteriaType.RollAnyNeed, 1);
|
||||||
break;
|
break;
|
||||||
case RollType.Greed:
|
case RollType.Greed:
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.RollGreed, 1);
|
GetPlayer().UpdateCriteria(CriteriaType.RollAnyGreed, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -450,8 +450,8 @@ namespace Game
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_player.UpdateCriteria(CriteriaTypes.MoneyFromVendors, money);
|
_player.UpdateCriteria(CriteriaType.MoneyEarnedFromSales, money);
|
||||||
_player.UpdateCriteria(CriteriaTypes.SoldItemToVendor, 1);
|
_player.UpdateCriteria(CriteriaType.SellItemsToVendors, 1);
|
||||||
|
|
||||||
if (packet.Amount < pItem.GetCount()) // need split items
|
if (packet.Amount < pItem.GetCount()) // need split items
|
||||||
{
|
{
|
||||||
@@ -1062,7 +1062,7 @@ namespace Game
|
|||||||
if (entry != null)
|
if (entry != null)
|
||||||
{
|
{
|
||||||
GetBattlePetMgr().AddPet(entry.Id, entry.CreatureID, BattlePetMgr.RollPetBreed(entry.Id), BattlePetMgr.GetDefaultPetQuality(entry.Id));
|
GetBattlePetMgr().AddPet(entry.Id, entry.CreatureID, BattlePetMgr.RollPetBreed(entry.Id), BattlePetMgr.GetDefaultPetQuality(entry.Id));
|
||||||
_player.UpdateCriteria(CriteriaTypes.OwnBattlePetCount);
|
_player.UpdateCriteria(CriteriaType.UniquePetsOwned);
|
||||||
}
|
}
|
||||||
|
|
||||||
GetPlayer().DestroyItem(item.GetBagSlot(), item.GetSlot(), true);
|
GetPlayer().DestroyItem(item.GetBagSlot(), item.GetSlot(), true);
|
||||||
|
|||||||
@@ -104,9 +104,9 @@ namespace Game
|
|||||||
foreach (var resultValue in aeResult.GetByOrder())
|
foreach (var resultValue in aeResult.GetByOrder())
|
||||||
{
|
{
|
||||||
player.SendNewItem(resultValue.item, resultValue.count, false, false, true);
|
player.SendNewItem(resultValue.item, resultValue.count, false, false, true);
|
||||||
player.UpdateCriteria(CriteriaTypes.LootItem, resultValue.item.GetEntry(), resultValue.count);
|
player.UpdateCriteria(CriteriaType.LootItem, resultValue.item.GetEntry(), resultValue.count);
|
||||||
player.UpdateCriteria(CriteriaTypes.LootType, resultValue.item.GetEntry(), resultValue.count, (ulong)resultValue.lootType);
|
player.UpdateCriteria(CriteriaType.GetLootByType, resultValue.item.GetEntry(), resultValue.count, (ulong)resultValue.lootType);
|
||||||
player.UpdateCriteria(CriteriaTypes.LootAnyItem, resultValue.item.GetEntry(), resultValue.count);
|
player.UpdateCriteria(CriteriaType.LootAnyItem, resultValue.item.GetEntry(), resultValue.count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -202,7 +202,7 @@ namespace Game
|
|||||||
ulong goldMod = MathFunctions.CalculatePct(goldPerPlayer, pl.GetTotalAuraModifierByMiscValue(AuraType.ModMoneyGain, 1));
|
ulong goldMod = MathFunctions.CalculatePct(goldPerPlayer, pl.GetTotalAuraModifierByMiscValue(AuraType.ModMoneyGain, 1));
|
||||||
|
|
||||||
pl.ModifyMoney((long)(goldPerPlayer + goldMod));
|
pl.ModifyMoney((long)(goldPerPlayer + goldMod));
|
||||||
pl.UpdateCriteria(CriteriaTypes.LootMoney, goldPerPlayer);
|
pl.UpdateCriteria(CriteriaType.MoneyLootedFromCreatures, goldPerPlayer);
|
||||||
|
|
||||||
LootMoneyNotify packet = new();
|
LootMoneyNotify packet = new();
|
||||||
packet.Money = goldPerPlayer;
|
packet.Money = goldPerPlayer;
|
||||||
@@ -216,7 +216,7 @@ namespace Game
|
|||||||
ulong goldMod = MathFunctions.CalculatePct(loot.gold, player.GetTotalAuraModifierByMiscValue(AuraType.ModMoneyGain, 1));
|
ulong goldMod = MathFunctions.CalculatePct(loot.gold, player.GetTotalAuraModifierByMiscValue(AuraType.ModMoneyGain, 1));
|
||||||
|
|
||||||
player.ModifyMoney((long)(loot.gold + goldMod));
|
player.ModifyMoney((long)(loot.gold + goldMod));
|
||||||
player.UpdateCriteria(CriteriaTypes.LootMoney, loot.gold);
|
player.UpdateCriteria(CriteriaType.MoneyLootedFromCreatures, loot.gold);
|
||||||
|
|
||||||
LootMoneyNotify packet = new();
|
LootMoneyNotify packet = new();
|
||||||
packet.Money = loot.gold;
|
packet.Money = loot.gold;
|
||||||
@@ -551,9 +551,9 @@ namespace Game
|
|||||||
foreach (var resultValue in aeResult.GetByOrder())
|
foreach (var resultValue in aeResult.GetByOrder())
|
||||||
{
|
{
|
||||||
target.SendNewItem(resultValue.item, resultValue.count, false, false, true);
|
target.SendNewItem(resultValue.item, resultValue.count, false, false, true);
|
||||||
target.UpdateCriteria(CriteriaTypes.LootItem, resultValue.item.GetEntry(), resultValue.count);
|
target.UpdateCriteria(CriteriaType.LootItem, resultValue.item.GetEntry(), resultValue.count);
|
||||||
target.UpdateCriteria(CriteriaTypes.LootType, resultValue.item.GetEntry(), resultValue.count, (ulong)resultValue.lootType);
|
target.UpdateCriteria(CriteriaType.GetLootByType, resultValue.item.GetEntry(), resultValue.count, (ulong)resultValue.lootType);
|
||||||
target.UpdateCriteria(CriteriaTypes.LootAnyItem, resultValue.item.GetEntry(), resultValue.count);
|
target.UpdateCriteria(CriteriaType.LootAnyItem, resultValue.item.GetEntry(), resultValue.count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -266,7 +266,7 @@ namespace Game
|
|||||||
player.SendMailResult(0, MailResponseType.Send, MailResponseResult.Ok);
|
player.SendMailResult(0, MailResponseType.Send, MailResponseResult.Ok);
|
||||||
|
|
||||||
player.ModifyMoney(-reqmoney);
|
player.ModifyMoney(-reqmoney);
|
||||||
player.UpdateCriteria(CriteriaTypes.GoldSpentForMail, cost);
|
player.UpdateCriteria(CriteriaType.MoneySpentOnPostage, cost);
|
||||||
|
|
||||||
bool needItemDelay = false;
|
bool needItemDelay = false;
|
||||||
|
|
||||||
|
|||||||
@@ -472,7 +472,7 @@ namespace Game
|
|||||||
|
|
||||||
GetPlayer().SetQuestSlot(packet.Entry, 0);
|
GetPlayer().SetQuestSlot(packet.Entry, 0);
|
||||||
|
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.QuestAbandoned, 1);
|
GetPlayer().UpdateCriteria(CriteriaType.AbandonAnyQuest, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ namespace Game
|
|||||||
if (go.GetAI().GossipHello(GetPlayer()))
|
if (go.GetAI().GossipHello(GetPlayer()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GetPlayer().UpdateCriteria(CriteriaTypes.UseGameobject, go.GetEntry());
|
GetPlayer().UpdateCriteria(CriteriaType.UseGameobject, go.GetEntry());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -605,7 +605,7 @@ namespace Game.Maps
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update Achievement Criteria for all players in instance
|
// Update Achievement Criteria for all players in instance
|
||||||
public void DoUpdateCriteria(CriteriaTypes type, uint miscValue1 = 0, uint miscValue2 = 0, Unit unit = null)
|
public void DoUpdateCriteria(CriteriaType type, uint miscValue1 = 0, uint miscValue2 = 0, Unit unit = null)
|
||||||
{
|
{
|
||||||
var PlayerList = instance.GetPlayers();
|
var PlayerList = instance.GetPlayers();
|
||||||
|
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ namespace Game.Movement
|
|||||||
player.m_taxi.NextTaxiDestination();
|
player.m_taxi.NextTaxiDestination();
|
||||||
if (!_pointsForPathSwitch.Empty())
|
if (!_pointsForPathSwitch.Empty())
|
||||||
{
|
{
|
||||||
player.UpdateCriteria(CriteriaTypes.GoldSpentForTravelling, (uint)_pointsForPathSwitch[0].Cost);
|
player.UpdateCriteria(CriteriaType.MoneySpentOnTaxis, (uint)_pointsForPathSwitch[0].Cost);
|
||||||
player.ModifyMoney(-_pointsForPathSwitch[0].Cost);
|
player.ModifyMoney(-_pointsForPathSwitch[0].Cost);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace Game
|
|||||||
public void CheckAllQuestObjectiveCriteria(Player referencePlayer)
|
public void CheckAllQuestObjectiveCriteria(Player referencePlayer)
|
||||||
{
|
{
|
||||||
// suppress sending packets
|
// suppress sending packets
|
||||||
for (CriteriaTypes i = 0; i < CriteriaTypes.TotalTypes; ++i)
|
for (CriteriaType i = 0; i < CriteriaType.Count; ++i)
|
||||||
UpdateCriteria(i, 0, 0, 0, null, referencePlayer);
|
UpdateCriteria(i, 0, 0, 0, null, referencePlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,7 +329,7 @@ namespace Game
|
|||||||
return $"{_owner.GetGUID()} {_owner.GetName()}";
|
return $"{_owner.GetGUID()} {_owner.GetName()}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<Criteria> GetCriteriaByType(CriteriaTypes type, uint asset)
|
public override List<Criteria> GetCriteriaByType(CriteriaType type, uint asset)
|
||||||
{
|
{
|
||||||
return Global.CriteriaMgr.GetQuestObjectiveCriteriaByType(type);
|
return Global.CriteriaMgr.GetQuestObjectiveCriteriaByType(type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -473,11 +473,11 @@ namespace Game
|
|||||||
if (factionEntry.FriendshipRepID == 0 && paragonReputation == null)
|
if (factionEntry.FriendshipRepID == 0 && paragonReputation == null)
|
||||||
UpdateRankCounters(old_rank, new_rank);
|
UpdateRankCounters(old_rank, new_rank);
|
||||||
|
|
||||||
_player.UpdateCriteria(CriteriaTypes.KnownFactions, factionEntry.Id);
|
_player.UpdateCriteria(CriteriaType.TotalFactionsEncountered, factionEntry.Id);
|
||||||
_player.UpdateCriteria(CriteriaTypes.GainReputation, factionEntry.Id);
|
_player.UpdateCriteria(CriteriaType.ReputationGained, factionEntry.Id);
|
||||||
_player.UpdateCriteria(CriteriaTypes.GainExaltedReputation, factionEntry.Id);
|
_player.UpdateCriteria(CriteriaType.TotalExaltedFactions, factionEntry.Id);
|
||||||
_player.UpdateCriteria(CriteriaTypes.GainReveredReputation, factionEntry.Id);
|
_player.UpdateCriteria(CriteriaType.TotalReveredFactions, factionEntry.Id);
|
||||||
_player.UpdateCriteria(CriteriaTypes.GainHonoredReputation, factionEntry.Id);
|
_player.UpdateCriteria(CriteriaType.TotalHonoredFactions, factionEntry.Id);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace Game.Scenarios
|
|||||||
switch (criteria.Entry.Type)
|
switch (criteria.Entry.Type)
|
||||||
{
|
{
|
||||||
// Blizzard only appears to store creature kills
|
// Blizzard only appears to store creature kills
|
||||||
case CriteriaTypes.KillCreature:
|
case CriteriaType.KillCreature:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
continue;
|
continue;
|
||||||
@@ -130,7 +130,7 @@ namespace Game.Scenarios
|
|||||||
switch (criteria.Entry.Type)
|
switch (criteria.Entry.Type)
|
||||||
{
|
{
|
||||||
// Blizzard appears to only stores creatures killed progress for unknown reasons. Either technical shortcoming or intentional
|
// Blizzard appears to only stores creatures killed progress for unknown reasons. Either technical shortcoming or intentional
|
||||||
case CriteriaTypes.KillCreature:
|
case CriteriaType.KillCreature:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ namespace Game.Scenarios
|
|||||||
return criteriasProgress;
|
return criteriasProgress;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<Criteria> GetCriteriaByType(CriteriaTypes type, uint asset)
|
public override List<Criteria> GetCriteriaByType(CriteriaType type, uint asset)
|
||||||
{
|
{
|
||||||
return Global.CriteriaMgr.GetScenarioCriteriaByType(type);
|
return Global.CriteriaMgr.GetScenarioCriteriaByType(type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1897,15 +1897,15 @@ namespace Game.Spells
|
|||||||
if (player != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
player.StartCriteriaTimer(CriteriaStartEvent.BeSpellTarget, m_spellInfo.Id);
|
player.StartCriteriaTimer(CriteriaStartEvent.BeSpellTarget, m_spellInfo.Id);
|
||||||
player.UpdateCriteria(CriteriaTypes.BeSpellTarget, m_spellInfo.Id, 0, 0, m_caster);
|
player.UpdateCriteria(CriteriaType.BeSpellTarget, m_spellInfo.Id, 0, 0, m_caster);
|
||||||
player.UpdateCriteria(CriteriaTypes.BeSpellTarget2, m_spellInfo.Id);
|
player.UpdateCriteria(CriteriaType.GainAura, m_spellInfo.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
Player casterPlayer = m_caster.ToPlayer();
|
Player casterPlayer = m_caster.ToPlayer();
|
||||||
if (casterPlayer)
|
if (casterPlayer)
|
||||||
{
|
{
|
||||||
casterPlayer.StartCriteriaTimer(CriteriaStartEvent.CastSpell, m_spellInfo.Id);
|
casterPlayer.StartCriteriaTimer(CriteriaStartEvent.CastSpell, m_spellInfo.Id);
|
||||||
casterPlayer.UpdateCriteria(CriteriaTypes.CastSpell2, m_spellInfo.Id, 0, 0, unit);
|
casterPlayer.UpdateCriteria(CriteriaType.LandTargetedSpellOnTarget, m_spellInfo.Id, 0, 0, unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_caster != unit)
|
if (m_caster != unit)
|
||||||
@@ -2648,10 +2648,10 @@ namespace Game.Spells
|
|||||||
if (!Convert.ToBoolean(_triggeredCastFlags & TriggerCastFlags.IgnoreCastItem) && m_CastItem != null)
|
if (!Convert.ToBoolean(_triggeredCastFlags & TriggerCastFlags.IgnoreCastItem) && m_CastItem != null)
|
||||||
{
|
{
|
||||||
player.StartCriteriaTimer(CriteriaStartEvent.UseItem, m_CastItem.GetEntry());
|
player.StartCriteriaTimer(CriteriaStartEvent.UseItem, m_CastItem.GetEntry());
|
||||||
player.UpdateCriteria(CriteriaTypes.UseItem, m_CastItem.GetEntry());
|
player.UpdateCriteria(CriteriaType.UseItem, m_CastItem.GetEntry());
|
||||||
}
|
}
|
||||||
|
|
||||||
player.UpdateCriteria(CriteriaTypes.CastSpell, m_spellInfo.Id);
|
player.UpdateCriteria(CriteriaType.CastSpell, m_spellInfo.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
Item targetItem = m_targets.GetItemTarget();
|
Item targetItem = m_targets.GetItemTarget();
|
||||||
|
|||||||
Reference in New Issue
Block a user