initial commit

This commit is contained in:
hondacrx
2017-06-19 17:30:18 -04:00
commit 6e265ea24b
763 changed files with 488824 additions and 0 deletions
+762
View File
@@ -0,0 +1,762 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum AccountDataTypes
{
GlobalConfigCache = 0x00,
PerCharacterConfigCache = 0x01,
GlobalBindingsCache = 0x02,
PerCharacterBindingsCache = 0x03,
GlobalMacrosCache = 0x04,
PerCharacterMacrosCache = 0x05,
PerCharacterLayoutCache = 0x06,
PerCharacterChatCache = 0x07,
Max = 8,
GlobalCacheMask = 0x15,
PerCharacterCacheMask = 0xEA
}
public enum TutorialAction
{
Update = 0,
Clear = 1,
Reset = 2
}
public enum AccountTypes
{
Player = 0,
Moderator = 1,
GameMaster = 2,
Administrator = 3,
Console = 4
}
public enum RBACPermissions
{
None = 0,
InstantLogout = 1,
SkipQueue = 2,
JoinNormalBg = 3,
JoinRandomBg = 4,
JoinArenas = 5,
JoinDungeonFinder = 6,
// 7 - Reuse
// 8 - Reuse
// 9 - Reuse
UseCharacterTemplates = 10,
LogGmTrade = 11,
SkipCheckCharacterCreationDemonHunter = 12,
SkipCheckInstanceRequiredBosses = 13,
SkipCheckCharacterCreationTeammask = 14,
SkipCheckCharacterCreationClassmask = 15,
SkipCheckCharacterCreationRacemask = 16,
SkipCheckCharacterCreationReservedname = 17,
SkipCheckCharacterCreationDeathKnight = 18,
SkipCheckChatChannelReq = 19,
SkipCheckDisableMap = 20,
SkipCheckMoreTalentsThanAllowed = 21,
SkipCheckChatSpam = 22,
SkipCheckOverspeedPing = 23,
TwoSideCharacterCreation = 24,
TwoSideInteractionChat = 25,
TwoSideInteractionChannel = 26,
TwoSideInteractionMail = 27,
TwoSideWhoList = 28,
TwoSideAddFriend = 29,
CommandsSaveWithoutDelay = 30,
CommandsUseUnstuckWithArgs = 31,
CommandsBeAssignedTicket = 32,
CommandsNotifyCommandNotFoundError = 33,
CommandsAppearInGmList = 34,
WhoSeeAllSecLevels = 35,
CanFilterWhispers = 36,
ChatUseStaffBadge = 37,
ResurrectWithFullHps = 38,
RestoreSavedGmState = 39,
AllowGmFriend = 40,
UseStartGmLevel = 41,
OpcodeWorldTeleport = 42,
OpcodeWhois = 43,
ReceiveGlobalGmTextmessage = 44,
SilentlyJoinChannel = 45,
ChangeChannelNotModerator = 46,
CheckForLowerSecurity = 47,
CommandsPinfoCheckPersonalData = 48,
EmailConfirmForPassChange = 49,
MayCheckOwnEmail = 50,
AllowTwoSideTrade = 51,
// Free Space For Core Permissions (Till 149)
// Roles (Permissions With Delegated Permissions) Use 199 And Descending
CommandRbac = 200,
CommandRbacAcc = 201,
CommandRbacAccPermList = 202,
CommandRbacAccPermGrant = 203,
CommandRbacAccPermDeny = 204,
CommandRbacAccPermRevoke = 205,
CommandRbacList = 206,
CommandBnetAccount = 207,
CommandBnetAccountCreate = 208,
CommandBnetAccountLockCountry = 209,
CommandBnetAccountLockIp = 210,
CommandBnetAccountPassword = 211,
CommandBnetAccountSet = 212,
CommandBnetAccountSetPassword = 213,
CommandBnetAccountLink = 214,
CommandBnetAccountUnlink = 215,
CommandBnetAccountCreateGame = 216,
CommandAccount = 217,
CommandAccountAddon = 218,
CommandAccountCreate = 219,
CommandAccountDelete = 220,
CommandAccountLock = 221,
CommandAccountLockCountry = 222,
CommandAccountLockIp = 223,
CommandAccountOnlineList = 224,
CommandAccountPassword = 225,
CommandAccountSet = 226,
CommandAccountSetAddon = 227,
CommandAccountSetGmlevel = 228,
CommandAccountSetPassword = 229,
CommandAchievement = 230,
CommandAchievementAdd = 231,
CommandArena = 232,
CommandArenaCaptain = 233,
CommandArenaCreate = 234,
CommandArenaDisband = 235,
CommandArenaInfo = 236,
CommandArenaLookup = 237,
CommandArenaRename = 238,
CommandBan = 239,
CommandBanAccount = 240,
CommandBanCharacter = 241,
CommandBanIp = 242,
CommandBanPlayeraccount = 243,
CommandBaninfo = 244,
CommandBaninfoAccount = 245,
CommandBaninfoCharacter = 246,
CommandBaninfoIp = 247,
CommandBanlist = 248,
CommandBanlistAccount = 249,
CommandBanlistCharacter = 250,
CommandBanlistIp = 251,
CommandUnban = 252,
CommandUnbanAccount = 253,
CommandUnbanCharacter = 254,
CommandUnbanIp = 255,
CommandUnbanPlayeraccount = 256,
CommandBf = 257,
CommandBfStart = 258,
CommandBfStop = 259,
CommandBfSwitch = 260,
CommandBfTimer = 261,
CommandBfEnable = 262,
CommandAccountEmail = 263,
CommandAccountSetSec = 264,
CommandAccountSetSecEmail = 265,
CommandAccountSetSecRegmail = 266,
CommandCast = 267,
CommandCastBack = 268,
CommandCastDist = 269,
CommandCastSelf = 270,
CommandCastTarget = 271,
CommandCastDest = 272,
CommandCharacter = 273,
CommandCharacterCustomize = 274,
CommandCharacterChangefaction = 275,
CommandCharacterChangerace = 276,
CommandCharacterDeleted = 277,
CommandCharacterDeletedDelete = 278,
CommandCharacterDeletedList = 279,
CommandCharacterDeletedRestore = 280,
CommandCharacterDeletedOld = 281,
CommandCharacterErase = 282,
CommandCharacterLevel = 283,
CommandCharacterRename = 284,
CommandCharacterReputation = 285,
CommandCharacterTitles = 286,
CommandLevelup = 287,
CommandPdump = 288,
CommandPdumpLoad = 289,
CommandPdumpWrite = 290,
CommandCheat = 291,
CommandCheatCasttime = 292,
CommandCheatCooldown = 293,
CommandCheatExplore = 294,
CommandCheatGod = 295,
CommandCheatPower = 296,
CommandCheatStatus = 297,
CommandCheatTaxi = 298,
CommandCheatWaterwalk = 299,
CommandDebug = 300,
CommandDebugAnim = 301,
CommandDebugAreatriggers = 302,
CommandDebugArena = 303,
CommandDebugBg = 304,
CommandDebugEntervehicle = 305,
CommandDebugGetitemstate = 306,
CommandDebugGetitemvalue = 307,
CommandDebugGetvalue = 308,
CommandDebugHostil = 309,
CommandDebugItemexpire = 310,
CommandDebugLootrecipient = 311,
CommandDebugLos = 312,
CommandDebugMod32value = 313,
CommandDebugMoveflags = 314,
CommandDebugPlay = 315,
CommandDebugPlayCinematic = 316,
CommandDebugPlayMovie = 317,
CommandDebugPlaySound = 318,
CommandDebugSend = 319,
CommandDebugSendBuyerror = 320,
CommandDebugSendChannelnotify = 321,
CommandDebugSendChatmessage = 322,
CommandDebugSendEquiperror = 323,
CommandDebugSendLargepacket = 324,
CommandDebugSendOpcode = 325,
CommandDebugSendQinvalidmsg = 326,
CommandDebugSendQpartymsg = 327,
CommandDebugSendSellerror = 328,
CommandDebugSendSetphaseshift = 329,
CommandDebugSendSpellfail = 330,
CommandDebugSetaurastate = 331,
CommandDebugSetbit = 332,
CommandDebugSetitemvalue = 333,
CommandDebugSetvalue = 334,
CommandDebugSetvid = 335,
CommandDebugSpawnvehicle = 336,
CommandDebugThreat = 337,
CommandDebugUpdate = 338,
CommandDebugUws = 339,
CommandWpgps = 340,
CommandDeserter = 341,
CommandDeserterBg = 342,
CommandDeserterBgAdd = 343,
CommandDeserterBgRemove = 344,
CommandDeserterInstance = 345,
CommandDeserterInstanceAdd = 346,
CommandDeserterInstanceRemove = 347,
CommandDisable = 348,
CommandDisableAdd = 349,
CommandDisableAddCriteria = 350,
CommandDisableAddBattleground = 351,
CommandDisableAddMap = 352,
CommandDisableAddMmap = 353,
CommandDisableAddOutdoorpvp = 354,
CommandDisableAddQuest = 355,
CommandDisableAddSpell = 356,
CommandDisableAddVmap = 357,
CommandDisableRemove = 358,
CommandDisableRemoveCriteria = 359,
CommandDisableRemoveBattleground = 360,
CommandDisableRemoveMap = 361,
CommandDisableRemoveMmap = 362,
CommandDisableRemoveOutdoorpvp = 363,
CommandDisableRemoveQuest = 364,
CommandDisableRemoveSpell = 365,
CommandDisableRemoveVmap = 366,
CommandEvent = 367,
CommandEventActivelist = 368,
CommandEventStart = 369,
CommandEventStop = 370,
CommandGm = 371,
CommandGmChat = 372,
CommandGmFly = 373,
CommandGmIngame = 374,
CommandGmList = 375,
CommandGmVisible = 376,
CommandGo = 377,
CommandGoCreature = 378,
CommandGoGraveyard = 379,
CommandGoGrid = 380,
CommandGoObject = 381,
CommandGoTaxinode = 382,
// 383 reuse
CommandGoTrigger = 384,
CommandGoXyz = 385,
CommandGoZonexy = 386,
CommandGobject = 387,
CommandGobjectActivate = 388,
CommandGobjectAdd = 389,
CommandGobjectAddTemp = 390,
CommandGobjectDelete = 391,
CommandGobjectInfo = 392,
CommandGobjectMove = 393,
CommandGobjectNear = 394,
CommandGobjectSet = 395,
CommandGobjectSetPhase = 396,
CommandGobjectSetState = 397,
CommandGobjectTarget = 398,
CommandGobjectTurn = 399,
CommandDebugTransport = 400,
CommandGuild = 401,
CommandGuildCreate = 402,
CommandGuildDelete = 403,
CommandGuildInvite = 404,
CommandGuildUninvite = 405,
CommandGuildRank = 406,
CommandGuildRename = 407,
CommandHonor = 408,
CommandHonorAdd = 409,
CommandHonorAddKill = 410,
CommandHonorUpdate = 411,
CommandInstance = 412,
CommandInstanceListbinds = 413,
CommandInstanceUnbind = 414,
CommandInstanceStats = 415,
CommandInstanceSavedata = 416,
CommandLearn = 417,
CommandLearnAll = 418,
CommandLearnAllMy = 419,
CommandLearnAllMyClass = 420,
CommandLearnAllMyPettalents = 421,
CommandLearnAllMySpells = 422,
CommandLearnAllMyTalents = 423,
CommandLearnAllGm = 424,
CommandLearnAllCrafts = 425,
CommandLearnAllDefault = 426,
CommandLearnAllLang = 427,
CommandLearnAllRecipes = 428,
CommandUnlearn = 429,
CommandLfg = 430,
CommandLfgPlayer = 431,
CommandLfgGroup = 432,
CommandLfgQueue = 433,
CommandLfgClean = 434,
CommandLfgOptions = 435,
CommandList = 436,
CommandListCreature = 437,
CommandListItem = 438,
CommandListObject = 439,
CommandListAuras = 440,
CommandListMail = 441,
CommandLookup = 442,
CommandLookupArea = 443,
CommandLookupCreature = 444,
CommandLookupEvent = 445,
CommandLookupFaction = 446,
CommandLookupItem = 447,
CommandLookupItemset = 448,
CommandLookupObject = 449,
CommandLookupQuest = 450,
CommandLookupPlayer = 451,
CommandLookupPlayerIp = 452,
CommandLookupPlayerAccount = 453,
CommandLookupPlayerEmail = 454,
CommandLookupSkill = 455,
CommandLookupSpell = 456,
CommandLookupSpellId = 457,
CommandLookupTaxinode = 458,
CommandLookupTele = 459,
CommandLookupTitle = 460,
CommandLookupMap = 461,
CommandAnnounce = 462,
CommandChannel = 463,
CommandChannelSet = 464,
CommandChannelSetOwnership = 465,
CommandGmannounce = 466,
CommandGmnameannounce = 467,
CommandGmnotify = 468,
CommandNameannounce = 469,
CommandNotify = 470,
CommandWhispers = 471,
CommandGroup = 472,
CommandGroupLeader = 473,
CommandGroupDisband = 474,
CommandGroupRemove = 475,
CommandGroupJoin = 476,
CommandGroupList = 477,
CommandGroupSummon = 478,
CommandPet = 479,
CommandPetCreate = 480,
CommandPetLearn = 481,
CommandPetUnlearn = 482,
CommandSend = 483,
CommandSendItems = 484,
CommandSendMail = 485,
CommandSendMessage = 486,
CommandSendMoney = 487,
CommandAdditem = 488,
CommandAdditemset = 489,
CommandAppear = 490,
CommandAura = 491,
CommandBank = 492,
CommandBindsight = 493,
CommandCombatstop = 494,
CommandCometome = 495,
CommandCommands = 496,
CommandCooldown = 497,
CommandDamage = 498,
CommandDev = 499,
CommandDie = 500,
CommandDismount = 501,
CommandDistance = 502,
CommandFlusharenapoints = 503,
CommandFreeze = 504,
CommandGps = 505,
CommandGuid = 506,
CommandHelp = 507,
CommandHidearea = 508,
CommandItemmove = 509,
CommandKick = 510,
CommandLinkgrave = 511,
CommandListfreeze = 512,
CommandMaxskill = 513,
CommandMovegens = 514,
CommandMute = 515,
CommandNeargrave = 516,
CommandPinfo = 517,
CommandPlayall = 518,
CommandPossess = 519,
CommandRecall = 520,
CommandRepairitems = 521,
CommandRespawn = 522,
CommandRevive = 523,
CommandSaveall = 524,
CommandSave = 525,
CommandSetskill = 526,
CommandShowarea = 527,
CommandSummon = 528,
CommandUnaura = 529,
CommandUnbindsight = 530,
CommandUnfreeze = 531,
CommandUnmute = 532,
CommandUnpossess = 533,
CommandUnstuck = 534,
CommandWchange = 535,
CommandMmap = 536,
CommandMmapLoadedtiles = 537,
CommandMmapLoc = 538,
CommandMmapPath = 539,
CommandMmapStats = 540,
CommandMmapTestarea = 541,
CommandMorph = 542,
CommandDemorph = 543,
CommandModify = 544,
CommandModifyArenapoints = 545,
CommandModifyBit = 546,
CommandModifyDrunk = 547,
CommandModifyEnergy = 548,
CommandModifyFaction = 549,
CommandModifyGender = 550,
CommandModifyHonor = 551,
CommandModifyHp = 552,
CommandModifyMana = 553,
CommandModifyMoney = 554,
CommandModifyMount = 555,
CommandModifyPhase = 556,
CommandModifyRage = 557,
CommandModifyReputation = 558,
CommandModifyRunicpower = 559,
CommandModifyScale = 560,
CommandModifySpeed = 561,
CommandModifySpeedAll = 562,
CommandModifySpeedBackwalk = 563,
CommandModifySpeedFly = 564,
CommandModifySpeedWalk = 565,
CommandModifySpeedSwim = 566,
CommandModifySpell = 567,
CommandModifyStandstate = 568,
CommandModifyTalentpoints = 569,
CommandNpc = 570,
CommandNpcAdd = 571,
CommandNpcAddFormation = 572,
CommandNpcAddItem = 573,
CommandNpcAddMove = 574,
CommandNpcAddTemp = 575,
CommandNpcDelete = 576,
CommandNpcDeleteItem = 577,
CommandNpcFollow = 578,
CommandNpcFollowStop = 579,
CommandNpcSet = 580,
CommandNpcSetAllowmove = 581,
CommandNpcSetEntry = 582,
CommandNpcSetFactionid = 583,
CommandNpcSetFlag = 584,
CommandNpcSetLevel = 585,
CommandNpcSetLink = 586,
CommandNpcSetModel = 587,
CommandNpcSetMovetype = 588,
CommandNpcSetPhase = 589,
CommandNpcSetSpawndist = 590,
CommandNpcSetSpawntime = 591,
CommandNpcSetData = 592,
CommandNpcInfo = 593,
CommandNpcNear = 594,
CommandNpcMove = 595,
CommandNpcPlayemote = 596,
CommandNpcSay = 597,
CommandNpcTextemote = 598,
CommandNpcWhisper = 599,
CommandNpcYell = 600,
CommandNpcTame = 601,
CommandQuest = 602,
CommandQuestAdd = 603,
CommandQuestComplete = 604,
CommandQuestRemove = 605,
CommandQuestReward = 606,
CommandReload = 607,
CommandReloadAccessRequirement = 608,
CommandReloadCriteriaData = 609,
CommandReloadAchievementReward = 610,
CommandReloadAll = 611,
CommandReloadAllAchievement = 612,
CommandReloadAllArea = 613,
CommandReloadBroadcastText = 614,
CommandReloadAllGossip = 615,
CommandReloadAllItem = 616,
CommandReloadAllLocales = 617,
CommandReloadAllLoot = 618,
CommandReloadAllNpc = 619,
CommandReloadAllQuest = 620,
CommandReloadAllScripts = 621,
CommandReloadAllSpell = 622,
CommandReloadAreatriggerInvolvedrelation = 623,
CommandReloadAreatriggerTavern = 624,
CommandReloadAreatriggerTeleport = 625,
CommandReloadAuctions = 626,
CommandReloadAutobroadcast = 627,
CommandReloadCommand = 628,
CommandReloadConditions = 629,
CommandReloadConfig = 630,
CommandReloadBattlegroundTemplate = 631,
CommandMutehistory = 632,
CommandReloadCreatureLinkedRespawn = 633,
CommandReloadCreatureLootTemplate = 634,
CommandReloadCreatureOnkillReputation = 635,
CommandReloadCreatureQuestender = 636,
CommandReloadCreatureQueststarter = 637,
CommandReloadCreatureSummonGroups = 638,
CommandReloadCreatureTemplate = 639,
CommandReloadCreatureText = 640,
CommandReloadDisables = 641,
CommandReloadDisenchantLootTemplate = 642,
CommandReloadEventScripts = 643,
CommandReloadFishingLootTemplate = 644,
CommandReloadGraveyardZone = 645,
CommandReloadGameTele = 646,
CommandReloadGameobjectQuestender = 647,
CommandReloadGameobjectQuestLootTemplate = 648,
CommandReloadGameobjectQueststarter = 649,
CommandReloadSupportSystem = 650,
CommandReloadGossipMenu = 651,
CommandReloadGossipMenuOption = 652,
CommandReloadItemEnchantmentTemplate = 653,
CommandReloadItemLootTemplate = 654,
CommandReloadItemSetNames = 655,
CommandReloadLfgDungeonRewards = 656,
CommandReloadLocalesAchievementReward = 657,
CommandReloadLocalesCreature = 658,
CommandReloadLocalesCreatureText = 659,
CommandReloadLocalesGameobject = 660,
CommandReloadLocalesGossipMenuOption = 661,
// 662 Unused
CommandReloadLocalesItemSetName = 663,
// 664 Unused
CommandReloadLocalesPageText = 665,
CommandReloadLocalesPointsOfInterest = 666,
CommandReloadQuestLocale = 667,
CommandReloadMailLevelReward = 668,
CommandReloadMailLootTemplate = 669,
CommandReloadMillingLootTemplate = 670,
CommandReloadNpcSpellclickSpells = 671,
CommandReloadNpcTrainer = 672,
CommandReloadNpcVendor = 673,
CommandReloadPageText = 674,
CommandReloadPickpocketingLootTemplate = 675,
CommandReloadPointsOfInterest = 676,
CommandReloadProspectingLootTemplate = 677,
CommandReloadQuestPoi = 678,
CommandReloadQuestTemplate = 679,
CommandReloadRbac = 680,
CommandReloadReferenceLootTemplate = 681,
CommandReloadReservedName = 682,
CommandReloadReputationRewardRate = 683,
CommandReloadSpilloverTemplate = 684,
CommandReloadSkillDiscoveryTemplate = 685,
CommandReloadSkillExtraItemTemplate = 686,
CommandReloadSkillFishingBaseLevel = 687,
CommandReloadSkinningLootTemplate = 688,
CommandReloadSmartScripts = 689,
CommandReloadSpellRequired = 690,
CommandReloadSpellArea = 691,
// 692 Unused
CommandReloadSpellGroup = 693,
CommandReloadSpellLearnSpell = 694,
CommandReloadSpellLootTemplate = 695,
CommandReloadSpellLinkedSpell = 696,
CommandReloadSpellPetAuras = 697,
CommandReloadSpellProcEvent = 698,
CommandReloadSpellProc = 699,
CommandReloadSpellScripts = 700,
CommandReloadSpellTargetPosition = 701,
CommandReloadSpellThreats = 702,
CommandReloadSpellGroupStackRules = 703,
CommandReloadCypherString = 704,
CommandReloadWardenAction = 705,
CommandReloadWaypointScripts = 706,
CommandReloadWaypointData = 707,
CommandReloadVehicleAccesory = 708,
CommandReloadVehicleTemplateAccessory = 709,
CommandReset = 710,
CommandResetAchievements = 711,
CommandResetHonor = 712,
CommandResetLevel = 713,
CommandResetSpells = 714,
CommandResetStats = 715,
CommandResetTalents = 716,
CommandResetAll = 717,
CommandServer = 718,
CommandServerCorpses = 719,
CommandServerExit = 720,
CommandServerIdlerestart = 721,
CommandServerIdlerestartCancel = 722,
CommandServerIdleshutdown = 723,
CommandServerIdleshutdownCancel = 724,
CommandServerInfo = 725,
CommandServerPlimit = 726,
CommandServerRestart = 727,
CommandServerRestartCancel = 728,
CommandServerSet = 729,
CommandServerSetClosed = 730,
CommandServerSetDifftime = 731,
CommandServerSetLoglevel = 732,
CommandServerSetMotd = 733,
CommandServerShutdown = 734,
CommandServerShutdownCancel = 735,
CommandServerMotd = 736,
CommandTele = 737,
CommandTeleAdd = 738,
CommandTeleDel = 739,
CommandTeleName = 740,
CommandTeleGroup = 741,
CommandTicket = 742,
// 743 - 752 reuse
CommandTicketReset = 753,
// 754 - 756 reuse
CommandTicketTogglesystem = 757,
// 758 - 760 reuse
CommandTitles = 761,
CommandTitlesAdd = 762,
CommandTitlesCurrent = 763,
CommandTitlesRemove = 764,
CommandTitlesSet = 765,
CommandTitlesSetMask = 766,
CommandWp = 767,
CommandWpAdd = 768,
CommandWpEvent = 769,
CommandWpLoad = 770,
CommandWpModify = 771,
CommandWpUnload = 772,
CommandWpReload = 773,
CommandWpShow = 774,
CommandModifyCurrency = 775, // Only 4.3.4
CommandDebugPhase = 776, // Only 4.3.4
CommandMailbox = 777,
CommandAhbot = 778,
CommandAhbotItems = 779,
CommandAhbotItemsGray = 780,
CommandAhbotItemsWhite = 781,
CommandAhbotItemsGreen = 782,
CommandAhbotItemsBlue = 783,
CommandAhbotItemsPurple = 784,
CommandAhbotItemsOrange = 785,
CommandAhbotItemsYellow = 786,
CommandAhbotRatio = 787,
CommandAhbotRatioAlliance = 788,
CommandAhbotRatioHorde = 789,
CommandAhbotRatioNeutral = 790,
CommandAhbotRebuild = 791,
CommandAhbotReload = 792,
CommandAhbotStatus = 793,
CommandGuildInfo = 794,
CommandInstanceSetBossState = 795,
CommandInstanceGetBossState = 796,
CommandPvpstats = 797,
CommandModifyXp = 798,
CommandGoBugTicket = 799,
CommandGoComplaintTicket = 800,
CommandGoSuggestionTicket = 801,
CommandTicketBug = 802,
CommandTicketComplaint = 803,
CommandTicketSuggestion = 804,
CommandTicketBugAssign = 805,
CommandTicketBugClose = 806,
CommandTicketBugClosedlist = 807,
CommandTicketBugComment = 808,
CommandTicketBugDelete = 809,
CommandTicketBugList = 810,
CommandTicketBugUnassign = 811,
CommandTicketBugView = 812,
CommandTicketComplaintAssign = 813,
CommandTicketComplaintClose = 814,
CommandTicketComplaintClosedlist = 815,
CommandTicketComplaintComment = 816,
CommandTicketComplaintDelete = 817,
CommandTicketComplaintList = 818,
CommandTicketComplaintUnassign = 819,
CommandTicketComplaintView = 820,
CommandTicketSuggestionAssign = 821,
CommandTicketSuggestionClose = 822,
CommandTicketSuggestionClosedlist = 823,
CommandTicketSuggestionComment = 824,
CommandTicketSuggestionDelete = 825,
CommandTicketSuggestionList = 826,
CommandTicketSuggestionUnassign = 827,
CommandTicketSuggestionView = 828,
CommandTicketResetAll = 829,
CommandBnetAccountListGameAccounts = 830,
CommandTicketResetBug = 831,
CommandTicketResetComplaint = 832,
CommandTicketResetSuggestion = 833,
CommandGoQuest = 834,
CommandDebugLoadcells = 835,
CommandDebugBoundary = 836,
CommandNpcEvade = 837,
CommandPetLevel = 838,
CommandServerShutdownForce = 839,
CommandServerRestartForce = 840,
CommandNearGraveyard = 841,
CommandReloadCharacterTemplate = 842,
CommandReloadQuestGreeting = 843,
CommandScene = 844,
CommandSceneDedug = 845,
CommandScenePlay = 846,
CommandScenePlayPackage = 847,
CommandSceneCancel = 848,
CommandListScenes = 849,
CommandReloacSceneTemplate = 850,
CommandReloadAreatriggerTemplate = 851,
CommandGoOffset = 852,
CommandReloadConversationTemplate = 853,
CommandDebugConversation = 854,
// Custom Permissions 1000+
Max
}
public enum MountStatusFlags
{
None = 0x00,
NeedsFanfare = 0x01,
IsFavorite = 0x02
}
}
+440
View File
@@ -0,0 +1,440 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum AchievementFaction : sbyte
{
Horde = 0,
Alliance = 1,
Any = -1,
}
public enum CriteriaTreeFlags : ushort
{
ProgressBar = 0x0001,
ProgressIsDate = 0x0004,
ShowCurrencyIcon = 0x0008,
AllianceOnly = 0x0200,
HordeOnly = 0x0400,
ShowRequiredCount = 0x0800
}
public enum CriteriaTreeOperator
{
Single = 0,
SinglerNotCompleted = 1,
All = 4,
SumChildren = 5,
MaxChild = 6,
CountDirectChildren = 7,
Any = 8,
SumChildrenWeight = 9
}
public enum AchievementFlags
{
Counter = 0x01,
Hidden = 0x02,
PlayNoVisual = 0x04,
Summ = 0x08,
MaxUsed = 0x10,
ReqCount = 0x20,
Average = 0x40,
Bar = 0x80,
RealmFirstReach = 0x100,
RealmFirstKill = 0x200,
Unk3 = 0x400,
HideIncomplete = 0x800,
ShowInGuildNews = 0x1000,
ShowInGuildHeader = 0x2000,
Guild = 0x4000,
ShowGuildMembers = 0x8000,
ShowCriteriaMembers = 0x10000,
Account = 0x20000,
Unk5 = 0x00040000,
HideZeroCounter = 0x00080000,
TrackingFlag = 0x00100000
}
public enum CriteriaFlagsCu
{
Player = 0x1,
Account = 0x2,
Guild = 0x4,
Scenario = 0x8
}
public enum CriteriaCondition
{
None = 0,
NoDeath = 1,
Unk2 = 2,
BgMap = 3,
NoLose = 4,
Unk5 = 5,
Unk8 = 8,
NoSpellHit = 9,
NotInGroup = 10,
Unk13 = 13
}
public enum CriteriaAdditionalCondition
{
SourceDrunkValue = 1,
Unk2 = 2,
ItemLevel = 3,
TargetCreatureEntry = 4,
TargetMustBePlayer = 5,
TargetMustBeDead = 6,
TargetMustBeEnemy = 7,
SourceHasAura = 8,
TargetHasAura = 10,
TargetHasAuraType = 11,
ItemQualityMin = 14,
ItemQualityEquals = 15,
Unk16 = 16,
SourceAreaOrZone = 17,
TargetAreaOrZone = 18,
MapDifficultyOld = 20,
TargetCreatureYieldsXp = 21,
ArenaType = 24,
SourceRace = 25,
SourceClass = 26,
TargetRace = 27,
TargetClass = 28,
MaxGroupMembers = 29,
TargetCreatureType = 30,
SourceMap = 32,
ItemClass = 33,
ItemSubclass = 34,
CompleteQuestNotInGroup = 35,
MinPersonalRating = 37,
TitleBitIndex = 38,
SourceLevel = 39,
TargetLevel = 40,
TargetZone = 41,
TargetHealthPercentBelow = 46,
Unk55 = 55,
MinAchievementPoints = 56,
RequiresLfgGroup = 58,
Unk60 = 60,
RequiresGuildGroup = 61,
GuildReputation = 62,
RatedBattleground = 63,
RatedBattlegroundRating = 64,
ProjectRarity = 65,
ProjectRace = 66,
WorldState = 67, // Nyi
MapDifficulty = 68, // Nyi
PlayerLevel = 69, // Nyi
TargetPlayerLevel = 70, // Nyi
//PlayerLevelOnAccount = 71, // Not Verified
//Unk73 = 73, // References Another Modifier Tree Id
ScenarioId = 74, // Nyi
BattlePetFamily = 78, // Nyi
BattlePetHealthPct = 79, // Nyi
//Unk80 = 80 // Something To Do With World Bosses
BattlePetEntry = 81, // Nyi
//BattlePetEntryId = 82, // Some Sort Of Data Id?
ChallengeModeMedal = 83, // NYI
//CRITERIA_ADDITIONAL_CONDITION_UNK84 = 84, // Quest id
//CRITERIA_ADDITIONAL_CONDITION_UNK86 = 86, // Some external event id
//CRITERIA_ADDITIONAL_CONDITION_UNK87 = 87, // Achievement id
BattlePetSpecies = 91,
GarrisonFollowerEntry = 144,
GarrisonFollowerQuality = 145,
GarrisonFollowerLevel = 146,
GarrisonRareMission = 147, // NYI
GarrisonBuildingLevel = 149, // NYI
GarrisonMissionType = 167, // NYI
PLayerItemLevel = 169, // NYI
GarrisonFollowILvl = 184,
HonorLevel = 193,
PrestigeLevel = 194
}
public enum CriteriaFlags
{
ShowProgressBar = 0x01,
Hidden = 0x02,
FailAchievement = 0x04,
ResetOnStart = 0x08,
IsDate = 0x10,
MoneyCounter = 0x20
}
public enum CriteriaTimedTypes : byte
{
Event = 1, // Timer Is Started By Internal Event With Id In Timerstartevent
Quest = 2, // Timer Is Started By Accepting Quest With Entry In Timerstartevent
SpellCaster = 5, // Timer Is Started By Casting A Spell With Entry In Timerstartevent
SpellTarget = 6, // Timer Is Started By Being Target Of Spell With Entry In Timerstartevent
Creature = 7, // Timer Is Started By Killing Creature With Entry In Timerstartevent
Item = 9, // Timer Is Started By Using Item With Entry In Timerstartevent
Unk = 10, // Unknown
Unk2 = 13, // Unknown
ScenarioStage = 14, // Timer is started by changing stages in a scenario
Max
}
public enum CriteriaTypes : byte
{
KillCreature = 0,
WinBg = 1,
// 2 - unused (Legion - 23420)
CompleteArchaeologyProjects = 3, // Struct { Uint32 Itemcount; }
SurveyGameobject = 4,
ReachLevel = 5,
ClearDigsite = 6,
ReachSkillLevel = 7,
CompleteAchievement = 8,
CompleteQuestCount = 9,
CompleteDailyQuestDaily = 10, // You Have To Complete A Daily Quest X Times In A Row
CompleteQuestsInZone = 11,
Currency = 12,
DamageDone = 13,
CompleteDailyQuest = 14,
CompleteBattleground = 15,
DeathAtMap = 16,
Death = 17,
DeathInDungeon = 18,
CompleteRaid = 19,
KilledByCreature = 20,
ManualCompleteCriteria = 21,
CompleteChallengeModeGuild = 22,
KilledByPlayer = 23,
FallWithoutDying = 24,
// 25 - unused (Legion - 23420)
DeathsFrom = 26,
CompleteQuest = 27,
BeSpellTarget = 28,
CastSpell = 29,
BgObjectiveCapture = 30,
HonorableKillAtArea = 31,
WinArena = 32,
PlayArena = 33,
LearnSpell = 34,
HonorableKill = 35,
OwnItem = 36,
WinRatedArena = 37,
HighestTeamRating = 38,
HighestPersonalRating = 39,
LearnSkillLevel = 40,
UseItem = 41,
LootItem = 42,
ExploreArea = 43,
OwnRank = 44,
BuyBankSlot = 45,
GainReputation = 46,
GainExaltedReputation = 47,
VisitBarberShop = 48,
EquipEpicItem = 49,
RollNeedOnLoot = 50, /// Todo Itemlevel Is Mentioned In Text But Not Present In Dbc
RollGreedOnLoot = 51,
HkClass = 52,
HkRace = 53,
DoEmote = 54,
HealingDone = 55,
GetKillingBlows = 56, /// Todo In Some Cases Map Not Present, And In Some Cases Need Do Without Die
EquipItem = 57,
// 58 - unused (Legion - 23420)
MoneyFromVendors = 59,
GoldSpentForTalents = 60,
NumberOfTalentResets = 61,
MoneyFromQuestReward = 62,
GoldSpentForTravelling = 63,
DefeatCreatureGroup = 64,
GoldSpentAtBarber = 65,
GoldSpentForMail = 66,
LootMoney = 67,
UseGameobject = 68,
BeSpellTarget2 = 69,
SpecialPvpKill = 70,
CompleteChallengeMode = 71,
FishInGameobject = 72,
SendEvent = 73,
OnLogin = 74,
LearnSkilllineSpells = 75,
WinDuel = 76,
LoseDuel = 77,
KillCreatureType = 78,
CookRecipesGuild = 79,
GoldEarnedByAuctions = 80,
EarnPetBattleAchievementPoints = 81,
CreateAuction = 82,
HighestAuctionBid = 83,
WonAuctions = 84,
HighestAuctionSold = 85,
HighestGoldValueOwned = 86,
GainReveredReputation = 87,
GainHonoredReputation = 88,
KnownFactions = 89,
LootEpicItem = 90,
ReceiveEpicItem = 91,
SendEventScenario = 92,
RollNeed = 93,
RollGreed = 94,
ReleaseSpirit = 95,
OwnPet = 96,
GarrisonCompleteDungeonEncounter = 97,
// 98 - unused (Legion - 23420)
// 99 - unused (Legion - 23420)
// 100 - unused (Legion - 23420)
HighestHitDealt = 101,
HighestHitReceived = 102,
TotalDamageReceived = 103,
HighestHealCasted = 104,
TotalHealingReceived = 105,
HighestHealingReceived = 106,
QuestAbandoned = 107,
FlightPathsTaken = 108,
LootType = 109,
CastSpell2 = 110, /// Todo Target Entry Is Missing
// 111 - unused (Legion - 23420)
LearnSkillLine = 112,
EarnHonorableKill = 113,
AcceptedSummonings = 114,
EarnAchievementPoints = 115,
// 116 - unused (Legion - 23420)
// 117 - unused (Legion - 23420)
CompleteLfgDungeon = 118,
UseLfdToGroupWithPlayers = 119,
LfgVoteKicksInitiatedByPlayer = 120,
LfgVoteKicksNotInitByPlayer = 121,
BeKickedFromLfg = 122,
LfgLeaves = 123,
SpentGoldGuildRepairs = 124,
ReachGuildLevel = 125,
CraftItemsGuild = 126,
CatchFromPool = 127,
BuyGuildBankSlots = 128,
EarnGuildAchievementPoints = 129,
WinRatedBattleground = 130,
// 131 - unused (Legion - 23420)
ReachBgRating = 132,
BuyGuildTabard = 133,
CompleteQuestsGuild = 134,
HonorableKillsGuild = 135,
KillCreatureTypeGuild = 136,
CountOfLfgQueueBoostsByTank = 137,
CompleteGuildChallengeType = 138, //Struct { Flag Flag; Uint32 Count; } 1: Guild Dungeon, 2:Guild Challenge, 3:Guild Battlefield
CompleteGuildChallenge = 139, //Struct { Uint32 Count; } Guild Challenge
// 140 - 1 criteria (16883), unused (Legion - 23420)
// 141 - 1 criteria (16884), unused (Legion - 23420)
// 142 - 1 criteria (16881), unused (Legion - 23420)
// 143 - 1 criteria (16882), unused (Legion - 23420)
// 144 - 1 criteria (17386), unused (Legion - 23420)
LfrDungeonsCompleted = 145,
LfrLeaves = 146,
LfrVoteKicksInitiatedByPlayer = 147,
LfrVoteKicksNotInitByPlayer = 148,
BeKickedFromLfr = 149,
CountOfLfrQueueBoostsByTank = 150,
CompleteScenarioCount = 151,
CompleteScenario = 152,
ReachAreatriggerWithActionset = 153,
// 154 - unused (Legion - 23420)
OwnBattlePet = 155,
OwnBattlePetCount = 156,
CaptureBattlePet = 157,
WinPetBattle = 158,
// 159 - 2 criterias (22312,22314), unused (Legion - 23420)
LevelBattlePet = 160,
CaptureBattlePetCredit = 161, // Triggers A Quest Credit
LevelBattlePetCredit = 162, // Triggers A Quest Credit
EnterArea = 163, // Triggers A Quest Credit
LeaveArea = 164, // Triggers A Quest Credit
CompleteDungeonEncounter = 165,
// 166 - unused (Legion - 23420)
PlaceGarrisonBuilding = 167,
UpgradeGarrisonBuilding = 168,
ConstructGarrisonBuilding = 169,
UpgradeGarrison = 170,
StartGarrisonMission = 171,
StartOrderHallMission = 172,
CompleteGarrisonMissionCount = 173,
CompleteGarrisonMission = 174,
RecruitGarrisonFollowerCount = 175,
RecruitGarrisonFollower = 176,
// 177 - 0 criterias (Legion - 23420)
LearnGarrisonBlueprintCount = 178,
// 179 - 0 criterias (Legion - 23420)
// 180 - 0 criterias (Legion - 23420)
// 181 - 0 criterias (Legion - 23420)
CompleteGarrisonShipment = 182,
RaiseGarrisonFollowerItemLevel = 183,
RaiseGarrisonFollowerLevel = 184,
OwnToy = 185,
OwnToyCount = 186,
RecruitGarrisonFollowerWithQuality = 187,
// 188 - 0 criterias (Legion - 23420)
OwnHeirlooms = 189,
ArtifactPowerEarned = 190,
ArtifactTraitsUnlocked = 191,
HonorLevelReached = 194,
PrestigeReached = 195,
// 196 - CRITERIA_TYPE_REACH_LEVEL_2 or something
// 197 - Order Hall Advancement related
OrderHallTalentLearned = 198,
AppearanceUnlockedBySlot = 199,
OrderHallRecruitTyoop = 200,
// 201 - 0 criterias (Legion - 23420)
// 202 - 0 criterias (Legion - 23420)
CompleteWorldQuest = 203,
// 204 - Special criteria type to award players for some external events? Comes with what looks like an identifier, so guessing it's not unique.
TotalTypes = 208
}
public enum CriteriaDataType
{
None = 0,
TCreature = 1,
TPlayerClassRace = 2,
TPlayerLessHealth = 3,
SAura = 5,
TAura = 7,
Value = 8,
TLevel = 9,
TGender = 10,
Script = 11,
// Reuse
MapPlayerCount = 13,
TTeam = 14,
SDrunk = 15,
Holiday = 16,
BgLossTeamScore = 17,
InstanceScript = 18,
SEquippedItem = 19,
MapId = 20,
SPlayerClassRace = 21,
// Reuse
SKnownTitle = 23,
GameEvent = 24,
SItemQuality = 25,
Max = 25
}
public enum ProgressType
{
Set,
Accumulate,
Highest
}
}
+62
View File
@@ -0,0 +1,62 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum AreaTriggerFlags
{
HasAbsoluteOrientation = 0x01, // Nyi
HasDynamicShape = 0x02, // Implemented For Spheres
HasAttached = 0x04,
HasFaceMovementDir = 0x08,
HasFollowsTerrain = 0x010, // Nyi
Unk1 = 0x020,
HasTargetRollPitchYaw = 0x040, // Nyi
Unk2 = 0x080,
Unk3 = 0x100,
Unk4 = 0x200,
Unk5 = 0x400
}
public enum AreaTriggerTypes
{
Sphere = 0,
Box = 1,
Unk = 2,
Polygon = 3,
Cylinder = 4,
Max = 5
}
public enum AreaTriggerActionTypes
{
Cast = 0,
AddAura = 1,
Max = 2
}
public enum AreaTriggerActionUserTypes
{
Any = 0,
Friend = 1,
Enemy = 2,
Raid = 3,
Party = 4,
Caster = 5,
Max = 6
}
}
+50
View File
@@ -0,0 +1,50 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum AuctionError
{
Ok = 0,
Inventory = 1,
DatabaseError = 2,
NotEnoughtMoney = 3,
ItemNotFound = 4,
HigherBid = 5,
BidIncrement = 7,
BidOwn = 10,
RestrictedAccount = 13
}
public enum AuctionAction
{
SellItem = 0,
Cancel = 1,
PlaceBid = 2
}
public enum MailAuctionAnswers
{
Outbidded = 0,
Won = 1,
Successful = 2,
Expired = 3,
CancelledToBidder = 4,
Canceled = 5,
SalePending = 6
}
}
@@ -0,0 +1,133 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum ResponseCodes
{
Success = 0,
Failure = 1,
Cancelled = 2,
Disconnected = 3,
FailedToConnect = 4,
Connected = 5,
VersionMismatch = 6,
CstatusConnecting = 7,
CstatusNegotiatingSecurity = 8,
CstatusNegotiationComplete = 9,
CstatusNegotiationFailed = 10,
CstatusAuthenticating = 11,
RealmListInProgress = 12,
RealmListSuccess = 13,
RealmListFailed = 14,
RealmListInvalid = 15,
RealmListRealmNotFound = 16,
AccountCreateInProgress = 17,
AccountCreateSuccess = 18,
AccountCreateFailed = 19,
CharListRetrieving = 20,
CharListRetrieved = 21,
CharListFailed = 22,
CharCreateInProgress = 23,
CharCreateSuccess = 24,
CharCreateError = 25,
CharCreateFailed = 26,
CharCreateNameInUse = 27,
CharCreateDisabled = 28,
CharCreatePvpTeamsViolation = 29,
CharCreateServerLimit = 30,
CharCreateAccountLimit = 31,
CharCreateServerQueue = 32,
CharCreateOnlyExisting = 33,
CharCreateExpansion = 34,
CharCreateExpansionClass = 35,
CharCreateLevelRequirement = 36,
CharCreateUniqueClassLimit = 37,
CharCreateCharacterInGuild = 38,
CharCreateRestrictedRaceclass = 39,
CharCreateCharacterChooseRace = 40,
CharCreateCharacterArenaLeader = 41,
CharCreateCharacterDeleteMail = 42,
CharCreateCharacterSwapFaction = 43,
CharCreateCharacterRaceOnly = 44,
CharCreateCharacterGoldLimit = 45,
CharCreateForceLogin = 46,
CharCreateTrial = 47,
CharCreateTimeout = 48,
CharCreateThrottle = 49,
CharDeleteInProgress = 50,
CharDeleteSuccess = 51,
CharDeleteFailed = 52,
CharDeleteFailedLockedForTransfer = 53,
CharDeleteFailedGuildLeader = 54,
CharDeleteFailedArenaCaptain = 55,
CharDeleteFailedHasHeirloomOrMail = 56,
CharDeleteFailedUpgradeInProgress = 57,
CharDeleteFailedHasWowToken = 58,
CharDeleteFailedVasTransactionInProgress = 59,
CharLoginInProgress = 60,
CharLoginSuccess = 61,
CharLoginNoWorld = 62,
CharLoginDuplicateCharacter = 63,
CharLoginNoInstances = 64,
CharLoginFailed = 65,
CharLoginDisabled = 66,
CharLoginNoCharacter = 67,
CharLoginLockedForTransfer = 68,
CharLoginLockedByBilling = 69,
CharLoginLockedByMobileAh = 70,
CharLoginTemporaryGmLock = 71,
CharLoginLockedByCharacterUpgrade = 72,
CharLoginLockedByRevokedCharacterUpgrade = 73,
CharLoginLockedByRevokedVasTransaction = 74,
CharNameSuccess = 75,
CharNameFailure = 76,
CharNameNoName = 77,
CharNameTooShort = 78,
CharNameTooLong = 79,
CharNameInvalidCharacter = 80,
CharNameMixedLanguages = 81,
CharNameProfane = 82,
CharNameReserved = 83,
CharNameInvalidApostrophe = 84,
CharNameMultipleApostrophes = 85,
CharNameThreeConsecutive = 86,
CharNameInvalidSpace = 87,
CharNameConsecutiveSpaces = 88,
CharNameRussianConsecutiveSilentCharacters = 89,
CharNameRussianSilentCharacterAtBeginningOrEnd = 90,
CharNameDeclensionDoesntMatchBaseName = 91
}
public enum CharacterUndeleteResult
{
Ok = 0,
Cooldown = 1,
CharCreate = 2,
Disabled = 3,
NameTakenByThisAccount = 4,
Unknown = 5
}
}
@@ -0,0 +1,668 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum BattlenetRpcErrorCode : uint
{
Ok = 0x00000000,
Internal = 0x00000001,
TimedOut = 0x00000002,
Denied = 0x00000003,
NotExists = 0x00000004,
NotStarted = 0x00000005,
InProgress = 0x00000006,
InvalidArgs = 0x00000007,
InvalidSubscriber = 0x00000008,
WaitingForDependency = 0x00000009,
NoAuth = 0x0000000a,
ParentalControlRestriction = 0x0000000b,
NoGameAccount = 0x0000000c,
NotImplemented = 0x0000000d,
ObjectRemoved = 0x0000000e,
InvalidEntityId = 0x0000000f,
InvalidEntityAccountId = 0x00000010,
InvalidEntityGameAccountId = 0x00000011,
InvalidAgentId = 0x00000013,
InvalidTargetId = 0x00000014,
ModuleNotLoaded = 0x00000015,
ModuleNoEntryPoint = 0x00000016,
ModuleSignatureIncorrect = 0x00000017,
ModuleCreateFailed = 0x00000018,
NoProgram = 0x00000019,
ApiNotReady = 0x0000001b,
BadVersion = 0x0000001c,
AttributeTooManyAttributesSet = 0x0000001d,
AttributeMaxSizeExceeded = 0x0000001e,
AttributeQuotaExceeded = 0x0000001f,
ServerPoolServerDisappeared = 0x00000020,
ServerIsPrivate = 0x00000021,
Disabled = 0x00000022,
ModuleNotFound = 0x00000024,
ServerBusy = 0x00000025,
NoBattletag = 0x00000026,
IncompleteProfanityFilters = 0x00000027,
InvalidRegion = 0x00000028,
ExistsAlready = 0x00000029,
InvalidServerThumbprint = 0x0000002a,
PhoneLock = 0x0000002b,
Squelched = 0x0000002c,
TargetOffline = 0x0000002d,
BadServer = 0x0000002e,
NoCookie = 0x0000002f,
ExpiredCookie = 0x00000030,
TokenNotFound = 0x00000031,
GameAccountNoTime = 0x00000032,
GameAccountNoPlan = 0x00000033,
GameAccountBanned = 0x00000034,
GameAccountSuspended = 0x00000035,
GameAccountAlreadySelected = 0x00000036,
GameAccountCancelled = 0x00000037,
GameAccountCreationDisabled = 0x00000038,
GameAccountLocked = 0x00000039,
SessionDuplicate = 0x0000003c,
SessionDisconnected = 0x0000003d,
SessionDataChanged = 0x0000003e,
SessionUpdateFailed = 0x0000003f,
SessionNotFound = 0x00000040,
AdminKick = 0x00000046,
UnplannedMaintenance = 0x00000047,
PlannedMaintenance = 0x00000048,
ServiceFailureAccount = 0x00000049,
ServiceFailureSession = 0x0000004a,
ServiceFailureAuth = 0x0000004b,
ServiceFailureRisk = 0x0000004c,
BadProgram = 0x0000004d,
BadLocale = 0x0000004e,
BadPlatform = 0x0000004f,
LocaleRestrictedLa = 0x00000051,
LocaleRestrictedRu = 0x00000052,
LocaleRestrictedKo = 0x00000053,
LocaleRestrictedTw = 0x00000054,
LocaleRestricted = 0x00000055,
AccountNeedsMaintenance = 0x00000056,
ModuleApiError = 0x00000057,
ModuleBadCacheHandle = 0x00000058,
ModuleAlreadyLoaded = 0x00000059,
NetworkBlacklisted = 0x0000005a,
EventProcessorSlow = 0x0000005b,
ServerShuttingDown = 0x0000005c,
NetworkNotPrivileged = 0x0000005d,
TooManyOutstandingRequests = 0x0000005e,
NoAccountRegistered = 0x0000005f,
BattlenetAccountBanned = 0x00000060,
OkDeprecated = 0x00000064,
ServerInModeZombie = 0x00000065,
LogonModuleRequired = 0x000001f4,
LogonModuleNotConfigured = 0x000001f5,
LogonModuleTimeout = 0x000001f6,
LogonAgreementRequired = 0x000001fe,
LogonAgreementNotConfigured = 0x000001ff,
LogonInvalidServerProof = 0x00000208,
LogonWebVerifyTimeout = 0x00000209,
LogonInvalidAuthToken = 0x0000020a,
ChallengeSmsTooSoon = 0x00000258,
ChallengeSmsThrottled = 0x00000259,
ChallengeSmsTempOutage = 0x0000025a,
ChallengeNoChallenge = 0x0000025b,
ChallengeNotPicked = 0x0000025c,
ChallengeAlreadyPicked = 0x0000025d,
ChallengeInProgress = 0x0000025e,
ConfigFormatInvalid = 0x000002bc,
ConfigNotFound = 0x000002bd,
ConfigRetrieveFailed = 0x000002be,
NetworkModuleBusy = 0x000003e8,
NetworkModuleCantResolveAddress = 0x000003e9,
NetworkModuleConnectionRefused = 0x000003ea,
NetworkModuleInterrupted = 0x000003eb,
NetworkModuleConnectionAborted = 0x000003ec,
NetworkModuleConnectionReset = 0x000003ed,
NetworkModuleBadAddress = 0x000003ee,
NetworkModuleNotReady = 0x000003ef,
NetworkModuleAlreadyConnected = 0x000003f0,
NetworkModuleCantCreateSocket = 0x000003f1,
NetworkModuleNetworkUnreachable = 0x000003f2,
NetworkModuleSocketPermissionDenied = 0x000003f3,
NetworkModuleNotInitialized = 0x000003f4,
NetworkModuleNoSslCertificateForPeer = 0x000003f5,
NetworkModuleNoSslCommonNameForCertificate = 0x000003f6,
NetworkModuleSslCommonNameDoesNotMatchRemoteEndpoint = 0x000003f7,
NetworkModuleSocketClosed = 0x000003f8,
NetworkModuleSslPeerIsNotRegisteredInCertbundle = 0x000003f9,
NetworkModuleSslInitializeLowFirst = 0x000003fa,
NetworkModuleSslCertBundleReadError = 0x000003fb,
NetworkModuleNoCertBundle = 0x000003fc,
NetworkModuleFailedToDownloadCertBundle = 0x000003fd,
NetworkModuleNotReadyToRead = 0x000003fe,
NetworkModuleOpensslX509Ok = 0x000004b0,
NetworkModuleOpensslX509UnableToGetIssuerCert = 0x000004b1,
NetworkModuleOpensslX509UnableToGetCrl = 0x000004b2,
NetworkModuleOpensslX509UnableToDecryptCertSignature = 0x000004b3,
NetworkModuleOpensslX509UnableToDecryptCrlSignature = 0x000004b4,
NetworkModuleOpensslX509UnableToDecodeIssuerPublicKey = 0x000004b5,
NetworkModuleOpensslX509CertSignatureFailure = 0x000004b6,
NetworkModuleOpensslX509CrlSignatureFailure = 0x000004b7,
NetworkModuleOpensslX509CertNotYetValid = 0x000004b8,
NetworkModuleOpensslX509CertHasExpired = 0x000004b9,
NetworkModuleOpensslX509CrlNotYetValid = 0x000004ba,
NetworkModuleOpensslX509CrlHasExpired = 0x000004bb,
NetworkModuleOpensslX509InCertNotBeforeField = 0x000004bc,
NetworkModuleOpensslX509InCertNotAfterField = 0x000004bd,
NetworkModuleOpensslX509InCrlLastUpdateField = 0x000004be,
NetworkModuleOpensslX509InCrlNextUpdateField = 0x000004bf,
NetworkModuleOpensslX509OutOfMem = 0x000004c0,
NetworkModuleOpensslX509DepthZeroSelfSignedCert = 0x000004c1,
NetworkModuleOpensslX509SelfSignedCertInChain = 0x000004c2,
NetworkModuleOpensslX509UnableToGetIssuerCertLocally = 0x000004c3,
NetworkModuleOpensslX509UnableToVerifyLeafSignature = 0x000004c4,
NetworkModuleOpensslX509CertChainTooLong = 0x000004c5,
NetworkModuleOpensslX509CertRevoked = 0x000004c6,
NetworkModuleOpensslX509InvalidCa = 0x000004c7,
NetworkModuleOpensslX509PathLengthExceeded = 0x000004c8,
NetworkModuleOpensslX509InvalidPurpose = 0x000004c9,
NetworkModuleOpensslX509CertUntrusted = 0x000004ca,
NetworkModuleOpensslX509CertRejected = 0x000004cb,
NetworkModuleOpensslX509SubjectIssuerMismatch = 0x000004cc,
NetworkModuleOpensslX509AkidSkidMismatch = 0x000004cd,
NetworkModuleOpensslX509AkidIssuerSerialMismatch = 0x000004ce,
NetworkModuleOpensslX509KeyusageNoCertsign = 0x000004cf,
NetworkModuleOpensslX509ApplicationVerification = 0x000004d0,
NetworkModuleSchannelCannotFindOsVersion = 0x00000514,
NetworkModuleSchannelOsNotSupported = 0x00000515,
NetworkModuleSchannelLoadlibraryFail = 0x00000516,
NetworkModuleSchannelCannotFindInterface = 0x00000517,
NetworkModuleSchannelInitFail = 0x00000518,
NetworkModuleSchannelFunctionCallFail = 0x00000519,
NetworkModuleSchannelX509UnableToGetIssuerCert = 0x00000546,
NetworkModuleSchannelX509TimeInvalid = 0x00000547,
NetworkModuleSchannelX509SignatureInvalid = 0x00000548,
NetworkModuleSchannelX509UnableToVerifyLeafSignature = 0x00000549,
NetworkModuleSchannelX509SelfSignedLeafCertificate = 0x0000054a,
NetworkModuleSchannelX509UnhandledError = 0x0000054b,
NetworkModuleSchannelX509SelfSignedCertInChain = 0x0000054c,
WebsocketHandshake = 0x00000578,
NetworkModuleDurangoUnknown = 0x000005dc,
NetworkModuleDurangoMalformedHostName = 0x000005dd,
NetworkModuleDurangoInvalidConnectionResponse = 0x000005de,
NetworkModuleDurangoInvalidCaCert = 0x000005df,
RpcWriteFailed = 0x00000bb8,
RpcServiceNotBound = 0x00000bb9,
RpcTooManyRequests = 0x00000bba,
RpcPeerUnknown = 0x00000bbb,
RpcPeerUnavailable = 0x00000bbc,
RpcPeerDisconnected = 0x00000bbd,
RpcRequestTimedOut = 0x00000bbe,
RpcConnectionTimedOut = 0x00000bbf,
RpcMalformedResponse = 0x00000bc0,
RpcAccessDenied = 0x00000bc1,
RpcInvalidService = 0x00000bc2,
RpcInvalidMethod = 0x00000bc3,
RpcInvalidObject = 0x00000bc4,
RpcMalformedRequest = 0x00000bc5,
RpcQuotaExceeded = 0x00000bc6,
RpcNotImplemented = 0x00000bc7,
RpcServerError = 0x00000bc8,
RpcShutdown = 0x00000bc9,
RpcDisconnect = 0x00000bca,
RpcDisconnectIdle = 0x00000bcb,
RpcProtocolError = 0x00000bcc,
RpcNotReady = 0x00000bcd,
RpcForwardFailed = 0x00000bce,
RpcEncryptionFailed = 0x00000bcf,
RpcInvalidAddress = 0x00000bd0,
RpcMethodDisabled = 0x00000bd1,
RpcShardNotFound = 0x00000bd2,
RpcInvalidConnectionId = 0x00000bd3,
RpcNotConnected = 0x00000bd4,
RpcInvalidConnectionState = 0x00000bd5,
RpcServiceAlreadyRegistered = 0x00000bd6,
PresenceInvalidFieldId = 0x00000fa0,
PresenceNoValidSubscribers = 0x00000fa1,
PresenceAlreadySubscribed = 0x00000fa2,
PresenceConsumerNotFound = 0x00000fa3,
PresenceConsumerIsNull = 0x00000fa4,
PresenceTemporaryOutage = 0x00000fa5,
PresenceTooManySubscriptions = 0x00000fa6,
PresenceSubscriptionCancelled = 0x00000fa7,
PresenceRichPresenceParseError = 0x00000fa8,
PresenceRichPresenceXmlError = 0x00000fa9,
PresenceRichPresenceLoadError = 0x00000faa,
FriendsTooManySentInvitations = 0x00001389,
FriendsTooManyReceivedInvitations = 0x0000138a,
FriendsFriendshipAlreadyExists = 0x0000138b,
FriendsFriendshipDoesNotExist = 0x0000138c,
FriendsInvitationAlreadyExists = 0x0000138d,
FriendsInvalidInvitation = 0x0000138e,
FriendsAlreadySubscribed = 0x0000138f,
FriendsAccountBlocked = 0x00001391,
FriendsNotSubscribed = 0x00001392,
FriendsInvalidRoleId = 0x00001393,
FriendsDisabledRoleId = 0x00001394,
FriendsNoteMaxSizeExceeded = 0x00001395,
FriendsUpdateFriendStateFailed = 0x00001396,
FriendsInviteeAtMaxFriends = 0x00001397,
FriendsInviterAtMaxFriends = 0x00001398,
PlatformStorageFileWriteDenied = 0x00001770,
WhisperUndeliverable = 0x00001b58,
WhisperMaxSizeExceeded = 0x00001b59,
UserManagerAlreadyBlocked = 0x00001f40,
UserManagerNotBlocked = 0x00001f41,
UserManagerCannotBlockSelf = 0x00001f42,
UserManagerAlreadyRegistered = 0x00001f43,
UserManagerNotRegistered = 0x00001f44,
UserManagerTooManyBlockedEntities = 0x00001f45,
UserManagerTooManyIds = 0x00001f47,
UserManagerBlockRecordUnavailable = 0x00001f4f,
UserManagerBlockEntityFailed = 0x00001f50,
UserManagerUnblockEntityFailed = 0x00001f51,
UserManagerCannotBlockFriend = 0x00001f53,
SocialNetworkDbException = 0x00002328,
SocialNetworkDenialFromProvider = 0x00002329,
SocialNetworkInvalidSnsId = 0x0000232a,
SocialNetworkCantSendToProvider = 0x0000232b,
SocialNetworkExCommFailed = 0x0000232c,
SocialNetworkDisabled = 0x0000232d,
SocialNetworkMissingRequestParam = 0x0000232e,
SocialNetworkUnsupportedOauthVersion = 0x0000232f,
ChannelFull = 0x00002710,
ChannelNoChannel = 0x00002711,
ChannelNotMember = 0x00002712,
ChannelAlreadyMember = 0x00002713,
ChannelNoSuchMember = 0x00002714,
ChannelInvalidChannelId = 0x00002716,
ChannelNoSuchInvitation = 0x00002718,
ChannelTooManyInvitations = 0x00002719,
ChannelInvitationAlreadyExists = 0x0000271a,
ChannelInvalidChannelSize = 0x0000271b,
ChannelInvalidRoleId = 0x0000271c,
ChannelRoleNotAssignable = 0x0000271d,
ChannelInsufficientPrivileges = 0x0000271e,
ChannelInsufficientPrivacyLevel = 0x0000271f,
ChannelInvalidPrivacyLevel = 0x00002720,
ChannelTooManyChannelsJoined = 0x00002721,
ChannelInvitationAlreadySubscribed = 0x00002722,
ChannelInvalidChannelDelegate = 0x00002723,
ChannelSlotAlreadyReserved = 0x00002724,
ChannelSlotNotReserved = 0x00002725,
ChannelNoReservedSlotsAvailable = 0x00002726,
ChannelInvalidRoleSet = 0x00002727,
ChannelRequireFriendValidation = 0x00002728,
ChannelMemberOffline = 0x00002729,
ChannelReceivedTooManyInvitations = 0x0000272a,
ChannelInvitationInvalidGameAccountSelected = 0x0000272b,
ChannelUnreachable = 0x0000272c,
ChannelInvitationNotSubscribed = 0x0000272d,
ChannelInvalidMessageSize = 0x0000272e,
ChannelMaxMessageSizeExceeded = 0x0000272f,
ChannelConfigNotFound = 0x00002730,
ChannelInvalidChannelType = 0x00002731,
LocalStorageFileOpenError = 0x00002af8,
LocalStorageFileCreateError = 0x00002af9,
LocalStorageFileReadError = 0x00002afa,
LocalStorageFileWriteError = 0x00002afb,
LocalStorageFileDeleteError = 0x00002afc,
LocalStorageFileCopyError = 0x00002afd,
LocalStorageFileDecompressError = 0x00002afe,
LocalStorageFileHashMismatch = 0x00002aff,
LocalStorageFileUsageMismatch = 0x00002b00,
LocalStorageDatabaseInitError = 0x00002b01,
LocalStorageDatabaseNeedsRebuild = 0x00002b02,
LocalStorageDatabaseInsertError = 0x00002b03,
LocalStorageDatabaseLookupError = 0x00002b04,
LocalStorageDatabaseUpdateError = 0x00002b05,
LocalStorageDatabaseDeleteError = 0x00002b06,
LocalStorageDatabaseShrinkError = 0x00002b07,
LocalStorageCacheCrawlError = 0x00002b08,
LocalStorageDatabaseIndexTriggerError = 0x00002b09,
LocalStorageDatabaseRebuildInProgress = 0x00002b0a,
LocalStorageOkButNotInCache = 0x00002b0b,
LocalStorageDatabaseRebuildInterrupted = 0x00002b0d,
LocalStorageDatabaseNotInitialized = 0x00002b0e,
LocalStorageDirectoryCreateError = 0x00002b0f,
LocalStorageFilekeyNotFound = 0x00002b10,
LocalStorageNotAvailableOnServer = 0x00002b11,
RegistryCreateKeyError = 0x00002ee0,
RegistryOpenKeyError = 0x00002ee1,
RegistryReadError = 0x00002ee2,
RegistryWriteError = 0x00002ee3,
RegistryTypeError = 0x00002ee4,
RegistryDeleteError = 0x00002ee5,
RegistryEncryptError = 0x00002ee6,
RegistryDecryptError = 0x00002ee7,
RegistryKeySizeError = 0x00002ee8,
RegistryValueSizeError = 0x00002ee9,
RegistryNotFound = 0x00002eeb,
RegistryMalformedString = 0x00002eec,
InterfaceAlreadyConnected = 0x000032c8,
InterfaceNotReady = 0x000032c9,
InterfaceOptionKeyTooLarge = 0x000032ca,
InterfaceOptionValueTooLarge = 0x000032cb,
InterfaceOptionKeyInvalidUtf8String = 0x000032cc,
InterfaceOptionValueInvalidUtf8String = 0x000032cd,
HttpCouldntResolve = 0x000036b0,
HttpCouldntConnect = 0x000036b1,
HttpTimeout = 0x000036b2,
HttpFailed = 0x000036b3,
HttpMalformedUrl = 0x000036b4,
HttpDownloadAborted = 0x000036b5,
HttpCouldntWriteFile = 0x000036b6,
HttpTooManyRedirects = 0x000036b7,
HttpCouldntOpenFile = 0x000036b8,
HttpCouldntCreateFile = 0x000036b9,
HttpCouldntReadFile = 0x000036ba,
HttpCouldntRenameFile = 0x000036bb,
HttpCouldntCreateDirectory = 0x000036bc,
HttpCurlIsNotReady = 0x000036bd,
HttpCancelled = 0x000036be,
HttpFileNotFound = 0x00003844,
AccountMissingConfig = 0x00004650,
AccountDataNotFound = 0x00004651,
AccountAlreadySubscribed = 0x00004652,
AccountNotSubscribed = 0x00004653,
AccountFailedToParseTimezoneData = 0x00004654,
AccountLoadFailed = 0x00004655,
AccountLoadCancelled = 0x00004656,
AccountDatabaseInvalidateFailed = 0x00004657,
AccountCacheInvalidateFailed = 0x00004658,
AccountSubscriptionPending = 0x00004659,
AccountUnknownRegion = 0x0000465a,
AccountDataFailedToParse = 0x0000465b,
AccountUnderage = 0x0000465c,
AccountIdentityCheckPending = 0x0000465d,
AccountIdentityUnverified = 0x0000465e,
DatabaseBindingCountMismatch = 0x00004a38,
DatabaseBindingParseFail = 0x00004a39,
DatabaseResultsetColumnsMismatch = 0x00004a3a,
DatabaseDeadlock = 0x00004a3b,
DatabaseDuplicateKey = 0x00004a3c,
DatabaseCannotConnect = 0x00004a3d,
DatabaseStatementFailed = 0x00004a3e,
DatabaseTransactionNotStarted = 0x00004a3f,
DatabaseTransactionNotEnded = 0x00004a40,
DatabaseTransactionLeak = 0x00004a41,
DatabaseTransactionStateBad = 0x00004a42,
DatabaseServerGone = 0x00004a43,
DatabaseQueryTimeout = 0x00004a44,
DatabaseBindingNotNullable = 0x00004a9c,
DatabaseBindingInvalidInteger = 0x00004a9d,
DatabaseBindingInvalidFloat = 0x00004a9e,
DatabaseBindingInvalidTemporal = 0x00004a9f,
DatabaseBindingInvalidProtobuf = 0x00004aa0,
PartyInvalidPartyId = 0x00004e20,
PartyAlreadyInParty = 0x00004e21,
PartyNotInParty = 0x00004e22,
PartyInvitationUndeliverable = 0x00004e23,
PartyInvitationAlreadyExists = 0x00004e24,
PartyTooManyPartyInvitations = 0x00004e25,
PartyTooManyReceivedInvitations = 0x00004e26,
PartyNoSuchType = 0x00004e27,
GamesNoSuchFactory = 0x000055f0,
GamesNoSuchGame = 0x000055f1,
GamesNoSuchRequest = 0x000055f2,
GamesNoSuchPartyMember = 0x000055f3,
ResourcesOffline = 0x000059d8,
GameServerCreateGameRefused = 0x00005dc0,
GameServerAddPlayersRefused = 0x00005dc1,
GameServerRemovePlayersRefused = 0x00005dc2,
GameServerFinishGameRefused = 0x00005dc3,
GameServerNoSuchGame = 0x00005dc4,
GameServerNoSuchPlayer = 0x00005dc5,
GameServerCreateGameRefusedTransient = 0x00005df2,
GameServerAddPlayersRefusedTransient = 0x00005df3,
GameServerRemovePlayersRefusedTransient = 0x00005df4,
GameServerFinishGameRefusedTransient = 0x00005df5,
GameServerCreateGameRefusedBusy = 0x00005e24,
GameServerAddPlayersRefusedBusy = 0x00005e25,
GameServerRemovePlayersRefusedBusy = 0x00005e26,
GameServerFinishGameRefusedBusy = 0x00005e27,
GameMasterInvalidFactory = 0x000061a8,
GameMasterInvalidGame = 0x000061a9,
GameMasterGameFull = 0x000061aa,
GameMasterRegisterFailed = 0x000061ab,
GameMasterNoGameServer = 0x000061ac,
GameMasterNoUtilityServer = 0x000061ad,
GameMasterNoGameVersion = 0x000061ae,
GameMasterGameJoinFailed = 0x000061af,
GameMasterAlreadyRegistered = 0x000061b0,
GameMasterNoFactory = 0x000061b1,
GameMasterMultipleGameVersions = 0x000061b2,
GameMasterInvalidPlayer = 0x000061b3,
GameMasterInvalidGameRequest = 0x000061b4,
GameMasterInsufficientPrivileges = 0x000061b5,
GameMasterAlreadyInGame = 0x000061b6,
GameMasterInvalidGameServerResponse = 0x000061b7,
GameMasterGameAccountLookupFailed = 0x000061b8,
GameMasterGameEntryCancelled = 0x000061b9,
GameMasterGameEntryAbortedClientDropped = 0x000061ba,
GameMasterGameEntryAbortedByService = 0x000061bb,
GameMasterNoAvailableCapacity = 0x000061bc,
GameMasterInvalidTeamId = 0x000061bd,
GameMasterCreationInProgress = 0x000061be,
NotificationInvalidClientId = 0x00006590,
NotificationDuplicateName = 0x00006591,
NotificationNameNotFound = 0x00006592,
NotificationInvalidServer = 0x00006593,
NotificationQuotaExceeded = 0x00006594,
NotificationInvalidNotificationType = 0x00006595,
NotificationUndeliverable = 0x00006596,
NotificationUndeliverableTemporary = 0x00006597,
AchievementsNothingToUpdate = 0x00006d60,
AchievementsInvalidParams = 0x00006d61,
AchievementsNotRegistered = 0x00006d62,
AchievementsNotReady = 0x00006d63,
AchievementsFailedToParseStaticData = 0x00006d64,
AchievementsUnknownId = 0x00006d65,
AchievementsMissingSnapshot = 0x00006d66,
AchievementsAlreadyRegistered = 0x00006d67,
AchievementsTooManyRegistrations = 0x00006d68,
AchievementsAlreadyInProgress = 0x00006d69,
AchievementsTemporaryOutage = 0x00006d6a,
AchievementsInvalidProgramid = 0x00006d6b,
AchievementsMissingRecord = 0x00006d6c,
AchievementsRegistrationPending = 0x00006d6d,
AchievementsEntityIdNotFound = 0x00006d6e,
AchievementsAchievementIdNotFound = 0x00006d6f,
AchievementsCriteriaIdNotFound = 0x00006d70,
AchievementsStaticDataMismatch = 0x00006d71,
AchievementsWrongThread = 0x00006d72,
AchievementsCallbackIsNull = 0x00006d73,
AchievementsAutoRegisterPending = 0x00006d74,
AchievementsNotInitialized = 0x00006d75,
AchievementsAchievementIdAlreadyExists = 0x00006d76,
AchievementsFailedToDownloadStaticData = 0x00006d77,
AchievementsStaticDataNotFound = 0x00006d78,
GameUtilityServerVariableRequestRefused = 0x000084d1,
GameUtilityServerWrongNumberOfVariablesReturned = 0x000084d2,
GameUtilityServerClientRequestRefused = 0x000084d3,
GameUtilityServerPresenceChannelCreatedRefused = 0x000084d4,
GameUtilityServerVariableRequestRefusedTransient = 0x00008502,
GameUtilityServerClientRequestRefusedTransient = 0x00008503,
GameUtilityServerPresenceChannelCreatedRefusedTransient = 0x00008504,
GameUtilityServerServerRequestRefusedTransient = 0x00008505,
GameUtilityServerVariableRequestRefusedBusy = 0x00008534,
GameUtilityServerClientRequestRefusedBusy = 0x00008535,
GameUtilityServerPresenceChannelCreatedRefusedBusy = 0x00008536,
GameUtilityServerServerRequestRefusedBusy = 0x00008537,
GameUtilityServerNoServer = 0x00008598,
IdentityInsufficientData = 0x0000a028,
IdentityTooManyResults = 0x0000a029,
IdentityBadId = 0x0000a02a,
IdentityNoAccountBlob = 0x0000a02b,
RiskChallengeAction = 0x0000a410,
RiskDelayAction = 0x0000a411,
RiskThrottleAction = 0x0000a412,
RiskAccountLocked = 0x0000a413,
RiskCsDenied = 0x0000a414,
RiskDisconnectAccount = 0x0000a415,
RiskCheckSkipped = 0x0000a416,
ReportUnavailable = 0x0000afc8,
ReportTooLarge = 0x0000afc9,
ReportUnknownType = 0x0000afca,
ReportAttributeInvalid = 0x0000afcb,
ReportAttributeQuotaExceeded = 0x0000afcc,
ReportUnconfirmed = 0x0000afcd,
ReportNotConnected = 0x0000afce,
ReportRejected = 0x0000afcf,
ReportTooManyRequests = 0x0000afd0,
AccountAlreadyRegisterd = 0x0000bb80,
AccountNotRegistered = 0x0000bb81,
AccountRegistrationPending = 0x0000bb82,
MemcachedClientNoError = 0x00010000,
MemcachedClientKeyNotFound = 0x00010001,
MemcachedKeyExists = 0x00010002,
MemcachedValueToLarge = 0x00010003,
MemcachedInvalidArgs = 0x00010004,
MemcachedItemNotStored = 0x00010005,
MemcachedNonNumericValue = 0x00010006,
MemcachedWrongServer = 0x00010007,
MemcachedAuthenticationError = 0x00010008,
MemcachedAuthenticationContinue = 0x00010009,
MemcachedUnknownCommand = 0x0001000a,
MemcachedOutOfMemory = 0x0001000b,
MemcachedNotSupported = 0x0001000c,
MemcachedInternalError = 0x0001000d,
MemcachedTemporaryFailure = 0x0001000e,
MemcachedClientAlreadyConnected = 0x000186a0,
MemcachedClientBadConfig = 0x000186a1,
MemcachedClientNotConnected = 0x000186a2,
MemcachedClientTimeout = 0x000186a3,
MemcachedClientAborted = 0x000186a4,
UtilServerFailedToSerialize = 0x80000064,
UtilServerDisconnectedFromBattlenet = 0x80000065,
UtilServerTimedOut = 0x80000066,
UtilServerNoMeteringData = 0x80000067,
UtilServerFailPermissionCheck = 0x80000068,
UtilServerUnknownRealm = 0x80000069,
UtilServerMissingSessionKey = 0x8000006a,
UtilServerMissingVirtualRealm = 0x8000006b,
UtilServerInvalidSessionKey = 0x8000006c,
UtilServerMissingRealmList = 0x8000006d,
UtilServerInvalidIdentityArgs = 0x8000006e,
UtilServerSessionObjectMissing = 0x8000006f,
UtilServerInvalidBnetSession = 0x80000070,
UtilServerInvalidVirtualRealm = 0x80000071,
UtilServerInvalidClientAddress = 0x80000072,
UtilServerFailedToSerializeResponse = 0x80000073,
UtilServerUnknownRequest = 0x80000074,
UtilServerUnableToGenerateJoinTicket = 0x80000075,
UtilServerUnableToGenerateRealmListTicket = 0x80000076,
UtilServerAccountDenied = 0x80000077,
UtilServerInvalidWowAccount = 0x80000078,
UtilServerUnableToStoreSession = 0x80000079,
UtilServerSessionAlreadyCreated = 0x8000007a,
UserServerFailedToSerialize = 0x800000c8,
UserServerDisconnectedFromUtil = 0x800000c9,
UserServerSessionDuplicate = 0x800000ca,
UserServerFailedToDisableBilling = 0x800000cb,
UserServerPlayerDisconnected = 0x800000cc,
UserServerFailedToParseAccountState = 0x800000cd,
UserServerAccountLoadCancelled = 0x800000ce,
UserServerBadPlatform = 0x800000cf,
UserServerBadVirtualRealm = 0x800000d0,
UserServerLocaleRestricted = 0x800000d1,
UserServerMissingPropass = 0x800000d2,
UserServerBadWowAccount = 0x800000d3,
UserServerBadBnetAccount = 0x800000d4,
UserServerFailedToParseGameAccountState = 0x800000d5,
UserServerFailedToParseGameTimeRemaining = 0x800000d6,
UserServerFailedToParseGameSessionInfo = 0x800000d7,
UserServerAccountStatePoorlyFormed = 0x800000d8,
UserServerGameAccountStatePoorlyFormed = 0x800000d9,
UserServerGameTimeRemainingPoorlyFormed = 0x800000da,
UserServerGameSessionInfoPoorlyFormed = 0x800000db,
UserServerBadSessionTrackerState = 0x800000dc,
UserServerFailedToParseCaisInfo = 0x800000dd,
UserServerGameSessionDisconnected = 0x800000de,
UserServerVersionMismatch = 0x800000df,
UserServerAccountSuspended = 0x800000e0,
UserServerNotPermittedOnRealm = 0x800000e1,
UserServerLoginFailedConnect = 0x800000e2,
WowServicesTimedOut = 0x8000012c,
WowServicesInvalidRealmListTicket = 0x8000012d,
WowServicesInvalidJoinTicket = 0x8000012e,
WowServicesInvalidServerAddresses = 0x8000012f,
WowServicesInvalidSecretBlob = 0x80000130,
WowServicesNoRealmJoinIpFound = 0x80000131,
WowServicesDeniedRealmListTicket = 0x80000132,
WowServicesMissingGameAccount = 0x80000133,
WowServicesLogonInvalidAuthToken = 0x80000134,
WowServicesNoAvailableRealms = 0x80000135,
WowServicesFailedToParseDispatch = 0x80000136,
WowServicesMissingMeteringFile = 0x80000137,
WowServicesLoginInvalidContentType = 0x80000138,
WowServicesLoginUnableToDecode = 0x80000139,
WowServicesLoginPostError = 0x8000013a,
WowServicesAuthenticatorParseFailed = 0x8000013b,
WowServicesLegalParseFailed = 0x8000013c,
WowServicesLoginAuthenticationParseFailed = 0x8000013d,
WowSerivcesUserMustAcceptLegal = 0x8000013e,
WowServicesDisconnected = 0x8000013f,
WowServicesNoHandlerForDispatch = 0x80000140,
WowServicesPreDispatchHandlerFailed = 0x80000141,
WowServicesCriticalStreamingError = 0x80000142,
WowServicesWorldLoadError = 0x80000143,
WowServicesLoginFailed = 0x80000144,
WowServicesLoginFailedOnChallenge = 0x80000145,
WowServicesNoPrepaidTime = 0x80000146,
WowServicesSubscriptionExpired = 0x80000147,
WowServicesCantConnect = 0x80000148,
}
}
@@ -0,0 +1,88 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum RealmFlags
{
None = 0x00,
VersionMismatch = 0x01,
Offline = 0x02,
SpecifyBuild = 0x04,
Unk1 = 0x08,
Unk2 = 0x10,
Recommended = 0x20,
New = 0x40,
Full = 0x80
}
public enum RealmType
{
Normal = 0,
PVP = 1,
Normal2 = 4,
RP = 6,
RPPVP = 8,
MaxType = 14,
FFAPVP = 16 // custom, free for all pvp mode like arena PvP in all zones except rest activated places and sanctuaries
// replaced by REALM_PVP in realm list
}
public enum RealmZones
{
Unknown = 0, // Any Language
Development = 1, // Any Language
UnitedStates = 2, // Extended-Latin
Oceanic = 3, // Extended-Latin
LatinAmerica = 4, // Extended-Latin
Tournament5 = 5, // Basic-Latin At Create, Any At Login
Korea = 6, // East-Asian
Tournament7 = 7, // Basic-Latin At Create, Any At Login
English = 8, // Extended-Latin
German = 9, // Extended-Latin
French = 10, // Extended-Latin
Spanish = 11, // Extended-Latin
Russian = 12, // Cyrillic
Tournament13 = 13, // Basic-Latin At Create, Any At Login
Taiwan = 14, // East-Asian
Tournament15 = 15, // Basic-Latin At Create, Any At Login
China = 16, // East-Asian
Cn1 = 17, // Basic-Latin At Create, Any At Login
Cn2 = 18, // Basic-Latin At Create, Any At Login
Cn3 = 19, // Basic-Latin At Create, Any At Login
Cn4 = 20, // Basic-Latin At Create, Any At Login
Cn5 = 21, // Basic-Latin At Create, Any At Login
Cn6 = 22, // Basic-Latin At Create, Any At Login
Cn7 = 23, // Basic-Latin At Create, Any At Login
Cn8 = 24, // Basic-Latin At Create, Any At Login
Tournament25 = 25, // Basic-Latin At Create, Any At Login
TestServer = 26, // Any Language
Tournament27 = 27, // Basic-Latin At Create, Any At Login
QaServer = 28, // Any Language
Cn9 = 29, // Basic-Latin At Create, Any At Login
TestServer2 = 30, // Any Language
Cn10 = 31, // Basic-Latin At Create, Any At Login
Ctc = 32,
Cnc = 33,
Cn14 = 34, // Basic-Latin At Create, Any At Login
Cn269 = 35, // Basic-Latin At Create, Any At Login
Cn37 = 36, // Basic-Latin At Create, Any At Login
Cn58 = 37 // Basic-Latin At Create, Any At Login
}
}
+62
View File
@@ -0,0 +1,62 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public struct BattlefieldSounds
{
public const uint HordeWins = 8454;
public const uint AllianceWins = 8455;
public const uint Start = 3439;
}
public enum BattleFieldObjectiveStates
{
Neutral = 0,
Alliance,
Horde,
NeutralAllianceChallenge,
NeutralHordeChallenge,
AllianceHordeChallenge,
HordeAllianceChallenge
}
public enum BFLeaveReason
{
Close = 1,
//BF_LEAVE_REASON_UNK1 = 2, (not used)
//BF_LEAVE_REASON_UNK2 = 4, (not used)
Exited = 8,
LowLevel = 10,
NotWhileInRaid = 15,
Deserter = 16
}
public enum BattlefieldState
{
Inactive = 0,
Warnup = 1,
InProgress = 2
}
public struct BattlefieldIds
{
public const uint WG = 1; // Wintergrasp battle
public const uint TB = 21; // Tol Barad
public const uint Ashran = 24; // Ashran
}
}
+386
View File
@@ -0,0 +1,386 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public struct BattlegroundConst
{
//Time Intervals
public const uint CheckPlayerPositionInverval = 1000; // Ms
public const uint ResurrectionInterval = 30000; // Ms
//RemindInterval = 10000, // Ms
public const uint InvitationRemindTime = 20000; // Ms
public const uint InviteAcceptWaitTime = 90000; // Ms
public const uint AutocloseBattleground = 120000; // Ms
public const uint MaxOfflineTime = 300; // Secs
public const uint RespawnOneDay = 86400; // Secs
public const uint RespawnImmediately = 0; // Secs
public const uint BuffRespawnTime = 180; // Secs
public const uint BattlegroundCountdownMax = 120; // Secs
public const uint ArenaCountdownMax = 60; // Secs
public const uint PlayerPositionUpdateInterval = 5; // secs
//EventIds
public const int EventIdFirst = 0;
public const int EventIdSecond = 1;
public const int EventIdThird = 2;
public const int EventIdFourth = 3;
public const int EventIdCount = 4;
//Quests
public const uint WsQuestReward = 43483;
public const uint AbQuestReward = 43484;
public const uint AvQuestReward = 43475;
public const uint AvQuestKilledBoss = 23658;
public const uint EyQuestReward = 43477;
public const uint SaQuestReward = 61213;
public const uint AbQuestReward4Bases = 24061;
public const uint AbQuestReward5Bases = 24064;
//BuffObjects
public const uint SpeedBuff = 179871;
public const uint RegenBuff = 179904;
public const uint BerserkerBuff = 179905;
//QueueGroupTypes
public const uint BgQueuePremadeAlliance = 0;
public const uint BgQueuePremadeHorde = 1;
public const uint BgQueueNormalAlliance = 2;
public const uint BgQueueNormalHorde = 3;
public const int BgQueueTypesCount = 4;
//PlayerPosition
public const sbyte PlayerPositionIconNone = 0;
public const sbyte PlayerPositionIconHordeFlag = 1;
public const sbyte PlayerPositionIconAllianceFlag = 2;
public const sbyte PlayerPositionArenaSlotNone = 1;
public const sbyte PlayerPositionArenaSlot1 = 2;
public const sbyte PlayerPositionArenaSlot2 = 3;
public const sbyte PlayerPositionArenaSlot3 = 4;
public const sbyte PlayerPositionArenaSlot4 = 5;
public const sbyte PlayerPositionArenaSlot5 = 6;
//Spells
public const uint SpellWaitingForResurrect = 2584; // Waiting To Resurrect
public const uint SpellSpiritHealChannel = 22011; // Spirit Heal Channel
public const uint SpellSpiritHeal = 22012; // Spirit Heal
public const uint SpellResurrectionVisual = 24171; // Resurrection Impact Visual
public const uint SpellArenaPreparation = 32727; // Use This One, 32728 Not Correct
public const uint SpellPreparation = 44521; // Preparation
public const uint SpellSpiritHealMana = 44535; // Spirit Heal
public const uint SpellRecentlyDroppedFlag = 42792; // Recently Dropped Flag
public const uint SpellAuraPlayerInactive = 43681; // Inactive
public const uint SpellHonorableDefender25y = 68652; // +50% Honor When Standing At A Capture Point That You Control, 25yards Radius (Added In 3.2)
public const uint SpellHonorableDefender60y = 66157; // +50% Honor When Standing At A Capture Point That You Control, 60yards Radius (Added In 3.2), Probably For 40+ Player Battlegrounds
}
public enum BattlegroundEventFlags
{
None = 0x00,
Event1 = 0x01,
Event2 = 0x02,
Event3 = 0x04,
Event4 = 0x08
}
// indexes of BattlemasterList.dbc
public enum BattlegroundTypeId
{
None = 0, // None
AV = 1, // Alterac Valley
WS = 2, // Warsong Gulch
AB = 3, // Arathi Basin
NA = 4, // Nagrand Arena
BE = 5, // Blade'S Edge Arena
AA = 6, // All Arenas
EY = 7, // Eye Of The Storm
RL = 8, // Ruins Of Lordaernon
SA = 9, // Strand Of The Ancients
DS = 10, // Dalaran Sewers
RV = 11, // The Ring Of Valor
IC = 30, // Isle Of Conquest
RB = 32, // Random Battleground
Rated10Vs10 = 100, // Rated Battleground 10 Vs 10
Rated15Vs15 = 101, // Rated Battleground 15 Vs 15
Rated25Vs25 = 102, // Rated Battleground 25 Vs 25
TP = 108, // Twin Peaks
BFG = 120, // Battle For Gilneas
// 656 = "Rated Eye Of The Storm"
Tk = 699, // Temple Of Kotmogu
// 706 = "Ctf3"
SM = 708, // Silvershard Mines
TVA = 719, // Tol'Viron Arena
DG = 754, // Deepwind Gorge
TTP = 757, // The Tiger'S Peak
SSvsTM = 789, // Southshore Vs. Tarren Mill
SmallD = 803, // Small Battleground D
BRH = 808, // Black Rook Hold Arena
// 809 = "New Nagrand Arena (Legion)"
AF = 816, // Ashamane'S Fall
// 844 = "New Blade'S Edge Arena (Legion)"
Max = 845
}
public enum BattlegroundQueueTypeId
{
None = 0,
AV = 1,
WS = 2,
AB = 3,
EY = 4,
SA = 5,
IC = 6,
TP = 7,
BFG = 8,
RB = 9,
Arena2v2 = 10,
Arena3v3 = 11,
Arena5v5 = 12,
Max
}
public enum BattlegroundQueueInvitationType
{
NoBalance = 0, // no balance: N+M vs N players
Balanced = 1, // teams balanced: N+1 vs N players
Even = 2 // teams even: N vs N players
}
public enum BattlegroundCriteriaId
{
ResilientVictory,
SaveTheDay,
EverythingCounts,
AvPerfection,
DefenseOfTheAncients,
NotEvenAScratch,
}
public enum BattlegroundSounds
{
HordeWins = 8454,
AllianceWins = 8455,
BgStart = 3439,
BgStartL70etc = 11803
}
public enum BattlegroundTeamId
{
Horde = 0, // Battleground: Horde, Arena: Green
Alliance = 1, // Battleground: Alliance, Arena: Gold
Neutral = 2 // Battleground: Neutral, Arena: None
}
public enum BattlegroundMarks
{
SpellWsMarkLoser = 24950,
SpellWsMarkWinner = 24951,
SpellAbMarkLoser = 24952,
SpellAbMarkWinner = 24953,
SpellAvMarkLoser = 24954,
SpellAvMarkWinner = 24955,
SpellSaMarkWinner = 61160,
SpellSaMarkLoser = 61159,
ItemAvMarkOfHonor = 20560,
ItemWsMarkOfHonor = 20558,
ItemAbMarkOfHonor = 20559,
ItemEyMarkOfHonor = 29024,
ItemSaMarkOfHonor = 42425
}
public enum BattlegroundMarksCount
{
WinnterCount = 3,
LoserCount = 1
}
public enum BattlegroundCreatures
{
A_SpiritGuide = 13116, // alliance
H_SpiritGuide = 13117 // horde
}
public enum BattlegroundStartTimeIntervals
{
Delay2m = 120000, // Ms (2 Minutes)
Delay1m = 60000, // Ms (1 Minute)
Delay30s = 30000, // Ms (30 Seconds)
Delay15s = 15000, // Ms (15 Seconds) Used Only In Arena
None = 0 // Ms
}
public enum BattlegroundStatus
{
None = 0, // first status, should mean bg is not instance
WaitQueue = 1, // means bg is empty and waiting for queue
WaitJoin = 2, // this means, that BG has already started and it is waiting for more players
InProgress = 3, // means bg is running
WaitLeave = 4 // means some faction has won BG and it is ending
}
public enum BGHonorMode
{
Normal = 0,
Holiday,
HonorModeNum
}
public enum GroupJoinBattlegroundResult
{
None = 0,
Deserters = 2, // You Cannot Join The BattlegroundYet Because You Or One Of Your Party Members Is Flagged As A Deserter.
ArenaTeamPartySize = 3, // Incorrect Party Size For This Arena.
TooManyQueues = 4, // You Can Only Be Queued For 2 Battles At Once
CannotQueueForRated = 5, // You Cannot Queue For A Rated Match While Queued For Other Battles
BattledgroundQueuedForRated = 6, // You Cannot Queue For Another Battle While Queued For A Rated Arena Match
TeamLeftQueue = 7, // Your Team Has Left The Arena Queue
NotInBattleground= 8, // You Can'T Do That In A Battleground.
JoinXpGain = 9, // Wtf, Doesn'T Exist In Client...
JoinRangeIndex = 10, // Cannot Join The Queue Unless All Members Of Your Party Are In The Same BattlegroundLevel Range.
JoinTimedOut = 11, // %S Was Unavailable To Join The Queue. (Uint64 Guid Exist In Client Cache)
//JoinTimedOut = 12, // Same As 11
//TeamLeftQueue = 13, // Same As 7
LfgCantUseBattleground= 14, // You Cannot Queue For A BattlegroundOr Arena While Using The Dungeon System.
InRandomBg = 15, // Can'T Do That While In A Random BattlegroundQueue.
InNonRandomBg = 16, // Can'T Queue For Random BattlegroundWhile In Another BattlegroundQueue.
BgDeveloperOnly = 17,
InvitationDeclined = 18,
MeetingStoneNotFound = 19,
WargameRequestFailure = 20,
BattlefieldTeamPartySize = 22,
NotOnTournamentRealm = 23,
PlayersFromDifferentRealms = 24,
RemoveFromPvpQueueGrantLevel = 33,
RemoveFromPvpQueueFactionChange = 34,
JoinFailed = 35,
DupeQueue = 43,
JoinNoValidSpecForRole = 44,
JoinRespec = 45,
AlreadyUsingLFGList = 46,
JoinMustCompleteQuest = 47
}
public enum ScoreType
{
KillingBlows = 1,
Deaths = 2,
HonorableKills = 3,
BonusHonor = 4,
DamageDone = 5,
HealingDone = 6,
// Ws And Ey
FlagCaptures = 7,
FlagReturns = 8,
// Ab And Ic
BasesAssaulted = 9,
BasesDefended = 10,
// Av
GraveyardsAssaulted = 11,
GraveyardsDefended = 12,
TowersAssaulted = 13,
TowersDefended = 14,
MinesCaptured = 15,
// Sota
DestroyedDemolisher = 16,
DestroyedWall = 17
}
//Arenas
public struct ArenaSpellIds
{
public const uint AllianceGoldFlag = 32724;
public const uint AllianceGreenFlag = 32725;
public const uint HordeGoldFlag = 35774;
public const uint HordeGreenFlag = 35775;
public const uint LastManStanding = 26549; // Arena Achievement Related
}
public enum ArenaTeamCommandTypes
{
Create_S = 0x00,
Invite_SS = 0x01,
Quit_S = 0x03,
Founder_S = 0x0e
}
public enum ArenaTeamCommandErrors
{
ArenaTeamCreated = 0x00,
ArenaTeamInternal = 0x01,
AlreadyInArenaTeam = 0x02,
AlreadyInArenaTeamS = 0x03,
InvitedToArenaTeam = 0x04,
AlreadyInvitedToArenaTeamS = 0x05,
ArenaTeamNameInvalid = 0x06,
ArenaTeamNameExistsS = 0x07,
ArenaTeamLeaderLeaveS = 0x08,
ArenaTeamPermissions = 0x08,
ArenaTeamPlayerNotInTeam = 0x09,
ArenaTeamPlayerNotInTeamSs = 0x0a,
ArenaTeamPlayerNotFoundS = 0x0b,
ArenaTeamNotAllied = 0x0c,
ArenaTeamIgnoringYouS = 0x13,
ArenaTeamTargetTooLowS = 0x15,
ArenaTeamTargetTooHighS = 0x16,
ArenaTeamTooManyMembersS = 0x17,
ArenaTeamNotFound = 0x1b,
ArenaTeamsLocked = 0x1e,
ArenaTeamTooManyCreate = 0x21,
}
public enum ArenaTeamEvents
{
JoinSs = 3, // Player Name + Arena Team Name
LeaveSs = 4, // Player Name + Arena Team Name
RemoveSss = 5, // Player Name + Arena Team Name + Captain Name
LeaderIsSs = 6, // Player Name + Arena Team Name
LeaderChangedSss = 7, // Old Captain + New Captain + Arena Team Name
DisbandedS = 8 // Captain Name + Arena Team Name
}
public enum ArenaTypes
{
BG = 0,
Team2v2 = 2,
Team3v3 = 3,
Team5v5 = 5
}
public enum ArenaErrorType
{
NoTeam = 0,
ExpiredCAIS = 1,
CantUseBattleground = 2
}
public enum ArenaTeamInfoType
{
Id = 0,
Type = 1, // new in 3.2 - team type?
Member = 2, // 0 - captain, 1 - member
GamesWeek = 3,
GamesSeason = 4,
WinsSeason = 5,
PersonalRating = 6,
End = 7
}
}
+75
View File
@@ -0,0 +1,75 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum FlagsControlType
{
Apply = 1,
Remove = 2
}
public enum BattlePetError
{
CantHaveMorePetsOfThatType = 3,
CantHaveMorePets = 4,
TooHighLevelToUncage = 7,
// TODO: find correct values if possible and needed (also wrong order)
DuplicateConvertedPet,
NeedToUnlock,
BadParam,
LockedPetAlreadyExists,
Ok,
Uncapturable,
CantInvalidCharacterGuid
}
// taken from BattlePetState.db2 - it seems to store some initial values for battle pets
// there are only values used in BattlePetSpeciesState.db2 and BattlePetBreedState.db2
// TODO: expand this enum if needed
public enum BattlePetState
{
MaxHealthBonus = 2,
InternalInitialLevel = 17,
StatPower = 18,
StatStamina = 19,
StatSpeed = 20,
ModDamageDealtPercent = 23,
Gender = 78, // 1 - Male, 2 - Female
CosmeticWaterBubbled = 85,
SpecialIsCockroach = 93,
CosmeticFlyTier = 128,
CosmeticBigglesworth = 144,
PassiveElite = 153,
PassiveBoss = 162,
CosmeticTreasureGoblin = 176,
// These Are Not In Battlepetstate.Db2 But Are Used In Battlepetspeciesstate.Db2
StartWithBuff = 183,
StartWithBuff2 = 184,
//
CosmeticSpectralBlue = 196
}
public enum BattlePetSaveInfo
{
Unchanged = 0,
Changed = 1,
New = 2,
Removed = 3
}
}
+40
View File
@@ -0,0 +1,40 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public struct BlackMarketConst
{
public const ulong MaxBid = 1000000UL* MoneyConstants.Gold;
}
public enum BlackMarketError
{
Ok = 0,
ItemNotFound = 1,
AlreadyBid = 2,
HigherBid = 4,
DatabaseError = 6,
NotEnoughMoney = 7,
RestrictedAccountTrial = 9
}
public enum BMAHMailAuctionAnswers
{
Outbid = 0,
Won = 1,
}
}
+117
View File
@@ -0,0 +1,117 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum CalendarMailAnswers
{
EventRemovedMailSubject = 0,
InviteRemovedMailSubject = 0x100
}
public enum CalendarFlags
{
AllAllowed = 0x001,
InvitesLocked = 0x010,
WithoutInvites = 0x040,
GuildEvent = 0x400
}
public enum CalendarModerationRank
{
Player = 0,
Moderator = 1,
Owner = 2
}
public enum CalendarSendEventType
{
Get = 0,
Add = 1,
Copy = 2
}
public enum CalendarEventType
{
Raid = 0,
Dungeon = 1,
Pvp = 2,
Meeting = 3,
Other = 4,
Heroic = 5
}
public enum CalendarRepeatType
{
Never = 0,
Weekly = 1,
Biweekly = 2,
Monthly = 3
}
public enum CalendarInviteStatus
{
Invited = 0,
Accepted = 1,
Declined = 2,
Confirmed = 3,
Out = 4,
Standby = 5,
SignedUp = 6,
NotSignedUp = 7,
Tentative = 8,
Removed = 9 // Correct Name?
}
public enum CalendarError
{
Ok = 0,
GuildEventsExceeded = 1,
EventsExceeded = 2,
SelfInvitesExceeded = 3,
OtherInvitesExceeded = 4,
Permissions = 5,
EventInvalid = 6,
NotInvited = 7,
Internal = 8,
GuildPlayerNotInGuild = 9,
AlreadyInvitedToEventS = 10,
PlayerNotFound = 11,
NotAllied = 12,
IgnoringYouS = 13,
InvitesExceeded = 14,
InvalidDate = 16,
InvalidTime = 17,
NeedsTitle = 19,
EventPassed = 20,
EventLocked = 21,
DeleteCreatorFailed = 22,
SystemDisabled = 24,
RestrictedAccount = 25,
ArenaEventsExceeded = 26,
RestrictedLevel = 27,
UserSquelched = 28,
NoInvite = 29,
EventWrongServer = 36,
InviteWrongServer = 37,
NoGuildInvites = 38,
InvalidSignup = 39,
NoModerator = 40
}
}
+109
View File
@@ -0,0 +1,109 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum ChatNotify
{
JoinedNotice = 0x00, //+ "%S Joined Channel.";
LeftNotice = 0x01, //+ "%S Left Channel.";
//SuspendedNotice = 0x01, // "%S Left Channel.";
YouJoinedNotice = 0x02, //+ "Joined Channel: [%S]"; -- You Joined
//YouChangedNotice = 0x02, // "Changed Channel: [%S]";
YouLeftNotice = 0x03, //+ "Left Channel: [%S]"; -- You Left
WrongPasswordNotice = 0x04, //+ "Wrong Password For %S.";
NotMemberNotice = 0x05, //+ "Not On Channel %S.";
NotModeratorNotice = 0x06, //+ "Not A Moderator Of %S.";
PasswordChangedNotice = 0x07, //+ "[%S] Password Changed By %S.";
OwnerChangedNotice = 0x08, //+ "[%S] Owner Changed To %S.";
PlayerNotFoundNotice = 0x09, //+ "[%S] Player %S Was Not Found.";
NotOwnerNotice = 0x0a, //+ "[%S] You Are Not The Channel Owner.";
ChannelOwnerNotice = 0x0b, //+ "[%S] Channel Owner Is %S.";
ModeChangeNotice = 0x0c, //?
AnnouncementsOnNotice = 0x0d, //+ "[%S] Channel Announcements Enabled By %S.";
AnnouncementsOffNotice = 0x0e, //+ "[%S] Channel Announcements Disabled By %S.";
ModerationOnNotice = 0x0f, //+ "[%S] Channel Moderation Enabled By %S.";
ModerationOffNotice = 0x10, //+ "[%S] Channel Moderation Disabled By %S.";
MutedNotice = 0x11, //+ "[%S] You Do Not Have Permission To Speak.";
PlayerKickedNotice = 0x12, //? "[%S] Player %S Kicked By %S.";
BannedNotice = 0x13, //+ "[%S] You Are Bannedstore From That Channel.";
PlayerBannedNotice = 0x14, //? "[%S] Player %S Bannedstore By %S.";
PlayerUnbannedNotice = 0x15, //? "[%S] Player %S Unbanned By %S.";
PlayerNotBannedNotice = 0x16, //+ "[%S] Player %S Is Not Bannedstore.";
PlayerAlreadyMemberNotice = 0x17, //+ "[%S] Player %S Is Already On The Channel.";
InviteNotice = 0x18, //+ "%2$S Has Invited You To Join The Channel '%1$S'.";
InviteWrongFactionNotice = 0x19, //+ "Target Is In The Wrong Alliance For %S.";
WrongFactionNotice = 0x1a, //+ "Wrong Alliance For %S.";
InvalidNameNotice = 0x1b, //+ "Invalid Channel Name";
NotModeratedNotice = 0x1c, //+ "%S Is Not Moderated";
PlayerInvitedNotice = 0x1d, //+ "[%S] You Invited %S To Join The Channel";
PlayerInviteBannedNotice = 0x1e, //+ "[%S] %S Has Been Bannedstore.";
ThrottledNotice = 0x1f, //+ "[%S] The Number Of Messages That Can Be Sent To This Channel Is Limited, Please Wait To Send Another Message.";
NotInAreaNotice = 0x20, //+ "[%S] You Are Not In The Correct Area For This Channel."; -- The User Is Trying To Send A Chat To A Zone Specific Channel, And They'Re Not Physically In That Zone.
NotInLfgNotice = 0x21, //+ "[%S] You Must Be Queued In Looking For Group Before Joining This Channel."; -- The User Must Be In The Looking For Group System To Join Lfg Chat Channels.
VoiceOnNotice = 0x22, //+ "[%S] Channel Voice Enabled By %S.";
VoiceOffNotice = 0x23, //+ "[%S] Channel Voice Disabled By %S.";
TrialRestricted = 0x24,
NotAllowedInChannel = 0x25
}
public enum ChannelFlags
{
None = 0x00,
Custom = 0x01,
// 0x02
Trade = 0x04,
NotLfg = 0x08,
General = 0x10,
City = 0x20,
Lfg = 0x40,
Voice = 0x80
// General 0x18 = 0x10 | 0x08
// Trade 0x3C = 0x20 | 0x10 | 0x08 | 0x04
// LocalDefence 0x18 = 0x10 | 0x08
// GuildRecruitment 0x38 = 0x20 | 0x10 | 0x08
// LookingForGroup 0x50 = 0x40 | 0x10
}
public enum ChannelDBCFlags
{
None = 0x00000,
Initial = 0x00001, // General, Trade, Localdefense, Lfg
ZoneDep = 0x00002, // General, Trade, Localdefense, Guildrecruitment
Global = 0x00004, // Worlddefense
Trade = 0x00008, // Trade, Lfg
CityOnly = 0x00010, // Trade, Guildrecruitment, Lfg
CityOnly2 = 0x00020, // Trade, Guildrecruitment, Lfg
Defense = 0x10000, // Localdefense, Worlddefense
GuildReq = 0x20000, // Guildrecruitment
Lfg = 0x40000, // Lfg
Unk1 = 0x80000 // General
}
public enum ChannelMemberFlags
{
None = 0x00,
Owner = 0x01,
Moderator = 0x02,
Voiced = 0x04,
Muted = 0x08,
Custom = 0x10,
MicMuted = 0x20
// 0x40
// 0x80
}
}
File diff suppressed because it is too large Load Diff
+123
View File
@@ -0,0 +1,123 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum ConditionTypes
{ // value1 value2 value3
None = 0, // 0 0 0 Always True
Aura = 1, // Spell_Id Effindex Use Target? True If Player (Or Target, If Value3) Has Aura Of Spell_Id With Effect Effindex
Item = 2, // Item_Id Count Bank True If Has #Count Of Item_Ids (If 'Bank' Is Set It Searches In Bank Slots Too)
ItemEquipped = 3, // Item_Id 0 0 True If Has Item_Id Equipped
Zoneid = 4, // Zone_Id 0 0 True If In Zone_Id
ReputationRank = 5, // Faction_Id Rankmask 0 True If Has Min_Rank For Faction_Id
Team = 6, // Player_Team 0, 0 469 - Alliance, 67 - Horde)
Skill = 7, // Skill_Id Skill_Value 0 True If Has Skill_Value For Skill_Id
QuestRewarded = 8, // Quest_Id 0 0 True If Quest_Id Was Rewarded Before
QuestTaken = 9, // Quest_Id 0, 0 True While Quest Active
DrunkenState = 10, // Drunkenstate 0, 0 True If Player Is Drunk Enough
WorldState = 11, // Index Value 0 True If World Has The Value For The Index
ActiveEvent = 12, // Event_Id 0 0 True If Event Is Active
InstanceInfo = 13, // Entry Data Type True If The Instance Info Defined By Type (Enum Instanceinfo) Equals Data.
QuestNone = 14, // Quest_Id 0 0 True If Doesn'T Have Quest Saved
Class = 15, // Class 0 0 True If Player'S Class Is Equal To Class
Race = 16, // Race 0 0 True If Player'S Race Is Equal To Race
Achievement = 17, // Achievement_Id 0 0 True If Achievement Is Complete
Title = 18, // Title Id 0 0 True If Player Has Title
Spawnmask = 19, // Spawnmask 0 0 True If In Spawnmask
Gender = 20, // Gender 0 0 True If Player'S Gender Is Equal To Gender
UnitState = 21, // Unitstate 0 0 True If Unit Has Unitstate
Mapid = 22, // Map_Id 0 0 True If In Map_Id
Areaid = 23, // Area_Id 0 0 True If In Area_Id
CreatureType = 24, // cinfo.type 0 0 true if creature_template.type = value1
Spell = 25, // Spell_Id 0 0 True If Player Has Learned Spell
PhaseId = 26, // Phasemask 0 0 True If Object Is In PhaseId
Level = 27, // Level Comparisontype 0 True If Unit'S Level Is Equal To Param1 (Param2 Can Modify The Statement)
QuestComplete = 28, // Quest_Id 0 0 True If Player Has Quest_Id With All Objectives Complete, But Not Yet Rewarded
NearCreature = 29, // Creature Entry Distance 0 True If There Is A Creature Of Entry In Range
NearGameobject = 30, // Gameobject Entry Distance 0 True If There Is A Gameobject Of Entry In Range
ObjectEntryGuid = 31, // Typeid Entry 0 True If Object Is Type Typeid And The Entry Is 0 Or Matches Entry Of The Object
TypeMask = 32, // Typemask 0 0 True If Object Is Type Object'S Typemask Matches Provided Typemask
RelationTo = 33, // Conditiontarget Relationtype 0 True If Object Is In Given Relation With Object Specified By Conditiontarget
ReactionTo = 34, // Conditiontarget Rankmask 0 True If Object'S Reaction Matches Rankmask Object Specified By Conditiontarget
DistanceTo = 35, // Conditiontarget Distance Comparisontype True If Object And Conditiontarget Are Within Distance Given By Parameters
Alive = 36, // 0 0 0 True If Unit Is Alive
HpVal = 37, // Hpval Comparisontype 0 True If Unit'S Hp Matches Given Value
HpPct = 38, // Hppct Comparisontype 0 True If Unit'S Hp Matches Given Pct
RealmAchievement = 39, // achievement_id 0 0 true if realm achievement is complete
InWater = 40, // 0 0 0 true if unit in water
TerrainSwap = 41, // terrainSwap 0 0 true if object is in terrainswap
StandState = 42, // stateType state 0 true if unit matches specified sitstate (0,x: has exactly state x; 1,0: any standing state; 1,1: any sitting state;)
DailyQuestDone = 43, // quest id 0 0 true if daily quest has been completed for the day
Charmed = 44, // 0 0 0 true if unit is currently charmed
PetType = 45, // mask 0 0 true if player has a pet of given type(s)
Taxi = 46, // 0 0 0 true if player is on taxi
Queststate = 47, // quest_id state_mask 0 true if player is in any of the provided quest states for the quest (1 = not taken, 2 = completed, 8 = in progress, 32 = failed, 64 = rewarded)
ObjectiveComplete = 48, // ID 0 0 true if player has ID objective complete, but quest not yet rewarded
Max = 49 // Max
}
public enum ConditionSourceType
{
None = 0,
CreatureLootTemplate = 1,
DisenchantLootTemplate = 2,
FishingLootTemplate = 3,
GameobjectLootTemplate = 4,
ItemLootTemplate = 5,
MailLootTemplate = 6,
MillingLootTemplate = 7,
PickpocketingLootTemplate = 8,
ProspectingLootTemplate = 9,
ReferenceLootTemplate = 10,
SkinningLootTemplate = 11,
SpellLootTemplate = 12,
SpellImplicitTarget = 13,
GossipMenu = 14,
GossipMenuOption = 15,
CreatureTemplateVehicle = 16,
Spell = 17,
SpellClickEvent = 18,
QuestAccept = 19,
// Condition source type 20 unused
VehicleSpell = 21,
SmartEvent = 22,
NpcVendor = 23,
SpellProc = 24,
TerrainSwap = 25,
Phase = 26,
Max = 27
}
public enum RelationType
{
Self = 0,
InParty,
InRaidOrParty,
OwnedBy,
PassengerOf,
CreatedBy,
Max
}
public enum InstanceInfo
{
Data = 0,
Data64,
BossState
}
}
+53
View File
@@ -0,0 +1,53 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum ConnectionType
{
Realm = 0,
Instance = 1,
Max
}
public enum ConnectToSerial
{
None = 0,
Realm = 14,
WorldAttempt1 = 17,
WorldAttempt2 = 35,
WorldAttempt3 = 53,
WorldAttempt4 = 71,
WorldAttempt5 = 89
}
public enum LoginFailureReason
{
Failed = 0,
NoWorld = 1,
DuplicateCharacter = 2,
NoInstances = 3,
Disabled = 4,
NoCharacter = 5,
LockedForTransfer = 6,
LockedByBilling = 7,
LockedByMobileAH = 8,
TemporaryGMLock = 9,
LockedByCharacterUpgrade = 10,
LockedByRevokedCharacterUpgrade = 11
}
}
+338
View File
@@ -0,0 +1,338 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum CreatureLinkedRespawnType
{
CreatureToCreature,
CreatureToGO, // Creature is dependant on GO
GOToGO,
GOToCreature // GO is dependant on creature
}
public enum AiReaction
{
Alert = 0, // pre-aggro (used in client packet handler)
Friendly = 1, // (NOT used in client packet handler)
Hostile = 2, // sent on every attack, triggers aggro sound (used in client packet handler)
Afraid = 3, // seen for polymorph (when AI not in control of self?) (NOT used in client packet handler)
Destory = 4 // used on object destroy (NOT used in client packet handler)
}
public enum CreatureEliteType
{
Normal = 0,
Elite = 1,
RareElite = 2,
WorldBoss = 3,
Rare = 4,
Unknown = 5 // found in 2.2.3 for 2 mobs
}
[System.Flags]
public enum UnitFlags : uint
{
ServerControlled = 0x01,
NonAttackable = 0x02,
RemoveClientControl = 0x04, // This is a legacy flag used to disable movement player's movement while controlling other units, SMSG_CLIENT_CONTROL replaces this functionality clientside now. CONFUSED and FLEEING flags have the same effect on client movement asDISABLE_MOVE_CONTROL in addition to preventing spell casts/autoattack (they all allow climbing steeper hills and emotes while moving)
PvpAttackable = 0x08,
Rename = 0x10,
Preparation = 0x20,
Unk6 = 0x40,
NotAttackable1 = 0x80,
ImmuneToPc = 0x100,
ImmuneToNpc = 0x200,
Looting = 0x400,
PetInCombat = 0x800,
Pvp = 0x1000,
Silenced = 0x2000,
CannotSwim = 0x4000,
Unk15 = 0x8000,
Unk16 = 0x10000,
Pacified = 0x20000,
Stunned = 0x40000,
InCombat = 0x80000,
TaxiFlight = 0x100000,
Disarmed = 0x200000,
Confused = 0x400000,
Fleeing = 0x800000,
PlayerControlled = 0x1000000,
NotSelectable = 0x2000000,
Skinnable = 0x4000000,
Mount = 0x8000000,
Unk28 = 0x10000000,
Unk29 = 0x20000000,
Sheathe = 0x40000000,
Unk31 = 0x80000000
}
public enum UnitFlags2 : uint
{
FeignDeath = 0x01,
Unk1 = 0x02,
IgnoreReputation = 0x04,
ComprehendLang = 0x08,
MirrorImage = 0x10,
InstantlyAppearModel = 0x20,
ForceMove = 0x40,
DisarmOffhand = 0x80,
DisablePredStats = 0x100,
DisarmRanged = 0x400,
RegeneratePower = 0x800,
RestrictPartyInteraction = 0x1000,
PreventSpellClick = 0x2000,
AllowEnemyInteract = 0x4000,
DisableTurn = 0x8000,
Unk2 = 0x10000,
PlayDeathAnim = 0x20000,
AllowCheatSpells = 0x40000,
NoActions = 0x800000
}
public enum UnitFlags3 : uint
{
Unk1 = 0x01,
}
public enum NPCFlags : ulong
{
None = 0x00,
Gossip = 0x01,
QuestGiver = 0x02,
Unk1 = 0x04,
Unk2 = 0x08,
Trainer = 0x10,
TrainerClass = 0x20,
TrainerProfession = 0x40,
Vendor = 0x80,
VendorGeneral = 0x100,
VendorFood = 0x200,
VendorPoison = 0x400,
VendorReagent = 0x800,
Repair = 0x1000,
FlightMaster = 0x2000,
SpiritHealer = 0x4000,
SpiritGuide = 0x8000,
Innkeeper = 0x10000,
Banker = 0x20000,
Petitioner = 0x40000,
TabardDesigner = 0x80000,
BattleMaster = 0x100000,
Auctioneer = 0x200000,
StableMaster = 0x400000,
GuildBanker = 0x800000,
SpellClick = 0x1000000,
PlayerVehicle = 0x2000000,
Mailbox = 0x4000000,
ArtifactPowerRespec = 0x8000000,
Transmogrifier = 0x10000000,
VaultKeeper = 0x20000000,
BlackMarket = 0x80000000,
ItemUpgradeMaster = 0x100000000,
GarrisonArchitect = 0x200000000,
Steering = 0x400000000,
ShipmentCrafter = 0x1000000000,
GarrisonMissionNpc = 0x2000000000,
TradeskillNpc = 0x4000000000,
BlackMarketView = 0x8000000000
}
public enum CreatureTypeFlags : uint
{
TameablePet = 0x01, // Makes the mob tameable (must also be a beast and have family set)
GhostVisible = 0x02, // Creature are also visible for not alive player. Allow gossip interaction if npcflag allow?
BossMob = 0x04, // Changes creature's visible level to "??" in the creature's portrait - Immune Knockback.
DoNotPlayWoundParryAnimation = 0x08,
HideFactionTooltip = 0x10,
Unk5 = 0x20, // Sound related
SpellAttackable = 0x40,
CanInteractWhileDead = 0x80, // Player can interact with the creature if its dead (not player dead)
HerbSkinningSkill = 0x100, // Can be looted by herbalist
MiningSkinningSkill = 0x200, // Can be looted by miner
DoNotLogDeath = 0x400, // Death event will not show up in combat log
MountedCombatAllowed = 0x800, // Creature can remain mounted when entering combat
CanAssist = 0x1000, // ? Can aid any player in combat if in range?
IsPetBarUsed = 0x2000,
MaskUID = 0x4000,
EngineeringSkinningSkill = 0x8000, // Can be looted by engineer
ExoticPet = 0x10000, // Can be tamed by hunter as exotic pet
UseDefaultCollisionBox = 0x20000, // Collision related. (always using default collision box?)
IsSiegeWeapon = 0x40000,
CanCollideWithMissiles = 0x80000, // Projectiles can collide with this creature - interacts with TARGET_DEST_TRAJ
HideNamePlate = 0x100000,
DoNotPlayMountedAnimations = 0x200000,
IsLinkAll = 0x400000,
InteractOnlyWithCreator = 0x800000,
DoNotPlayUnitEventSounds = 0x1000000,
HasNoShadowBlob = 0x2000000,
TreatAsRaidUnit = 0x4000000, //! Creature can be targeted by spells that require target to be in caster's party/raid
ForceGossip = 0x8000000, // Allows the creature to display a single gossip option.
DoNotSheathe = 0x10000000,
DoNotTargetOnInteration = 0x20000000,
DoNotRenderObjectName = 0x40000000,
UnitIsQuestBoss = 0x80000000 // Not verified
}
public enum CreatureFlagsExtra : uint
{
InstanceBind = 0x01, // Creature Kill Bind Instance With Killer And Killer'S Group
Civilian = 0x02, // Not Aggro (Ignore Faction/Reputation Hostility)
NoParry = 0x04, // Creature Can'T Parry
NoParryHasten = 0x08, // Creature Can'T Counter-Attack At Parry
NoBlock = 0x10, // Creature Can'T Block
NoCrush = 0x20, // Creature Can'T Do Crush Attacks
NoXpAtKill = 0x40, // Creature Kill Not Provide Xp
Trigger = 0x80, // Trigger Creature
NoTaunt = 0x100, // Creature Is Immune To Taunt Auras And Effect Attack Me
Worldevent = 0x4000, // Custom Flag For World Event Creatures (Left Room For Merging)
Guard = 0x8000, // Creature Is Guard
NoCrit = 0x20000, // Creature Can'T Do Critical Strikes
NoSkillgain = 0x40000, // Creature Won'T Increase Weapon Skills
TauntDiminish = 0x80000, // Taunt Is A Subject To Diminishing Returns On This Creautre
AllDiminish = 0x100000, // Creature Is Subject To All Diminishing Returns As Player Are
NoPlayerDamageReq = 0x200000, // creature does not need to take player damage for kill credit
DungeonBoss = 0x10000000, // Creature Is A Dungeon Boss (Set Dynamically, Do Not Add In Db)
IgnorePathfinding = 0x20000000, // creature ignore pathfinding
ImmunityKnockback = 0x40000000, // creature is immune to knockback effects
DBAllowed = (InstanceBind | Civilian | NoParry | NoParryHasten | NoBlock | NoCrush | NoXpAtKill |
Trigger | NoTaunt | Worldevent | NoCrit | NoSkillgain | TauntDiminish | AllDiminish | Guard |
IgnorePathfinding | NoPlayerDamageReq | ImmunityKnockback)
}
public enum CreatureType
{
Beast = 1,
Dragonkin = 2,
Demon = 3,
Elemental = 4,
Giant = 5,
Undead = 6,
Humanoid = 7,
Critter = 8,
Mechanical = 9,
NotSpecified = 10,
Totem = 11,
NonCombatPet = 12,
GasCloud = 13,
WildPet = 14,
Aberration = 15,
MaskDemonOrUnDead = (1 << (Demon - 1)) | (1 << (Undead - 1)),
MaskHumanoidOrUndead = (1 << (Humanoid - 1)) | (1 << (Undead - 1)),
MaskMechanicalOrElemental = (1 << (Mechanical - 1)) | (1 << (Elemental - 1))
}
public enum CreatureFamily
{
None = 0,
Wolf = 1,
Cat = 2,
Spider = 3,
Bear = 4,
Boar = 5,
Crocolisk = 6,
CarrionBird = 7,
Crab = 8,
Gorilla = 9,
HorseCustom = 10, // Does Not Exist In Dbc But Used For Horse Like Beasts In Db
Raptor = 11,
Tallstrider = 12,
Felhunter = 15,
Voidwalker = 16,
Succubus = 17,
Doomguard = 19,
Scorpid = 20,
Turtle = 21,
Imp = 23,
Bat = 24,
Hyena = 25,
BirdOfPrey = 26,
WindSerpent = 27,
RemoteControl = 28,
Felguard = 29,
Dragonhawk = 30,
Ravager = 31,
WarpStalker = 32,
Sporebat = 33,
NetherRay = 34,
Serpent = 35,
Moth = 37,
Chimaera = 38,
Devilsaur = 39,
Ghoul = 40,
Silithid = 41,
Worm = 42,
Rhino = 43,
Wasp = 44,
CoreHound = 45,
SpiritBeast = 46,
WaterElemental = 49,
Fox = 50,
Monkey = 51,
Dog = 52,
Beetle = 53,
ShaleSpider = 55,
Zombie = 56,
BeetleOld = 57,
Silithid2 = 59,
Wasp2 = 66,
Hydra = 68,
Felimp = 100,
Voidlord = 101,
Shivara = 102,
Observer = 103,
Wrathguard = 104,
Infernal = 108,
Fireelemental = 116,
Earthelemental = 117,
Crane = 125,
Waterstrider = 126,
Porcupine = 127,
Quilen = 128,
Goat = 129,
Basilisk = 130,
Direhorn = 138,
Stormelemental = 145,
Mtwaterelemental = 146,
Torrorguard = 147,
Abyssal = 148,
Rylak = 149,
Riverbeast = 150,
Stag = 151
}
public enum InhabitType
{
Ground = 1,
Water = 2,
Air = 4,
Root = 8,
Anywhere = Ground | Water | Air | Root
}
public enum EvadeReason
{
NoHostiles, // the creature's threat list is empty
Boundary, // the creature has moved outside its evade boundary
NoPath, // the creature was unable to reach its target for over 5 seconds
SequenceBreak, // this is a boss and the pre-requisite encounters for engaging it are not defeated yet
Other
}
}
+128
View File
@@ -0,0 +1,128 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum GameObjectTypes : byte
{
Door = 0,
Button = 1,
QuestGiver = 2,
Chest = 3,
Binder = 4,
Generic = 5,
Trap = 6,
Chair = 7,
SpellFocus = 8,
Text = 9,
Goober = 10,
Transport = 11,
AreaDamage = 12,
Camera = 13,
MapObject = 14,
MapObjTransport = 15,
DuelArbiter = 16,
FishingNode = 17,
Ritual = 18,
Mailbox = 19,
DoNotUse = 20,
GuardPost = 21,
SpellCaster = 22,
MeetingStone = 23,
FlagStand = 24,
FishingHole = 25,
FlagDrop = 26,
MiniGame = 27,
DoNotUse2 = 28,
ControlZone = 29,
AuraGenerator = 30,
DungeonDifficulty = 31,
BarberChair = 32,
DestructibleBuilding = 33,
GuildBank = 34,
TrapDoor = 35,
NewFlag = 36,
NewFlagDrop = 37,
GarrisonBuilding = 38,
GarrisonPlot = 39,
ClientCreature = 40,
ClientItem = 41,
CapturePoint = 42,
PhaseableMo = 43,
GarrisonMonument = 44,
GarrisonShipment = 45,
GarrisonMonumentPlaque = 46,
ArtifactForge = 47,
UILink = 48,
KeystoneReceptacle = 49,
GatheringNode = 50,
ChallengeModeReward = 51,
Max = 52
}
public enum GameObjectState
{
Active = 0,
Ready = 1,
ActiveAlternative = 2,
TransportActive = 24,
TransportStopped = 25,
Max = 3
}
public enum GameObjectDynamicLowFlags
{
HideModel = 0x02,
Activate = 0x04,
Animate = 0x08,
NoInteract = 0x10,
Sparkle = 0x20,
Stopped = 0x40
}
public enum GameObjectFlags
{
InUse = 0x01, // Disables Interaction While Animated
Locked = 0x02, // Require Key, Spell, Event, Etc To Be Opened. Makes "Locked" Appear In Tooltip
InteractCond = 0x04, // cannot interact (condition to interact - requires GO_DYNFLAG_LO_ACTIVATE to enable interaction clientside)
Transport = 0x08, // Any Kind Of Transport? Object Can Transport (Elevator, Boat, Car)
NotSelectable = 0x10, // Not Selectable Even In Gm Mode
NoDespawn = 0x20, // Never Despawn, Typically For Doors, They Just Change State
AiObstacle = 0x40, // makes the client register the object in something called AIObstacleMgr, unknown what it does
FreezeAnimation = 0x80,
Damaged = 0x200,
Destroyed = 0x400,
InteractDistanceUsesTemplateModel = 0x80000, // client checks interaction distance from model sent in SMSG_QUERY_GAMEOBJECT_RESPONSE instead of GAMEOBJECT_DISPLAYID
MapObject = 0x00100000 // pre-7.0 model loading used to be controlled by file extension (wmo vs m2)
}
public enum LootState
{
NotReady = 0,
Ready, // can be ready but despawned, and then not possible activate until spawn
Activated,
JustDeactivated
}
public enum GameObjectDestructibleState
{
Intact = 0,
Damaged = 1,
Destroyed = 2,
Rebuilding = 3
}
}
+164
View File
@@ -0,0 +1,164 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public struct GarrisonFactionIndex
{
public const uint Horde = 0;
public const uint Alliance = 1;
}
public enum GarrisonBuildingFlags : byte
{
NeedsPlan = 0x1
}
enum GarrisonFollowerFlags
{
Unique = 0x1
}
public enum GarrisonFollowerType
{
Garrison = 1,
Shipyard = 2
}
public enum GarrisonAbilityFlags : ushort
{
Trait = 0x01,
CannotRoll = 0x02,
HordeOnly = 0x04,
AllianceOnly = 0x08,
CannotRemove = 0x10,
Exclusive = 0x20,
SingleMissionDuration = 0x40,
ActiveOnlyOnZoneSupport = 0x80,
ApplyToFirstMission = 0x100,
IsSpecialization = 0x200,
IsEmptySlot = 0x400
}
public enum GarrisonError
{
Success = 0,
NoGarrison = 1,
GarrisonExists = 2,
GarrisonSameTypeExists = 3,
InvalidGarrison = 4,
InvalidGarrisonLevel = 5,
GarrisonLevelUnchanged = 6,
NotInGarrison = 7,
NoBuilding = 8,
BuildingExists = 9,
InvalidPlotInstanceId = 10,
InvalidBuildingId = 11,
InvalidUpgradeLevel = 12,
UpgradeLevelExceedsGarrisonLevel = 13,
PlotsNotFull = 14,
InvalidSiteId = 15,
InvalidPlotBuilding = 16,
InvalidFaction = 17,
InvalidSpecialization = 18,
SpecializationExists = 19,
SpecializationOnCooldown = 20,
BlueprintExists = 21,
RequiresBlueprint = 22,
InvalidDoodadSetId = 23,
BuildingTypeExists = 24,
BuildingNotActive = 25,
ConstructionComplete = 26,
FollowerExists = 27,
InvalidFollower = 28,
FollowerAlreadyOnMission = 29,
FollowerInBuilding = 30,
FollowerInvalidForBuilding = 31,
InvalidFollowerLevel = 32,
MissionExists = 33,
InvalidMission = 34,
InvalidMissionTime = 35,
InvalidMissionRewardIndex = 36,
MissionNotOffered = 37,
AlreadyOnMission = 38,
MissionSizeInvalid = 39,
FollowerSoftCapExceeded = 40,
NotOnMission = 41,
AlreadyCompletedMission = 42,
MissionNotComplete = 43,
MissionRewardsPending = 44,
MissionExpired = 45,
NotEnoughCurrency = 46,
NotEnoughGold = 47,
BuildingMissing = 48,
NoArchitect = 49,
ArchitectNotAvailable = 50,
NoMissionNpc = 51,
MissionNpcNotAvailable = 52,
InternalError = 53,
InvalidStaticTableValue = 54,
InvalidItemLevel = 55,
InvalidAvailableRecruit = 56,
FollowerAlreadyRecruited = 57,
RecruitmentGenerationInProgress = 58,
RecruitmentOnCooldown = 59,
RecruitBlockedByGeneration = 60,
RecruitmentNpcNotAvailable = 61,
InvalidFollowerQuality = 62,
ProxyNotOk = 63,
RecallPortalUsedLessThan24HoursAgo = 64,
OnRemoveBuildingSpellFailed = 65,
OperationNotSupported = 66,
FollowerFatigued = 67,
UpgradeConditionFailed = 68,
FollowerInactive = 69,
FollowerActive = 70,
FollowerActivationUnavailable = 71,
FollowerTypeMismatch = 72,
InvalidGarrisonType = 73,
MissionStartConditionFailed = 74,
InvalidFollowerAbility = 75,
InvalidMissionBonusAbility = 76,
HigherBuildingTypeExists = 77,
AtFollowerHardCap = 78,
FollowerCannotGainXp = 79,
NoOp = 80,
AtClassSpecCap = 81,
MissionRequires100ToStart = 82,
MissionMissingRequiredFollower = 83,
InvalidTalent = 84,
AlreadyResearchingTalent = 85,
FailedCondition = 86,
InvalidTier = 87,
InvalidClass = 88
}
public enum GarrisonFollowerStatus
{
Favorite = 0x01,
Exhausted = 0x02,
Inactive = 0x04,
Troop = 0x08,
NoXpGain = 0x10
}
public enum GarrisonType
{
Garrison = 2,
ClassOrder = 3
}
}
+125
View File
@@ -0,0 +1,125 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum GossipOption
{
None = 0, //Unit_Npc_Flag_None (0)
Gossip = 1, //Unit_Npc_Flag_Gossip (1)
Questgiver = 2, //Unit_Npc_Flag_Questgiver (2)
Vendor = 3, //Unit_Npc_Flag_Vendor (128)
Taxivendor = 4, //Unit_Npc_Flag_Taxivendor (8192)
Trainer = 5, //Unit_Npc_Flag_Trainer (16)
Spirithealer = 6, //Unit_Npc_Flag_Spirithealer (16384)
Spiritguide = 7, //Unit_Npc_Flag_Spiritguide (32768)
Innkeeper = 8, //Unit_Npc_Flag_Innkeeper (65536)
Banker = 9, //Unit_Npc_Flag_Banker (131072)
Petitioner = 10, //Unit_Npc_Flag_Petitioner (262144)
Tabarddesigner = 11, //Unit_Npc_Flag_Tabarddesigner (524288)
Battlefield = 12, //Unit_Npc_Flag_Battlefieldperson (1048576)
Auctioneer = 13, //Unit_Npc_Flag_Auctioneer (2097152)
Stablepet = 14, //Unit_Npc_Flag_Stable (4194304)
Armorer = 15, //Unit_Npc_Flag_Armorer (4096)
Unlearntalents = 16, //Unit_Npc_Flag_Trainer (16) (Bonus Option For Trainer)
Unlearnpettalents = 17, //Unit_Npc_Flag_Trainer (16) (Bonus Option For Trainer)
Learndualspec = 18, //Unit_Npc_Flag_Trainer (16) (Bonus Option For Trainer)
Outdoorpvp = 19, //Added By Code (Option For Outdoor Pvp Creatures)
Max
}
public enum GossipOptionIcon
{
Chat = 0, // White Chat Bubble
Vendor = 1, // Brown Bag
Taxi = 2, // Flightmarker (Paperplane)
Trainer = 3, // Brown Book (Trainer)
Interact1 = 4, // Golden Interaction Wheel
Interact2 = 5, // Golden Interaction Wheel
MoneyBag = 6, // Brown Bag (With Gold Coin In Lower Corner)
Talk = 7, // White Chat Bubble (With "..." Inside)
Tabard = 8, // White Tabard
Battle = 9, // Two Crossed Swords
Dot = 10, // Yellow Dot/Point
Chat11 = 11, // White Chat Bubble
Chat12 = 12, // White Chat Bubble
Chat13 = 13, // White Chat Bubble
Unk14 = 14, // Invalid - Do Not Use
Unk15 = 15, // Invalid - Do Not Use
Chat16 = 16, // White Chat Bubble
Chat17 = 17, // White Chat Bubble
Chat18 = 18, // White Chat Bubble
Chat19 = 19, // White Chat Bubble
Chat20 = 20, // White Chat Bubble
Chat21 = 21, // transmogrifier?
Max
}
public struct eTradeskill
{
// Skill Defines
public const uint TradeskillAlchemy = 1;
public const uint TradeskillBlacksmithing = 2;
public const uint TradeskillCooking = 3;
public const uint TradeskillEnchanting = 4;
public const uint TradeskillEngineering = 5;
public const uint TradeskillFirstaid = 6;
public const uint TradeskillHerbalism = 7;
public const uint TradeskillLeatherworking = 8;
public const uint TradeskillPoisons = 9;
public const uint TradeskillTailoring = 10;
public const uint TradeskillMining = 11;
public const uint TradeskillFishing = 12;
public const uint TradeskillSkinning = 13;
public const uint TradeskillJewlcrafting = 14;
public const uint TradeskillInscription = 15;
public const uint TradeskillLevelNone = 0;
public const uint TradeskillLevelApprentice = 1;
public const uint TradeskillLevelJourneyman = 2;
public const uint TradeskillLevelExpert = 3;
public const uint TradeskillLevelArtisan = 4;
public const uint TradeskillLevelMaster = 5;
public const uint TradeskillLevelGrandMaster = 6;
// Gossip Defines
public const uint GossipActionTrade = 1;
public const uint GossipActionTrain = 2;
public const uint GossipActionTaxi = 3;
public const uint GossipActionGuild = 4;
public const uint GossipActionBattle = 5;
public const uint GossipActionBank = 6;
public const uint GossipActionInn = 7;
public const uint GossipActionHeal = 8;
public const uint GossipActionTabard = 9;
public const uint GossipActionAuction = 10;
public const uint GossipActionInnInfo = 11;
public const uint GossipActionUnlearn = 12;
public const uint GossipActionInfoDef = 1000;
public const uint GossipSenderMain = 1;
public const uint GossipSenderInnInfo = 2;
public const uint GossipSenderInfo = 3;
public const uint GossipSenderSecProftrain = 4;
public const uint GossipSenderSecClasstrain = 5;
public const uint GossipSenderSecBattleinfo = 6;
public const uint GossipSenderSecBank = 7;
public const uint GossipSenderSecInn = 8;
public const uint GossipSenderSecMailbox = 9;
public const uint GossipSenderSecStablemaster = 10;
}
}
+166
View File
@@ -0,0 +1,166 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum RemoveMethod
{
Default = 0,
Kick = 1,
Leave = 2,
KickLFG = 3
}
public enum GroupMemberOnlineStatus
{
Offline = 0x00,
Online = 0x01, // Lua_UnitIsConnected
PVP = 0x02, // Lua_UnitIsPVP
Dead = 0x04, // Lua_UnitIsDead
Ghost = 0x08, // Lua_UnitIsGhost
PVPFFA = 0x10, // Lua_UnitIsPVPFreeForAll
Unk3 = 0x20, // used in calls from Lua_GetPlayerMapPosition/Lua_GetBattlefieldFlagPosition
AFK = 0x40, // Lua_UnitIsAFK
DND = 0x80, // Lua_UnitIsDND
RAF = 0x100,
Vehicle = 0x200, // Lua_UnitInVehicle
}
public enum GroupMemberFlags
{
Assistant = 0x01,
MainTank = 0x02,
MainAssist = 0x04
}
public enum GroupMemberAssignment
{
MainTank = 0,
MainAssist = 1
}
public enum GroupType
{
None = 0,
Normal = 1,
WorldPvp = 4,
}
public enum GroupFlags
{
None = 0x00,
FakeRaid = 0x01,
Raid = 0x02,
LfgRestricted = 0x04, // Script_HasLFGRestrictions()
Lfg = 0x08,
Destroyed = 0x10,
OnePersonParty = 0x020, // Script_IsOnePersonParty()
EveryoneAssistant = 0x040, // Script_IsEveryoneAssistant()
GuildGroup = 0x100,
MaskBgRaid = FakeRaid | Raid
}
public enum GroupUpdateFlags
{
None = 0x00, // nothing
Unk704 = 0x01, // Uint8[2] (Unk)
Status = 0x02, // public ushort (Groupmemberstatusflag)
PowerType = 0x04, // Uint8 (Powertype)
Unk322 = 0x08, // public ushort (Unk)
CurHp = 0x10, // Uint32 (Hp)
MaxHp = 0x20, // Uint32 (Max Hp)
CurPower = 0x40, // Int16 (Power Value)
MaxPower = 0x80, // Int16 (Max Power Value)
Level = 0x100, // public ushort (Level Value)
Unk200000 = 0x200, // Int16 (Unk)
Zone = 0x400, // public ushort (Zone Id)
Unk2000000 = 0x800, // Int16 (Unk)
Unk4000000 = 0x1000, // Int32 (Unk)
Position = 0x2000, // public ushort (X), public ushort (Y), public ushort (Z)
VehicleSeat = 0x4000, // Int32 (Vehicle Seat Id)
Auras = 0x8000, // Uint8 (Unk), Uint64 (Mask), Uint32 (Count), For Each Bit Set: Uint32 (Spell Id) + public ushort (Auraflags) (If Has Flags Scalable -> 3x Int32 (Bps))
Pet = 0x10000, // Complex (Pet)
Phase = 0x20000, // Int32 (Unk), Uint32 (Phase Count), For (Count) Uint16(Phaseid)
Full = Unk704 | Status | PowerType | Unk322 | CurHp | MaxHp |
CurPower | MaxPower | Level | Unk200000 | Zone | Unk2000000 |
Unk4000000 | Position | VehicleSeat | Auras | Pet | Phase // All Known Flags
}
public enum GroupUpdatePetFlags
{
None = 0x00000000, // nothing
GUID = 0x00000001, // ObjectGuid (pet guid)
Name = 0x00000002, // cstring (name, NULL terminated string)
ModelId = 0x00000004, // public ushort (model id)
CurHp = 0x00000008, // uint32 (HP)
MaxHp = 0x00000010, // uint32 (max HP)
Auras = 0x00000020, // [see GROUP_UPDATE_FLAG_AURAS]
Full = GUID | Name | ModelId | CurHp | MaxHp | Auras // all pet flags
}
public enum PartyResult
{
Ok = 0,
BadPlayerNameS = 1,
TargetNotInGroupS = 2,
TargetNotInInstanceS = 3,
GroupFull = 4,
AlreadyInGroupS = 5,
NotInGroup = 6,
NotLeader = 7,
PlayerWrongFaction = 8,
IgnoringYouS = 9,
LfgPending = 12,
InviteRestricted = 13,
GroupSwapFailed = 14, // If (Partyoperation == PartyOpSwap) GroupSwapFailed Else InviteInCombat
InviteUnknownRealm = 15,
InviteNoPartyServer = 16,
InvitePartyBusy = 17,
PartyTargetAmbiguous = 18,
PartyLfgInviteRaidLocked = 19,
PartyLfgBootLimit = 20,
PartyLfgBootCooldownS = 21,
PartyLfgBootInProgress = 22,
PartyLfgBootTooFewPlayers = 23,
PartyLfgBootNotEligibleS = 24,
RaidDisallowedByLevel = 25,
PartyLfgBootInCombat = 26,
VoteKickReasonNeeded = 27,
PartyLfgBootDungeonComplete = 28,
PartyLfgBootLootRolls = 29,
PartyLfgTeleportInCombat = 30
}
public enum PartyOperation
{
Invite = 0,
UnInvite = 1,
Leave = 2,
Swap = 4
}
public enum GroupCategory
{
Home = 0,
Instance = 1,
Max
}
}
+283
View File
@@ -0,0 +1,283 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public class GuildConst
{
public const int MaxBankTabs = 8;
public const int MaxBankSlots = 98;
public const int BankMoneyLogsTab = 100;
public const int WithdrawMoneyUnlimited = -1;
public const int WithdrawSlotUnlimited = -1;
public const uint EventLogGuidUndefined = 0xFFFFFFFF;
public const uint ChallengesTypes = 6;
public const uint CharterItemId = 5863;
public const int RankNone = 0xFF;
public const int MinRanks = 5;
public const int MaxRanks = 10;
public const int BankLogMaxRecords = 25;
public const int EventLogMaxRecords = 100;
public const int NewsLogMaxRecords = 250;
public static int[] ChallengeGoldReward = { 0, 250, 1000, 500, 250, 500 };
public static int[] ChallengeMaxLevelGoldReward = { 0, 125, 500, 250, 125, 250 };
public static int[] ChallengesMaxCount = { 0, 7, 1, 3, 0, 3 };
public static uint MinNewsItemLevel = 353;
public static byte OldMaxLevel = 25;
}
public enum GuildRankRights
{
None = 0x00000000,
GChatListen = 0x00000001,
GChatSpeak = 0x00000002,
OffChatListen = 0x00000004,
OffChatSpeak = 0x00000008,
Invite = 0x00000010,
Remove = 0x00000020,
Roster = 0x00000040,
Promote = 0x00000080,
Demote = 0x00000100,
Unk200 = 0x00000200,
Unk400 = 0x00000400,
Unk800 = 0x00000800,
SetMotd = 0x00001000,
EditPublicNote = 0x00002000,
ViewOffNote = 0x00004000,
EOffNote = 0x00008000,
ModifyGuildInfo = 0x00010000,
WithdrawGoldLock = 0x00020000, // remove money withdraw capacity
WithdrawRepair = 0x00040000, // withdraw for repair
WithdrawGold = 0x00080000, // withdraw gold
CreateGuildEvent = 0x00100000, // wotlk
All = 0x00DDFFBF
}
public struct GuildDefaultRanks
{
public const int Master = 0;
public const int Officer = 1;
public const int Veteran = 2;
public const int Member = 3;
public const int Initiate = 4;
}
public enum GuildMemberFlags
{
None = 0,
Online = 1,
AFK = 2,
DND = 3,
Mobile = 4
}
public enum GuildMemberData
{
ZoneId,
AchievementPoints,
Level,
}
public enum GuildCommandType
{
CreateGuild = 0,
InvitePlayer = 1,
LeaveGuild = 3,
GetRoster = 5,
PromotePlayer = 6,
DemotePlayer = 7,
RemovePlayer = 8,
ChangeLeader = 10,
EditMOTD = 11,
GuildChat = 13,
Founder = 14,
ChangeRank = 16,
EditPublicNote = 19,
ViewTab = 21,
MoveItem = 22,
Repair = 25
}
public enum GuildCommandError
{
Success = 0,
GuildInternal = 1,
AlreadyInGuild = 2,
AlreadyInGuild_S = 3,
InvitedToGuild = 4,
AlreadyInvitedToGuild_S = 5,
NameInvalid = 6,
NameExists_S = 7,
LeaderLeave = 8,
Permissions = 8,
PlayerNotInGuild = 9,
PlayerNotInGuild_S = 10,
PlayerNotFound_S = 11,
NotAllied = 12,
RankTooHigh_S = 13,
RankTooLow_S = 14,
RanksLocked = 17,
RankInUse = 18,
IgnoringYou_S = 19,
Unk1 = 20,
WithdrawLimit = 25,
NotEnoughMoney = 26,
BankFull = 28,
ItemNotFound = 29,
TooMuchMoney = 31,
WrongTab = 32,
RequiresAuthenticator = 34,
BankVoucherFailed = 35,
TrialAccount = 36,
UndeletableDueToLevel = 37,
MoveStarting = 38,
RepTooLow = 39
}
public enum GuildEventLogTypes
{
InvitePlayer = 1,
JoinGuild = 2,
PromotePlayer = 3,
DemotePlayer = 4,
UninvitePlayer = 5,
LeaveGuild = 6,
}
public enum GuildBankEventLogTypes
{
DepositItem = 1,
WithdrawItem = 2,
MoveItem = 3,
DepositMoney = 4,
WithdrawMoney = 5,
RepairMoney = 6,
MoveItem2 = 7,
Unk1 = 8,
BuySlot = 9,
CashFlowDeposit = 10
}
public enum GuildEmblemError
{
Success = 0,
InvalidTabardColors = 1,
NoGuild = 2,
NotGuildMaster = 3,
NotEnoughMoney = 4,
InvalidVendor = 5
}
public enum GuildBankRights : int
{
ViewTab = 0x01,
PutItem = 0x02,
UpdateText = 0x04,
DepositItem = ViewTab | PutItem,
Full = -1
}
public enum GuildNews
{
Achievement = 0,
PlayerAchievement = 1,
DungeonEncounter = 2,
ItemLooted = 3,
ItemCrafted = 4,
ItemPurchased = 5,
LevelUp = 6,
Create = 7,
Event = 8
}
public enum PetitionTurns
{
Ok = 0,
AlreadyInGuild = 2,
NeedMoreSignatures = 4,
GuildPermissions = 11,
GuildNameInvalid = 12
}
public enum PetitionSigns
{
Ok = 0,
AlreadySigned = 1,
AlreadyInGuild = 2,
CantSignOwn = 3,
NotServer = 4,
Full = 5,
AlreadySignedOther = 6,
RestrictedAccount = 7
}
public enum CharterTypes
{
Guild = 4,
Arena2v2 = 2,
Arena3v3 = 3,
Arena5v5 = 5,
}
public struct CharterCosts
{
public const uint Guild = 1000;
public const uint Arena2v2 = 800000;
public const uint Arena3v3 = 1200000;
public const uint Arena5v5 = 2000000;
}
public enum GuildFinderOptionsInterest
{
Questing = 0x01,
Dungeons = 0x02,
Raids = 0x04,
PVP = 0x08,
RolePlaying = 0x10,
All = Questing | Dungeons | Raids | PVP | RolePlaying
}
public enum GuildFinderOptionsAvailability
{
Weekdays = 0x1,
Weekends = 0x2,
Always = Weekdays | Weekends
}
public enum GuildFinderOptionsRoles
{
Tank = 0x1,
Healer = 0x2,
DPS = 0x4,
All = Tank | Healer | DPS
}
public enum GuildFinderOptionsLevel
{
Any = 0x1,
Max = 0x2,
All = Any | Max
}
}
File diff suppressed because it is too large Load Diff
+179
View File
@@ -0,0 +1,179 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
namespace Framework.Constants
{
[Flags]
public enum LfgRoles
{
None = 0x00,
Leader = 0x01,
Tank = 0x02,
Healer = 0x04,
Damage = 0x08
}
public enum LfgUpdateType
{
Default = 0, // Internal Use
LeaderUnk1 = 1, // Fixme: At Group Leave
RolecheckAborted = 4,
JoinQueue = 6,
RolecheckFailed = 7,
RemovedFromQueue = 8,
ProposalFailed = 9,
ProposalDeclined = 10,
GroupFound = 11,
AddedToQueue = 13,
ProposalBegin = 14,
UpdateStatus = 15,
GroupMemberOffline = 16,
GroupDisbandUnk16 = 17, // Fixme: Sometimes At Group Disband
JoinQueueInitial = 24,
DungeonFinished = 25,
PartyRoleNotAvailable = 43,
JoinLfgObjectFailed = 45,
}
public enum LfgState
{
None,
Rolecheck,
Queued,
Proposal,
//Boot,
Dungeon = 5,
FinishedDungeon,
Raidbrowser
}
public enum LfgLockStatusType
{
InsufficientExpansion = 1,
TooLowLevel = 2,
TooHighLevel = 3,
TooLowGearScore = 4,
TooHighGearScore = 5,
RaidLocked = 6,
AttunementTooLowLevel = 1001,
AttunementTooHighLevel = 1002,
QuestNotCompleted = 1022,
MissingItem = 1025,
NotInSeason = 1031,
MissingAchievement = 1034
}
public enum LfgOptions
{
EnableDungeonFinder = 0x01,
EnableRaidBrowser = 0x02,
}
public enum LfgFlags
{
Unk1 = 0x1,
Unk2 = 0x2,
Seasonal = 0x4,
Unk3 = 0x8
}
public enum LfgType : byte
{
None = 0,
Dungeon = 1,
Raid = 2,
Zone = 4,
Quest = 5,
RandomDungeon = 6
}
public enum LfgProposalState
{
Initiating = 0,
Failed = 1,
Success = 2
}
public enum LfgTeleportResult
{
// 7 = "You Can'T Do That Right Now" | 5 = No Client Reaction
Ok = 0, // Internal Use
PlayerDead = 1,
Falling = 2,
InVehicle = 3,
Fatigue = 4,
InvalidLocation = 6,
Charming = 8 // Fixme - It Can Be 7 Or 8 (Need Proper Data)
}
public enum LfgJoinResult
{
// 3 = No Client Reaction | 18 = "Rolecheck Failed"
Ok = 0x00, // Joined (No Client Msg)
Failed = 0x1b, // Rolecheck Failed
Groupfull = 0x1c, // Your Group Is Full
InternalError = 0x1e, // Internal Lfg Error
NotMeetReqs = 0x1f, // You Do Not Meet The Requirements For The Chosen Dungeons
PartyNotMeetReqs = 6, // One Or More Party Members Do Not Meet The Requirements For The Chosen Dungeons
MixedRaidDungeon = 0x20, // You Cannot Mix Dungeons, Raids, And Random When Picking Dungeons
MultiRealm = 0x21, // The Dungeon You Chose Does Not Support Players From Multiple Realms
Disconnected = 0x22, // One Or More Party Members Are Pending Invites Or Disconnected
PartyInfoFailed = 0x23, // Could Not Retrieve Information About Some Party Members
DungeonInvalid = 0x24, // One Or More Dungeons Was Not Valid
Deserter = 0x25, // You Can Not Queue For Dungeons Until Your Deserter Debuff Wears Off
PartyDeserter = 0x26, // One Or More Party Members Has A Deserter Debuff
RandomCooldown = 0x27, // You Can Not Queue For Random Dungeons While On Random Dungeon Cooldown
PartyRandomCooldown = 0x28, // One Or More Party Members Are On Random Dungeon Cooldown
TooMuchMembers = 0x29, // You Can Not Enter Dungeons With More That 5 Party Members
UsingBgSystem = 0x2a, // You Can Not Use The Dungeon System While In Bg Or Arenas
RoleCheckFailed = 0x2b // Role Check Failed, Client Shows Special Error
}
public enum LfgRoleCheckState
{
Default = 0, // Internal Use = Not Initialized.
Finished = 1, // Role Check Finished
Initialiting = 2, // Role Check Begins
MissingRole = 3, // Someone Didn'T Selected A Role After 2 Mins
WrongRoles = 4, // Can'T Form A Group With That Role Selection
Aborted = 5, // Someone Leave The Group
NoRole = 6 // Someone Selected No Role
}
public enum LfgAnswer
{
Pending = -1,
Deny = 0,
Agree = 1
}
public enum LfgCompatibility
{
Pending,
WrongGroupSize,
TooMuchPlayers,
MultipleLfgGroups,
HasIgnores,
NoRoles,
NoDungeons,
WithLessPlayers, // Values Under This = Not Compatible (Do Not Modify Order)
BadStates,
Match // Must Be The Last One
}
}
File diff suppressed because it is too large Load Diff
+115
View File
@@ -0,0 +1,115 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum RollType
{
Pass = 0,
Need = 1,
Greed = 2,
Disenchant = 3,
NotEmitedYet = 4,
NotValid = 5,
MaxTypes = 4,
}
public enum RollMask
{
Pass = 0x01,
Need = 0x02,
Greed = 0x04,
Disenchant = 0x08,
AllNoDisenchant = 0x07,
AllMask = 0x0f
}
public enum LootMethod
{
FreeForAll = 0,
MasterLoot = 2,
GroupLoot = 3,
PersonalLoot = 5
}
public enum LootModes
{
Default = 0x1,
HardMode1 = 0x2,
HardMode2 = 0x4,
HardMode3 = 0x8,
HardMode4 = 0x10,
JunkFish = 0x8000
}
public enum PermissionTypes
{
All = 0,
Group = 1,
Master = 2,
Restricted = 3,
Owner = 5,
None = 6
}
public enum LootType
{
None = 0,
Corpse = 1,
Pickpocketing = 2,
Fishing = 3,
Disenchanting = 4,
// Ignored Always By Client
Skinning = 6,
Prospecting = 7,
Milling = 8,
Fishinghole = 20, // Unsupported By Client, Sending Fishing Instead
Insignia = 21, // Unsupported By Client, Sending Corpse Instead
FishingJunk = 22 // unsupported by client, sending LOOT_FISHING instead
}
public enum LootError
{
DidntKill = 0, // You don't have permission to loot that corpse.
TooFar = 4, // You are too far away to loot that corpse.
BadFacing = 5, // You must be facing the corpse to loot it.
Locked = 6, // Someone is already looting that corpse.
NotStanding = 8, // You need to be standing up to loot something!
Stunned = 9, // You can't loot anything while stunned!
PlayerNotFound = 10, // Player not found
PlayTimeExceeded = 11, // Maximum play time exceeded
MasterInvFull = 12, // That player's inventory is full
MasterUniqueItem = 13, // Player has too many of that item already
MasterOther = 14, // Can't assign item to that player
AlreadPickPocketed = 15, // Your target has already had its pockets picked
NotWhileShapeShifted = 16, // You can't do that while shapeshifted.
NoLoot = 17 // There is no loot.
}
// type of Loot Item in Loot View
public enum LootSlotType
{
AllowLoot = 0, // Player Can Loot The Item.
RollOngoing = 1, // Roll Is Ongoing. Player Cannot Loot.
Locked = 2, // Item Is Shown In Red. Player Cannot Loot.
Master = 3, // Item Can Only Be Distributed By Group Loot Master.
Owner = 4 // Ignore Binding Confirmation And Etc, For Single Player Looting
}
}
+94
View File
@@ -0,0 +1,94 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum MailMessageType
{
Normal = 0,
Auction = 2,
Creature = 3,
Gameobject = 4,
Calendar = 5,
Blackmarket = 6
}
public enum MailCheckMask
{
None = 0x00,
Read = 0x01,
Returned = 0x02, /// This Mail Was Returned. Do Not Allow Returning Mail Back Again.
Copied = 0x04, /// This Mail Was Copied. Do Not Allow Making A Copy Of Items In Mail.
CodPayment = 0x08,
HasBody = 0x10 /// This Mail Has Body Text.
}
public enum MailStationery
{
Test = 1,
Default = 41,
Gm = 61,
Auction = 62,
Val = 64, // Valentine
Chr = 65, // Christmas
Orp = 67 // Orphan
}
public enum MailState
{
Unchanged = 1,
Changed = 2,
Deleted = 3
}
public enum MailShowFlags
{
Unk0 = 0x0001,
Delete = 0x0002, // Forced Show Delete Button Instead Return Button
Auction = 0x0004, // From Old Comment
Unk2 = 0x0008, // Unknown, Cod Will Be Shown Even Without That Flag
Return = 0x0010
}
public enum MailResponseType
{
Send = 0,
MoneyTaken = 1,
ItemTaken = 2,
ReturnedToSender = 3,
Deleted = 4,
MadePermanent = 5
}
public enum MailResponseResult
{
Ok = 0,
EquipError = 1,
CannotSendToSelf = 2,
NotEnoughMoney = 3,
RecipientNotFound = 4,
NotYourTeam = 5,
InternalError = 6,
DisabledForTrialAcc = 14,
RecipientCapReached = 15,
CantSendWrappedCod = 16,
MailAndChatSuspended = 17,
TooManyAttachments = 18,
MailAttachmentInvalid = 19,
ItemHasExpired = 21
}
}
+184
View File
@@ -0,0 +1,184 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public class MapConst
{
//Grids
public const int MaxGrids = 64;
public const float SizeofGrids = 533.33333f;
public const float CenterGridCellId = (MaxCells * MaxGrids / 2);
public const float CenterGridId = (MaxGrids / 2);
public const float CenterGridOffset = (SizeofGrids / 2);
public const float CenterGridCellOffset = (SizeofCells / 2);
//Cells
public const int MaxCells = 8;
public const float SizeofCells = (SizeofGrids / MaxCells);
public const int TotalCellsPerMap = (MaxGrids * MaxCells);
public const float MapSize = (SizeofGrids * MaxGrids);
public const float MapHalfSize = (MapSize / 2);
public const uint MaxGroupSize = 5;
public const uint MaxRaidSize = 40;
public const uint MaxRaidSubGroups = MaxRaidSize / MaxGroupSize;
public const uint TargetIconsCount = 8;
public const uint RaidMarkersCount = 8;
public const uint ReadycheckDuration = 35000;
//Liquid
public const int MapLiquidTypeNoWater = 0x00;
public const int MapLiquidTypeWater = 0x01;
public const int MapLiquidTypeOcean = 0x02;
public const int MapLiquidTypeMagma = 0x04;
public const int MapLiquidTypeSlime = 0x08;
public const int MapLiquidTypeDarkWater = 0x10;
public const int MapLiquidTypeWMOWater = 0x20;
public const int MapAllLiquidTypes = (MapLiquidTypeWater | MapLiquidTypeOcean | MapLiquidTypeMagma | MapLiquidTypeSlime);
public const float LiquidTileSize = (533.333f / 128.0f);
public const int MinMapUpdateDelay = 50;
public const int MinGridDelay = (Time.Minute * Time.InMilliseconds);
public const int MapResolution = 128;
public const float DefaultHeightSearch = 50.0f;
public const float InvalidHeight = -100000.0f;
public const float MaxHeight = 100000.0f;
public const float MaxFallDistance = 250000.0f;
public const string MapMagic = "MAPS";
public const string MapVersionMagic = "v1.8";
public const string MapAreaMagic = "AREA";
public const string MapHeightMagic = "MHGT";
public const string MapLiquidMagic = "MLIQ";
public const string mmapMagic = "MMAP";
public const int mmapVersion = 8;
public const string VMapMagic = "VMAP_4.5";
public const float VMAPInvalidHeightValue = -200000.0f;
}
public enum NewWorldReason
{
Normal = 16, // Normal map change
Seamless = 21, // Teleport to another map without a loading screen, used for outdoor scenarios
}
public enum InstanceResetWarningType
{
WarningHours = 1, // WARNING! %s is scheduled to reset in %d hour(s).
WarningMin = 2, // WARNING! %s is scheduled to reset in %d minute(s)!
WarningMinSoon = 3, // WARNING! %s is scheduled to reset in %d minute(s). Please exit the zone or you will be returned to your bind location!
Welcome = 4, // Welcome to %s. This raid instance is scheduled to reset in %s.
Expired = 5
}
public enum InstanceResetMethod
{
All,
ChangeDifficulty,
Global,
GroupDisband,
GroupJoin,
RespawnDelay
}
public enum GridMapTypeMask
{
None = 0x00,
Corpse = 0x01,
Creature = 0x02,
DynamicObject = 0x04,
GameObject = 0x08,
Player = 0x10,
AreaTrigger = 0x20,
Conversation = 0x40,
All = 0x7F,
//GameObjects, Creatures(except pets), DynamicObject, Corpse(Bones), AreaTrigger
AllGrid = GameObject | Creature | DynamicObject | Corpse | AreaTrigger | Conversation,
//Player, Pets, Corpse(resurrectable), DynamicObject(farsight)
AllWorld = Player | Creature | Corpse | DynamicObject
}
public enum ZLiquidStatus
{
NoWater = 0x00,
AboveWater = 0x01,
WaterWalk = 0x02,
InWater = 0x04,
UnderWater = 0x08
}
public enum EncounterFrameType
{
SetCombatResLimit = 0,
ResetCombatResLimit = 1,
Engage = 2,
Disengage = 3,
UpdatePriority = 4,
AddTimer = 5,
EnableObjective = 6,
UpdateObjective = 7,
DisableObjective = 8,
Unk7 = 9, // Seems To Have Something To Do With Sorting The Encounter Units
AddCombatResLimit = 10
}
public enum EncounterState
{
NotStarted = 0,
InProgress = 1,
Fail = 2,
Done = 3,
Special = 4,
ToBeDecided = 5
}
public enum EncounterCreditType
{
KillCreature = 0,
CastSpell = 1
}
public enum DoorType
{
Room = 0, // Door can open if encounter is not in progress
Passage = 1, // Door can open if encounter is done
SpawnHole = 2, // Door can open if encounter is in progress, typically used for spawning places
Max
}
public enum EnterState
{
CanEnter = 0,
CannotEnterAlreadyInMap = 1, // Player Is Already In The Map
CannotEnterNoEntry, // No Map Entry Was Found For The Target Map Id
CannotEnterUninstancedDungeon, // No Instance Template Was Found For Dungeon Map
CannotEnterDifficultyUnavailable, // Requested Instance Difficulty Is Not Available For Target Map
CannotEnterNotInRaid, // Target Instance Is A Raid Instance And The Player Is Not In A Raid Group
CannotEnterCorpseInDifferentInstance, // Player Is Dead And Their Corpse Is Not In Target Instance
CannotEnterInstanceBindMismatch, // Player'S Permanent Instance Save Is Not Compatible With Their Group'S Current Instance Bind
CannotEnterTooManyInstances, // Player Has Entered Too Many Instances Recently
CannotEnterMaxPlayers, // Target Map Already Has The Maximum Number Of Players Allowed
CannotEnterZoneInCombat, // A Boss Encounter Is Currently In Progress On The Target Map
CannotEnterUnspecifiedReason
}
}
@@ -0,0 +1,87 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum MovementSlot
{
Idle,
Active,
Controlled,
Max
}
public enum MovementGeneratorType
{
Idle = 0, // IdleMovement
Random = 1, // RandomMovement
Waypoint = 2, // WaypointMovement
MaxDB = 3, // *** this and below motion types can't be set in DB.
AnimalRandom = MaxDB, // AnimalRandomMovementGenerator.h
Confused = 4, // ConfusedMovementGenerator.h
Chase = 5, // TargetedMovementGenerator.h
Home = 6, // HomeMovementGenerator.h
Flight = 7, // WaypointMovementGenerator.h
Point = 8, // PointMovementGenerator.h
Fleeing = 9, // FleeingMovementGenerator.h
Distract = 10, // IdleMovementGenerator.h
Assistance = 11, // PointMovementGenerator.h (first part of flee for assistance)
AssistanceDistract = 12, // IdleMovementGenerator.h (second part of flee for assistance)
TimedFleeing = 13, // FleeingMovementGenerator.h (alt.second part of flee for assistance)
Follow = 14,
Rotate = 15,
Effect = 16,
Null = 17,
SplineChain = 18,
Max
}
public struct EventId
{
public const uint Charge = 1003;
public const uint Jump = 1004;
/// Special charge event which is used for charge spells that have explicit targets
/// and had a path already generated - using it in PointMovementGenerator will not
/// create a new spline and launch it
public const uint ChargePrepath = 1005;
public const uint SmartRandomPoint = 0xFFFFFE;
public const uint SmartEscortLastOCCPoint = 0xFFFFFF;
}
public enum AnimType
{
ToGround = 0, // 460 = ToGround, index of AnimationData.dbc
FlyToFly = 1, // 461 = FlyToFly?
ToFly = 2, // 458 = ToFly
FlyToGround = 3 // 463 = FlyToGround
}
public enum RotateDirection
{
Left,
Right
}
public enum UpdateCollisionHeightReason
{
Scale = 0,
Mount = 1,
Force = 2
}
}
@@ -0,0 +1,101 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
namespace Framework.Constants
{
[Flags]
public enum MovementFlag
{
None = 0x0,
Forward = 0x1,
Backward = 0x2,
StrafeLeft = 0x4,
StrafeRight = 0x8,
Left = 0x10,
Right = 0x20,
PitchUp = 0x40,
PitchDown = 0x80,
Walking = 0x100,
DisableGravity = 0x200,
Root = 0x400,
Falling = 0x800,
FallingFar = 0x1000,
PendingStop = 0x2000,
PendingStrafeStop = 0x4000,
PendingForward = 0x8000,
PendingBackward = 0x10000,
PendingStrafeLeft = 0x20000,
PendingStrafeRight = 0x40000,
PendingRoot = 0x80000,
Swimming = 0x100000,
Ascending = 0x200000,
Descending = 0x400000,
CanFly = 0x800000,
Flying = 0x1000000,
SplineElevation = 0x2000000,
WaterWalk = 0x4000000,
FallingSlow = 0x8000000,
Hover = 0x10000000,
DisableCollision = 0x20000000,
MaskMoving = Forward | Backward | StrafeLeft | StrafeRight | Falling | Ascending | Descending,
MaskTurning = Left | Right | PitchUp | PitchDown,
MaskMovingFly = Flying | Ascending | Descending,
MaskCreatureAllowed = Forward | DisableGravity | Root | Swimming |
CanFly | WaterWalk | FallingSlow | Hover | DisableCollision,
MaskPlayerOnly = Flying,
MaskHasPlayerStatusOpcode = DisableGravity | Root | CanFly | WaterWalk |
FallingSlow | Hover | DisableCollision
}
[Flags]
public enum MovementFlag2
{
None = 0x0,
NoStrafe = 0x1,
NoJumping = 0x2,
FullSpeedTurning = 0x4,
FullSpeedPitching = 0x8,
AlwaysAllowPitching = 0x10,
IsVehicleExitVoluntary = 0x20,
JumpSplineInAir = 0x40,
AnimTierInTrans = 0x80,
WaterwalkingFullPitch = 0x100, // will always waterwalk, even if facing the camera directly down
VehiclePassengerIsTransitionAllowed = 0x200,
CanSwimToFlyTrans = 0x400,
Unk11 = 0x800, // terrain normal calculation is disabled if this flag is not present, client automatically handles setting this flag
CanTurnWhileFalling = 0x1000,
Unk13 = 0x2000, // will always waterwalk, even if facing the camera directly down
IgnoreMovementForces = 0x4000,
Unk15 = 0x8000,
CanDoubleJump = 0x10000,
DoubleJump = 0x20000,
// these flags cannot be sent (18 bits in packet)
Unk18 = 0x40000,
Unk19 = 0x80000,
InterpolatedMovement = 0x100000,
InterpolatedTurning = 0x200000,
InterpolatedPitching = 0x400000
}
}
@@ -0,0 +1,72 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
namespace Framework.Constants
{
public enum MonsterMoveType
{
Normal = 0,
FacingSpot = 1,
FacingTarget = 2,
FacingAngle = 3
}
[Flags]
public enum SplineFlag : uint
{
None = 0x00,
// x00-x07 used as animation Ids storage in pair with Animation flag
Unknown0 = 0x00000008, // NOT VERIFIED - does someting related to falling/fixed orientation
FallingSlow = 0x00000010,
Done = 0x00000020,
Falling = 0x00000040, // Affects elevation computation, can't be combined with Parabolic flag
NoSpline = 0x00000080,
Unknown1 = 0x00000100, // NOT VERIFIED
Flying = 0x00000200, // Smooth movement(Catmullrom interpolation mode), flying animation
OrientationFixed = 0x00000400, // Model orientation fixed
Catmullrom = 0x00000800, // Used Catmullrom interpolation mode
Cyclic = 0x00001000, // Movement by cycled spline
EnterCycle = 0x00002000, // Everytimes appears with cyclic flag in monster move packet, erases first spline vertex after first cycle done
Frozen = 0x00004000, // Will never arrive
TransportEnter = 0x00008000,
TransportExit = 0x00010000,
Unknown2 = 0x00020000, // NOT VERIFIED
Unknown3 = 0x00040000, // NOT VERIFIED
Backward = 0x00080000,
SmoothGroundPath = 0x00100000,
CanSwim = 0x00200000,
UncompressedPath = 0x00400000,
Unknown4 = 0x00800000, // NOT VERIFIED
Unknown5 = 0x01000000, // NOT VERIFIED
Animation = 0x02000000, // Plays animation after some time passed
Parabolic = 0x04000000, // Affects elevation computation, can't be combined with Falling flag
FadeObject = 0x08000000,
Steering = 0x10000000,
Unknown8 = 0x20000000, // NOT VERIFIED
Unknown9 = 0x40000000, // NOT VERIFIED
Unknown10 = 0x80000000, // NOT VERIFIED
// animation ids stored here, see AnimType enum, used with Animation flag
MaskAnimations = 0x7,
// flags that shouldn't be appended into SMSG_MONSTER_MOVE\SMSG_MONSTER_MOVE_TRANSPORT packet, should be more probably
MaskNoMonsterMove = MaskAnimations | Done,
// Unused, not suported flags
MaskUnused = NoSpline | EnterCycle | Frozen | Unknown0 | Unknown1 | Unknown2 | Unknown3 | Unknown4 | FadeObject | Steering | Unknown8 | Unknown9 | Unknown10
}
}
@@ -0,0 +1,35 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
// Player state
public enum SessionStatus
{
Authed = 0, // Player authenticated (_player == NULL, m_playerRecentlyLogout = false or will be reset before handler call, m_GUID have garbage)
Loggedin, // Player in game (_player != NULL, m_GUID == _player->GetGUID(), inWorld())
Transfer, // Player transferring to another map (_player != NULL, m_GUID == _player->GetGUID(), !inWorld())
LoggedinOrRecentlyLogout, // _player != NULL or _player == NULL && m_playerRecentlyLogout && m_playerLogout, m_GUID store last _player guid)
}
public enum PacketProcessing
{
Inplace = 0, //process packet whenever we receive it - mostly for non-handled or non-implemented packets
ThreadUnsafe, //packet is not thread-safe - process it in World.UpdateSessions()
ThreadSafe //packet is thread-safe - process it in Map.Update()
}
}
File diff suppressed because it is too large Load Diff
+229
View File
@@ -0,0 +1,229 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum TypeId
{
Object = 0,
Item = 1,
Container = 2,
Unit = 3,
Player = 4,
GameObject = 5,
DynamicObject = 6,
Corpse = 7,
AreaTrigger = 8,
SceneObject = 9,
Conversation = 10
}
public enum TypeMask
{
Object = 0x01,
Item = 0x02,
Container = Item | 0x04,
Unit = 0x08,
Player = 0x10,
GameObject = 0x20,
DynamicObject = 0x40,
Corpse = 0x80,
AreaTrigger = 0x100,
Sceneobject = 0x200,
Conversation = 0x400,
Seer = Player | Unit | DynamicObject
}
public enum HighGuid
{
Null = 0,
Uniq = 1,
Player = 2,
Item = 3,
WorldTransaction = 4,
StaticDoor = 5, //NYI
Transport = 6,
Conversation = 7,
Creature = 8,
Vehicle = 9,
Pet = 10,
GameObject = 11,
DynamicObject = 12,
AreaTrigger = 13,
Corpse = 14,
LootObject = 15,
SceneObject = 16,
Scenario = 17,
AIGroup = 18,
DynamicDoor = 19,
ClientActor = 20, //NYI
Vignette = 21,
CallForHelp = 22,
AIResource = 23,
AILock = 24,
AILockTicket = 25,
ChatChannel = 26,
Party = 27,
Guild = 28,
WowAccount = 29,
BNetAccount = 30,
GMTask = 31,
MobileSession = 32, //NYI
RaidGroup = 33,
Spell = 34,
Mail = 35,
WebObj = 36, //NYI
LFGObject = 37, //NYI
LFGList = 38, //NYI
UserRouter = 39,
PVPQueueGroup = 40,
UserClient = 41,
PetBattle = 42, //NYI
UniqUserClient = 43,
BattlePet = 44,
CommerceObj = 45,
ClientSession = 46,
Cast = 47
}
public enum NotifyFlags
{
None = 0x00,
AIRelocation = 0x01,
VisibilityChanged = 0x02,
All = 0xFF
}
public enum TempSummonType
{
TimedOrDeadDespawn = 1, // despawns after a specified time OR when the creature disappears
TimedOrCorpseDespawn = 2, // despawns after a specified time OR when the creature dies
TimedDespawn = 3, // despawns after a specified time
TimedDespawnOOC = 4, // despawns after a specified time after the creature is out of combat
CorpseDespawn = 5, // despawns instantly after death
CorpseTimedDespawn = 6, // despawns after a specified time after death
DeadDespawn = 7, // despawns when the creature disappears
ManualDespawn = 8 // despawns when UnSummon() is called
}
public enum SummonCategory
{
Wild = 0,
Ally = 1,
Pet = 2,
Puppet = 3,
Vehicle = 4,
Unk = 5 // as of patch 3.3.5a only Bone Spike in Icecrown Citadel
// uses this category
}
public enum SummonType
{
None = 0,
Pet = 1,
Guardian = 2,
Minion = 3,
Totem = 4,
Minipet = 5,
Guardian2 = 6,
Wild2 = 7,
Wild3 = 8, // Related to phases and DK prequest line (3.3.5a)
Vehicle = 9,
Vehicle2 = 10, // Oculus and Argent Tournament vehicles (3.3.5a)
LightWell = 11,
Jeeves = 12,
Unk13 = 13
}
public enum SummonerType
{
Creature = 0,
GameObject = 1,
Map = 2
}
public enum GhostVisibilityType
{
Alive = 0x1,
Ghost = 0x2
}
public enum StealthType
{
General = 0,
Trap = 1,
Max = 2
}
public enum InvisibilityType
{
General = 0,
Unk1 = 1,
Unk2 = 2,
Trap = 3,
Unk4 = 4,
Unk5 = 5,
Drunk = 6,
Unk7 = 7,
Unk8 = 8,
Unk9 = 9,
Unk10 = 10,
Unk11 = 11,
Unk12 = 12,
Unk13 = 13,
Unk14 = 14,
Unk15 = 15,
Unk16 = 16,
Unk17 = 17,
Unk18 = 18,
Unk19 = 19,
Unk20 = 20,
Unk21 = 21,
Unk22 = 22,
Unk23 = 23,
Unk24 = 24,
Unk25 = 25,
Unk26 = 26,
Unk27 = 27,
Unk28 = 28,
Unk29 = 29,
Unk30 = 30,
Unk31 = 31,
Unk32 = 32,
Unk33 = 33,
Unk34 = 34,
Unk35 = 35,
Unk36 = 36,
Unk37 = 37,
Max = 38
}
public enum ServerSideVisibilityType
{
GM = 0,
Ghost = 1,
}
public enum SessionFlags
{
None = 0x00,
FromRedirect = 0x01,
HasRedirected = 0x02
}
}
+40
View File
@@ -0,0 +1,40 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum ObjectiveStates
{
Neutral = 0,
Alliance,
Horde,
NeutralAllianceChallenge,
NeutralHordeChallenge,
AllianceHordeChallenge,
HordeAllianceChallenge
}
public enum OutdoorPvPTypes
{
HellfirePeninsula = 1,
Nagrand = 2,
TerokkarForest = 3,
Zangarmarsh = 4,
Silithus = 5,
Max = 6
}
}
+114
View File
@@ -0,0 +1,114 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum CharmType
{
Charm,
Possess,
Vehicle,
Convert
}
public enum PetType
{
Summon = 0,
Hunter = 1,
Max = 4
}
public enum PetSaveMode
{
AsDeleted = -1, // not saved in fact
AsCurrent = 0, // in current slot (with player)
FirstStableSlot = 1,
LastStableSlot = 4, // last in DB stable slot index (including), all higher have same meaning as PET_SAVE_NOT_IN_SLOT
NotInSlot = 100 // for avoid conflict with stable size grow will use 100
}
public enum HappinessState
{
UnHappy = 1,
Content = 2,
Happy = 3
}
public enum PetSpellState
{
Unchanged = 0,
Changed = 1,
New = 2,
Removed = 3
}
public enum PetSpellType
{
Normal = 0,
Family = 1,
Talent = 2
}
public enum ActionFeedback
{
None = 0,
PetDead = 1,
NothingToAtt = 2,
CantAttTarget = 3
}
public enum PetTalk
{
SpecialSpell = 0,
Attack = 1
}
public enum CommandStates
{
Stay = 0,
Follow = 1,
Attack = 2,
Abandon = 3,
MoveTo = 4
}
public enum PetNameInvalidReason
{
// custom, not send
Success = 0,
Invalid = 1,
NoName = 2,
TooShort = 3,
TooLong = 4,
MixedLanguages = 6,
Profane = 7,
Reserved = 8,
ThreeConsecutive = 11,
InvalidSpace = 12,
ConsecutiveSpaces = 13,
RussianConsecutiveSilentCharacters = 14,
RussianSilentCharacterAtBeginningOrEnd = 15,
DeclensionDoesntMatchBaseName = 16
}
public enum PetStableinfo
{
Active = 1,
Inactive = 2
}
}
+771
View File
@@ -0,0 +1,771 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
namespace Framework.Constants
{
public struct PlayerConst
{
public const int MaxTalentTiers = 7;
public const int MaxTalentColumns = 3;
public const int MaxTalentRank = 5;
public const int MinSpecializationLevel = 10;
public const int MaxSpecializations = 4;
public const int MaxMasterySpells = 2;
public const int ReqPrimaryTreeTalents = 31;
public const int ExploredZonesSize = 256;
public const long MaxMoneyAmount = long.MaxValue;
public const int MaxActionButtons = 132;
public const int MaxActionButtonActionValue = 0x00FFFFFF + 1;
public const uint KnowTitlesSize = 6;
public const uint MaxTitleIndex = KnowTitlesSize * 64;
public const int MaxDailyQuests = 25;
public const int QuestsCompletedBitsSize = 1750;
public static TimeSpan InfinityCooldownDelay = TimeSpan.FromSeconds(Time.Month); // used for set "infinity cooldowns" for spells and check
public const uint infinityCooldownDelayCheck = Time.Month / 2;
public const int MaxPlayerSummonDelay = 2 * Time.Minute;
public const int TaxiMaskSize = 243;
// corpse reclaim times
public const int DeathExpireStep = (5 * Time.Minute);
public const int MaxDeathCount = 3;
public const int MaxCUFProfiles = 5;
public static uint[] copseReclaimDelay = { 30, 60, 120 };
public const int MaxRunes = 7;
public const int MaxRechargingRunes = 3;
public static uint[] DefaultTalentRowLevels = { 15, 30, 45, 60, 75, 90, 100 };
public static uint[] DKTalentRowLevels = { 57, 58, 59, 60, 75, 90, 100 };
//public static uint[] DHTalentRowLevels = { 99, 100, 102, 104, 106, 108, 110 };
public const int CustomDisplaySize = 3;
public const int ArtifactsAllWeaponsGeneralWeaponEquippedPassive = 197886;
public const byte MaxHonorLevel = 50;
public const byte LevelMinHonor = 110;
}
public struct MoneyConstants
{
public const int Copper = 1;
public const int Silver = Copper * 100;
public const int Gold = Silver * 100;
}
public struct PlayerFieldOffsets
{
public const byte BytesOffsetSkinId = 0;
public const byte BytesOffsetFaceId = 1;
public const byte BytesOffsetHairStyleId = 2;
public const byte BytesOffsetHairColorId = 3;
public const byte Bytes2OffsetCustomDisplayOption = 0; // 3 Bytes
public const byte Bytes2OffsetFacialStyle = 3;
public const byte Bytes3OffsetPartyType = 0;
public const byte Bytes3OffsetBankBagSlots = 1;
public const byte Bytes3OffsetGender = 2;
public const byte Bytes3OffsetInebriation = 3;
public const byte Bytes4OffsetPvpTitle = 0;
public const byte Bytes4OffsetArenaFaction = 1;
public const byte FieldBytesOffsetRafGrantableLevel = 0;
public const byte FieldBytesOffsetActionBarToggles = 1;
public const byte FieldBytesOffsetLifetimeMaxPvpRank = 2;
public const byte FieldBytesOffsetMaxArtifactPowerRanks = 3;
public const byte FieldBytes2OffsetIgnorePowerRegenPredictionMask = 0;
public const byte FieldBytes2OffsetAuraVision = 1;
public const byte FieldBytes3OffsetOverrideSpellsId = 2; // Uint16!
public const byte FieldBytes3OffsetOverrideSpellsIdUint16Offset = FieldBytes3OffsetOverrideSpellsId / 2;
public const byte FieldKillsOffsetTodayKills = 0;
public const byte FieldKillsOffsetYesterdayKills = 1;
public const byte RestStateXp = 0;
public const byte RestRestedXp = 1;
public const byte RestStateHonor = 2;
public const byte RestRestedHonor = 3;
}
public enum TradeSlots
{
Invalid = -1,
NonTraded = 6,
TradedCount = 6,
Count = 7
}
public enum Tutorials
{
Talent = 0,
Spec = 1,
Glyph = 2,
SpellBook = 3,
Professions = 4,
CoreAbilitites = 5,
PetJournal = 6,
WhatHasChanged = 7,
Max = 8
}
public enum TradeStatus
{
PlayerBusy = 0,
Proposed = 1,
Initiated = 2,
Cancelled = 3,
Accepted = 4,
AlreadyTrading = 5,
NoTarget = 6,
Unaccepted = 7,
Complete = 8,
StateChanged = 9,
TooFarAway = 10,
WrongFaction = 11,
Failed = 12,
Petition = 13,
PlayerIgnored = 14,
Stunned = 15,
TargetStunned = 16,
Dead = 17,
TargetDead = 18,
LoggingOut = 19,
TargetLoggingOut = 20,
RestrictedAccount = 21,
WrongRealm = 22,
NotOnTaplist = 23,
CurrencyNotTradable = 24,
NotEnoughCurrency = 25,
}
public enum RestFlag
{
Tavern = 0x01,
City = 0x02,
FactionArea = 0x04
}
public enum ChatFlags
{
None = 0x00,
AFK = 0x01,
DND = 0x02,
GM = 0x04,
Com = 0x08, // Commentator
Dev = 0x10,
BossSound = 0x20, // Plays "RaidBossEmoteWarning" sound on raid boss emote/whisper
Mobile = 0x40
}
public enum DrunkenState
{
Sober = 0,
Tipsy = 1,
Drunk = 2,
Smashed = 3
}
public enum TalentSpecialization // talent tabs
{
MageArcane = 62,
MageFire = 63,
MageFrost = 64,
PaladinHoly = 65,
PaladinProtection = 66,
PaladinRetribution = 70,
WarriorArms = 71,
WarriorFury = 72,
WarriorProtection = 73,
DruidBalance = 102,
DruidFeralCombat = 103,
DruidRestoration = 104,
DeathKnightBlood = 250,
DeathKnightFrost = 251,
DeathKnightUnholy = 252,
HunterBeastMastery = 253,
HunterMarksman = 254,
HunterSurvival = 255,
PriestDiscipline = 256,
PriestHoly = 257,
PriestShadow = 258,
RogueAssassination = 259,
RogueCombat = 260,
RogueSubtlety = 261,
ShamanElemental = 262,
ShamanEnhancement = 263,
ShamanRestoration = 264,
WarlockAffliction = 265,
WarlockDemonology = 266,
WarlockDestruction = 267,
MonkBrewmaster = 268,
MonkBattledancer = 269,
MonkMistweaver = 270,
DemonHunterHavoc = 577,
DemonHunterVengeance = 581
}
public enum SpecResetType
{
Talents = 0,
Specialization = 1,
Glyphs = 2,
PetTalents = 3
}
public enum MirrorTimerType
{
Disabled = -1,
Fatigue = 0,
Breath = 1,
Fire = 2, // feign death
Max = 3
}
public enum TransferAbortReason
{
None = 0,
Error = 1,
MaxPlayers = 2, // Transfer ed: Instance Is Full
NotFound = 3, // Transfer ed: Instance Not Found
TooManyInstances = 4, // You Have Entered Too Many Instances Recently.
ZoneInCombat = 6, // Unable To Zone In While An Encounter Is In Progress.
InsufExpanLvl = 7, // You Must Have <Tbc, Wotlk> Expansion Installed To Access This Area.
Difficulty = 8, // <Normal, Heroic, Epic> Difficulty Mode Is Not Available For %S.
UniqueMessage = 9, // Until You'Ve Escaped Tlk'S Grasp, You Cannot Leave This Place!
TooManyRealmInstances = 10, // Additional Instances Cannot Be Launched, Please Try Again Later.
NeedGroup = 11, // Transfer ed: You Must Be In A Raid Group To Enter This Instance
NotFound2 = 12, // Transfer ed: Instance Not Found
NotFound3 = 13, // Transfer ed: Instance Not Found
NotFound4 = 14, // Transfer ed: Instance Not Found
RealmOnly = 15, // All Players In The Party Must Be From The Same Realm To Enter %S.
MapNotAllowed = 16, // Map Cannot Be Entered At This Time.
LockedToDifferentInstance = 18, // You Are Already Locked To %S
AlreadyCompletedEncounter = 19, // You Are Ineligible To Participate In At Least One Encounter In This Instance Because You Are Already Locked To An Instance In Which It Has Been Defeated.
DifficultyNotFound = 22, // Client Writes To Console "Unable To Resolve Requested Difficultyid %U To Actual Difficulty For Map %D"
XrealmZoneDown = 24, // Transfer ed: Cross-Realm Zone Is Down
SoloPlayerSwitchDifficulty = 26, // This Instance Is Already In Progress. You May Only Switch Difficulties From Inside The Instance.
}
public enum RaidGroupReason
{
None = 0,
Lowlevel = 1, // "You are too low level to enter this instance."
Only = 2, // "You must be in a raid group to enter this instance."
Full = 3, // "The instance is full."
RequirementsUnmatch = 4 // "You do not meet the requirements to enter this instance."
}
public enum ResetFailedReason
{
Failed = 0, // "Cannot reset %s. There are players still inside the instance."
Zoning = 1, // "Cannot reset %s. There are players in your party attempting to zone into an instance."
Offline = 2 // "Cannot reset %s. There are players offline in your party."
}
public enum ActivateTaxiReply
{
Ok = 0,
UnspecifiedServerError = 1,
NoSuchPath = 2,
NotEnoughMoney = 3,
TooFarAway = 4,
NoVendorNearby = 5,
NotVisited = 6,
PlayerBusy = 7,
PlayerAlreadyMounted = 8,
PlayerShapeshifted = 9,
PlayerMoving = 10,
SameNode = 11,
NotStanding = 12,
}
public enum TaxiNodeStatus
{
None = 0,
Learned = 1,
Unlearned = 2,
NotEligible = 3
}
public enum PlayerDelayedOperations
{
SavePlayer = 0x01,
ResurrectPlayer = 0x02,
SpellCastDeserter = 0x04,
BGMountRestore = 0x08, ///< Flag to restore mount state after teleport from BG
BGTaxiRestore = 0x10, ///< Flag to restore taxi state after teleport from BG
BGGroupRestore = 0x20, ///< Flag to restore group state after teleport from BG
End
}
public enum CorpseType
{
Bones = 0,
ResurrectablePVE = 1,
ResurrectablePVP = 2,
Max = 3
}
public enum CorpseFlags
{
None = 0x00,
Bones = 0x01,
Unk1 = 0x02,
PvP = 0x04,
HideHelm = 0x08,
HideCloak = 0x10,
Skinnable = 0x20,
FFAPvP = 0x40
}
public enum ActionButtonUpdateState
{
UnChanged = 0,
Changed = 1,
New = 2,
Deleted = 3
}
public enum ActionButtonType
{
Spell = 0x00,
C = 0x01, // click?
Eqset = 0x20,
Dropdown = 0x30,
Macro = 0x40,
CMacro = C | Macro,
Mount = 0x60,
Item = 0x80
}
public enum TeleportToOptions
{
GMMode = 0x01,
NotLeaveTransport = 0x02,
NotLeaveCombat = 0x04,
NotUnSummonPet = 0x08,
Spell = 0x10,
Seamless = 0x20
}
/// Type of environmental damages
public enum EnviromentalDamage
{
Exhausted = 0,
Drowning = 1,
Fall = 2,
Lava = 3,
Slime = 4,
Fire = 5,
FallToVoid = 6 // custom case for fall without durability loss
}
public enum PlayerUnderwaterState
{
None = 0x00,
InWater = 0x01, // terrain type is water and player is afflicted by it
InLava = 0x02, // terrain type is lava and player is afflicted by it
InSlime = 0x04, // terrain type is lava and player is afflicted by it
InDarkWater = 0x08, // terrain type is dark water and player is afflicted by it
ExistTimers = 0x10
}
public struct RuneCooldowns
{
public const int Base = 10000;
public const int Miss = 1500; // cooldown applied on runes when the spell misses
}
public enum PlayerFlags : uint
{
GroupLeader = 0x01,
AFK = 0x02,
DND = 0x04,
GM = 0x08,
Ghost = 0x10,
Resting = 0x20,
Unk6 = 0x40,
Unk7 = 0x80,
ContestedPVP = 0x100,
InPVP = 0x200,
HideHelm = 0x400,
HideCloak = 0x800,
PlayedLongTime = 0x1000,
PlayedTooLong = 0x2000,
IsOutOfBounds = 0x4000,
Developer = 0x8000,
Unk16 = 0x10000,
TaxiBenchmark = 0x20000,
PVPTimer = 0x40000,
Uber = 0x80000,
Unk20 = 0x100000,
Unk21 = 0x200000,
Commentator2 = 0x400000,
AllowOnlyAbility = 0x800000,
PetBattlesUnlocked = 0x1000000,
NoXPGain = 0x2000000,
Unk26 = 0x4000000,
AutoDeclineGuild = 0x8000000,
GuildLevelEnabled = 0x10000000,
VoidUnlocked = 0x20000000,
Mentor = 0x40000000,
Unk31 = 0x80000000
}
public enum PlayerFlagsEx
{
ReagentBankUnlocked = 0x01,
MercenaryMode = 0x02
}
public enum CharacterFlags : uint
{
None = 0x00000000,
Unk1 = 0x00000001,
Unk2 = 0x00000002,
CharacterLockedForTransfer = 0x00000004,
Unk4 = 0x00000008,
Unk5 = 0x00000010,
Unk6 = 0x00000020,
Unk7 = 0x00000040,
Unk8 = 0x00000080,
Unk9 = 0x00000100,
Unk10 = 0x00000200,
HideHelm = 0x00000400,
HideCloak = 0x00000800,
Unk13 = 0x00001000,
Ghost = 0x00002000,
Rename = 0x00004000,
Unk16 = 0x00008000,
Unk17 = 0x00010000,
Unk18 = 0x00020000,
Unk19 = 0x00040000,
Unk20 = 0x00080000,
Unk21 = 0x00100000,
Unk22 = 0x00200000,
Unk23 = 0x00400000,
Unk24 = 0x00800000,
LockedByBilling = 0x01000000,
Declined = 0x02000000,
Unk27 = 0x04000000,
Unk28 = 0x08000000,
Unk29 = 0x10000000,
Unk30 = 0x20000000,
Unk31 = 0x40000000,
Unk32 = 0x80000000
}
public enum PlayerLocalFlags
{
TrackStealthed = 0x02,
ReleaseTimer = 0x08, // Display time till auto release spirit
NoReleaseWindow = 0x10, // Display no "release spirit" window at all
NoPetBar = 0x00000020, // CGPetInfo::IsPetBarUsed
OverrideCameraMinHeight = 0x00000040,
UsingPartGarrison = 0x00000100,
CanUseObjectsMounted = 0x00000200,
CanVisitPartyGarrison = 0x00000400
}
public enum PlayerFieldByte2Flags
{
None = 0x00,
Stealth = 0x20,
InvisibilityGlow = 0x40
}
public enum AreaTeams
{
None = 0,
Ally = 2,
Horde = 4,
Any = 6
}
public enum RestTypes : byte
{
XP = 0,
Honor = 1,
Max
}
public enum PlayerRestState
{
Rested = 0x01,
NotRAFLinked = 0x02,
RAFLinked = 0x06
}
public enum CharacterCustomizeFlags
{
None = 0x00,
Customize = 0x01, // Name, Gender, Etc...
Faction = 0x10000, // Name, Gender, Faction, Etc...
Race = 0x100000 // Name, Gender, Race, Etc...
}
public enum CharacterFlags3 : uint
{
LockedByRevokedVasTransaction = 0x100000,
LockedByRevokedCharacterUpgrade = 0x80000000,
}
public enum CharacterFlags4
{
TrialBoost = 0x80,
TrialBoostLocked = 0x40000,
}
public enum TextureSection // TODO: Find a better name. Used in CharSections.dbc
{
BaseSkin = 0,
Face = 1,
FacialHair = 2,
Hair = 3,
Underwear = 4,
}
public enum AtLoginFlags
{
None = 0x00,
Rename = 0x01,
ResetSpells = 0x02,
ResetTalents = 0x04,
Customize = 0x08,
ResetPetTalents = 0x10,
FirstLogin = 0x20,
ChangeFaction = 0x40,
ChangeRace = 0x80,
Resurrect = 0x100
}
public enum PlayerSlots
{
// first slot for item stored (in any way in player items data)
Start = 0,
// last+1 slot for item stored (in any way in player items data)
End = 187,
Count = (End - Start)
}
public enum PlayerTitle : ulong
{
Disabled = 0x0000000000000000,
None = 0x0000000000000001,
Private = 0x0000000000000002, // 1
Corporal = 0x0000000000000004, // 2
SergeantA = 0x0000000000000008, // 3
MasterSergeant = 0x0000000000000010, // 4
SergeantMajor = 0x0000000000000020, // 5
Knight = 0x0000000000000040, // 6
KnightLieutenant = 0x0000000000000080, // 7
KnightCaptain = 0x0000000000000100, // 8
KnightChampion = 0x0000000000000200, // 9
LieutenantCommander = 0x0000000000000400, // 10
Commander = 0x0000000000000800, // 11
Marshal = 0x0000000000001000, // 12
FieldMarshal = 0x0000000000002000, // 13
GrandMarshal = 0x0000000000004000, // 14
Scout = 0x0000000000008000, // 15
Grunt = 0x0000000000010000, // 16
SergeantH = 0x0000000000020000, // 17
SeniorSergeant = 0x0000000000040000, // 18
FirstSergeant = 0x0000000000080000, // 19
StoneGuard = 0x0000000000100000, // 20
BloodGuard = 0x0000000000200000, // 21
Legionnaire = 0x0000000000400000, // 22
Centurion = 0x0000000000800000, // 23
Champion = 0x0000000001000000, // 24
LieutenantGeneral = 0x0000000002000000, // 25
General = 0x0000000004000000, // 26
Warlord = 0x0000000008000000, // 27
HighWarlord = 0x0000000010000000, // 28
Gladiator = 0x0000000020000000, // 29
Duelist = 0x0000000040000000, // 30
Rival = 0x0000000080000000, // 31
Challenger = 0x0000000100000000, // 32
ScarabLord = 0x0000000200000000, // 33
Conqueror = 0x0000000400000000, // 34
Justicar = 0x0000000800000000, // 35
ChampionOfTheNaaru = 0x0000001000000000, // 36
MercilessGladiator = 0x0000002000000000, // 37
OfTheShatteredSun = 0x0000004000000000, // 38
HandOfAdal = 0x0000008000000000, // 39
VengefulGladiator = 0x0000010000000000, // 40
}
public enum PlayerExtraFlags
{
// gm abilities
GMOn = 0x01,
AcceptWhispers = 0x04,
TaxiCheat = 0x08,
GMInvisible = 0x10,
GMChat = 0x20, // Show GM badge in chat messages
// other states
PVPDeath = 0x100 // store PvP death status until corpse creating.
}
public enum EquipmentSetUpdateState
{
Unchanged = 0,
Changed = 1,
New = 2,
Deleted = 3
}
public enum CUFBoolOptions
{
KeepGroupsTogether,
DisplayPets,
DisplayMainTankAndAssist,
DisplayHealPrediction,
DisplayAggroHighlight,
DisplayOnlyDispellableDebuffs,
DisplayPowerBar,
DisplayBorder,
UseClassColors,
DisplayHorizontalGroups,
DisplayNonBossDebuffs,
DynamicPosition,
Locked,
Shown,
AutoActivate2Players,
AutoActivate3Players,
AutoActivate5Players,
AutoActivate10Players,
AutoActivate15Players,
AutoActivate25Players,
AutoActivate40Players,
AutoActivateSpec1,
AutoActivateSpec2,
AutoActivateSpec3,
AutoActivateSpec4,
AutoActivatePvp,
AutoActivatePve,
BoolOptionsCount,
}
public enum DuelCompleteType
{
Interrupted = 0,
Won = 1,
Fled = 2
}
public enum ReferAFriendError
{
None = 0,
NotReferredBy = 1,
TargetTooHigh = 2,
InsufficientGrantableLevels = 3,
TooFar = 4,
DifferentFaction = 5,
NotNow = 6,
GrantLevelMaxI = 7,
NoTarget = 8,
NotInGroup = 9,
SummonLevelMaxI = 10,
SummonCooldown = 11,
InsufExpanLvl = 12,
SummonOfflineS = 13,
NoXrealm = 14,
MapIncomingTransferNotAllowed = 15
}
public enum PlayerCommandStates
{
None = 0x00,
God = 0x01,
Casttime = 0x02,
Cooldown = 0x04,
Power = 0x08,
Waterwalk = 0x10
}
public enum AttackSwingErr
{
CantAttack = 0,
BadFacing = 1,
NotInRange = 2,
DeadTarget = 3
}
public enum PlayerLogXPReason
{
Kill = 0,
NoKill = 1
}
public enum HeirloomPlayerFlags
{
None = 0x00,
BonusLevel90 = 0x01,
BonusLevel100 = 0x02,
BonusLevel110 = 0x04
}
public enum HeirloomItemFlags
{
None = 0x00,
ShowOnlyIfKnown = 0x01,
Pvp = 0x02
}
public enum DeclinedNameResult
{
Success = 0,
Error = 1
}
public enum BindExtensionState
{
Expired = 0,
Normal = 1,
Extended = 2,
Keep = 255 // special state: keep current save type
}
public enum TalentLearnResult
{
LearnOk = 0,
FailedUnknown = 1,
FailedNotEnoughTalentsInPrimaryTree = 2,
FailedNoPrimaryTreeSelected = 3,
FailedCantDoThatRightNow = 4,
FailedAffectingCombat = 5,
FailedCantRemoveTalent = 6,
FailedCantDoThatChallengeModeActive = 7,
FailedRestArea = 8
}
}
+339
View File
@@ -0,0 +1,339 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
namespace Framework.Constants
{
public enum QuestObjectiveType
{
Monster = 0,
Item = 1,
GameObject = 2,
TalkTo = 3,
Currency = 4,
LearnSpell = 5,
MinReputation = 6,
MaxReputation = 7,
Money = 8,
PlayerKills = 9,
AreaTrigger = 10,
WinPetBattleAgainstNpc = 11,
DefeatBattlePet = 12,
WinPvpPetBattles = 13,
CriteriaTree = 14,
ProgressBar = 15,
HaveCurrency = 16, // requires the player to have X currency when turning in but does not consume it
ObtainCurrency = 17 // requires the player to gain X currency after starting the quest but not required to keep it until the end (does not consume)
}
public enum QuestObjectiveFlags
{
TrackedOnMinimap = 0x01, // Client Displays Large Yellow Blob On Minimap For Creature/Gameobject
Sequenced = 0x02, // Client Will Not See The Objective Displayed Until All Previous Objectives Are Completed
Optional = 0x04, // Not Required To Complete The Quest
Hidden = 0x08, // Never Displayed In Quest Log
HideItemGains = 0x10, // Skip Showing Item Objective Progress
ProgressCountsItemsInInventory = 0x20, // Item Objective Progress Counts Items In Inventory Instead Of Reading It From Updatefields
PartOfProgressBar = 0x40, // Hidden Objective Used To Calculate Progress Bar Percent (Quests Are Limited To A Single Progress Bar Objective)
}
public struct QuestSlotOffsets
{
public const int Id = 0;
public const int State = 1;
public const int Counts = 2;
public const int Time = 14;
public const int Max = 16;
}
public enum QuestSlotStateMask
{
None = 0x0000,
Complete = 0x0001,
Fail = 0x0002
}
public enum QuestType
{
AutoComplete= 0,
Disabled = 1,
Normal = 2,
Task = 3,
Max = 4
}
public enum QuestInfos
{
Group = 1,
Class = 21,
PVP = 41,
Raid = 62,
Dungeon = 81,
WorldEvent = 82,
Legendary = 83,
Escort = 84,
Heroic = 85,
Raid10 = 88,
Raid25 = 89,
Scenario = 98,
Account = 102,
SideQuest = 104
}
public enum QuestSort
{
Epic = 1,
HallowsEnd = 21,
Seasonal = 22,
Cataclysm = 23,
Herbalism = 24,
Battlegrounds = 25,
DayOfTheDead = 41,
Warlock = 61,
Warrior = 81,
Shaman = 82,
Fishing = 101,
Blacksmithing = 121,
Paladin = 141,
Mage = 161,
Rogue = 162,
Alchemy = 181,
Leatherworking = 182,
Engineering = 201,
TreasureMap = 221,
Tournament = 241,
Hunter = 261,
Priest = 262,
Druid = 263,
Tailoring = 264,
Special = 284,
Cooking = 304,
FirstAid = 324,
Legendary = 344,
DarkmoonFaire = 364,
AhnQirajWar = 365,
LunarFestival = 366,
Reputation = 367,
Invasion = 368,
Midsummer = 369,
Brewfest = 370,
Inscription = 371,
DeathKnight = 372,
Jewelcrafting = 373,
Noblegarden = 374,
PilgrimsBounty = 375,
LoveIsInTheAir = 376,
Archaeology = 377,
ChildrensWeek = 378,
FirelandsInvasion = 379,
TheZandalari = 380,
ElementalBonds = 381,
PandarenBrewmaster = 391,
Scenario = 392,
BattlePets = 394,
Monk = 395,
Landfall = 396,
PandarenCampaign = 397,
Riding = 398,
BrawlersGuild = 399,
ProvingGrounds = 400,
GarrisonCampaign = 401,
AssaultOnTheDarkPortal = 402,
GarrisonSupport = 403,
Logging = 404,
Pickpocketing = 405
}
public enum QuestFailedReasons
{
None = 0,
FailedLowLevel = 1, // "You Are Not High Enough Level For That Quest.""
FailedWrongRace = 6, // "That Quest Is Not Available To Your Race."
AlreadyDone = 7, // "You Have Completed That Daily Quest Today."
OnlyOneTimed = 12, // "You Can Only Be On One Timed Quest At A Time"
AlreadyOn1 = 13, // "You Are Already On That Quest"
FailedExpansion = 16, // "This Quest Requires An Expansion Enabled Account."
AlreadyOn2 = 18, // "You Are Already On That Quest"
FailedMissingItems = 21, // "You Don'T Have The Required Items With You. Check Storage."
FailedNotEnoughMoney = 23, // "You Don'T Have Enough Money For That Quest"
FailedCais = 24, // "You Cannot Complete Quests Once You Have Reached Tired Time"
AlreadyDoneDaily = 26, // "You Have Completed That Daily Quest Today."
FailedSpell = 28, // "You Haven'T Learned The Required Spell."
HasInProgress = 30 // "Progress Bar Objective Not Completed"
}
public enum QuestPushReason
{
Success = 0,
Invalid = 1,
Accepted = 2,
Declined = 3,
Busy = 4,
Dead = 5,
LogFull = 6,
OnQuest = 7,
AlreadyDone = 8,
NotDaily = 9,
TimerExpired = 10,
NotInParty = 11,
DifferentServerDaily = 12,
NotAllowed = 13
}
public enum QuestTradeSkill
{
None = 0,
Alchemy = 1,
Blacksmithing = 2,
Cooking = 3,
Enchanting = 4,
Engineering = 5,
Firstaid = 6,
Herbalism = 7,
Leatherworking = 8,
Poisons = 9,
Tailoring = 10,
Mining = 11,
Fishing = 12,
Skinning = 13,
Jewelcrafting = 14
}
public enum QuestStatus
{
None = 0,
Complete = 1,
//Unavailable = 2,
Incomplete = 3,
//Available = 4,
Failed = 5,
Rewarded = 6, // Not Used In Db
Max
}
public enum QuestGiverStatus
{
None = 0x000,
Unk = 0x001,
Unavailable = 0x002,
LowLevelAvailable = 0x004,
LowLevelRewardRep = 0x008,
LowLevelAvailableRep = 0x010,
Incomplete = 0x020,
RewardRep = 0x040,
AvailableRep = 0x080,
Available = 0x100,
Reward2 = 0x200, // No Yellow Dot On Minimap
Reward = 0x400, // Yellow Dot On Minimap
// Custom value meaning that script call did not return any valid quest status
ScriptedNoStatus = 0x1000
}
[Flags]
public enum QuestFlags
{
None = 0x00,
StayAlive = 0x01, // Not Used Currently
PartyAccept = 0x02, // Not Used Currently. If Player In Party, All Players That Can Accept This Quest Will Receive Confirmation Box To Accept Quest Cmsg_Quest_Confirm_Accept/Smsg_Quest_Confirm_Accept
Exploration = 0x04, // Not Used Currently
Sharable = 0x08, // Can Be Shared: Player.Cansharequest()
HasCondition = 0x10, // Not Used Currently
HideRewardPoi = 0x20, // Not Used Currently: Unsure Of Content
Raid = 0x40, // Can be completed while in raid
TBC = 0x80, // Not Used Currently: Available If Tbc Expansion Enabled Only
NoMoneyFromXp = 0x100, // Not Used Currently: Experience Is Not Converted To Gold At Max Level
HiddenRewards = 0x200, // Items And Money Rewarded Only Sent In Smsg_Questgiver_Offer_Reward (Not In Smsg_Questgiver_Quest_Details Or In Client Quest Log(Smsg_Quest_Query_Response))
Tracking = 0x400, // These Quests Are Automatically Rewarded On Quest Complete And They Will Never Appear In Quest Log Client Side.
DeprecateReputation = 0x800, // Not Used Currently
Daily = 0x1000, // Used To Know Quest Is Daily One
Pvp = 0x2000, // Having This Quest In Log Forces Pvp Flag
Unavailable = 0x4000, // Used On Quests That Are Not Generically Available
Weekly = 0x8000,
AutoComplete = 0x10000, // Quests with this flag player submit automatically by special button in player gui
DisplayItemInTracker = 0x20000, // Displays Usable Item In Quest Tracker
ObjText = 0x40000, // Use Objective Text As Complete Text
AutoAccept = 0x80000, // The client recognizes this flag as auto-accept. However, NONE of the current quests (3.3.5a) have this flag. Maybe blizz used to use it, or will use it in the future.
Unk1 = 0x100000, //
AutoTake = 0x200000, // Automatically Suggestion Of Accepting Quest. Not From Npc.
//Unk2 = 0x400000,
//Unk3 = 0x800000, // Found In Quest 14069
//Unk4 = 0x1000000,
// ... 4.X Added Flags Up To 0x80000000 - All Unknown For Now
}
// last checked in 19802
[Flags]
public enum QuestFlagsEx
{
None = 0x00,
KeepAdditionalItems = 0x01,
SuppressGossipComplete = 0x02,
SuppressGossipAccept = 0x04,
DisallowPlayerAsQuestgiver = 0x08,
DisplayClassChoiceRewards = 0x10,
DisplaySpecChoiceRewards = 0x20,
RemoveFromLogOnPeriodicReset = 0x40,
AccountLevelQuest = 0x80,
LegendaryQuest = 0x100,
NoGuildXp = 0x200,
ResetCacheOnAccept = 0x400,
NoAbandonOnceAnyObjectiveComplete = 0x800,
RecastAcceptSpellOnLogin = 0x1000,
UpdateZoneAuras = 0x2000,
NoCreditForProxy = 0x4000,
DisplayAsDailyQuest = 0x8000,
PartOfQuestLine = 0x10000,
QuestForInternalBuildsOnly = 0x20000,
SuppressSpellLearnTextLine = 0x40000,
DisplayHeaderAsObjectiveForTasks = 0x80000,
GarrisonNonOwnersAllowed = 0x100000,
RemoveQuestOnWeeklyReset = 0x200000,
SuppressFarewellAudioAfterQuestAccept = 0x0400000,
RewardsBypassWeeklyCapsAndSeasonTotal = 0x0800000,
ClearProgressOfCriteriaTreeObjectivesOnAccept = 0x1000000
}
public enum QuestSpecialFlags
{
None = 0x00,
// Flags For Set Specialflags In Db If Required But Used Only At Server
Repeatable = 0x001,
ExplorationOrEvent = 0x002, // If Required Area Explore, Spell Spell_Effect_Quest_Complete Casting, Table `*_Script` Command Script_Command_Quest_Explored Use, Set From Script)
AutoAccept = 0x004, // Quest Is To Be Auto-Accepted.
DfQuest = 0x008, // Quest Is Used By Dungeon Finder.
Monthly = 0x010, // Quest Is Reset At The Begining Of The Month
Cast = 0x20, // Set by 32 in SpecialFlags in DB if the quest requires RequiredOrNpcGo killcredit but NOT kill (a spell cast)
// Room For More Custom Flags
DbAllowed = Repeatable | ExplorationOrEvent | AutoAccept | DfQuest | Monthly | Cast,
Deliver = 0x080, // Internal Flag Computed Only
Speakto = 0x100, // Internal Flag Computed Only
Kill = 0x200, // Internal Flag Computed Only
Timed = 0x400, // Internal Flag Computed Only
PlayerKill = 0x800 // Internal Flag Computed Only
}
public enum QuestSaveType
{
Default = 0,
Delete,
ForceDelete
}
}
+78
View File
@@ -0,0 +1,78 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
// AuraScript interface - enum used for runtime checks of script function calls
public enum AuraScriptHookType
{
None = 0,
Registration,
Loading,
Unloading,
EffectApply,
EffectAfterApply,
EffectRemove,
EffectAfterRemove,
EffectPeriodic,
EffectUpdatePeriodic,
EffectCalcAmount,
EffectCalcPeriodic,
EffectCalcSpellmod,
EffectAbsorb,
EffectAfterAbsorb,
EffectManaShield,
EffectAfterManaShield,
EffectSplit,
CheckAreaTarget,
Dispel,
AfterDispel,
// Spell Proc Hooks
CheckProc,
PrepareProc,
Proc,
EffectProc,
EffectAfterProc,
AfterProc,
//Apply,
//Remove
}
// SpellScript interface - enum used for runtime checks of script function calls
public enum SpellScriptHookType
{
None = 0,
Registration,
Loading,
Unloading,
Launch,
LaunchTarget,
EffectHit,
EffectHitTarget,
EffectSuccessfulDispel,
BeforeHit,
OnHit,
AfterHit,
ObjectAreaTargetSelect,
ObjectTargetSelect,
DestinationTargetSelect,
CheckCast,
BeforeCast,
OnCast,
AfterCast
}
}
+61
View File
@@ -0,0 +1,61 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum OriginalHash : uint
{
AccountService = 0x62DA0891u,
AccountListener = 0x54DFDA17u,
AuthenticationListener = 0x71240E35u,
AuthenticationService = 0xDECFC01u,
ChallengeService = 0xDBBF6F19u,
ChallengeListener = 0xBBDA171Fu,
ChannelService = 0xB732DB32u,
ChannelListener = 0xBF8C8094u,
ConnectionService = 0x65446991u,
FriendsService = 0xA3DDB1BDu,
FriendsListener = 0x6F259A13u,
GameUtilitiesService = 0x3FC1274Du,
PresenceService = 0xFA0796FFu,
ReportService = 0x7CAF61C9u,
ResourcesService = 0xECBE75BAu,
UserManagerService = 0x3E19268Au,
UserManagerListener = 0xBC872C22u
}
public enum NameHash : uint
{
AccountService = 0x1E4DC42Fu,
AccountListener = 0x7807483Cu,
AuthenticationListener = 0x4DA86228u,
AuthenticationService = 0xFF5A6AC3u,
ChallengeService = 0x71BB6833u,
ChallengeListener = 0xC6D90AB8u,
ChannelService = 0xA913A87Bu,
ChannelListener = 0xDA660990u,
ConnectionService = 0x2782094Bu,
FriendsService = 0xABDFED63u,
FriendsListener = 0xA6717548u,
GameUtilitiesService = 0x51923A28u,
PresenceService = 0xD8F94B3Bu,
ReportService = 0x724F5F47u,
ResourcesService = 0x4B104C53u,
UserManagerService = 0x8EE5694Eu,
UserManagerListener = 0xB3426BB3u
}
}
File diff suppressed because it is too large Load Diff
+364
View File
@@ -0,0 +1,364 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum SmartScriptType
{
Creature = 0,
GameObject = 1,
AreaTrigger = 2,
Event = 3,
Gossip = 4,
Quest = 5,
Spell = 6,
Transport = 7,
Instance = 8,
TimedActionlist = 9,
Scene = 10, // done
Max = 11
}
public struct SmartScriptTypeMaskId
{
public const uint Creature = 1;
public const uint Gameobject = 2;
public const uint Areatrigger = 4;
public const uint Event = 8;
public const uint Gossip = 16;
public const uint Quest = 32;
public const uint Spell = 64;
public const uint Transport = 128;
public const uint Instance = 256;
public const uint TimedActionlist = 512;
public const uint Scene = 1024;
}
public enum SmartPhase
{
ALWAYS = 0,
Phase1 = 1,
Phase2 = 2,
Phase3 = 3,
Phase4 = 4,
Phase5 = 5,
Phase6 = 6,
Max = 7,
All = (Phase1 | Phase2 | Phase3 | Phase4 | Phase5 | Phase6),
Count = 6
}
public enum SmartEventFlags
{
NotRepeatable = 0x01, //Event can not repeat
Difficulty0 = 0x02, //Event only occurs in instance difficulty 0
Difficulty1 = 0x04, //Event only occurs in instance difficulty 1
Difficulty2 = 0x08, //Event only occurs in instance difficulty 2
Difficulty3 = 0x10, //Event only occurs in instance difficulty 3
Reserved5 = 0x20,
Reserved6 = 0x40,
DebugOnly = 0x80, //Event only occurs in debug build
DontReset = 0x100, //Event will not reset in SmartScript.OnReset()
WhileCharmed = 0x200, //Event occurs even if AI owner is charmed
DifficultyAll = (Difficulty0 | Difficulty1 | Difficulty2 | Difficulty3),
All = (NotRepeatable | DifficultyAll | Reserved5 | Reserved6 | DebugOnly | DontReset | WhileCharmed)
}
public enum SmartRespawnCondition
{
None = 0,
Map = 1,
Area = 2,
End = 3
}
public enum SmartAITemplate
{
Basic = 0, //nothing is preset
Caster = 1, //spellid, repeatMin, repeatMax, range, manaPCT +JOIN: target_param1 as castFlag
Turret = 2, //spellid, repeatMin, repeatMax +JOIN: target_param1 as castFlag
Passive = 3,
CagedGOPart = 4, //creatureID, give credit at point end?,
CagedNPCPart = 5, //gameObjectID, despawntime, run?, dist, TextGroupID
End = 6
}
public enum SmartCastFlags
{
InterruptPrevious = 0x01, //Interrupt any spell casting
Triggered = 0x02, //Triggered (this makes spell cost zero mana and have no cast time)
//CAST_FORCE_CAST = 0x04, //Forces cast even if creature is out of mana or out of range
//CAST_NO_MELEE_IF_OOM = 0x08, //Prevents creature from entering melee if out of mana or out of range
//CAST_FORCE_TARGET_SELF = 0x10, //Forces the target to cast this spell on itself
AuraNotPresent = 0x20, //Only casts the spell if the target does not have an aura from the spell
CombatMove = 0x40 //Prevents combat movement if cast successful. Allows movement on range, OOM, LOS
}
public enum SmartEvents
{
UpdateIc = 0, // Initialmin, Initialmax, Repeatmin, Repeatmax
UpdateOoc = 1, // Initialmin, Initialmax, Repeatmin, Repeatmax
HealtPct = 2, // Hpmin%, Hpmax%, Repeatmin, Repeatmax
ManaPct = 3, // Manamin%, Manamax%, Repeatmin, Repeatmax
Aggro = 4, // None
Kill = 5, // Cooldownmin0, Cooldownmax1, Playeronly2, Else Creature Entry3
Death = 6, // None
Evade = 7, // None
SpellHit = 8, // Spellid, School, Cooldownmin, Cooldownmax
Range = 9, // Mindist, Maxdist, Repeatmin, Repeatmax
OocLos = 10, // Nohostile, Maxrnage, Cooldownmin, Cooldownmax
Respawn = 11, // Type, Mapid, Zoneid
TargetHealthPct = 12, // Hpmin%, Hpmax%, Repeatmin, Repeatmax
VictimCasting = 13, // Repeatmin, Repeatmax
FriendlyHealth = 14, // Hpdeficit, Radius, Repeatmin, Repeatmax
FriendlyIsCc = 15, // Radius, Repeatmin, Repeatmax
FriendlyMissingBuff = 16, // Spellid, Radius, Repeatmin, Repeatmax
SummonedUnit = 17, // Creatureid(0 All), Cooldownmin, Cooldownmax
TargetManaPct = 18, // Manamin%, Manamax%, Repeatmin, Repeatmax
AcceptedQuest = 19, // Questid(0any)
RewardQuest = 20, // Questid(0any)
ReachedHome = 21, // None
ReceiveEmote = 22, // Emoteid, Cooldownmin, Cooldownmax, Condition, Val1, Val2, Val3
HasAura = 23, // Param1 = Spellid, Param2 = Stack Amount, Param3/4 Repeatmin, Repeatmax
TargetBuffed = 24, // Param1 = Spellid, Param2 = Stack Amount, Param3/4 Repeatmin, Repeatmax
Reset = 25, // Called After Combat, When The Creature Respawn And Spawn.
IcLos = 26, // Nohostile, Maxrnage, Cooldownmin, Cooldownmax
PassengerBoarded = 27, // Cooldownmin, Cooldownmax
PassengerRemoved = 28, // Cooldownmin, Cooldownmax
Charmed = 29, // onRemove (0 - on apply, 1 - on remove)
CharmedTarget = 30, // None
SpellhitTarget = 31, // Spellid, School, Cooldownmin, Cooldownmax
Damaged = 32, // Mindmg, Maxdmg, Cooldownmin, Cooldownmax
DamagedTarget = 33, // Mindmg, Maxdmg, Cooldownmin, Cooldownmax
Movementinform = 34, // Movementtype(Any), Pointid
SummonDespawned = 35, // Entry, Cooldownmin, Cooldownmax
CorpseRemoved = 36, // None
AiInit = 37, // None
DataSet = 38, // Id, Value, Cooldownmin, Cooldownmax
WaypointStart = 39, // Pointid(0any), Pathid(0any)
WaypointReached = 40, // Pointid(0any), Pathid(0any)
TransportAddplayer = 41, // None
TransportAddcreature = 42, // Entry (0 Any)
TransportRemovePlayer = 43, // None
TransportRelocate = 44, // Pointid
InstancePlayerEnter = 45, // Team (0 Any), Cooldownmin, Cooldownmax
AreatriggerOntrigger = 46, // Triggerid(0 Any)
QuestAccepted = 47, // None
QuestObjCompletion = 48, // None
QuestCompletion = 49, // None
QuestRewarded = 50, // None
QuestFail = 51, // None
TextOver = 52, // Groupid From CreatureText, Creature Entry Who Talks (0 Any)
ReceiveHeal = 53, // Minheal, Maxheal, Cooldownmin, Cooldownmax
JustSummoned = 54, // None
WaypointPaused = 55, // Pointid(0any), Pathid(0any)
WaypointResumed = 56, // Pointid(0any), Pathid(0any)
WaypointStopped = 57, // Pointid(0any), Pathid(0any)
WaypointEnded = 58, // Pointid(0any), Pathid(0any)
TimedEventTriggered = 59, // Id
Update = 60, // Initialmin, Initialmax, Repeatmin, Repeatmax
Link = 61, // Internal Usage, No Params, Used To Link Together Multiple Events, Does Not Use Any Extra Resources To Iterate Event Lists Needlessly
GossipSelect = 62, // Menuid, Actionid
JustCreated = 63, // None
GossipHello = 64, // None
FollowCompleted = 65, // None
DummyEffect = 66, // Spellid, Effectindex
IsBehindTarget = 67, // Cooldownmin, Cooldownmax
GameEventStart = 68, // GameEvent.Entry
GameEventEnd = 69, // GameEvent.Entry
GoStateChanged = 70, // Go State
GoEventInform = 71, // Eventid
ActionDone = 72, // Eventid (Shareddefines.Eventid)
OnSpellclick = 73, // Clicker (Unit)
FriendlyHealthPCT = 74,// minHpPct, maxHpPct, repeatMin, repeatMax
DistanceCreature = 75, // guid, entry, distance, repeat
DistanceGameobject = 76, // guid, entry, distance, repeat
CounterSet = 77, // id, value, cooldownMin, cooldownMax
SceneStart = 78, // none
SceneTrigger = 79, // param_string : triggerName
SceneCancel = 80, // none
SceneComplete = 81, // none
End = 82
}
public enum SmartActions
{
None = 0, // No Action
Talk = 1, // Groupid From CreatureText, Duration To Wait Before TextOver Event Is Triggered, useTalkTarget (0/1) - use target as talk target
SetFaction = 2, // Factionid (Or 0 For Default)
MorphToEntryOrModel = 3, // CreatureTemplate Entry(Param1) Or Modelid (Param2) (Or 0 For Both To Demorph)
Sound = 4, // Soundid, Textrange
PlayEmote = 5, // Emoteid
FailQuest = 6, // Questid
OfferQuest = 7, // Questid, directAdd
SetReactState = 8, // State
ActivateGobject = 9, //
RandomEmote = 10, // Emoteid1, Emoteid2, Emoteid3...
Cast = 11, // Spellid, Castflags, TriggeredFlags
SummonCreature = 12, // Creatureid, Summontype, Duration In Ms, Storageid, Attackinvoker,
ThreatSinglePct = 13, // Threat%
ThreatAllPct = 14, // Threat%
CallAreaexploredoreventhappens = 15, // Questid
SetIngamePhaseGroup = 16, // phaseGroupId, apply
SetEmoteState = 17, // Emoteid
SetUnitFlag = 18, // Flags (May Be More Than One Field Or'D Together), Target
RemoveUnitFlag = 19, // Flags (May Be More Than One Field Or'D Together), Target
AutoAttack = 20, // Allowattackstate (0 = Stop Attack, Anything Else Means Continue Attacking)
AllowCombatMovement = 21, // Allowcombatmovement (0 = Stop Combat Based Movement, Anything Else Continue Attacking)
SetEventPhase = 22, // Phase
IncEventPhase = 23, // Value (May Be Negative To Decrement Phase, Should Not Be 0)
Evade = 24, // No Params
FleeForAssist = 25, // With Emote
CallGroupeventhappens = 26, // Questid
CombatStop = 27, //
Removeaurasfromspell = 28, // Spellid, 0 Removes All Auras
Follow = 29, // Distance (0 = Default), Angle (0 = Default), Endcreatureentry, Credit, Credittype (0monsterkill, 1event)
RandomPhase = 30, // Phaseid1, Phaseid2, Phaseid3...
RandomPhaseRange = 31, // Phasemin, Phasemax
ResetGobject = 32, //
CallKilledmonster = 33, // Creatureid,
SetInstData = 34, // Field, Data, Type (0 = SetData, 1 = SetBossState)
SetInstData64 = 35, // Field,
UpdateTemplate = 36, // Entry
Die = 37, // No Params
SetInCombatWithZone = 38, // No Params
CallForHelp = 39, // Radius, With Emote
SetSheath = 40, // Sheath (0-Unarmed, 1-Melee, 2-Ranged)
ForceDespawn = 41, // Timer
SetInvincibilityHpLevel = 42, // Minhpvalue(+Pct, -Flat)
MountToEntryOrModel = 43, // CreatureTemplate Entry(Param1) Or Modelid (Param2) (Or 0 For Both To Dismount)
SetIngamePhaseId = 44, // Id
SetData = 45, // Field, Data (Only Creature Todo)
//46 Unused
SetVisibility = 47, // On/Off
SetActive = 48, // No Params
AttackStart = 49, //
SummonGo = 50, // Gameobjectid, Despawntime In Ms,
KillUnit = 51, //
ActivateTaxi = 52, // Taxiid
WpStart = 53, // Run/Walk, Pathid, Canrepeat, Quest, Despawntime, Reactstate
WpPause = 54, // Time
WpStop = 55, // Despawntime, Quest, Fail?
AddItem = 56, // Itemid, Count
RemoveItem = 57, // Itemid, Count
InstallAiTemplate = 58, // Aitemplateid
SetRun = 59, // 0/1
SetFly = 60, // 0/1
SetSwim = 61, // 0/1
Teleport = 62, // Mapid,
SetCounter = 63, // id, value, reset (0/1)
StoreTargetList = 64, // Varid,
WpResume = 65, // None
SetOrientation = 66, //
CreateTimedEvent = 67, // Id, Initialmin, Initialmax, Repeatmin(Only If It Repeats), Repeatmax(Only If It Repeats), Chance
Playmovie = 68, // Entry
MoveToPos = 69, // PointId, transport, disablePathfinding
RespawnTarget = 70, //
Equip = 71, // Entry, Slotmask Slot1, Slot2, Slot3 , Only Slots With Mask Set Will Be Sent To Client, Bits Are 1, 2, 4, Leaving Mask 0 Is Defaulted To Mask 7 (Send All), Slots1-3 Are Only Used If No Entry Is Set
CloseGossip = 72, // None
TriggerTimedEvent = 73, // Id(>1)
RemoveTimedEvent = 74, // Id(>1)
AddAura = 75, // Spellid, Targets
OverrideScriptBaseObject = 76, // Warning: Can Crash Core, Do Not Use If You Dont Know What You Are Doing
ResetScriptBaseObject = 77, // None
CallScriptReset = 78, // None
SetRangedMovement = 79, // Distance, Angle
CallTimedActionlist = 80, // Id (Overwrites Already Running Actionlist), Stop After Combat?(0/1), Timer Update Type(0-Ooc, 1-Ic, 2-Always)
SetNpcFlag = 81, // Flags
AddNpcFlag = 82, // Flags
RemoveNpcFlag = 83, // Flags
SimpleTalk = 84, // Groupid, Can Be Used To Make Players Say Groupid, TextOver Event Is Not Triggered, Whisper Can Not Be Used (Target Units Will Say The Text)
InvokerCast = 85, // Spellid, Castflags, If Avaliable, Last Used Invoker Will Cast Spellid With Castflags On Targets
CrossCast = 86, // Spellid, Castflags, Castertargettype, Castertarget Param1, Castertarget Param2, Castertarget Param3, ( + The Origonal Target Fields As Destination Target), Castertargets Will Cast Spellid On All Targets (Use With Caution If Targeting Multiple * Multiple Units)
CallRandomTimedActionlist = 87, // Script9 Ids 1-9
CallRandomRangeTimedActionlist = 88, // Script9 Id Min, Max
RandomMove = 89, // Maxdist
SetUnitFieldBytes1 = 90, // Bytes, Target
RemoveUnitFieldBytes1 = 91, // Bytes, Target
InterruptSpell = 92,
SendGoCustomAnim = 93, // Anim Id
SetDynamicFlag = 94, // Flags
AddDynamicFlag = 95, // Flags
RemoveDynamicFlag = 96, // Flags
JumpToPos = 97, // Speedxy, Speedz, Targetx, Targety, Targetz
SendGossipMenu = 98, // Menuid, Optionid
GoSetLootState = 99, // State
SendTargetToTarget = 100, // Id
SetHomePos = 101, // None
SetHealthRegen = 102, // 0/1
SetRoot = 103, // Off/On
SetGoFlag = 104, // Flags
AddGoFlag = 105, // Flags
RemoveGoFlag = 106, // Flags
SummonCreatureGroup = 107, // Group, Attackinvoker
SetPower = 108, // PowerType, newPower
AddPower = 109, // PowerType, newPower
RemovePower = 110, // PowerType, newPower
GameEventStop = 111, // GameEventId
GameEventStart = 112, // GameEventId
StartClosestWaypoint = 113, // wp1, wp2, wp3, wp4, wp5, wp6, wp7
MoveOffset = 114,
RandomSound = 115, // SoundId1, SoundId2, SoundId3, SoundId4, SoundId5, onlySelf
SetCorpseDelay = 116, // timer
DisableEvade = 117, // 0/1 (1 = disabled, 0 = enabled)
// 118 - 127 : 3.3.5 reserved
PlayAnimkit = 128,
ScenePlay = 129, // sceneId
SceneCancel = 130, // sceneId
End = 131
}
public enum SmartTargets
{
None = 0, // None, Defaulting To Invoket
Self = 1, // Self Cast
Victim = 2, // Our Current Target (Ie: Highest Aggro)
HostileSecondAggro = 3, // Second Highest Aggro
HostileLastAggro = 4, // Dead Last On Aggro
HostileRandom = 5, // Just Any Random Target On Our Threat List
HostileRandomNotTop = 6, // Any Random Target Except Top Threat
ActionInvoker = 7, // Unit Who Caused This Event To Occur
Position = 8, // Use Xyz From Event Params
CreatureRange = 9, // Creatureentry(0any), Mindist, Maxdist
CreatureGuid = 10, // Guid, Entry
CreatureDistance = 11, // Creatureentry(0any), Maxdist
Stored = 12, // Id, Uses Pre-Stored Target(List)
GameobjectRange = 13, // Entry(0any), Min, Max
GameobjectGuid = 14, // Guid, Entry
GameobjectDistance = 15, // Entry(0any), Maxdist
InvokerParty = 16, // Invoker'S Party Members
PlayerRange = 17, // Min, Max
PlayerDistance = 18, // Maxdist
ClosestCreature = 19, // Creatureentry(0any), Maxdist, Dead?
ClosestGameobject = 20, // Entry(0any), Maxdist
ClosestPlayer = 21, // Maxdist
ActionInvokerVehicle = 22, // Unit'S Vehicle Who Caused This Event To Occur
OwnerOrSummoner = 23, // Unit'S Owner Or Summoner
ThreatList = 24, // All Units On Creature'S Threat List
ClosestEnemy = 25, // maxDist, playerOnly
ClosestFriendly = 26, // maxDist, playerOnly
LootRecipients = 27, // all players that have tagged this creature (for kill credit)
Farthest = 28, // maxDist, playerOnly, isInLos
VehicleAccessory = 29, // seat number (vehicle can target it's own accessory)
End = 30
}
}
+246
View File
@@ -0,0 +1,246 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public struct SkillConst
{
public const int MaxPlayerSkills = 128;
public const uint MaxSkillStep = 15;
}
public enum SkillType
{
None = 0,
Swords = 43,
Axes = 44,
Bows = 45,
Guns = 46,
Maces = 54,
TwoHandedSwords = 55,
Defense = 95,
LangCommon = 98,
RacialDwarf = 101,
LangOrcish = 109,
LangDwarven = 111,
LangDarnassian = 113,
LangTaurahe = 115,
DualWield = 118,
RacialTauren = 124,
RacialOrc = 125,
RacialNightElf = 126,
FirstAid = 129,
Staves = 136,
LangThalassian = 137,
LangDraconic = 138,
LangDemonTongue = 139,
LangTitan = 140,
LangOldTongue = 141,
Survival = 142,
HorseRiding = 148,
WolfRiding = 149,
TigerRiding = 150,
RamRiding = 152,
Swimming = 155,
TwoHandedMaces = 160,
Unarmed = 162,
Blacksmithing = 164,
Leatherworking = 165,
Alchemy = 171,
TwoHandedAxes = 172,
Daggers = 173,
Herbalism = 182,
GenericDnd = 183,
Cooking = 185,
Mining = 186,
PetImp = 188,
PetFelhunter = 189,
Tailoring = 197,
Engineering = 202,
PetSpider = 203,
PetVoidwalker = 204,
PetSuccubus = 205,
PetInfernal = 206,
PetDoomguard = 207,
PetWolf = 208,
PetCat = 209,
PetBear = 210,
PetBoar = 211,
PetCrocolisk = 212,
PetCarrionBird = 213,
PetCrab = 214,
PetGorilla = 215,
PetRaptor = 217,
PetTallstrider = 218,
RacialUndead = 220,
Crossbows = 226,
Wands = 228,
Polearms = 229,
PetScorpid = 236,
PetTurtle = 251,
PetGenericHunter = 270,
PlateMail = 293,
LangGnomish = 313,
LangTroll = 315,
Enchanting = 333,
Fishing = 356,
Skinning = 393,
Mail = 413,
Leather = 414,
Cloth = 415,
Shield = 433,
FistWeapons = 473,
RaptorRiding = 533,
MechanostriderPiloting = 553,
UndeadHorsemanship = 554,
PetBat = 653,
PetHyena = 654,
PetBirdOfPrey = 655,
PetWindSerpent = 656,
LangForsaken = 673,
KodoRiding = 713,
RacialTroll = 733,
RacialGnome = 753,
RacialHuman = 754,
Jewelcrafting = 755,
RacialBloodElf = 756,
PetEventRemoteControl = 758,
LangDraenei = 759,
RacialDraenei = 760,
PetFelguard = 761,
Riding = 762,
PetDragonhawk = 763,
PetNetherRay = 764,
PetSporebat = 765,
PetWarpStalker = 766,
PetRavager = 767,
PetSerpent = 768,
Internal = 769,
Inscription = 773,
PetMoth = 775,
Mounts = 777,
Companions = 778,
PetExoticChimaera = 780,
PetExoticDevilsaur = 781,
PetGhoul = 782,
PetExoticSilithid = 783,
PetExoticWorm = 784,
PetWasp = 785,
PetExoticClefthoof = 786,
PetExoticCoreHound = 787,
PetExoticSpiritBeast = 788,
RacialWorgen = 789,
RacialGoblin = 790,
LangGilnean = 791,
LangGoblin = 792,
Archaeology = 794,
Hunter = 795,
DeathKnight = 796,
Druid = 798,
Paladin = 800,
Priest = 804,
PetWaterElemental = 805,
PetFox = 808,
AllGlyphs = 810,
PetDog = 811,
PetMonkey = 815,
PetShaleSpider = 817,
Beetle = 818,
AllGuildPerks = 821,
PetHydra = 824,
Monk = 829,
Warrior = 840,
Warlock = 849,
RacialPandaren = 899,
Mage = 904,
LangPandarenNeutral = 905,
LangPandarenAlliance = 906,
LangPandarenHorde = 907,
Rogue = 921,
Shaman = 924,
FelImp = 927,
Voidlord = 928,
Shivarra = 929,
Observer = 930,
Wrathguard = 931,
AllSpecializations = 934,
Runeforging = 960,
PetPrimalFireElemental = 962,
PetPrimalEarthElemental = 963,
WayOfTheGrill = 975,
WayOfTheWok = 976,
WayOfThePot = 977,
WayOfTheSteamer = 978,
WayOfTheOven = 979,
WayOfTheBrew = 980,
ApprenticeCooking = 981,
JourneymanCookbook = 982,
Porcupine = 983,
Crane = 984,
WaterStrider = 985,
PetExoticQuilen = 986,
PetGoat = 987,
Basilisk = 988,
NoPlayers = 999,
Direhorn = 1305,
PetPrimalStormElemental = 1748,
PetWaterElementalMinorTalentVersion = 1777,
PetExoticRylak = 1818,
PetRiverbeast = 1819,
Unused = 1830,
DemonHunter = 1848,
Logging = 1945,
PetTerrorguard = 1981,
PetAbyssal = 1982,
PetStag = 1993,
TradingPost = 2000,
Warglaives = 2152,
PetMechanical = 2189,
PetAbomination = 2216,
}
public enum SkillState
{
Unchanged = 0,
Changed = 1,
New = 2,
Deleted = 3
}
public enum SkillCategory : byte
{
Unk = 0,
Attributes = 5,
Weapon = 6,
Class = 7,
Armor = 8,
Secondary = 9,
Languages = 10,
Profession = 11,
Generic = 12
}
public enum SkillRangeType
{
Language, // 300..300
Level, // 1..max skill for level
Mono, // 1..1, grey monolite bar
Rank, // 1..skill for known rank
None // 0..0 always
}
}
@@ -0,0 +1,565 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum AuraType
{
Any = -1,
None = 0,
BindSight = 1,
ModPossess = 2,
PeriodicDamage = 3,
Dummy = 4,
ModConfuse = 5,
ModCharm = 6,
ModFear = 7,
PeriodicHeal = 8,
ModAttackspeed = 9,
ModThreat = 10,
ModTaunt = 11,
ModStun = 12,
ModDamageDone = 13,
ModDamageTaken = 14,
DamageShield = 15,
ModStealth = 16,
ModStealthDetect = 17,
ModInvisibility = 18,
ModInvisibilityDetect = 19,
ObsModHealth = 20, // 20, 21 Unofficial
ObsModPower = 21,
ModResistance = 22,
PeriodicTriggerSpell = 23,
PeriodicEnergize = 24,
ModPacify = 25,
ModRoot = 26,
ModSilence = 27,
ReflectSpells = 28,
ModStat = 29,
ModSkill = 30,
ModIncreaseSpeed = 31,
ModIncreaseMountedSpeed = 32,
ModDecreaseSpeed = 33,
ModIncreaseHealth = 34,
ModIncreaseEnergy = 35,
ModShapeshift = 36,
EffectImmunity = 37,
StateImmunity = 38,
SchoolImmunity = 39,
DamageImmunity = 40,
DispelImmunity = 41,
ProcTriggerSpell = 42,
ProcTriggerDamage = 43,
TrackCreatures = 44,
TrackResources = 45,
Unk46 = 46, // Ignore All Gear Test Spells
ModParryPercent = 47,
Unk48 = 48, // One Periodic Spell
ModDodgePercent = 49,
ModCriticalHealingAmount = 50,
ModBlockPercent = 51,
ModWeaponCritPercent = 52,
PeriodicLeech = 53,
ModHitChance = 54,
ModSpellHitChance = 55,
Transform = 56,
ModSpellCritChance = 57,
ModIncreaseSwimSpeed = 58,
ModDamageDoneCreature = 59,
ModPacifySilence = 60,
ModScale = 61,
PeriodicHealthFunnel = 62,
ModAdditionalPowerCost = 63, // NYI
PeriodicManaLeech = 64,
ModCastingSpeedNotStack = 65,
FeignDeath = 66,
ModDisarm = 67,
ModStalked = 68,
SchoolAbsorb = 69,
ExtraAttacks = 70,
Unk71 = 71,
ModPowerCostSchoolPct = 72,
ModPowerCostSchool = 73,
ReflectSpellsSchool = 74,
ModLanguage = 75,
FarSight = 76,
MechanicImmunity = 77,
Mounted = 78,
ModDamagePercentDone = 79,
ModPercentStat = 80,
SplitDamagePct = 81,
WaterBreathing = 82,
ModBaseResistance = 83,
ModRegen = 84,
ModPowerRegen = 85,
ChannelDeathItem = 86,
ModDamagePercentTaken = 87,
ModHealthRegenPercent = 88,
PeriodicDamagePercent = 89,
Unk90 = 90, // Old ModResistChance
ModDetectRange = 91,
PreventsFleeing = 92,
ModUnattackable = 93,
InterruptRegen = 94,
Ghost = 95,
SpellMagnet = 96,
ManaShield = 97,
ModSkillTalent = 98,
ModAttackPower = 99,
AurasVisible = 100,
ModResistancePct = 101,
ModMeleeAttackPowerVersus = 102,
ModTotalThreat = 103,
WaterWalk = 104,
FeatherFall = 105,
Hover = 106,
AddFlatModifier = 107,
AddPctModifier = 108,
AddTargetTrigger = 109,
ModPowerRegenPercent = 110,
AddCasterHitTrigger = 111,
OverrideClassScripts = 112,
ModRangedDamageTaken = 113,
ModRangedDamageTakenPct = 114,
ModHealing = 115,
ModRegenDuringCombat = 116,
ModMechanicResistance = 117,
ModHealingPct = 118,
Unk119 = 119, // Old SharePetTracking
Untrackable = 120,
Empathy = 121,
ModOffhandDamagePct = 122,
ModTargetResistance = 123,
ModRangedAttackPower = 124,
ModMeleeDamageTaken = 125,
ModMeleeDamageTakenPct = 126,
RangedAttackPowerAttackerBonus = 127,
ModPossessPet = 128,
ModSpeedAlways = 129,
ModMountedSpeedAlways = 130,
ModRangedAttackPowerVersus = 131,
ModIncreaseEnergyPercent = 132,
ModIncreaseHealthPercent = 133,
ModManaRegenInterrupt = 134,
ModHealingDone = 135,
ModHealingDonePercent = 136,
ModTotalStatPercentage = 137,
ModMeleeHaste = 138,
ForceReaction = 139,
ModRangedHaste = 140,
Unk141 = 141, // Old ModRangedAmmoHaste, Unused Now
ModBaseResistancePct = 142,
ModRecoveryRate = 143, // NYI
SafeFall = 144,
ModPetTalentPoints = 145,
AllowTamePetType = 146,
MechanicImmunityMask = 147,
RetainComboPoints = 148,
ReducePushback = 149, // Reduce Pushback
ModShieldBlockvaluePct = 150,
TrackStealthed = 151, // Track Stealthed
ModDetectedRange = 152, // Mod Detected Range
Unk153 = 153, // Old SplitDamageFlat. Unused 4.3.4
ModStealthLevel = 154, // Stealth Level Modifier
ModWaterBreathing = 155, // Mod Water Breathing
ModReputationGain = 156, // Mod Reputation Gain
PetDamageMulti = 157, // Mod Pet Damage
ModShieldBlockvalue = 158,
NoPvpCredit = 159,
Unk160 = 160, // Old ModAoeAvoidance. Unused 4.3.4
ModHealthRegenInCombat = 161,
PowerBurn = 162,
ModCritDamageBonus = 163,
Unk164 = 164,
MeleeAttackPowerAttackerBonus = 165,
ModAttackPowerPct = 166,
ModRangedAttackPowerPct = 167,
ModDamageDoneVersus = 168,
Unk169 = 169, // Old ModCritPercentVersus. Unused 4.3.4
DetectAmore = 170,
ModSpeedNotStack = 171,
ModMountedSpeedNotStack = 172,
ModRecoveryRate2 = 173, // NYI
ModSpellDamageOfStatPercent = 174, // By Defeult Intelect, Dependent From ModSpellHealingOfStatPercent
ModSpellHealingOfStatPercent = 175,
SpiritOfRedemption = 176,
AoeCharm = 177,
ModMaxPowerPct = 178, // NYI
ModPowerDisplay = 179,
ModFlatSpellDamageVersus = 180,
Unk181 = 181, // Old ModFlatSpellCritDamageVersus - Possible Flat Spell Crit Damage Versus
ModResistanceOfStatPercent = 182,
ModCriticalThreat = 183,
ModAttackerMeleeHitChance = 184,
ModAttackerRangedHitChance = 185,
ModAttackerSpellHitChance = 186,
ModAttackerMeleeCritChance = 187,
ModAttackerRangedCritChance = 188,
ModRating = 189,
ModFactionReputationGain = 190,
UseNormalMovementSpeed = 191,
ModMeleeRangedHaste = 192,
MeleeSlow = 193,
ModTargetAbsorbSchool = 194,
ModTargetAbilityAbsorbSchool = 195,
ModCooldown = 196, // Only 24818 Noxious Breath
ModAttackerSpellAndWeaponCritChance = 197,
Unk198 = 198, // Old ModAllWeaponSkills
Unk199 = 199, // Old ModIncreasesSpellPctToHit. Unused 4.3.4
ModXpPct = 200,
Fly = 201,
IgnoreCombatResult = 202,
ModAttackerMeleeCritDamage = 203,
ModAttackerRangedCritDamage = 204,
ModChargeCooldown = 205, // NYI
ModIncreaseVehicleFlightSpeed = 206,
ModIncreaseMountedFlightSpeed = 207,
ModIncreaseFlightSpeed = 208,
ModMountedFlightSpeedAlways = 209,
ModVehicleSpeedAlways = 210,
ModFlightSpeedNotStack = 211,
ModHonorGainPct = 212,
ModRageFromDamageDealt = 213,
Unk214 = 214,
ArenaPreparation = 215,
HasteSpells = 216,
ModMeleeHaste2 = 217,
Unk218 = 218, // old SPELL_AURA_HASTE_RANGED
ModManaRegenFromStat = 219,
ModRatingFromStat = 220,
ModDetaunt = 221,
Unk222 = 222,
RaidProcFromCharge = 223,
Unk224 = 224,
RaidProcFromChargeWithValue = 225,
PeriodicDummy = 226,
PeriodicTriggerSpellWithValue = 227,
DetectStealth = 228,
ModAoeDamageAvoidance = 229,
ModMaxHealth = 230,
ProcTriggerSpellWithValue = 231,
MechanicDurationMod = 232,
ChangeModelForAllHumanoids = 233, // Client-Side Only
MechanicDurationModNotStack = 234,
ModDispelResist = 235,
ControlVehicle = 236,
ModSpellDamageOfAttackPower = 237,
ModSpellHealingOfAttackPower = 238,
ModScale2 = 239,
ModExpertise = 240,
ForceMoveForward = 241,
ModSpellDamageFromHealing = 242,
ModFaction = 243,
ComprehendLanguage = 244,
ModAuraDurationByDispel = 245,
ModAuraDurationByDispelNotStack = 246,
CloneCaster = 247,
ModCombatResultChance = 248,
ConvertRune = 249,
ModIncreaseHealth2 = 250,
ModEnemyDodge = 251,
ModSpeedSlowAll = 252,
ModBlockCritChance = 253,
ModDisarmOffhand = 254,
ModMechanicDamageTakenPercent = 255,
NoReagentUse = 256,
ModTargetResistBySpellClass = 257,
OverrideSummonedObject = 258,
Unk259 = 259, // Old ModHotPct, Unused 4.3.4
ScreenEffect = 260,
Phase = 261,
AbilityIgnoreAurastate = 262,
AllowOnlyAbility = 263,
Unk264 = 264,
Unk265 = 265,
Unk266 = 266,
ModImmuneAuraApplySchool = 267,
Unk268 = 268, // Old ModAttackPowerOfStatPercent. Unused 4.3.4
ModIgnoreTargetResist = 269,
ModSchoolMaskDamageFromCaster = 270, // NYI
ModSpellDamageFromCaster = 271,
IgnoreMeleeReset = 272,
XRay = 273,
Unk274 = 274, // Old AbilityConsumeNoAmmo, Unused 4.3.4
ModIgnoreShapeshift = 275,
ModDamageDoneForMechanic = 276,
Unk277 = 277, // Old ModMaxAffectedTargets. Unused 4.3.4
ModDisarmRanged = 278,
InitializeImages = 279,
Unk280 = 280, // Old ModArmorPenetrationPct Unused 4.3.4
ModGuildReputationGainPct = 281, // NYI
ModBaseHealthPct = 282,
ModHealingReceived = 283, // Possibly Only For Some Spell Family Class Spells
Linked = 284,
ModAttackPowerOfArmor = 285,
AbilityPeriodicCrit = 286,
DeflectSpells = 287,
IgnoreHitDirection = 288,
PreventDurabilityLoss = 289,
ModCritPct = 290,
ModXpQuestPct = 291,
OpenStable = 292,
OverrideSpells = 293,
PreventRegeneratePower = 294,
Unk295 = 295,
SetVehicleId = 296,
BlockSpellFamily = 297,
Strangulate = 298,
Unk299 = 299,
ShareDamagePct = 300,
SchoolHealAbsorb = 301,
Unk302 = 302,
ModDamageDoneVersusAurastate = 303,
ModFakeInebriate = 304,
ModMinimumSpeed = 305,
Unk306 = 306,
HealAbsorbTest = 307,
ModCritChanceForCaster = 308,
ModResilience = 309, // NYI
ModCreatureAoeDamageAvoidance = 310,
Unk311 = 311,
AnimReplacementSet = 312,
Unk313 = 313, // Not Used In 4.3.4 - Related To Mounts
PreventResurrection = 314,
UnderwaterWalking = 315,
PeriodicHaste = 316, // Not Used In 4.3.4 (Name From 3.3.5a)
ModSpellPowerPct = 317,
Mastery = 318,
ModMeleeHaste3 = 319,
ModRangedHaste2 = 320,
ModNoActions = 321,
InterfereTargetting = 322,
Unk323 = 323, // Not Used In 4.3.4
Unk324 = 324, // Spell Critical Chance (Probably By School Mask)
Unk325 = 325, // Not Used In 4.3.4
PhaseGroup = 326, // Phase Related
Unk327 = 327, // Not Used In 4.3.4
ProcOnPowerAmount = 328,
ModPowerGainPct = 329, // Nyi
CastWhileWalking = 330,
ForceWeather = 331,
OverrideActionbarSpells = 332,
OverrideActionbarSpellsTriggered = 333, // Spells cast with this override have no cast time or power cost
ModBlind = 334, // Nyi
Unk335 = 335,
ModFlyingRestrictions = 336, // Nyi
ModVendorItemsPrices = 337,
ModDurabilityLoss = 338,
IncreaseSkillGainChance = 339, // Nyi
ModResurrectedHealthByGuildMember = 340, // Increases Health Gained When Resurrected By A Guild Member By X
ModSpellCategoryCooldown = 341,
ModMeleeRangedHaste2 = 342,
ModMeleeDamageFromCaster = 343,
ModAutoattackDamage = 344,
BypassArmorForCaster = 345,
EnableAltPower = 346, // Nyi
ModSpellCooldownByHaste = 347,
DepositBonusMoneyInGuildBankOnLoot = 348, // Nyi
ModCurrencyGain = 349,
ModGatheringItemsGainedPercent = 350, // Nyi
Unk351 = 351,
Unk352 = 352,
ModCamouflage = 353, // Nyi
Unk354 = 354, // Restoration Shaman Mastery - Mod Healing Based On Target'S Health (Less = More Healing)
ModCastingSpeed = 355, // NYI
Unk356 = 356, // Arcane Mage Mastery - Mod Damage Based On Current Mana
EnableBoss1UnitFrame = 357,
WorgenAlteredForm = 358,
Unk359 = 359,
ProcTriggerSpellCopy = 360, // Procs The Same Spell That Caused This Proc (Dragonwrath, Tarecgosa'S Rest)
OverrideAutoattackWithMeleeSpell = 361, // NYI
Unk362 = 362, // Not Used In 4.3.4
ModNextSpell = 363, // Used By 101601 Throw Totem - Causes The Client To Initialize Spell Cast With Specified Spell
Unk364 = 364, // Not Used In 4.3.4
MaxFarClipPlane = 365, // Overrides Client'S View Distance Setting To Max("Fair", CurrentSetting) And Turns Off Terrain Display
OverrideSpellPowerByApPct = 366, // Sets Spellpower Equal To % Of Attack Power, Discarding All Other Bonuses (From Gear And Buffs)
OverrideAutoattackWithRangedSpell = 367, // NYI
Unk368 = 368, // Not Used In 4.3.4
EnablePowerBarTimer = 369,
SetFairFarClip = 370, // Overrides Client'S View Distance Setting To Max("Fair", CurrentSetting)
Unk371 = 371,
Unk372 = 372,
ModSpeedNoControl = 373, // NYI
ModifyFallDamagePct = 374,
Unk375 = 375,
ModCurrencyGainFromSource = 376, // NYI
CastWhileWalking2 = 377, // NYI
Unk378 = 378,
Unk379 = 379,
ModGlobalCooldownByHaste = 380, // Allows melee abilities to benefit from haste GCD reduction
Unk381 = 381,
ModPetStatPct = 382, // NYI
IgnoreSpellCooldown = 383,
Unk384 = 384,
ChanceOverrideAutoattackWithSpellOnSelf = 385,// NYI (with triggered spell cast by the initial caster?)
Unk386 = 386,
Unk387 = 387,
ModTaxiFlightSpeed = 388,
Unk389 = 389,
Unk390 = 390,
Unk391 = 391,
Unk392 = 392,
Unk393 = 393,
ShowConfirmationPrompt = 394,
AreaTrigger = 395, // NYI
ProcOnPowerAmount2 = 396,
Unk397 = 397,
Unk398 = 398,
Unk399 = 399,
ModSkill2 = 400,
Unk401 = 401,
ModOverridePowerDisplay = 402,
OverrideSpellVisual = 403,
OverrideAttackPowerBySpPct = 404,
ModRatingPct = 405, // NYI
KeyboundOverride = 406, // NYI
ModFear2 = 407,
Unk408 = 408,
CanTurnWhileFalling = 409,
Unk410 = 410,
ModMaxCharges = 411,
Unk412 = 412,
Unk413 = 413,
Unk414 = 414,
Unk415 = 415,
ModCooldownByHasteRegen = 416,
ModGlobalCooldownByHasteRegen = 417,
ModMaxPower = 418, // NYI
ModBaseManaPct = 419,
ModBattlePetXpPct = 420,
ModAbsorbEffectsAmountPct = 421, // NYI
Unk422 = 422,
Unk423 = 423,
Unk424 = 424,
Unk425 = 425,
Unk426 = 426,
ScalePlayerLevel = 427, // NYI
Unk428 = 428,
Unk429 = 429,
PlayScene = 430,
ModOverrideZonePvpType = 431, // NYI
Unk432 = 432,
Unk433 = 433,
Unk434 = 434,
Unk435 = 435,
ModEnvironmentalDamageTaken = 436, // NYI
ModMinimumSpeedRate = 437,
PreloadPhase = 438, // NYI
Unk439 = 439,
ModMultistrikeDamage = 440, // NYI
ModMultistrikeChance = 441, // NYI
ModReadiness = 442, // NYI
ModLeech = 443, // NYI
Unk444 = 444,
Unk445 = 445,
Unk446 = 446,
ModXpFromCreatureType = 447,
Unk448 = 448,
Unk449 = 449,
Unk450 = 450,
OverridePetSpecs = 451,
Unk452 = 452,
ChargeRecoveryMod = 453,
ChargeRecoveryMultiplier = 454,
ModRoot2 = 455,
ChargeRecoveryAffectedByHaste = 456,
ChargeRecoveryAffectedByHasteRegen = 457,
IgnoreDualWieldHitPenalty = 458,
IgnoreMovementForces = 459,
ResetCooldownsOnDuelStart = 460,
Unk461 = 461,
ModHealingAndAbsorbFromCaster = 462, // NYI
ConvertCritRatingPctToParryRating = 463, // NYI
ModAttackPowerOfBonusArmor = 464, // NYI
ModBonusArmor = 465, // NYI
ModBonusArmorPct = 466,
ModStatBonusPct = 467,
TriggerSpellOnHealthBelowPct = 468,
ShowConfirmationPromptWithDifficulty = 469,
Unk470 = 470,
ModVersatility = 471, // NYI
Unk472 = 472,
PreventDurabilityLossFromCombat = 473,
Unk474 = 474,
AllowUsingGameobjectsWhileMounted = 475,
ModCurrencyGainLooted = 476,
Unk477 = 477,
Unk478 = 478,
Unk479 = 479,
Unk480 = 480,
ConvertConsumedRune = 481,
Unk482 = 482,
SuppressTransforms = 483, // NYI
Unk484 = 484,
Unk485 = 485,
Unk486 = 486,
Unk487 = 487,
Unk488 = 488,
Unk489 = 489,
Unk490 = 490,
Unk491 = 491,
Total = 492
}
public enum AuraEffectHandleModes
{
Default = 0x0,
Real = 0x01, // Handler Applies/Removes Effect From Unit
SendForClient = 0x02, // Handler Sends Apply/Remove Packet To Unit
ChangeAmount = 0x04, // Handler Updates Effect On Target After Effect Amount Change
Reapply = 0x08, // Handler Updates Effect On Target After Aura Is Reapplied On Target
Stat = 0x10, // Handler Updates Effect On Target When Stat Removal/Apply Is Needed For Calculations By Core
Skill = 0x20, // Handler Updates Effect On Target When Skill Removal/Apply Is Needed For Calculations By Core
SendForClientMask = (SendForClient | Real), // Any Case Handler Need To Send Packet
ChangeAmountMask = (ChangeAmount | Real), // Any Case Handler Applies Effect Depending On Amount
ChangeAmountSendForClientMask = (ChangeAmountMask | SendForClientMask),
RealOrReapplyMask = (Reapply | Real)
}
// Diminishing Returns Types
public enum DiminishingReturnsType
{
None = 0, // this spell is not diminished, but may have its duration limited
Player = 1, // this spell is diminished only when applied on players
All = 2 // this spell is diminished in every case
}
// Diminishing Return Groups
public enum DiminishingGroup
{
None = 0,
Root = 1,
Stun = 2,
Incapacitate = 3,
Disorient = 4,
Silence = 5,
AOEKnockback = 6,
Taunt = 7,
LimitOnly = 8,
}
public enum DiminishingLevels
{
Level1 = 0,
Level2 = 1,
Level3 = 2,
Immune = 3,
Level4 = 3,
TauntImmune = 4
}
}
File diff suppressed because it is too large Load Diff
+42
View File
@@ -0,0 +1,42 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum GMTicketSystemStatus
{
Disabled = 0,
Enabled = 1
}
public enum GMSupportComplaintType
{
None = 0,
Language = 2,
PlayerName = 4,
Cheat = 15,
GuildName = 23,
Spamming = 24
}
public enum SupportSpamType
{
Mail = 0,
Chat = 1,
Calendar = 2
}
}
+577
View File
@@ -0,0 +1,577 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum VehicleSeatFlags : uint
{
HasLowerAnimForEnter = 0x01,
HasLowerAnimForRide = 0x02,
Unk3 = 0x04,
ShouldUseVehSeatExitAnimOnVoluntaryExit = 0x08,
Unk5 = 0x10,
Unk6 = 0x20,
Unk7 = 0x40,
Unk8 = 0x80,
Unk9 = 0x100,
HidePassenger = 0x200, // Passenger Is Hidden
AllowTurning = 0x400, // Needed For CgcameraSyncfreelookfacing
CanControl = 0x800, // LuaUnitinvehiclecontrolseat
CanCastMountSpell = 0x1000, // Can Cast Spells With SpellAuraMounted From Seat (Possibly 4.X Only, 0 Seats On 3.3.5a)
Uncontrolled = 0x2000, // Can Override !& CanEnterOrExit
CanAttack = 0x4000, // Can Attack, Cast Spells And Use Items From Vehicle
ShouldUseVehSeatExitAnimOnForcedExit = 0x8000,
Unk17 = 0x10000,
Unk18 = 0x20000, // Needs Research And Support (28 Vehicles): Allow Entering Vehicles While Keeping Specific Permanent(?) Auras That Impose Visuals (States Like Beeing Under Freeze/Stun Mechanic, Emote State Animations).
HasVehExitAnimVoluntaryExit = 0x40000,
HasVehExitAnimForcedExit = 0x80000,
PassengerNotSelectable = 0x100000,
Unk22 = 0x200000,
RecHasVehicleEnterAnim = 0x400000,
IsUsingVehicleControls = 0x800000, // LuaIsusingvehiclecontrols
EnableVehicleZoom = 0x1000000,
CanEnterOrExit = 0x2000000, // LuaCanexitvehicle - Can Enter And Exit At Free Will
CanSwitch = 0x4000000, // LuaCanswitchvehicleseats
HasStartWaritingForVehTransitionAnimEnter = 0x8000000,
HasStartWaritingForVehTransitionAnimExit = 0x10000000,
CanCast = 0x20000000, // LuaUnithasvehicleui
Unk2 = 0x40000000, // Checked In Conjunction With 0x800 In Castspell2
AllowsInteraction = 0x80000000
}
public enum VehicleSeatFlagsB : uint
{
None = 0x00,
UsableForced = 0x02,
TargetsInRaidUi = 0x08, // Lua_Unittargetsvehicleinraidui
Ejectable = 0x20, // Ejectable
UsableForced2 = 0x40,
UsableForced3 = 0x100,
KeepPet = 0x20000,
UsableForced4 = 0x02000000,
CanSwitch = 0x4000000,
VehiclePlayerframeUi = 0x80000000 // Lua_Unithasvehicleplayerframeui - Actually Checked For Flagsb &~ 0x80000000
}
public enum SpellClickCastFlags
{
CasterClicker = 0x01,
TargetClicker = 0x02,
OrigCasterOwner = 0x04
}
public enum SummonSlot
{
Pet = 0,
Totem = 1,
MiniPet = 5,
Quest = 6,
}
public enum PlayerTotemType
{
Fire = 63,
Earth = 81,
Water = 82,
Air = 83
}
public enum BaseModType
{
FlatMod,
PCTmod,
End
}
//To all Immune system, if target has immunes,
//some spell that related to ImmuneToDispel or ImmuneToSchool or ImmuneToDamage type can't cast to it,
//some spell_effects that related to ImmuneToEffect<effect>(only this effect in the spell) can't cast to it,
//some aura(related to Mechanics or ImmuneToState<aura>) can't apply to it.
public enum SpellImmunity
{
Effect = 0, // enum SpellEffects
State = 1, // enum AuraType
School = 2, // enum SpellSchoolMask
Damage = 3, // enum SpellSchoolMask
Dispel = 4, // enum DispelType
Mechanic = 5, // enum Mechanics
Id = 6,
Max = 7
}
public enum BaseModGroup
{
CritPercentage,
RangedCritPercentage,
OffhandCritPercentage,
ShieldBlockValue,
End
}
public enum DamageEffectType
{
Direct = 0, // used for normal weapon damage (not for class abilities or spells)
SpellDirect = 1, // spell/class abilities damage
DOT = 2,
Heal = 3,
NoDamage = 4, // used also in case when damage applied to health but not applied to spell channelInterruptFlags/etc
Self = 5
}
public enum WeaponDamageRange
{
MinDamage,
MaxDamage
}
public enum UnitMods
{
StatStrength, // STAT_STRENGTH..UNIT_MOD_STAT_INTELLECT must be in existed order, it's accessed by index values of Stats enum.
StatAgility,
StatStamina,
StatIntellect,
Health,
Mana, // MANA..RUNIC_POWER must be in existed order, it's accessed by index values of Powers enum.
Rage,
Focus,
Energy,
Unused, // Old HAPPINESS
Rune,
RunicPower,
SoulShards,
Eclipse,
HolyPower,
Alternative,
Maelstrom,
Chi,
Insanity,
BurningEmbers,
DemonicFury,
ArcaneCharges,
Fury,
Pain,
Armor, // ARMOR..RESISTANCE_ARCANE must be in existed order, it's accessed by index values of SpellSchools enum.
ResistanceHoly,
ResistanceFire,
ResistanceNature,
ResistanceFrost,
ResistanceShadow,
ResistanceArcane,
AttackPower,
AttackPowerRanged,
DamageMainHand,
DamageOffHand,
DamageRanged,
End,
// synonyms
StatStart = StatStrength,
StatEnd = StatIntellect + 1,
ResistanceStart = Armor,
ResistanceEnd = ResistanceArcane + 1,
PowerStart = Mana,
PowerEnd = Pain + 1
}
public enum UnitModifierType
{
BaseValue = 0,
BasePCTExcludeCreate = 1, // percent modifier affecting all stat values from auras and gear but not player base for level
BasePCT = 2,
TotalValue = 3,
TotalPCT = 4,
End = 5
}
public enum VictimState
{
Intact = 0, // set when attacker misses
Hit = 1, // victim got clear/blocked hit
Dodge = 2,
Parry = 3,
Imterrupt = 4,
Blocks = 5, // unused? not set when blocked, even on full block
Evades = 6,
Immune = 7,
Deflects = 8
}
public enum HitInfo
{
NormalSwing = 0x0,
Unk1 = 0x01, // req correct packet structure
AffectsVictim = 0x02,
OffHand = 0x04,
Unk2 = 0x08,
Miss = 0x10,
FullAbsorb = 0x20,
PartialAbsorb = 0x40,
FullResist = 0x80,
PartialResist = 0x100,
CriticalHit = 0x200, // critical hit
Unk10 = 0x400,
Unk11 = 0x800,
Unk12 = 0x1000,
Block = 0x2000, // blocked damage
Unk14 = 0x4000, // set only if meleespellid is present// no world text when victim is hit for 0 dmg(HideWorldTextForNoDamage?)
Unk15 = 0x8000, // player victim?// something related to blod sprut visual (BloodSpurtInBack?)
Glancing = 0x10000,
Crushing = 0x20000,
NoAnimation = 0x40000,
Unk19 = 0x80000,
Unk20 = 0x100000,
SwingNoHitSound = 0x200000, // unused?
Unk22 = 0x00400000,
RageGain = 0x800000,
FakeDamage = 0x1000000 // enables damage animation even if no damage done, set only if no damage
}
public enum ReactStates
{
Passive = 0,
Defensive = 1,
Aggressive = 2,
Assist = 3
}
/// <summary>
/// UnitStandStateType
/// </summary>
public enum UnitStandStateType
{
Stand = 0,
Sit = 1,
SitChair = 2,
Sleep = 3,
SitLowChair = 4,
SitMediumChair = 5,
SitHighChair = 6,
Dead = 7,
Kneel = 8,
Submerged = 9
}
public struct UnitBytes0Offsets
{
public const byte Race = 0;
public const byte Class = 1;
public const byte PlayerClass = 2;
public const byte Gender = 3;
}
public struct UnitBytes1Offsets
{
public const byte StandState = 0;
public const byte PetTalents = 1; // unused
public const byte VisFlag = 2;
public const byte AnimTier = 3;
}
public enum UnitStandFlags
{
Unk1 = 0x01,
Creep = 0x02,
Untrackable = 0x04,
Unk4 = 0x08,
Unk5 = 0x10,
All = 0xFF
}
public enum UnitBytes1Flags
{
AlwaysStand = 0x01,
Hover = 0x02,
Unk3 = 0x04,
All = 0xFF
}
public struct UnitBytes2Offsets
{
public const byte SheathState = 0;
public const byte PvpFlag = 1;
public const byte PetFlags = 2;
public const byte ShapeshiftForm = 3;
}
public enum UnitBytes2Flags
{
PvP = 0x01,
Unk1 = 0x02,
FFAPvp = 0x04,
Sanctuary = 0x08,
Unk4 = 0x10,
Unk5 = 0x20,
Unk6 = 0x40,
Unk7 = 0x80,
}
public enum UnitPetFlags
{
CanBeRenamed = 0x01,
CanBeAbandoned = 0x02
}
/// <summary>
/// UnitFields.Bytes2, 3
/// </summary>
public enum ShapeShiftForm
{
None = 0,
CatForm = 1,
TreeOfLife = 2,
TravelForm = 3,
AquaticForm = 4,
BearForm = 5,
Ambient = 6,
Ghoul = 7,
DireBearForm = 8,
CraneStance = 9,
TharonjaSkeleton = 10,
DarkmoonTestOfStrength = 11,
BlbPlayer = 12,
ShadowDance = 13,
CreatureBear = 14,
CreatureCat = 15,
GhostWolf = 16,
BattleStance = 17,
DefensiveStance = 18,
BerserkerStance = 19,
SerpentStance = 20,
Zombie = 21,
Metamorphosis = 22,
OxStance = 23,
TigerStance = 24,
Undead = 25,
Frenzy = 26,
FlightFormEpic = 27,
Shadowform = 28,
FlightForm = 29,
Stealth = 30,
MoonkinForm = 31,
SpiritOfRedemption = 32,
GladiatorStance = 33
}
public enum ReactiveType
{
Defense = 0,
HunterParry = 1,
OverPower = 2,
Max = 3
}
public enum SpellValueMod
{
BasePoint0,
BasePoint1,
BasePoint2,
BasePoint3,
BasePoint4,
BasePoint5,
BasePoint6,
BasePoint7,
BasePoint8,
BasePoint9,
BasePoint10,
BasePoint11,
BasePoint12,
BasePoint13,
BasePoint14,
BasePoint15,
BasePoint16,
BasePoint17,
BasePoint18,
BasePoint19,
BasePoint20,
BasePoint21,
BasePoint22,
BasePoint23,
BasePoint24,
BasePoint25,
BasePoint26,
BasePoint27,
BasePoint28,
BasePoint29,
BasePoint30,
BasePoint31,
End,
RadiusMod,
MaxTargets,
AuraStack
}
public enum CombatRating
{
Amplify = 0,
DefenseSkill = 1,
Dodge = 2,
Parry = 3,
Block = 4,
HitMelee = 5,
HitRanged = 6,
HitSpell = 7,
CritMelee = 8,
CritRanged = 9,
CritSpell = 10,
Multistrike = 11,
Readiness = 12,
Speed = 13,
ResilienceCritTaken = 14,
ResiliencePlayerDamage = 15,
Lifesteal = 16,
HasteMelee = 17,
HasteRanged = 18,
HasteSpell = 19,
Avoidance = 20,
Studiness = 21,
Unused7 = 22,
Expertise = 23,
ArmorPenetration = 24,
Mastery = 25,
PvpPower = 26,
Cleave = 27,
VersatilityDamageDone = 28,
VersatilityHealingDone = 29,
VersatilityDamageTaken = 30,
Unused12 = 31,
Max = 32
}
public enum DeathState
{
Alive = 0,
JustDied = 1,
Corpse = 2,
Dead = 3,
JustRespawned = 4
}
public enum UnitState : uint
{
Died = 0x01, // Player Has Fake Death Aura
MeleeAttacking = 0x02, // Player Is Melee Attacking Someone
//Melee_Attack_By = 0x04, // Player Is Melee Attack By Someone
Stunned = 0x08,
Roaming = 0x10,
Chase = 0x20,
//Searching = 0x40,
Fleeing = 0x80,
InFlight = 0x100, // Player Is In Flight Mode
Follow = 0x200,
Root = 0x400,
Confused = 0x800,
Distracted = 0x1000,
Isolated = 0x2000, // Area Auras Do Not Affect Other Players
AttackPlayer = 0x4000,
Casting = 0x8000,
Possessed = 0x10000,
Charging = 0x20000,
Jumping = 0x40000,
//Onvehicle = 0x80000,
Move = 0x100000,
Rotating = 0x200000,
Evade = 0x400000,
RoamingMove = 0x800000,
ConfusedMove = 0x1000000,
FleeingMove = 0x2000000,
ChaseMove = 0x4000000,
FollowMove = 0x8000000,
IgnorePathfinding = 0x10000000,
Unattackable = InFlight,
// For Real Move Using Movegen Check And Stop (Except Unstoppable Flight)
Moving = RoamingMove | ConfusedMove | FleeingMove | ChaseMove | FollowMove,
Controlled = (Confused | Stunned | Fleeing),
LostControl = (Controlled | Jumping | Charging),
Sightless = (LostControl | Evade),
CannotAutoattack = (LostControl | Casting),
CannotTurn = (LostControl | Rotating),
// Stay By Different Reasons
NotMove = Root | Stunned | Died | Distracted,
AllState = 0xffffffff //(Stopped | Moving | In_Combat | In_Flight)
}
public enum UnitMoveType
{
Walk = 0,
Run = 1,
RunBack = 2,
Swim = 3,
SwimBack = 4,
TurnRate = 5,
Flight = 6,
FlightBack = 7,
PitchRate = 8,
Max = 9
}
public enum WeaponAttackType
{
BaseAttack = 0,
OffAttack = 1,
RangedAttack = 2,
Max
}
public enum UnitTypeMask
{
None = 0x0,
Summon = 0x01,
Minion = 0x02,
Guardian = 0x04,
Totem = 0x08,
Pet = 0x10,
Vehicle = 0x20,
Puppet = 0x40,
HunterPet = 0x80,
ControlableGuardian = 0x100,
Accessory = 0x200
}
public enum CurrentSpellTypes
{
Melee = 0,
Generic = 1,
Channeled = 2,
AutoRepeat = 3,
Max = 4
}
public enum SheathState
{
Unarmed = 0, // non prepared weapon
Melee = 1, // prepared melee weapon
Ranged = 2, // prepared ranged weapon
Max = 3
}
public enum MeleeHitOutcome
{
Evade,
Miss,
Dodge,
Block,
Parry,
Glancing,
Crit,
Crushing,
Normal
}
public enum UnitDynFlags
{
None = 0x00,
HideModel = 0x02, // Object model is not shown with this flag
Lootable = 0x04,
TrackUnit = 0x08,
Tapped = 0x10, // Lua_UnitIsTapped
SpecialInfo = 0x20,
Dead = 0x40,
ReferAFriend = 0x80
}
}
File diff suppressed because it is too large Load Diff
+411
View File
@@ -0,0 +1,411 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum ObjectFields
{
Guid = 0x000, // Size: 4, Flags: Public
Data = 0x004, // Size: 4, Flags: Public
Type = 0x008, // Size: 1, Flags: Public
Entry = 0x009, // Size: 1, Flags: Dynamic
DynamicFlags = 0x00a, // Size: 1, Flags: Dynamic, Urgent
ScaleX = 0x00b, // Size: 1, Flags: Public
End = 0x00c,
}
public enum ItemFields
{
Owner = ObjectFields.End + 0x000, // Size: 4, Flags: Public
Contained = ObjectFields.End + 0x004, // Size: 4, Flags: Public
Creator = ObjectFields.End + 0x008, // Size: 4, Flags: Public
GiftCreator = ObjectFields.End + 0x00c, // Size: 4, Flags: Public
StackCount = ObjectFields.End + 0x010, // Size: 1, Flags: Owner
Duration = ObjectFields.End + 0x011, // Size: 1, Flags: Owner
SpellCharges = ObjectFields.End + 0x012, // Size: 5, Flags: Owner
Flags = ObjectFields.End + 0x017, // Size: 1, Flags: Public
Enchantment = ObjectFields.End + 0x018, // Size: 39, Flags: Public
PropertySeed = ObjectFields.End + 0x03f, // Size: 1, Flags: Public
RandomPropertiesId = ObjectFields.End + 0x040, // Size: 1, Flags: Public
Durability = ObjectFields.End + 0x041, // Size: 1, Flags: Owner
MaxDurability = ObjectFields.End + 0x042, // Size: 1, Flags: Owner
CreatePlayedTime = ObjectFields.End + 0x043, // Size: 1, Flags: Public
ModifiersMask = ObjectFields.End + 0x044, // Size: 1, Flags: Owner
Context = ObjectFields.End + 0x045, // Size: 1, Flags: Public
ArtifactXp = ObjectFields.End + 0x046, // Size: 2, Flags: OWNER
AppearanceModId = ObjectFields.End + 0x048, // Size: 1, Flags: OWNER
End = ObjectFields.End + 0x049,
}
public enum ItemDynamicFields
{
Modifiers = 0x000, // Flags: Owner
BonusListIds = 0x001, // Flags: Owner, 0x100
ArtifactPowers = 0x002, // Flags: OWNER
Gems = 0x003, // Flags: OWNER
End = 0x004,
}
public enum ContainerFields
{
Slot1 = ItemFields.End + 0x000, // Size: 144, Flags: Public
NumSlots = ItemFields.End + 0x090, // Size: 1, Flags: Public
End = ItemFields.End + 0x091,
}
public enum UnitFields
{
Charm = ObjectFields.End + 0x000, // Size: 4, Flags: Public
Summon = ObjectFields.End + 0x004, // Size: 4, Flags: Public
Critter = ObjectFields.End + 0x008, // Size: 4, Flags: Private
CharmedBy = ObjectFields.End + 0x00c, // Size: 4, Flags: Public
SummonedBy = ObjectFields.End + 0x010, // Size: 4, Flags: Public
CreatedBy = ObjectFields.End + 0x014, // Size: 4, Flags: Public
DemonCreator = ObjectFields.End + 0x018, // Size: 4, Flags: Public
Target = ObjectFields.End + 0x01c, // Size: 4, Flags: Public
BattlePetCompanionGuid = ObjectFields.End + 0x020, // Size: 4, Flags: Public
BattlePetDbId = ObjectFields.End + 0x024, // Size: 2, Flags: Public
ChannelSpell = ObjectFields.End + 0x026, // Size: 1, Flags: Public, Urgent
ChannelSpellXSpellVisual = ObjectFields.End + 0x027, // Size: 1, Flags: Public, Urgent
SummonedByHomeRealm = ObjectFields.End + 0x028, // Size: 1, Flags: Public
Bytes0 = ObjectFields.End + 0x029, // Size: 1, Flags: Public
DisplayPower = ObjectFields.End + 0x02a, // Size: 1, Flags: Public
OverrideDisplayPowerId = ObjectFields.End + 0x02b, // Size: 1, Flags: Public
Health = ObjectFields.End + 0x02c, // Size: 2, Flags: Public
Power = ObjectFields.End + 0x02e, // Size: 6, Flags: Public, UrgentSelfOnly
MaxHealth = ObjectFields.End + 0x034, // Size: 2, Flags: Public
MaxPower = ObjectFields.End + 0x036, // Size: 6, Flags: Public
PowerRegenFlatModifier = ObjectFields.End + 0x03c, // Size: 6, Flags: Private, Owner, UnitAll
PowerRegenInterruptedFlatModifier = ObjectFields.End + 0x042, // Size: 6, Flags: Private, Owner, UnitAll
Level = ObjectFields.End + 0x048, // Size: 1, Flags: Public
EffectiveLevel = ObjectFields.End + 0x049, // Size: 1, Flags: Public
ScalingLevelMin = ObjectFields.End + 0x04a, // Size: 1, Flags: Public
ScalingLevelMax = ObjectFields.End + 0x04b, // Size: 1, Flags: Public
ScalingLevelDelta = ObjectFields.End + 0x04c, // Size: 1, Flags: Public
FactionTemplate = ObjectFields.End + 0x04d, // Size: 1, Flags: Public
VirtualItemSlotId = ObjectFields.End + 0x04e, // Size: 6, Flags: Public
Flags = ObjectFields.End + 0x054, // Size: 1, Flags: Public, Urgent
Flags2 = ObjectFields.End + 0x055, // Size: 1, Flags: Public, Urgent
Flags3 = ObjectFields.End + 0x056, // Size: 1, Flags: Public, Urgent
AuraState = ObjectFields.End + 0x057, // Size: 1, Flags: Public
BaseAttackTime = ObjectFields.End + 0x058, // Size: 2, Flags: Public
RangedAttackTime = ObjectFields.End + 0x05a, // Size: 1, Flags: Private
BoundingRadius = ObjectFields.End + 0x05b, // Size: 1, Flags: Public
CombatReach = ObjectFields.End + 0x05c, // Size: 1, Flags: Public
DisplayId = ObjectFields.End + 0x05d, // Size: 1, Flags: Dynamic, Urgent
NativeDisplayId = ObjectFields.End + 0x05e, // Size: 1, Flags: Public, Urgent
MountDisplayId = ObjectFields.End + 0x05f, // Size: 1, Flags: Public, Urgent
MinDamage = ObjectFields.End + 0x060, // Size: 1, Flags: Private, Owner, SpecialInfo
MaxDamage = ObjectFields.End + 0x061, // Size: 1, Flags: Private, Owner, SpecialInfo
MinOffHandDamage = ObjectFields.End + 0x062, // Size: 1, Flags: Private, Owner, SpecialInfo
MaxOffHandDamage = ObjectFields.End + 0x063, // Size: 1, Flags: Private, Owner, SpecialInfo
Bytes1 = ObjectFields.End + 0x064, // Size: 1, Flags: Public
PetNumber = ObjectFields.End + 0x065, // Size: 1, Flags: Public
PetNameTimestamp = ObjectFields.End + 0x066, // Size: 1, Flags: Public
PetExperience = ObjectFields.End + 0x067, // Size: 1, Flags: Owner
PetNextLevelExp = ObjectFields.End + 0x068, // Size: 1, Flags: Owner
ModCastSpeed = ObjectFields.End + 0x069, // Size: 1, Flags: Public
ModCastHaste = ObjectFields.End + 0x06a, // Size: 1, Flags: Public
ModHaste = ObjectFields.End + 0x06b, // Size: 1, Flags: Public
ModRangedHaste = ObjectFields.End + 0x06c, // Size: 1, Flags: Public
ModHasteRegen = ObjectFields.End + 0x06d, // Size: 1, Flags: Public
ModTimeRate = ObjectFields.End + 0x06e, // Size: 1, Flags: Public
CreatedBySpell = ObjectFields.End + 0x06f, // Size: 1, Flags: Public
NpcFlags = ObjectFields.End + 0x070, // Size: 2, Flags: Public, Dynamic
NpcEmotestate = ObjectFields.End + 0x072, // Size: 1, Flags: Public
Stat = ObjectFields.End + 0x073, // Size: 4, Flags: Private, Owner
PosStat = ObjectFields.End + 0x077, // Size: 4, Flags: Private, Owner
NegStat = ObjectFields.End + 0x07b, // Size: 4, Flags: Private, Owner
Resistances = ObjectFields.End + 0x07f, // Size: 7, Flags: Private, Owner, SpecialInfo
ResistanceBuffModsPositive = ObjectFields.End + 0x086, // Size: 7, Flags: Private, Owner
ResistanceBuffModsNegative = ObjectFields.End + 0x08d, // Size: 7, Flags: Private, Owner
ModBonusArmor = ObjectFields.End + 0x094, // Size: 1, Flags: Private, Owner
BaseMana = ObjectFields.End + 0x095, // Size: 1, Flags: Public
BaseHealth = ObjectFields.End + 0x096, // Size: 1, Flags: Private, Owner
Bytes2 = ObjectFields.End + 0x097, // Size: 1, Flags: Public
AttackPower = ObjectFields.End + 0x098, // Size: 1, Flags: Private, Owner
AttackPowerModPos = ObjectFields.End + 0x099, // Size: 1, Flags: Private, Owner
AttackPowerModNeg = ObjectFields.End + 0x09a, // Size: 1, Flags: Private, Owner
AttackPowerMultiplier = ObjectFields.End + 0x09b, // Size: 1, Flags: Private, Owner
RangedAttackPower = ObjectFields.End + 0x09c, // Size: 1, Flags: Private, Owner
RangedAttackPowerModPos = ObjectFields.End + 0x09d, // Size: 1, Flags: Private, Owner
RangedAttackPowerModNeg = ObjectFields.End + 0x09e, // Size: 1, Flags: Private, Owner
RangedAttackPowerMultiplier = ObjectFields.End + 0x09f, // Size: 1, Flags: Private, Owner
AttackSpeedAura = ObjectFields.End + 0x0a0, // Size: 1, Flags: Private, Owner
MinRangedDamage = ObjectFields.End + 0x0a1, // Size: 1, Flags: Private, Owner
MaxRangedDamage = ObjectFields.End + 0x0a2, // Size: 1, Flags: Private, Owner
PowerCostModifier = ObjectFields.End + 0x0a3, // Size: 7, Flags: Private, Owner
PowerCostMultiplier = ObjectFields.End + 0x0aa, // Size: 7, Flags: Private, Owner
Maxhealthmodifier = ObjectFields.End + 0x0b1, // Size: 1, Flags: Private, Owner
HoverHeight = ObjectFields.End + 0x0b2, // Size: 1, Flags: Public
MinItemLevelCutoff = ObjectFields.End + 0x0b3, // Size: 1, Flags: Public
MinItemLevel = ObjectFields.End + 0x0b4, // Size: 1, Flags: Public
Maxitemlevel = ObjectFields.End + 0x0b5, // Size: 1, Flags: Public
WildBattlepetLevel = ObjectFields.End + 0x0b6, // Size: 1, Flags: Public
BattlepetCompanionNameTimestamp = ObjectFields.End + 0x0b7, // Size: 1, Flags: Public
InteractSpellid = ObjectFields.End + 0x0b8, // Size: 1, Flags: Public
StateSpellVisualId = ObjectFields.End + 0x0b9, // Size: 1, Flags: Dynamic, Urgent
StateAnimId = ObjectFields.End + 0x0ba, // Size: 1, Flags: Dynamic, Urgent
StateAnimKitId = ObjectFields.End + 0x0bb, // Size: 1, Flags: Dynamic, Urgent
StateWorldEffectId = ObjectFields.End + 0x0bc, // Size: 4, Flags: Dynamic, Urgent
ScaleDuration = ObjectFields.End + 0x0c0, // Size: 1, Flags: Public
LooksLikeMountId = ObjectFields.End + 0x0c1, // Size: 1, Flags: Public
LooksLikeCreatureId = ObjectFields.End + 0x0c2, // Size: 1, Flags: Public
LookAtControllerId = ObjectFields.End + 0x0c3, // Size: 1, Flags: Public
LookAtControllerTarget = ObjectFields.End + 0x0c4, // Size: 4, Flags: Public
End = ObjectFields.End + 0x0c8,
}
public enum UnitDynamicFields
{
PassiveSpells = 0x000, // Flags: Public, Urgent
WorldEffects = 0x001, // Flags: Public, Urgent
ChannelObjects = 0x002, // Flags: PUBLIC, URGENT
End = 0x003,
}
public enum PlayerFields
{
DuelArbiter = UnitFields.End + 0x000, // Size: 4, Flags: Public
WowAccount = UnitFields.End + 0x004, // Size: 4, Flags: Public
LootTargetGuid = UnitFields.End + 0x008, // Size: 4, Flags: Public
Flags = UnitFields.End + 0x00c, // Size: 1, Flags: Public
FlagsEx = UnitFields.End + 0x00d, // Size: 1, Flags: Public
GuildRank = UnitFields.End + 0x00e, // Size: 1, Flags: Public
GuildDeleteDate = UnitFields.End + 0x00f, // Size: 1, Flags: Public
GuildLevel = UnitFields.End + 0x010, // Size: 1, Flags: Public
Bytes = UnitFields.End + 0x011, // Size: 1, Flags: Public
Bytes2 = UnitFields.End + 0x012, // Size: 1, Flags: Public
Bytes3 = UnitFields.End + 0x013, // Size: 1, Flags: Public
Bytes4 = UnitFields.End + 0x014, // Size: 1, Flags: Public
DuelTeam = UnitFields.End + 0x015, // Size: 1, Flags: Public
GuildTimestamp = UnitFields.End + 0x016, // Size: 1, Flags: Public
QuestLog = UnitFields.End + 0x017, // Size: 800, Flags: PartyMember
VisibleItem = UnitFields.End + 0x337, // Size: 38, Flags: Public
ChosenTitle = UnitFields.End + 0x35d, // Size: 1, Flags: Public
FakeInebriation = UnitFields.End + 0x35e, // Size: 1, Flags: Public
VirtualRealm = UnitFields.End + 0x35f, // Size: 1, Flags: Public
CurrentSpecId = UnitFields.End + 0x360, // Size: 1, Flags: Public
TaxiMountAnimKitId = UnitFields.End + 0x361, // Size: 1, Flags: Public
AvgItemLevel = UnitFields.End + 0x362, // Size: 4, Flags: Public
CurrentBattlePetBreedQuality = UnitFields.End + 0x366, // Size: 1, Flags: Public
Prestige = UnitFields.End + 0x367, // Size: 1, Flags: Public
HonorLevel = UnitFields.End + 0x368, // Size: 1, Flags: Public
InvSlotHead = UnitFields.End + 0x369, // Size: 748, Flags: Private
EndNotSelf = UnitFields.End + 0x369,
Farsight = UnitFields.End + 0x655, // Size: 4, Flags: Private
SummonedBattlePetId = UnitFields.End + 0x659, // Size: 4, Flags: Private
KnownTitles = UnitFields.End + 0x65d, // Size: 12, Flags: Private
Coinage = UnitFields.End + 0x669, // Size: 2, Flags: Private
Xp = UnitFields.End + 0x66b, // Size: 1, Flags: Private
NextLevelXp = UnitFields.End + 0x66c, // Size: 1, Flags: Private
SkillLineId = UnitFields.End + 0x66d, // Size: 448, Flags: Private
SkillLineStep = UnitFields.End + 0x6AD,
SkillLineRank = UnitFields.End + 0x6ED,
SkillLineSubStartRank = UnitFields.End + 0x72D,
SkillLineMaxRank = UnitFields.End + 0x76D,
SkillLineTempBonus = UnitFields.End + 0x7AD,
SkillLinePermBonus = UnitFields.End + 0x7ED,
CharacterPoints = UnitFields.End + 0x82d, // Size: 1, Flags: Private
MaxTalentTiers = UnitFields.End + 0x82e, // Size: 1, Flags: Private
TrackCreatures = UnitFields.End + 0x82f, // Size: 1, Flags: Private
TrackResources = UnitFields.End + 0x830, // Size: 1, Flags: Private
Expertise = UnitFields.End + 0x831, // Size: 1, Flags: Private
OffhandExpertise = UnitFields.End + 0x832, // Size: 1, Flags: Private
RangedExpertise = UnitFields.End + 0x833, // Size: 1, Flags: Private
CombatRatingExpertise = UnitFields.End + 0x834, // Size: 1, Flags: Private
BlockPercentage = UnitFields.End + 0x835, // Size: 1, Flags: Private
DodgePercentage = UnitFields.End + 0x836, // Size: 1, Flags: Private
DodgePercentageFromAttribute = UnitFields.End + 0x837, // Size: 1, Flags: Private
ParryPercentage = UnitFields.End + 0x838, // Size: 1, Flags: Private
ParryPercentageFromAttribute = UnitFields.End + 0x839, // Size: 1, Flags: Private
CritPercentage = UnitFields.End + 0x83a, // Size: 1, Flags: Private
RangedCritPercentage = UnitFields.End + 0x83b, // Size: 1, Flags: Private
OffhandCritPercentage = UnitFields.End + 0x83c, // Size: 1, Flags: Private
SpellCritPercentage1 = UnitFields.End + 0x83d, // Size: 1, Flags: Private
ShieldBlock = UnitFields.End + 0x83e, // Size: 1, Flags: Private
ShieldBlockCritPercentage = UnitFields.End + 0x83f, // Size: 1, Flags: Private
Mastery = UnitFields.End + 0x840, // Size: 1, Flags: Private
Speed = UnitFields.End + 0x841, // Size: 1, Flags: Private
Lifesteal = UnitFields.End + 0x842, // Size: 1, Flags: Private
Avoidance = UnitFields.End + 0x843, // Size: 1, Flags: Private
Sturdiness = UnitFields.End + 0x844, // Size: 1, Flags: Private
Versatility = UnitFields.End + 0x845, // Size: 1, Flags: Private
VersatilityBonus = UnitFields.End + 0x846, // Size: 1, Flags: Private
FieldPvpPowerDamage = UnitFields.End + 0x847, // Size: 1, Flags: Private
FieldPvpPowerHealing = UnitFields.End + 0x848, // Size: 1, Flags: Private
ExploredZones1 = UnitFields.End + 0x849, // Size: 256, Flags: Private
RestInfo = UnitFields.End + 0x949, // Size: 4, Flags: Private
ModDamageDonePos = UnitFields.End + 0x94d, // Size: 7, Flags: Private
ModDamageDoneNeg = UnitFields.End + 0x954, // Size: 7, Flags: Private
ModDamageDonePct = UnitFields.End + 0x95b, // Size: 7, Flags: Private
ModHealingDonePos = UnitFields.End + 0x962, // Size: 1, Flags: Private
ModHealingPct = UnitFields.End + 0x963, // Size: 1, Flags: Private
ModHealingDonePct = UnitFields.End + 0x964, // Size: 1, Flags: Private
ModPeriodicHealingDonePercent = UnitFields.End + 0x965, // Size: 1, Flags: Private
WeaponDmgMultipliers = UnitFields.End + 0x966, // Size: 3, Flags: Private
WeaponAtkSpeedMultipliers = UnitFields.End + 0x969, // Size: 3, Flags: Private
ModSpellPowerPct = UnitFields.End + 0x96c, // Size: 1, Flags: Private
ModResiliencePercent = UnitFields.End + 0x96d, // Size: 1, Flags: Private
OverrideSpellPowerByApPct = UnitFields.End + 0x96e, // Size: 1, Flags: Private
OverrideApBySpellPowerPercent = UnitFields.End + 0x96f, // Size: 1, Flags: Private
ModTargetResistance = UnitFields.End + 0x970, // Size: 1, Flags: Private
ModTargetPhysicalResistance = UnitFields.End + 0x971, // Size: 1, Flags: Private
LocalFlags = UnitFields.End + 0x972, // Size: 1, Flags: Private
FieldBytes = UnitFields.End + 0x973, // Size: 1, Flags: Private
SelfResSpell = UnitFields.End + 0x974, // Size: 1, Flags: Private
PvpMedals = UnitFields.End + 0x975, // Size: 1, Flags: Private
BuyBackPrice1 = UnitFields.End + 0x976, // Size: 12, Flags: Private
BuyBackTimestamp1 = UnitFields.End + 0x982, // Size: 12, Flags: Private
Kills = UnitFields.End + 0x98e, // Size: 1, Flags: Private
LifetimeHonorableKills = UnitFields.End + 0x98f, // Size: 1, Flags: Private
WatchedFactionIndex = UnitFields.End + 0x990, // Size: 1, Flags: Private
CombatRating1 = UnitFields.End + 0x991, // Size: 32, Flags: Private
ArenaTeamInfo11 = UnitFields.End + 0x9b1, // Size: 42, Flags: Private
MaxLevel = UnitFields.End + 0x9db, // Size: 1, Flags: Private
ScalingLevelDelta = UnitFields.End + 0x9dc, // Size: 1, Flags: Private
MaxCreatureScalingLevel = UnitFields.End + 0x9dd, // Size: 1, Flags: Private
NoReagentCost1 = UnitFields.End + 0x9de, // Size: 4, Flags: Private
PetSpellPower = UnitFields.End + 0x9e2, // Size: 1, Flags: Private
Researching1 = UnitFields.End + 0x9e3, // Size: 10, Flags: Private
ProfessionSkillLine1 = UnitFields.End + 0x9ed, // Size: 2, Flags: Private
UiHitModifier = UnitFields.End + 0x9ef, // Size: 1, Flags: Private
UiSpellHitModifier = UnitFields.End + 0x9f0, // Size: 1, Flags: Private
HomeRealmTimeOffset = UnitFields.End + 0x9f1, // Size: 1, Flags: Private
ModPetHaste = UnitFields.End + 0x9f2, // Size: 1, Flags: Private
FieldBytes2 = UnitFields.End + 0x9f3, // Size: 1, Flags: Private
FieldBytes3 = UnitFields.End + 0x9f4, // Size: 1, Flags: Private, UrgentSelfOnly
LfgBonusFactionId = UnitFields.End + 0x9f5, // Size: 1, Flags: Private
LootSpecId = UnitFields.End + 0x9f6, // Size: 1, Flags: Private
OverrideZonePvpType = UnitFields.End + 0x9f7, // Size: 1, Flags: Private, UrgentSelfOnly
BagSlotFlags = UnitFields.End + 0x9f8, // Size: 4, Flags: Private
BankBagSlotFlags = UnitFields.End + 0x9fc, // Size: 7, Flags: Private
InsertItemsLeftToRight = UnitFields.End + 0xa03, // Size: 1, Flags: Private
QuestCompleted = UnitFields.End + 0xa04, // Size: 1750, Flags: Private
Honor = UnitFields.End + 0x10DA, // Size: 1, Flags: Private
HonorNextLevel = UnitFields.End + 0x10DB, // Size: 1, Flags: Private
End = UnitFields.End + 0x10DC,
}
public enum PlayerDynamicFields
{
ReserachSite = UnitDynamicFields.End + 0x000, // Flags: Private
ResearchSiteProgress = UnitDynamicFields.End + 0x001, // Flags: Private
DailyQuests = UnitDynamicFields.End + 0x002, // Flags: Private
AvailableQuestLineXQuestId = UnitDynamicFields.End + 0x003, // Flags: Private
Heirlooms = UnitDynamicFields.End + 0x004, // Flags: Private
HeirloomsFlags = UnitDynamicFields.End + 0x005, // Flags: PRIVATE
Toys = UnitDynamicFields.End + 0x006, // Flags: Private
Transmog = UnitDynamicFields.End + 0x007, // Flags: PRIVATE
ConditionalTransmog = UnitDynamicFields.End + 0x008, // Flags: PRIVATE
CharacterRestrictions = UnitDynamicFields.End + 0x009, // Flags: PRIVATE
SpellPctModByLabel = UnitDynamicFields.End + 0x00A, // Flags: PRIVATE
SpellFlatModByLabel = UnitDynamicFields.End + 0x00B, // Flags: PRIVATE
ArenaCooldowns = UnitDynamicFields.End + 0x00C, // Flags: PUBLIC
End = UnitDynamicFields.End + 0x00D,
}
public enum GameObjectFields
{
CreatedBy = ObjectFields.End + 0x000, // Size: 4, Flags: Public
DisplayId = ObjectFields.End + 0x004, // Size: 1, Flags: Dynamic, Urgent
Flags = ObjectFields.End + 0x005, // Size: 1, Flags: Public, Urgent
ParentRotation = ObjectFields.End + 0x006, // Size: 4, Flags: Public
Faction = ObjectFields.End + 0x00a, // Size: 1, Flags: Public
Level = ObjectFields.End + 0x00b, // Size: 1, Flags: Public
Bytes1 = ObjectFields.End + 0x00c, // Size: 1, Flags: Public, Urgent
SpellVisualId = ObjectFields.End + 0x00d, // Size: 1, Flags: Public, Dynamic, Urgent
StateSpellVisualId = ObjectFields.End + 0x00e, // Size: 1, Flags: Dynamic, Urgent
StateAnumId = ObjectFields.End + 0x00f, // Size: 1, Flags: Dynamic, Urgent
StateAnimKitId = ObjectFields.End + 0x010, // Size: 1, Flags: Dynamic, Urgent
StateWorldEffectId = ObjectFields.End + 0x011, // Size: 4, Flags: Dynamic, Urgent
End = ObjectFields.End + 0x015,
}
public enum GameObjectDynamicFields
{
EnableDoodadSets = 0x000, // Flags: PUBLIC
End = 0x001,
}
public enum DynamicObjectFields
{
Caster = ObjectFields.End + 0x000, // Size: 4, Flags: Public
Type = ObjectFields.End + 0x004, // Size: 1, Flags: Public
SpellXSpellVisualId = ObjectFields.End + 0x005, // Size: 1, Flags: Public
SpellId = ObjectFields.End + 0x006, // Size: 1, Flags: Public
Radius = ObjectFields.End + 0x007, // Size: 1, Flags: Public
CastTime = ObjectFields.End + 0x008, // Size: 1, Flags: Public
End = ObjectFields.End + 0x009,
}
public enum CorpseFields
{
Owner = ObjectFields.End + 0x000, // Size: 4, Flags: Public
Party = ObjectFields.End + 0x004, // Size: 4, Flags: Public
DisplayId = ObjectFields.End + 0x008, // Size: 1, Flags: Public
Item = ObjectFields.End + 0x009, // Size: 19, Flags: Public
Bytes1 = ObjectFields.End + 0x01c, // Size: 1, Flags: Public
Bytes2 = ObjectFields.End + 0x01d, // Size: 1, Flags: Public
Flags = ObjectFields.End + 0x01e, // Size: 1, Flags: Public
DynamicFlags = ObjectFields.End + 0x01f, // Size: 1, Flags: Dynamic
FactionTemplate = ObjectFields.End + 0x020, // Size: 1, Flags: Public
CustomDisplayOption = ObjectFields.End + 0x021, // Size: 1, Flags: PUBLIC
End = ObjectFields.End + 0x022,
}
public enum AreaTriggerFields
{
OverrideScaleCurve = ObjectFields.End + 0x000, // Size: 7, Flags: Public, Urgent
ExtraScaleCurve = ObjectFields.End + 0x007, // Size: 7, Flags: Public, Urgent
Caster = ObjectFields.End + 0x00e, // Size: 4, Flags: Public
Duration = ObjectFields.End + 0x012, // Size: 1, Flags: Public
TimeToTarget = ObjectFields.End + 0x013, // Size: 1, Flags: Public, Urgent
TimeToTargetScale = ObjectFields.End + 0x014, // Size: 1, Flags: Public, Urgent
TimeToTargetExtraScale = ObjectFields.End + 0x015, // Size: 1, Flags: Public, Urgent
SpellId = ObjectFields.End + 0x016, // Size: 1, Flags: Public
SpellForVisuals = ObjectFields.End + 0x017, // Size: 1, Flags: PUBLIC
SpellXSpellVisualId = ObjectFields.End + 0x018, // Size: 1, Flags: Dynamic
BoundsRadius2d = ObjectFields.End + 0x019, // Size: 1, Flags: Dynamic, Urgent
DecalPropertiesId = ObjectFields.End + 0x01A, // Size: 1, Flags: Public
CreatingEffectGuid = ObjectFields.End + 0x01B, // Size: 4, Flags: PUBLIC
End = ObjectFields.End + 0x01F,
}
public enum SceneObjectFields
{
ScriptPackageId = ObjectFields.End + 0x000, // Size: 1, Flags: Public
RndSeedVal = ObjectFields.End + 0x001, // Size: 1, Flags: Public
Createdby = ObjectFields.End + 0x002, // Size: 4, Flags: Public
SceneType = ObjectFields.End + 0x006, // Size: 1, Flags: Public
End = ObjectFields.End + 0x007,
}
public enum ConversationFields
{
LastLineEndTime = ObjectFields.End + 0x000, // Size: 1, Flags: DYNAMIC
End = ObjectFields.End + 0x001,
}
public enum ConversationDynamicFields
{
Actors = 0x000, // Flags: Public
Lines = 0x001, // Flags: 0x100
End = 0x002,
}
}
+45
View File
@@ -0,0 +1,45 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using System;
namespace Framework.Constants
{
[Flags]
public enum UpdateFlag
{
None = 0x0,
Self = 0x1,
Transport = 0x2,
HasTarget = 0x4,
Living = 0x8,
StationaryPosition = 0x10,
Vehicle = 0x20,
TransportPosition = 0x40,
Rotation = 0x80,
AnimKits = 0x100,
Areatrigger = 0x0200,
//UPDATEFLAG_GAMEOBJECT = 0x0400,
//UPDATEFLAG_REPLACE_ACTIVE = 0x0800,
//UPDATEFLAG_NO_BIRTH_ANIM = 0x1000,
//UPDATEFLAG_ENABLE_PORTALS = 0x2000,
//UPDATEFLAG_PLAY_HOVER_ANIM = 0x4000,
//UPDATEFLAG_IS_SUPPRESSING_GREETINGS = 0x8000
//UPDATEFLAG_SCENEOBJECT = 0x10000,
//UPDATEFLAG_SCENE_PENDING_INSTANCE = 0x20000
}
}
+27
View File
@@ -0,0 +1,27 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum UpdateType
{
Values = 0,
CreateObject = 1,
CreateObject2 = 2,
OutOfRangeObjects = 3,
}
}
+64
View File
@@ -0,0 +1,64 @@
/*
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Constants
{
public enum VehiclePowerType
{
Steam = 61,
Pyrite = 41,
Heat = 101,
Ooze = 121,
Blood = 141,
Wrath = 142,
ArcaneEnergy = 143,
LifeEnergy = 144,
SunEnergy = 145,
SwingVelocity = 146,
ShadowflameEnergy = 147,
BluePower = 148,
PurplePower = 149,
GreenPower = 150,
OrangePower = 151,
Energy2 = 153,
Arcaneenergy = 161,
Wind1 = 162,
Wind2 = 163,
Wind3 = 164,
Fuel = 165,
SunPower = 166,
TwilightEnergy = 169,
Venom = 174,
Orange2 = 176,
ConsumingFlame = 177,
PyroclasticFrenzy = 178,
Flashfire = 179,
}
public enum VehicleFlags
{
NoStrafe = 0x01, // Sets Moveflag2NoStrafe
NoJumping = 0x02, // Sets Moveflag2NoJumping
Fullspeedturning = 0x04, // Sets Moveflag2Fullspeedturning
AllowPitching = 0x10, // Sets Moveflag2AllowPitching
Fullspeedpitching = 0x20, // Sets Moveflag2Fullspeedpitching
CustomPitch = 0x40, // If Set Use Pitchmin And Pitchmax From Dbc, Otherwise Pitchmin = -Pi/2, Pitchmax = Pi/2
AdjustAimAngle = 0x400, // LuaIsvehicleaimangleadjustable
AdjustAimPower = 0x800, // LuaIsvehicleaimpoweradjustable
FixedPosition = 0x200000 // Used for cannons, when they should be rooted
}
}