rendered paste bodyIndex: src/shared/SystemConfig.h
===================================================================
--- src/shared/SystemConfig.h (revision 0)
+++ src/shared/SystemConfig.h (working copy)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2005,2006 MaNGOS <http://www.mangosproject.org/>
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef MANGOS_SYSTEMCONFIG_H
+#define MANGOS_SYSTEMCONFIG_H
+
+#include "Platform/CompilerDefs.h"
+
+#ifndef _VERSION
+#if PLATFORM == PLATFORM_WIN32
+# define _VERSION "0.7-SVN"
+#else
+# define _VERSION "@VERSION@"
+#endif
+#endif
+
+// Format is YYYYMMDDRR where RR is the change in the conf file
+// for that day.
+#ifndef _MANGOSDCONFVERSION
+# define _MANGOSDCONFVERSION 2006060401
+#endif
+#ifndef _REALMDCONFVERSION
+# define _REALMDCONFVERSION 2006060401
+#endif
+
+#if PLATFORM == PLATFORM_WIN32
+# define _FULLVERSION "/" _VERSION " (Win32)"
+# define _MANGOSD_CONFIG "mangosd.conf"
+# define _REALMD_CONFIG "realmd.conf"
+#else
+# define _FULLVERSION "/" _VERSION " (Unix)"
+# define _MANGOSD_CONFIG "@MANGOSD_CONFIG@"
+# define _REALMD_CONFIG "@REALMD_CONFIG@"
+#endif
+
+#define DEFAULT_PLAYER_LIMIT 100
+#define DEFAULT_WORLDSERVER_PORT 8085 //8129
+#define DEFAULT_REALMSERVER_PORT 3724
+#define DEFAULT_SOCKET_SELECT_TIME 10000
+#endif
Index: src/game/Creature.h
===================================================================
--- src/game/Creature.h (working copy)
+++ src/game/Creature.h (working copy)
@@ -165,7 +165,6 @@
uint32 baseattacktime;
uint32 rangeattacktime;
uint32 Flags;
- uint32 mount;
uint32 dynamicflags;
float size;
uint32 family;
Index: src/game/QuestDef.h
===================================================================
--- src/game/QuestDef.h (working copy)
+++ src/game/QuestDef.h (working copy)
@@ -29,7 +29,7 @@
class ObjectMgr;
// (PLAYER_VISIBLE_ITEM_1_CREATOR - PLAYER_QUEST_LOG_1_1)/3
-#define MAX_QUEST_LOG_SIZE 20
+#define MAX_QUEST_LOG_SIZE 25
#define QUEST_OBJECTIVES_COUNT 4
#define QUEST_SOURCE_ITEM_IDS_COUNT 4
@@ -37,8 +37,9 @@
#define QUEST_REWARDS_COUNT 4
#define QUEST_DEPLINK_COUNT 10
#define QUEST_REPUTATIONS_COUNT 5
+#define QUEST_EMOTE_COUNT 4
-enum
+enum QuestFailedReasons
{
INVALIDREASON_DONT_HAVE_REQ = 0,
INVALIDREASON_DONT_HAVE_REQLEVEL = 1,
@@ -49,7 +50,7 @@
INVALIDREASON_DONT_HAVE_REQ_MONEY = 21+1, //1.12.1
};
-enum
+enum QuestShareMessages
{
QUEST_PARTY_MSG_SHARING_QUEST = 0,
QUEST_PARTY_MSG_CANT_TAKE_QUEST = 1,
Index: src/game/ObjectDefines.h
===================================================================
--- src/game/ObjectDefines.h (working copy)
+++ src/game/ObjectDefines.h (working copy)
@@ -21,13 +21,13 @@
enum HIGHGUID
{
- HIGHGUID_ITEM = 0x40000070,
- HIGHGUID_CONTAINER = 0x40000070,
- HIGHGUID_UNIT = 0xF0001000,
- HIGHGUID_PLAYER = 0x00000000,
- HIGHGUID_GAMEOBJECT = 0xF0004000,
- HIGHGUID_DYNAMICOBJECT = 0xF000A000,
- HIGHGUID_CORPSE = 0xF0007000,
+ HIGHGUID_ITEM = 0x40000070, // blizz 40000000
+ HIGHGUID_CONTAINER = 0x40000070, // blizz 40000000
+ HIGHGUID_UNIT = 0xF0001000, // blizz F009???? (random), ???? is unit entry
+ HIGHGUID_PLAYER = 0x00000000, // blizz 0
+ HIGHGUID_GAMEOBJECT = 0xF0004000, // blizz F0090000
+ HIGHGUID_DYNAMICOBJECT = 0xF000A000, // blizz F0090000, F0320000
+ HIGHGUID_CORPSE = 0xF0090000, // blizz F0090000, F0320000
HIGHGUID_PLAYER_CORPSE = 0x80000001, // ??
HIGHGUID_TRANSPORT = 0x80000000
};
Index: src/game/Player.h
===================================================================
--- src/game/Player.h (working copy)
+++ src/game/Player.h (working copy)
@@ -264,14 +264,6 @@
PLAYER_STATE_FLAG_ALL = 0xFF000000,
};
-enum TYPE_OF_KILL
-{
- HONORABLE_KILL = 1,
- DISHONORABLE_KILL = 2,
-};
-
-#define HONOR_RANK_COUNT 16
-
enum PlayerFlags
{
PLAYER_FLAGS_GROUP_LEADER = 0x00000001,
@@ -280,13 +272,60 @@
PLAYER_FLAGS_GM = 0x00000008,
PLAYER_FLAGS_GHOST = 0x00000010,
PLAYER_FLAGS_RESTING = 0x00000020,
+ PLAYER_FLAGS_FFA_PVP = 0x00000080,
+ PLAYER_FLAGS_UNK = 0x00000100, // 2.0.8, bg related?
PLAYER_FLAGS_IN_PVP = 0x00000200,
PLAYER_FLAGS_HIDE_HELM = 0x00000400,
PLAYER_FLAGS_HIDE_CLOAK = 0x00000800,
- PLAYER_FLAGS_UNK = 0x00001000, //played long time
- PLAYER_FLAGS_UNK2 = 0x00002000, //played too long time
+ PLAYER_FLAGS_UNK1 = 0x00001000, //played long time
+ PLAYER_FLAGS_UNK2 = 0x00002000, //played too long time
+ PLAYER_FLAGS_UNK3 = 0x00008000, //strange visual effect (2.0.1)
+ PLAYER_FLAGS_UNK4 = 0x00020000, //taxi benchmark mode (on/off) (2.0.1)
+ PLAYER_UNK = 0x00040000, //2.0.8...
};
+enum PlayerKnownTitles
+{
+ PLAYER_TITLE_DISABLED = 0x00000000,
+ PLAYER_TITLE_NONE = 0x00000001,
+ PLAYER_TITLE_PRIVATE = 0x00000002,
+ PLAYER_TITLE_CORPORAL = 0x00000004,
+ PLAYER_TITLE_SERGEANT_A = 0x00000008,
+ PLAYER_TITLE_MASTER_SERGEANT = 0x00000010,
+ PLAYER_TITLE_SERGEANT_MAJOR = 0x00000020,
+ PLAYER_TITLE_KNIGHT = 0x00000040,
+ PLAYER_TITLE_KNIGHT_LIEUTENANT = 0x00000080,
+ PLAYER_TITLE_KNIGHT_CAPTAIN = 0x00000100,
+ PLAYER_TITLE_KNIGHT_CHAMPION = 0x00000200,
+ PLAYER_TITLE_LIEUTENANT_COMMANDER = 0x00000400,
+ PLAYER_TITLE_COMMANDER = 0x00000800,
+ PLAYER_TITLE_MARSHAL = 0x00001000,
+ PLAYER_TITLE_FIELD_MARSHAL = 0x00002000,
+ PLAYER_TITLE_GRAND_MARSHAL = 0x00004000,
+ PLAYER_TITLE_SCOUT = 0x00008000,
+ PLAYER_TITLE_GRUNT = 0x00010000,
+ PLAYER_TITLE_SERGEANT_H = 0x00020000,
+ PLAYER_TITLE_SENIOR_SERGEANT = 0x00040000,
+ PLAYER_TITLE_FIRST_SERGEANT = 0x00080000,
+ PLAYER_TITLE_STONE_GUARD = 0x00100000,
+ PLAYER_TITLE_BLOOD_GUARD = 0x00200000,
+ PLAYER_TITLE_LEGIONNAIRE = 0x00400000,
+ PLAYER_TITLE_CENTURION = 0x00800000,
+ PLAYER_TITLE_CHAMPION = 0x01000000,
+ PLAYER_TITLE_LIEUTENANT_GENERAL = 0x02000000,
+ PLAYER_TITLE_GENERAL = 0x04000000,
+ PLAYER_TITLE_WARLORD = 0x08000000,
+ PLAYER_TITLE_HIGH_WARLORD = 0x10000000,
+ PLAYER_TITLE_UNUSED1 = 0x20000000,
+ PLAYER_TITLE_UNUSED2 = 0x40000000
+};
+
+enum DungeonDifficulties
+{
+ DUNGEONDIFFICULTY_NORMAL = 0,
+ DUNGEONDIFFICULTY_HEROIC = 1
+};
+
enum LootType
{
LOOT_CORPSE = 1,
@@ -329,7 +368,7 @@
// first slot for item stored (in any way in player m_items data)
PLAYER_SLOT_START = 0,
// last+1 slot for item stored (in any way in player m_items data)
- PLAYER_SLOT_END = 97,
+ PLAYER_SLOT_END = 118,
PLAYER_SLOTS_COUNT = (PLAYER_SLOT_END - PLAYER_SLOT_START)
};
@@ -415,41 +454,45 @@
BANK_SLOT_ITEM_22 = 60,
BANK_SLOT_ITEM_23 = 61,
BANK_SLOT_ITEM_24 = 62,
- BANK_SLOT_ITEM_END = 63,
+ BANK_SLOT_ITEM_25 = 63,
+ BANK_SLOT_ITEM_26 = 64,
+ BANK_SLOT_ITEM_27 = 65,
+ BANK_SLOT_ITEM_28 = 66,
+ BANK_SLOT_ITEM_END = 67,
- BANK_SLOT_BAG_START = 63,
- BANK_SLOT_BAG_1 = 63,
- BANK_SLOT_BAG_2 = 64,
- BANK_SLOT_BAG_3 = 65,
- BANK_SLOT_BAG_4 = 66,
- BANK_SLOT_BAG_5 = 67,
- BANK_SLOT_BAG_6 = 68,
- BANK_SLOT_BAG_END = 69
+ BANK_SLOT_BAG_START = 67,
+ BANK_SLOT_BAG_1 = 67,
+ BANK_SLOT_BAG_2 = 68,
+ BANK_SLOT_BAG_3 = 69,
+ BANK_SLOT_BAG_4 = 70,
+ BANK_SLOT_BAG_5 = 71,
+ BANK_SLOT_BAG_6 = 72,
+ BANK_SLOT_BAG_7 = 73,
+ BANK_SLOT_BAG_END = 74
};
enum BuyBackSlots
{
// strored in m_buybackitems
- BUYBACK_SLOT_START = 69,
- BUYBACK_SLOT_1 = 69,
- BUYBACK_SLOT_2 = 70,
- BUYBACK_SLOT_3 = 71,
- BUYBACK_SLOT_4 = 72,
- BUYBACK_SLOT_5 = 73,
- BUYBACK_SLOT_6 = 74,
- BUYBACK_SLOT_7 = 75,
- BUYBACK_SLOT_8 = 76,
- BUYBACK_SLOT_9 = 77,
- BUYBACK_SLOT_10 = 78,
- BUYBACK_SLOT_11 = 79,
- BUYBACK_SLOT_12 = 80,
- BUYBACK_SLOT_END = 81
+ BUYBACK_SLOT_START = 74,
+ BUYBACK_SLOT_1 = 74,
+ BUYBACK_SLOT_2 = 75,
+ BUYBACK_SLOT_3 = 76,
+ BUYBACK_SLOT_4 = 77,
+ BUYBACK_SLOT_5 = 78,
+ BUYBACK_SLOT_6 = 79,
+ BUYBACK_SLOT_7 = 80,
+ BUYBACK_SLOT_8 = 81,
+ BUYBACK_SLOT_9 = 82,
+ BUYBACK_SLOT_10 = 83,
+ BUYBACK_SLOT_11 = 84,
+ BUYBACK_SLOT_12 = 85,
+ BUYBACK_SLOT_END = 86
};
-
enum KeyRingSLots
{
- KEYRING_SLOT_START = 81,
- KEYRING_SLOT_END = 97
+ KEYRING_SLOT_START = 86,
+ KEYRING_SLOT_END = 118
};
enum SwitchWeapon
@@ -475,13 +518,24 @@
MOVEMENTFLAG_RIGHT = 0x20,
MOVEMENTFLAG_PITCH_UP = 0x40,
MOVEMENTFLAG_PITCH_DOWN = 0x80,
-
MOVEMENTFLAG_WALK = 0x100,
+ MOVEMENTFLAG_ONTRANSPORT = 0x200,
+ // 0x400
+ MOVEMENTFLAG_FLY_UNK1 = 0x800,
+ MOVEMENTFLAG_UNK4 = 0x1000,
MOVEMENTFLAG_JUMPING = 0x2000,
MOVEMENTFLAG_FALLING = 0x4000,
- MOVEMENTFLAG_SWIMMING = 0x200000,
- MOVEMENTFLAG_ONTRANSPORT = 0x2000000,
- MOVEMENTFLAG_SPLINE = 0x4000000
+ // 0x8000, 0x10000, 0x20000, 0x40000, 0x80000, 0x100000
+ MOVEMENTFLAG_SWIMMING = 0x200000, // appears with fly also, swim in air LOL
+ MOVEMENTFLAG_FLY_UP = 0x400000,
+ MOVEMENTFLAG_CAN_FLY = 0x800000,
+ MOVEMENTFLAG_FLYING = 0x1000000,
+ // 0x2000000
+ MOVEMENTFLAG_SPLINE = 0x4000000,
+ // 0x8000000
+ MOVEMENTFLAG_WATERWALKING = 0x10000000,
+ MOVEMENTFLAG_UNK2 = 0x20000000,
+ MOVEMENTFLAG_UNK3 = 0x40000000
};
typedef HM_NAMESPACE::hash_map< uint32, std::pair < uint32, uint32 > > BoundInstancesMap;
Index: src/game/Opcodes.h
===================================================================
--- src/game/Opcodes.h (working copy)
+++ src/game/Opcodes.h (working copy)
@@ -93,7 +93,7 @@
SMSG_NEW_WORLD = 62,
SMSG_TRANSFER_PENDING = 63,
SMSG_TRANSFER_ABORTED = 64,
- SMSG_CHARACTER_LOGIN_FAILED = 65,
+ SMSG_CHARACTER_LOGIN_FAILED = 65, // kick client to character select screen and show "World server is down".
SMSG_LOGIN_SETTIMESPEED = 66,
SMSG_GAMETIME_UPDATE = 67,
CMSG_GAMETIME_SET = 68,
@@ -401,16 +401,16 @@
SMSG_PUREMOUNT_CANCELLED_OBSOLETE = 368,
CMSG_MOUNTSPECIAL_ANIM = 369,
SMSG_MOUNTSPECIAL_ANIM = 370,
- SMSG_PET_TAME_FAILURE = 371,
+ SMSG_PET_TAME_FAILURE = 371, // Creature not found.
CMSG_PET_SET_ACTION = 372,
CMSG_PET_ACTION = 373,
CMSG_PET_ABANDON = 374,
CMSG_PET_RENAME = 375,
- SMSG_PET_NAME_INVALID = 376,
+ SMSG_PET_NAME_INVALID = 376, // Error, invalid name entered.
SMSG_PET_SPELLS = 377,
//CMSG_PET_CAST_SPELL_OBSOLETE = 378, //OBSOLETE
- SMSG_PET_MODE = 378,
+ SMSG_PET_MODE = 378, // uint64 pet_guid + uint32 flags?
CMSG_GOSSIP_HELLO = 379,
CMSG_GOSSIP_SELECT_OPTION = 380,
SMSG_GOSSIP_MESSAGE = 381,
@@ -470,7 +470,7 @@
SMSG_TRAINER_BUY_SUCCEEDED = 435,
SMSG_TRAINER_BUY_FAILED = 436,
CMSG_BINDER_ACTIVATE = 437,
- SMSG_PLAYERBINDERROR = 438,
+ SMSG_PLAYERBINDERROR = 438, // You already bound there.
CMSG_BANKER_ACTIVATE = 439,
SMSG_SHOW_BANK = 440,
CMSG_BUY_BANK_SLOT = 441,
@@ -511,7 +511,7 @@
CMSG_PING = 476,
SMSG_PONG = 477,
SMSG_CLEAR_COOLDOWN = 478,
- SMSG_GAMEOBJECT_PAGETEXT = 479,
+ SMSG_GAMEOBJECT_PAGETEXT = 479, // uint64 guid
CMSG_SETSHEATHED = 480,
SMSG_COOLDOWN_CHEAT = 481,
SMSG_SPELL_DELAYED = 482,
@@ -521,10 +521,10 @@
CMSG_GM_INVIS = 486,
//CMSG_SCREENSHOT = 487, //OBSOLETE
- SMSG_INVALID_PROMOTION_CODE = 487,
+ SMSG_INVALID_PROMOTION_CODE = 487, // Couldn't validate code, please try again.
MSG_GM_BIND_OTHER = 488,
MSG_GM_SUMMON = 489,
- SMSG_ITEM_TIME_UPDATE = 490,
+ SMSG_ITEM_TIME_UPDATE = 490, // uint64 guid + uint32 time
SMSG_ITEM_ENCHANT_TIME_UPDATE = 491,
SMSG_AUTH_CHALLENGE = 492,
CMSG_AUTH_SESSION = 493,
@@ -686,7 +686,7 @@
CMSG_AUTOBANK_ITEM = 643,
MSG_QUERY_NEXT_MAIL_TIME = 644,
SMSG_RECEIVED_MAIL = 645,
- SMSG_RAID_GROUP_ONLY = 646,
+ SMSG_RAID_GROUP_ONLY = 646, // You are not in this instance group. You will be teleported to %s in %u Minites. uint32 time(milliseconds)+uint32 unk
CMSG_SET_DURABILITY_CHEAT = 647,
CMSG_SET_PVP_RANK_CHEAT = 648,
CMSG_ADD_PVP_MEDAL_CHEAT = 649,
@@ -703,9 +703,9 @@
CMSG_MEETINGSTONE_CHEAT = 660,
SMSG_MEETINGSTONE_SETQUEUE = 661,
CMSG_MEETINGSTONE_INFO = 662,
- SMSG_MEETINGSTONE_COMPLETE = 663,
- SMSG_MEETINGSTONE_IN_PROGRESS = 664,
- SMSG_MEETINGSTONE_MEMBER_ADDED = 665,
+ SMSG_MEETINGSTONE_COMPLETE = 663, // Your group is complete, you have left the LFG matchmaking system.
+ SMSG_MEETINGSTONE_IN_PROGRESS = 664, // You still seeking more members through LFG matchmaking system., empty?
+ SMSG_MEETINGSTONE_MEMBER_ADDED = 665, // %s has been added to the group by the LFG matchmaking system.
CMSG_GMTICKETSYSTEM_TOGGLE = 666,
CMSG_CANCEL_GROWTH_AURA = 667,
SMSG_CANCEL_AUTO_REPEAT = 668,
@@ -719,11 +719,11 @@
SMSG_LOOT_MASTER_LIST = 676,
SMSG_SET_FORCED_REACTIONS = 677,
SMSG_SPELL_FAILED_OTHER = 678,
- SMSG_GAMEOBJECT_RESET_STATE = 679,
+ SMSG_GAMEOBJECT_RESET_STATE = 679, // uint64 guid
CMSG_REPAIR_ITEM = 680,
SMSG_CHAT_PLAYER_NOT_FOUND = 681,
MSG_TALENT_WIPE_CONFIRM = 682,
- SMSG_SUMMON_REQUEST = 683,
+ SMSG_SUMMON_REQUEST = 683, // uint64 guid + uint32 area/zoneid + uint32 time(milliseconds?)
CMSG_SUMMON_RESPONSE = 684,
MSG_MOVE_TOGGLE_GRAVITY_CHEAT = 685,
SMSG_MONSTER_MOVE_TRANSPORT = 686,
@@ -742,7 +742,7 @@
//SMSG_SPELL_REFLECTED = 699, //OBSOLETE
SMSG_MEETINGSTONE_JOINFAILED = 699,
- SMSG_PLAYER_SKINNED = 700,
+ SMSG_PLAYER_SKINNED = 700, // uint8 0x00
SMSG_DURABILITY_DAMAGE_DEATH = 701,
CMSG_SET_EXPLORATION = 702,
CMSG_SET_ACTIONBAR_TOGGLES = 703,
@@ -752,7 +752,7 @@
SMSG_UPDATE_WORLD_STATE = 707,
CMSG_ITEM_NAME_QUERY = 708,
SMSG_ITEM_NAME_QUERY_RESPONSE = 709,
- SMSG_PET_ACTION_FEEDBACK = 710,
+ SMSG_PET_ACTION_FEEDBACK = 710, // uint8 0x04, 0x01
CMSG_CHAR_RENAME = 711,
SMSG_CHAR_RENAME = 712,
CMSG_MOVE_SPLINE_DONE = 713,
@@ -781,52 +781,190 @@
MSG_PVP_LOG_DATA = 736,
CMSG_LEAVE_BATTLEFIELD = 737,
CMSG_AREA_SPIRIT_HEALER_QUERY = 738,
- CMSG_AREA_SPIRIT_HEALER_QUEUE = 739,
- SMSG_AREA_SPIRIT_HEALER_TIME = 740,
- CMSG_GM_UNTEACH = 739,
- SMSG_HARDWARE_SURVEY_REQUEST = 740,
+ CMSG_AREA_SPIRIT_HEALER_QUEUE = 739, // WTF?
+ SMSG_AREA_SPIRIT_HEALER_TIME = 740, // WTF?, uint64 guid+uint32 time?
+ //CMSG_GM_UNTEACH = 739, // WTF?
+ //SMSG_HARDWARE_SURVEY_REQUEST = 740, // WTF?
CMSG_HARDWARE_SURVEY_RESULTS = 741,
SMSG_WARDEN_DATA = 742,
CMSG_WARDEN_DATA = 743,
- SMSG_GROUP_JOINED_BATTLEGROUND = 744,
+ SMSG_GROUP_JOINED_BATTLEGROUND = 744, // uint32 0xfffffffc, probably different error messages...
MSG_BATTLEGROUND_PLAYER_POSITIONS = 745,
-
- //strange!!
- //MSG_BINDPOINT_CONFIRM = SMSG_BINDER_CONFIRM,
-
- //TODO Check double check if the -2 is correct
CMSG_PET_STOP_ATTACK = 746,
SMSG_BINDER_CONFIRM = 747,
SMSG_BATTLEGROUND_PLAYER_JOINED = 748,
SMSG_BATTLEGROUND_PLAYER_LEFT = 749,
CMSG_BATTLEMASTER_JOIN = 750,
-
- SMSG_ADDON_INFO = 753-2,
- CMSG_PET_UNLEARN = 754-2,
- SMSG_PET_UNLEARN_CONFIRM = 755-2,
- SMSG_PARTY_MEMBER_STATS_FULL = 756-2,
- CMSG_PET_SPELL_AUTOCAST = 757-2,
- SMSG_WEATHER = 758-2,
- SMSG_PLAY_TIME_WARNING = 759-2,
- SMSG_MINIGAME_SETUP = 760-2,
- SMSG_MINIGAME_STATE = 761-2,
- CMSG_MINIGAME_MOVE = 762-2,
- SMSG_MINIGAME_MOVE_FAILED = 763-2,
+ SMSG_ADDON_INFO = 751,
+ CMSG_PET_UNLEARN = 752,
+ SMSG_PET_UNLEARN_CONFIRM = 753,
+ SMSG_PARTY_MEMBER_STATS_FULL = 754,
+ CMSG_PET_SPELL_AUTOCAST = 755,
+ SMSG_WEATHER = 756,
+ SMSG_PLAY_TIME_WARNING = 757,
+ SMSG_MINIGAME_SETUP = 758,
+ SMSG_MINIGAME_STATE = 759,
+ CMSG_MINIGAME_MOVE = 760,
+ SMSG_MINIGAME_MOVE_FAILED = 761,
+ // 762
+ SMSG_COMPRESSED_MOVE = 763,
CMSG_GUILD_CHANGEINFO = 764,
- SMSG_UNKNOWN_INFO = 766,
-
+ SMSG_UNKNOWN_765 = 765, // Trial accounts can not send unlimited tells, you must wait before you can send tells to more players.
+ SMSG_SET_MOVE_SPEED = 766, // GUID + float speed, move speed, except swim/turn/fly
+ SMSG_SET_RUN_BACK_SPEED = 767, // GUID + float speed, run back speed
+ SMSG_SET_SWIM_SPEED = 768, // GUID + float speed, swim and swim back speed
+ // 769
+ SMSG_SET_SWIM_BACK_SPEED = 770, // swim back speed
+ SMSG_SET_TURN_RATE = 771, // turn rate (note: client crashes if fly mode enabled, and turn rate = 0)
+ SMSG_UNKNOWN_772 = 772, // packed GUID
+ SMSG_UNKNOWN_773 = 773, // set movement flag 0x20000000
+ SMSG_UNKNOWN_774 = 774, // stop effect of 773 opcode
+ SMSG_UNKNOWN_775 = 775, // movement related, looks like hover, movement flag 0x40000000, we can't jump if we are lands
+ SMSG_UNKNOWN_776 = 776, // stop effect of 775 opcode
+ SMSG_MOVE_SET_WATERWALK = 777, // packed GUID, set movement flag 0x10000000, waterwalking...
+ SMSG_MOVE_STOP_WATERWALK = 778, // packed GUID, stop effect of 777 opcode
+ SMSG_UNKNOWN_779 = 779, // packed guid, change animation to swim/fly like
+ SMSG_UNKNOWN_780 = 780, // packed guid
+ SMSG_MOVE_STOP_WALK = 781, // packed guid, remove 0x100 movement flag (walk)
+ SMSG_MOVE_START_WALK = 782, // set 0x100 movement flag (walk)
+ // 783
+ // 784
+ // 785
CMSG_ACTIVATETAXI_FAR = 786,
- //griphon related = 786
-
+ // 787 causes client crash
+ // 788
+ // 789
+ // 790
CMSG_FIELD_WATCHED_FACTION_INACTIVE = 791,
CMSG_FIELD_WATCHED_FACTION_SHOW_BAR = 792,
-
- MSG_RAID_ICON_TARGET = 801,
- MSG_RAID_READY_CHECK = 802,
-
- // unofficial opcodes:
- SMSG_COMPRESSED_MOVE = 0x2FB,// 763
- SMSG_OUTDOORPVP_NOTIFY = 0x33B,// 827
+ SMSG_UNKNOWN_793 = 793, // packed guid + uint32
+ SMSG_UNKNOWN_794 = 794, // packed guid, movement related, set 0x1000 movement flag, all speed to 0, except turn rate
+ // 795
+ SMSG_UNKNOWN_796 = 796, // uint64, guid?
+ CMSG_RESET_INSTANCES = 797, // reset instances, empty
+ SMSG_RESET_INSTANCES_RESULT = 798, // chat message: %u (number) has been reset.
+ // 799
+ SMSG_UNKNOWN_800 = 800, // uint32 mapid, instance related
+ MSG_RAID_ICON_TARGET = 801, // uint8+uint8+uint64 guid
+ MSG_RAID_READY_CHECK = 802, // uint64+uint8
+ // 803
+ SMSG_AI_UNKNOWN = 804, // GUID + uint32, looks like SMSG_AI_REACTION
+ SMSG_UNKNOWN_805 = 805, // uint32 unk + x, y, z
+ // 806
+ // 807
+ SMSG_UNKNOWN_808 = 808, // uint32, probably gm ticket related
+ MSG_SET_DUNGEON_DIFFICULTY = 809, // uint32+uint32+uint32
+ // 810
+ SMSG_UNKNOWN_811 = 811, // uint32, 0x0
+ // 812
+ // 813
+ // 814
+ SMSG_UNKNOWN_815 = 815, // spell related, uint64 guid + spellid
+ SMSG_UNKNOWN_816 = 816, // spell related, uint64 guid + spellid + uint32 unk + uint64 guid (target?)
+ // 817
+ SMSG_UNKNOWN_818 = 818, // 2.0.8, received before server MOTD, strange regexp sequence, looks like anti spam for chat messages...
+ // 819
+ // 820
+ // 821
+ // 822
+ // 823
+ // 824
+ // 825
+ SMSG_OUTDOORPVP_NOTIFY = 826, // looks like chat packets
+ SMSG_OUTDOORPVP_NOTIFY2 = 827, // may be it's changed to 826?
+ // 828
+ SMSG_MOTD = 829, // server MOTD message, uint32 + message
+ // 830
+ // 831
+ // 832
+ SMSG_UNKNOWN_833 = 833, // teleport
+ SMSG_UNKNOWN_834 = 834, // teleport
+ SMSG_FLY_MODE_START = 835, // packed guid + uint32, start fly
+ SMSG_FLY_MODE_STOP = 836, // packed guid + uint32, stop fly
+ CMSG_MOVE_FLY_MODE_CHANGE_ACK = 837, // movement related, fly on/off ack
+ CMSG_MOVE_FLY_STATE_CHANGE = 838, // movement related, fly start/stop(land) ack, may be MSG
+ CMSG_SOCKET_ITEM = 839, // click on "Socket Gems" button in Jewelcrafting UI, contains uint64 item guid + 3 x uint64 gems guid's
+ // 840
+ SMSG_ARENA_TEAM_COMMAND_RESULT = 841, // uint32(5)+uint16(0)+uint32(9) You not in arena team that size
+ // 842
+ CMSG_ARENA_TEAM_QUERY = 843,
+ SMSG_ARENA_TEAM_QUERY_RESPONSE = 844,
+ CMSG_ARENA_TEAM_ROSTER = 845,
+ SMSG_ARENA_TEAM_ROSTER = 846,
+ CMSG_ARENA_TEAM_ADD_MEMBER = 847,
+ SMSG_ARENA_TEAM_INVITE = 848,
+ CMSG_ARENA_TEAM_INVITE_ACCEPT = 849,
+ CMSG_ARENA_TEAM_INVITE_DECLINE = 850,
+ CMSG_ARENA_TEAM_LEAVE = 851,
+ CMSG_ARENA_TEAM_REMOVE_FROM_TEAM = 852,
+ CMSG_ARENA_TEAM_DISBAND = 853,
+ CMSG_ARENA_TEAM_PROMOTE_TO_CAPTAIN = 854, // also must be demote opcode...
+ SMSG_UNKNOWN_855 = 855, // guild related...
+ // 856
+ MSG_MOVE_START_FLY_UP = 857, // movement related, fly up, possible MSG
+ MSG_MOVE_STOP_FLY_UP = 858, // movement related, stop fly up, possible MSG
+ SMSG_ARENA_TEAM_STATS = 859,
+ CMSG_LFG_SET_AUTOJOIN = 860,
+ CMSG_LFG_UNSET_AUTOJOIN = 861,
+ CMSG_LFM_SET_AUTOADD = 862,
+ CMSG_LFM_UNSET_AUTOADD = 863,
+ CMSG_LFG_INVITE_ACCEPT = 864,
+ CMSG_LFG_INVITE_CANCEL = 865,
+ // 866
+ CMSG_LOOKING_FOR_GROUP_CLEAR = 867,
+ CMSG_SET_LOOKING_FOR_NONE = 868,
+ CMSG_SET_LOOKING_FOR_MORE = 869,
+ CMSG_SET_COMMENTARY = 870,
+ SMSG_LFG_871 = 871, // Matchmaking timed out.
+ SMSG_LFG_872 = 872, // Matchmaking timed out waiting for other player.
+ SMSG_LFG_873 = 873, // Group no longer available.
+ SMSG_LFG_874 = 974, // Matched Player(s) have gone offline.
+ // 875
+ SMSG_LFG_876 = 876, // LFM eye, in progress, uint16+uint32+uint8?, 3 x uint8(0x0)
+ SMSG_LFG_877 = 877, // cause client send CMSG_SET_LOOKING_FOR_GROUP, uint32+uint8?
+ SMSG_LFG_878 = 878, // cause client send CMSG_SET_LOOKING_FOR_GROUP
+ SMSG_LFG_879 = 879, // LFG eye, cause client send CMSG_SET_LOOKING_FOR_GROUP
+ SMSG_LFG_INVITE = 880, // show invite dialog: The LFG system has matched you to a group for %s.
+ SMSG_LFG_881 = 881, // The LFG system is waiting to complete match for %s.
+ // 882
+ // 883
+ CMSG_CHOOSE_TITLE = 884,
+ CMSG_DISMOUNT = 885, // /dismount command
+ // 886
+ MSG_INSPECT_ARENA_STATS = 887,
+ SMSG_SH_POSITION = 888, // spirit healer position, map/x/y/z, at player death...
+ CMSG_CANCEL_ITEM_TEMP_ENCHANTMENT = 889, // cancel special item enchantment
+ // 890
+ // 891
+ // 892
+ // 893
+ SMSG_MOVE_SET_FLY_SPEED = 894, // all fly speed, packed guid, uint32 movement_flags, time, x,y,z,o,unk,speed...
+ // 895
+ SMSG_MOVE_SET_FLY_BACK_SPEED = 896,
+ SMSG_FORCE_FLY_SPEED_CHANGE = 897, // packed guid, uint32, speed
+ CMSG_FORCE_FLY_SPEED_CHANGE_ACK = 898,
+ SMSG_FORCE_FLY_BACK_SPEED_CHANGE = 899,
+ CMSG_FORCE_FLY_BACK_SPEED_CHANGE_ACK = 900,
+ SMSG_MOVE_SET_FLY_SPEED2 = 901, // same as 894, strange, packed guid+speed
+ SMSG_MOVE_SET_FLY_BACK_SPEED2 = 902, // same as 896, strange,
+ // 903
+ // 904
+ // 905
+ // 906
+ SMSG_REALM_STATE_RESPONSE = 907, // responce to 908 opcode, 4 x uint32 + uint8
+ CMSG_REALM_STATE_REQUEST = 908, // realm related, uint32+uint32+3*(uint16+uint8), appears at select character screen, uint32 0xFFFFFFFF
+ CMSG_MOVE_SHIP_909 = 909, // movement related, transport related(ships)
+ CMSG_GROUP_PROMOTE = 910, // make main-tank / main-assistant
+ // 911
+ SMSG_ALLOW_MOVE = 912, // uint32, allow player movement, value increments every time and reset to 0 after far teleport, used for client-server synchronization
+ CMSG_ALLOW_MOVE_ACK = 913, // client responce to SMSG_ALLOW_MOVE
+ // 914
+ // 915
+ // 916
+ // 917
+ SMSG_UNKNOWN_918 = 918, // chat message: The party leader has attempted to reset the instance you are in. Please zone out to allow the instance to reset.
+ SMSG_UNKNOWN_919 = 919, // uint8(0)+uint32(0/1)+uint64(unk/guid)
+ SMSG_UNKNOWN_920 = 920, // notify message: This system is currently disabled.
};
/// Results of friend related commands
@@ -861,10 +999,10 @@
UNIT_NPC_FLAG_TAXIVENDOR = 8,
UNIT_NPC_FLAG_TRAINER = 16,
UNIT_NPC_FLAG_SPIRITHEALER = 32,
- UNIT_NPC_FLAG_GUARD = 64, //UQ1: ??? We can use as guard flag?
+ UNIT_NPC_FLAG_GUARD = 64, //UQ1: ??? We can use as guard flag?, used by blizz for BattleGround spirit guides... (entry 13116 and 13117)
UNIT_NPC_FLAG_INNKEEPER = 128,
UNIT_NPC_FLAG_BANKER = 256,
- UNIT_NPC_FLAG_PETITIONER = 512,
+ UNIT_NPC_FLAG_PETITIONER = 512, // 1024+512 = guild petitions, 512 = arena team petitions
UNIT_NPC_FLAG_TABARDVENDOR = 1024,
UNIT_NPC_FLAG_BATTLEFIELDPERSON = 2048,
UNIT_NPC_FLAG_AUCTIONEER = 4096,
Index: src/game/Unit.h
===================================================================
--- src/game/Unit.h (working copy)
+++ src/game/Unit.h (working copy)
@@ -53,22 +53,25 @@
enum ShapeshiftForm
{
- FORM_CAT = 1,
- FORM_TREE = 2,
- FORM_TRAVEL = 3,
- FORM_AQUA = 4,
- FORM_BEAR = 5,
- FORM_AMBIENT = 6,
- FORM_GHOUL = 7,
- FORM_DIREBEAR = 8,
- FORM_CREATUREBEAR = 14,
- FORM_GHOSTWOLF = 16,
- FORM_BATTLESTANCE = 17,
- FORM_DEFENSIVESTANCE = 18,
- FORM_BERSERKERSTANCE = 19,
- FORM_SHADOW = 28,
- FORM_STEALTH = 30,
- FORM_MOONKIN = 31
+ FORM_CAT = 1,
+ FORM_TREE = 2,
+ FORM_TRAVEL = 3,
+ FORM_AQUA = 4,
+ FORM_BEAR = 5,
+ FORM_AMBIENT = 6,
+ FORM_GHOUL = 7,
+ FORM_DIREBEAR = 8,
+ FORM_CREATUREBEAR = 14,
+ FORM_CREATURECAT = 15,
+ FORM_GHOSTWOLF = 16,
+ FORM_BATTLESTANCE = 17,
+ FORM_DEFENSIVESTANCE = 18,
+ FORM_BERSERKERSTANCE = 19,
+ FORM_SHADOW = 28,
+ FORM_FLIGHT = 29,
+ FORM_STEALTH = 30,
+ FORM_MOONKIN = 31,
+ FORM_SPIRITOFREDEMPTION = 32
};
#define CREATURE_MAX_SPELLS 4
@@ -178,7 +181,7 @@
UNIT_STAT_SEARCHING = 64,
UNIT_STAT_FLEEING = 128,
UNIT_STAT_MOVING = (UNIT_STAT_ROAMING | UNIT_STAT_CHASE | UNIT_STAT_SEARCHING | UNIT_STAT_FLEEING),
- UNIT_STAT_IN_FLIGHT = 256, // player is i n flight mode
+ UNIT_STAT_IN_FLIGHT = 256, // player is in flight mode
UNIT_STAT_FOLLOW = 512,
UNIT_STAT_ROOT = 1024,
UNIT_STAT_CONFUSED = 2048,
@@ -192,10 +195,12 @@
MOVE_WALKBACK = 2,
MOVE_SWIM = 3,
MOVE_SWIMBACK = 4,
- MOVE_TURN = 5
+ MOVE_TURN = 5,
+ MOVE_FLY = 6,
+ MOVE_FLYBACK = 7
};
-#define MAX_MOVE_TYPE 6
+#define MAX_MOVE_TYPE 8
extern float baseMoveSpeed[MAX_MOVE_TYPE];
@@ -237,13 +242,23 @@
UNIT_FLAG_NONE = 0x00000000,
UNIT_FLAG_DISABLE_MOVE = 0x00000004,
UNIT_FLAG_UNKNOWN1 = 0x00000008, // essential for all units..
- UNIT_FLAG_RENAME = 0x00000010, // rename creature
+ UNIT_FLAG_RENAME = 0x00000010, // rename creature, not working in 2.0.8
UNIT_FLAG_RESTING = 0x00000020,
+ UNIT_FLAG_UNKNOWN2 = 0x00000100, // 2.0.8
+ UNIT_FLAG_UNKNOWN3 = 0x00000800, // in combat ?2.0.8
UNIT_FLAG_PVP = 0x00001000,
UNIT_FLAG_MOUNT = 0x00002000,
- UNIT_FLAG_DISABLE_ROTATE = 0x00040000,
+ UNIT_FLAG_UNKNOWN4 = 0x00004000, // 2.0.8
+ UNIT_FLAG_PACIFIED = 0x00020000,
+ UNIT_FLAG_DISABLE_ROTATE = 0x00040000, // may be it's stunned flag?
UNIT_FLAG_IN_COMBAT = 0x00080000,
+ UNIT_FLAG_DISARMED = 0x00200000, // disable melee spells casting..., "Required melee weapon" added to melee spells tooltip.
+ UNIT_FLAG_CONFUSED = 0x00400000,
+ UNIT_FLAG_FLEEING = 0x00800000,
+ UNIT_FLAG_UNKNOWN5 = 0x01000000, // used in spell Eyes of the Beast for pet...
+ UNIT_FLAG_NOT_SELECTABLE = 0x02000000,
UNIT_FLAG_SKINNABLE = 0x04000000,
+ UNIT_FLAG_UNKNOWN6 = 0x20000000, // used in Feing Death spell
UNIT_FLAG_SHEATHE = 0x40000000
};
Index: src/game/Unit.cpp
===================================================================
--- src/game/Unit.cpp (working copy)
+++ src/game/Unit.cpp (working copy)
@@ -48,7 +48,9 @@
1.25f, // MOVE_WALKBACK
4.722222f, // MOVE_SWIM
4.5f, // MOVE_SWIMBACK
- 3.141594f // MOVE_TURN
+ 3.141594f, // MOVE_TURN
+ 7.0f, // MOVE_FLY
+ 4.5f // MOVE_FLYBACK
};
Unit::Unit( WorldObject *instantiator ) : WorldObject( instantiator )
Index: src/game/UpdateData.h
===================================================================
--- src/game/UpdateData.h (working copy)
+++ src/game/UpdateData.h (working copy)
@@ -23,16 +23,23 @@
enum OBJECT_UPDATE_TYPE
{
- UPDATETYPE_VALUES = 0,
-
- UPDATETYPE_MOVEMENT = 1,
-
- UPDATETYPE_CREATE_OBJECT = 2,
-
- UPDATETYPE_CREATE_OBJECT2 = 3,
+ UPDATETYPE_VALUES = 0,
+ UPDATETYPE_MOVEMENT = 1,
+ UPDATETYPE_CREATE_OBJECT = 2,
+ UPDATETYPE_CREATE_OBJECT2 = 3,
UPDATETYPE_OUT_OF_RANGE_OBJECTS = 4,
- UPDATETYPE_NEAR_OBJECTS = 5
+ UPDATETYPE_NEAR_OBJECTS = 5
+};
+enum OBJECT_UPDATE_FLAGS
+{
+ UPDATEFLAG_SELF = 0x01,
+ UPDATEFLAG_TRANSPORT = 0x02,
+ UPDATEFLAG_FULLGUID = 0x04,
+ UPDATEFLAG_HIGHGUID = 0x08,
+ UPDATEFLAG_ALL = 0x10,
+ UPDATEFLAG_LIVING = 0x20,
+ UPDATEFLAG_HASPOSITION = 0x40
};
class UpdateData
Index: src/game/Spell.h
===================================================================
--- src/game/Spell.h (working copy)
+++ src/game/Spell.h (working copy)
@@ -234,157 +234,162 @@
enum SpellFailedReason
{
- CAST_FAIL_IN_COMBAT = 0,
- CAST_FAIL_ALREADY_FULL_HEALTH = 1,
- CAST_FAIL_ALREADY_FULL_MANA = 2,
- //CAST_FAIL_ALREADY_FULL_RAGE = 2,
- CAST_FAIL_CREATURE_ALREADY_TAMING = 3,
- CAST_FAIL_ALREADY_HAVE_CHARMED = 4,
- CAST_FAIL_ALREADY_HAVE_SUMMON = 5,
- CAST_FAIL_ALREADY_OPEN = 6,
- CAST_FAIL_MORE_POWERFUL_SPELL_ACTIVE = 7,
- //CAST_FAIL_FAILED = 8,-> 29
- CAST_FAIL_NO_TARGET = 9,
- CAST_FAIL_INVALID_TARGET = 10,
- CAST_FAIL_CANT_BE_CHARMED = 11,
- CAST_FAIL_CANT_BE_DISENCHANTED = 12, //decompose
- // 13 SPELL_FAILED_CANT_BE_PROSPECTED
- CAST_FAIL_TARGET_IS_TAPPED = 13+1,
- CAST_FAIL_CANT_START_DUEL_INVISIBLE = 14+1,
- CAST_FAIL_CANT_START_DUEL_STEALTHED = 15+1,
- CAST_FAIL_TOO_CLOSE_TO_ENEMY = 16+1,
- CAST_FAIL_CANT_DO_THAT_YET = 17+1,
- CAST_FAIL_YOU_ARE_DEAD = 18+1,
- CAST_FAIL_CANT_DO_WHILE_XXXX =19, //NONE
- CAST_FAIL_CANT_DO_WHILE_CHARMED =19+1, //SPELL_FAILED_CHARMED
- CAST_FAIL_OBJECT_ALREADY_BEING_USED = 20+1, //SPELL_FAILED_CHEST_IN_USE
- CAST_FAIL_CANT_DO_WHILE_CONFUSED = 21+1, //SPELL_FAILED_CONFUSED
- //23 is gone.
- CAST_FAIL_MUST_HAVE_ITEM_EQUIPPED = 22 + 1 + 1,
- CAST_FAIL_MUST_HAVE_XXXX_EQUIPPED = 23 + 1 + 1, //SPELL_FAILED_EQUIPPED_ITEM_CLASS
- CAST_FAIL_MUST_HAVE_XXXX_IN_MAINHAND = 24 + 1 + 1, //SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND
- CAST_FAIL_MUST_HAVE_XXXX_IN_OFFHAND = 25 + 1 + 1, //SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND
- CAST_FAIL_INTERNAL_ERROR = 26 + 1 + 1,
- CAST_FAIL_FAILED = 29, // Doesn't exist anymore? Used Fizzle value atm.
- CAST_FAIL_FIZZLED = 27 + 1 + 1, // changed (+2) 12.1.1
- CAST_FAIL_YOU_ARE_FLEEING = 28 + 1 + 1,
- CAST_FAIL_FOOD_TOO_LOWLEVEL_FOR_PET = 29 + 1 + 1,
- CAST_FAIL_TARGET_IS_TOO_HIGH = 30 + 1 + 1,
- //32 + 1 is gone.
- CAST_FAIL_IMMUNE = 32 + 1 + 1, //SPELL_FAILED_IMMUNE
- CAST_FAIL_INTERRUPTED = 33 + 1 + 1, //SPELL_FAILED_INTERRUPTED
- CAST_FAIL_INTERRUPTED1 = 34 + 1 + 1, //SPELL_FAILED_INTERRUPTED_COMBAT
- CAST_FAIL_INTERRUPTED_COMBAT = 36, //just 36 SPELL_FAILED_INTERRUPTED_COMBAT
- CAST_FAIL_ITEM_ALREADY_ENCHANTED = 35 + 1 + 1,
- CAST_FAIL_ITEM_NOT_EXIST = 36 + 1 + 1,
- CAST_FAIL_ENCHANT_NOT_EXISTING_ITEM = 37 + 1 + 1,
- CAST_FAIL_ITEM_NOT_READY = 38 + 1 + 1,
- CAST_FAIL_YOU_ARE_NOT_HIGH_ENOUGH = 39 + 1 + 1,
- CAST_FAIL_NOT_IN_LINE_OF_SIGHT = 40 + 1 + 1,
- CAST_FAIL_TARGET_TOO_LOW = 41 + 1 + 1,
- CAST_FAIL_SKILL_NOT_HIGH_ENOUGH = 42 + 1 + 1,
- CAST_FAIL_WEAPON_HAND_IS_EMPTY = 43 + 1 + 1,
- CAST_FAIL_CANT_DO_WHILE_MOVING = 44 + 1 + 1,
- CAST_FAIL_NEED_AMMO_IN_PAPERDOLL_SLOT = 45 + 1 + 1,
- CAST_FAIL_REQUIRES_SOMETHING = 46 + 1 + 1,
- CAST_FAIL_NEED_EXOTIC_AMMO = 47 + 1 + 1,
- CAST_FAIL_NO_PATH_AVAILABLE = 48 + 1 + 1,
- CAST_FAIL_NOT_BEHIND_TARGET = 49 + 1 + 1,
- CAST_FAIL_DIDNT_LAND_IN_FISHABLE_WATER = 50 + 1 + 1,
- CAST_FAIL_CANT_BE_CAST_HERE = 51 + 1 + 1,
- CAST_FAIL_NOT_IN_FRONT_OF_TARGET = 52 + 1 + 1,
- CAST_FAIL_NOT_IN_CONTROL_OF_ACTIONS = 53 + 1 + 1,
- CAST_FAIL_SPELL_NOT_LEARNED = 54 + 1 + 1,
- CAST_FAIL_CANT_USE_WHEN_MOUNTED = 55 + 1 + 1,
- CAST_FAIL_YOU_ARE_IN_FLIGHT = 56 + 1 + 1,
- CAST_FAIL_YOU_ARE_ON_TRANSPORT = 57 + 1 + 1,
- CAST_FAIL_SPELL_NOT_READY_YET = 58 + 1 + 1,
- CAST_FAIL_CANT_DO_IN_SHAPESHIFT = 59 + 1 + 1,
- CAST_FAIL_HAVE_TO_BE_STANDING = 60 + 1 + 1,
- CAST_FAIL_CAN_USE_ONLY_ON_OWN_OBJECT = 61 + 1 + 1, // rogues trying "enchant" other's weapon with poison
- //CAST_FAIL_ALREADY_OPEN1 = 62,
-
- CAST_FAIL_CANT_ENCHANT_TRADE_ITEM = 63 + 1,
- CAST_FAIL_HAVE_TO_BE_UNSHEATHED = 63 + 1 + 1, // yellow text SPELL_FAILED_NOT_UNSHEATHED
- CAST_FAIL_CANT_CAST_AS_GHOST = 64 + 1 + 1,
- CAST_FAIL_NO_AMMO = 65 + 1 + 1,
- CAST_FAIL_NO_CHARGES_REMAIN = 66 + 1 + 1,
- CAST_FAIL_NOT_SELECT = 67 + 1 + 1,
- CAST_FAIL_COMBO_POINTS_REQUIRED = 68 + 1 + 1,
- CAST_FAIL_NO_DUELING_HERE = 69 + 1 + 1,
- CAST_FAIL_NOT_ENOUGH_ENDURANCE = 70 + 1 + 1,
- CAST_FAIL_THERE_ARENT_ANY_FISH_HERE = 71 + 1 + 1,
- CAST_FAIL_CANT_USE_WHILE_SHAPESHIFTED = 72 + 1 + 1,
- CAST_FAIL_CANT_MOUNT_HERE = 73 + 1 + 1,
- CAST_FAIL_YOU_DO_NOT_HAVE_PET = 74 + 1 + 1,
- CAST_FAIL_NOT_ENOUGH_MANA = 75 + 1 + 1,
- CAST_FAIL_NOT_AURA_TO_QUSHAN = 76 + 1 + 1,
- //= 79, CAST_FAIL_NOT_ITEM_TO_STEAL = 111 + 1 + 2 //(SPELL_FAILED_NOTHING_TO_STEAL)
- CAST_FAIL_CANT_USE_WHILE_SWIMMING = 77 + 1 + 2,
- CAST_FAIL_CAN_ONLY_USE_AT_DAY = 78 + 1 + 2,
- CAST_FAIL_CAN_ONLY_USE_INDOORS = 79 + 1 + 2,
- CAST_FAIL_CAN_ONLY_USE_MOUNTED = 80 + 1 + 2,
- CAST_FAIL_CAN_ONLY_USE_AT_NIGHT = 81 + 1 + 2,
- CAST_FAIL_CAN_ONLY_USE_OUTDOORS = 82 + 1 + 2,
- //CAST_FAIL_ONLY_SHAPESHIFTED = 83 // didn't display
- // 86 none
- CAST_FAIL_CAN_ONLY_USE_STEALTHED = 85 + 2,
- CAST_FAIL_CAN_ONLY_USE_WHILE_SWIMMING = 86 + 2,
- CAST_FAIL_OUT_OF_RANGE = 87 + 2,
- CAST_FAIL_CANT_USE_WHILE_PACIFIED = 87 + 1 + 2,
- CAST_FAIL_YOU_ARE_POSSESSED = 88 + 1 + 2,
- CAST_FAIL_YOU_NEED_TO_BE_IN_XXX = 90 + 1 + 2,
- CAST_FAIL_REQUIRES_XXX = 91 + 1 + 2,
- CAST_FAIL_UNABLE_TO_MOVE = 92 + 1 + 2,
- CAST_FAIL_SILENCED = 93 + 1 + 2,
- CAST_FAIL_ANOTHER_ACTION_IS_IN_PROGRESS = 94 + 1 + 2,
- CAST_FAIL_ALREADY_LEARNED_THAT_SPELL = 95 + 1 + 2,
- CAST_FAIL_SPELL_NOT_AVAILABLE_TO_YOU = 96 + 1 + 2,
- CAST_FAIL_CANT_DO_WHILE_STUNNED = 97 + 1 + 2,
- CAST_FAIL_YOUR_TARGET_IS_DEAD = 98 + 1 + 2,
- CAST_FAIL_TARGET_IS_IN_COMBAT = 99 + 1 + 2,
- CAST_FAIL_CANT_DO_THAT_YET_2 = 100 + 1 + 2,
- CAST_FAIL_TARGET_IS_DUELING = 101 + 1 + 2,
- CAST_FAIL_TARGET_IS_HOSTILE = 102 + 1 + 2,
- CAST_FAIL_TARGET_IS_TOO_ENRAGED_TO_CHARM = 103 + 1 + 2,
- CAST_FAIL_TARGET_IS_FRIENDLY = 104 + 1 + 2,
- CAST_FAIL_TARGET_CANT_BE_IN_COMBAT = 105 + 1 + 2,
- CAST_FAIL_CANT_TARGET_PLAYERS = 106 + 1 + 2,
- CAST_FAIL_TARGET_IS_ALIVE = 107 + 1 + 2,
- CAST_FAIL_TARGET_NOT_IN_YOUR_PARTY = 108 + 1 + 2,
- CAST_FAIL_CREATURE_MUST_BE_LOOTED_FIRST = 109 + 1 + 2,
- CAST_FAIL_AUCTION_HAVE_CANCEL = 110 + 1 + 2,
- CAST_FAIL_NOT_ITEM_TO_STEAL = 111 + 1 + 2,
- //CAST_FAIL_TARGET_IS_NOT_A_PLAYER = 107,
- //CAST_FAIL_NO_POCKETS_TO_PICK = 108,
- CAST_FAIL_TARGET_HAS_NO_WEAPONS_EQUIPPED = 112 + 1 + 2,
- CAST_FAIL_NOT_SKINNABLE = 113 + 1 + 2,
- CAST_FAIL_TOO_CLOSE = 115 + 1 + 2,
- CAST_FAIL_TOO_MANY_OF_THAT_ITEM_ALREADY = 116 + 1 + 2,
- CAST_FAIL_NOT_ENOUGH_TRAINING_POINTS = 118 + 1 + 2,
- CAST_FAIL_FAILED_ATTEMPT = 119 + 1 + 2,
- CAST_FAIL_TARGET_NEED_TO_BE_BEHIND = 120 + 1 + 2,
- CAST_FAIL_TARGET_NEED_TO_BE_INFRONT = 121 + 1 + 2,
- CAST_FAIL_PET_DOESNT_LIKE_THAT_FOOD = 122 + 1 + 2,
- CAST_FAIL_CANT_CAST_WHILE_FATIGUED = 123 + 1 + 2,
- CAST_FAIL_TARGET_MUST_BE_IN_THIS_INSTANCE = 124 + 1 + 2,
- CAST_FAIL_CANT_CAST_WHILE_TRADING = 125 + 1 + 2,
- CAST_FAIL_TARGET_IS_NOT_PARTY_OR_RAID = 126 + 1 + 2,
- CAST_FAIL_CANT_DISENCHANT_WHILE_LOOTING = 127 + 1 + 2,
- CAST_FAIL_TARGET_IS_IN_FFA_PVP_COMBAT = 133,
- //CAST_FAIL_TARGET_IS_NOT_A_GHOST = 128, //SPELL_FAILED_TARGET_NOT_GHOST
- CAST_FAIL_NO_NEARBY_CORPSES_TO_EAT = 129 + 1 + 4,
- CAST_FAIL_CAN_ONLY_USE_IN_BATTLEGROUNDS = 130 + 1 + 4,
- CAST_FAIL_CANT_EQUIP_ON_LOW_RANK = 131 + 1 + 4,
- CAST_FAIL_YOUR_PET_CANT_LEARN_MORE_SKILLS = 132 + 1 + 4,
- CAST_FAIL_CANT_USE_NEW_ITEM = 133 + 1 + 4,
- CAST_FAIL_CANT_DO_IN_THIS_WEATHER = 134 + 1 + 4,
- CAST_FAIL_CANT_DO_IN_IMMUNE = 135 + 1 + 4,
- CAST_FAIL_CANT_DO_IN_XXX = 136 + 1 + 4,
- CAST_FAIL_GAME_TIME_OVER = 137 + 1 + 4,
- CAST_FAIL_NOT_ENOUGH_RANK = 138 + 1 + 4,
- CAST_FAIL_UNKNOWN_REASON = 139 + 1 + 4,
- CAST_FAIL_NUMREASONS = 145
+ CAST_FAIL_IN_COMBAT = 0,
+ CAST_FAIL_ALREADY_FULL_HEALTH = 1,
+ CAST_FAIL_ALREADY_FULL_MANA = 2,
+ CAST_FAIL_CREATURE_ALREADY_TAMING = 3,
+ CAST_FAIL_ALREADY_HAVE_CHARMED = 4,
+ CAST_FAIL_ALREADY_HAVE_SUMMON = 5,
+ CAST_FAIL_ALREADY_OPEN = 6,
+ CAST_FAIL_MORE_POWERFUL_SPELL_ACTIVE = 7,
+ CAST_FAIL_AUTOTRACK_INTERRUPTED = 8,
+ CAST_FAIL_NO_TARGET = 9,
+ CAST_FAIL_INVALID_TARGET = 10,
+ CAST_FAIL_CANT_BE_CHARMED = 11,
+ CAST_FAIL_CANT_BE_DISENCHANTED = 12,
+ CAST_FAIL_CANT_BE_DISENCHANTED_SKILL = 13,
+ CAST_FAIL_CANT_BE_PROSPECTED = 14, // There no gems in this
+ CAST_FAIL_TARGET_IS_TAPPED = 15,
+ CAST_FAIL_CANT_START_DUEL_INVISIBLE = 16,
+ CAST_FAIL_CANT_START_DUEL_STEALTHED = 17,
+ CAST_FAIL_TOO_CLOSE_TO_ENEMY = 18,
+ CAST_FAIL_CANT_DO_THAT_YET = 19,
+ CAST_FAIL_YOU_ARE_DEAD = 20,
+ CAST_FAIL_CANT_DO_WHILE_CHARMED = 21,
+ CAST_FAIL_OBJECT_ALREADY_BEING_USED = 22,
+ CAST_FAIL_CANT_DO_WHILE_CONFUSED = 23,
+ CAST_FAIL_DONT_REPORT = 24,
+ CAST_FAIL_MUST_HAVE_ITEM_EQUIPPED = 25,
+ CAST_FAIL_MUST_HAVE_XXXX_EQUIPPED = 26,
+ CAST_FAIL_MUST_HAVE_XXXX_IN_MAINHAND = 27,
+ CAST_FAIL_MUST_HAVE_XXXX_IN_OFFHAND = 28,
+ CAST_FAIL_INTERNAL_ERROR = 29,
+ CAST_FAIL_FIZZLED = 30,
+ CAST_FAIL_YOU_ARE_FLEEING = 31,
+ CAST_FAIL_FOOD_TOO_LOWLEVEL_FOR_PET = 32,
+ CAST_FAIL_TARGET_IS_TOO_HIGH = 33,
+ CAST_FAIL_HUNGER_SATIATED = 34,
+ CAST_FAIL_IMMUNE = 35,
+ CAST_FAIL_INTERRUPTED = 36,
+ CAST_FAIL_INTERRUPTED_COMBAT = 37,
+ CAST_FAIL_ITEM_ALREADY_ENCHANTED = 38,
+ CAST_FAIL_ITEM_NOT_EXIST = 39,
+ CAST_FAIL_ENCHANT_NOT_EXISTING_ITEM = 40,
+ CAST_FAIL_ITEM_NOT_READY = 41,
+ CAST_FAIL_YOU_ARE_NOT_HIGH_ENOUGH = 42,
+ CAST_FAIL_NOT_IN_LINE_OF_SIGHT = 43,
+ CAST_FAIL_TARGET_TOO_LOW = 44,
+ CAST_FAIL_SKILL_NOT_HIGH_ENOUGH = 45,
+ CAST_FAIL_WEAPON_HAND_IS_EMPTY = 46,
+ CAST_FAIL_CANT_DO_WHILE_MOVING = 47,
+ CAST_FAIL_NEED_AMMO_IN_PAPERDOLL_SLOT = 48,
+ CAST_FAIL_REQUIRES_SOMETHING = 49,
+ CAST_FAIL_NEED_EXOTIC_AMMO = 50,
+ CAST_FAIL_NO_PATH_AVAILABLE = 51,
+ CAST_FAIL_NOT_BEHIND_TARGET = 52,
+ CAST_FAIL_DIDNT_LAND_IN_FISHABLE_WATER = 53,
+ CAST_FAIL_CANT_BE_CAST_HERE = 54,
+ CAST_FAIL_NOT_IN_FRONT_OF_TARGET = 55,
+ CAST_FAIL_NOT_IN_CONTROL_OF_ACTIONS = 56,
+ CAST_FAIL_SPELL_NOT_LEARNED = 57,
+ CAST_FAIL_CANT_USE_WHEN_MOUNTED = 58,
+ CAST_FAIL_YOU_ARE_IN_FLIGHT = 59,
+ CAST_FAIL_YOU_ARE_ON_TRANSPORT = 60,
+ CAST_FAIL_SPELL_NOT_READY_YET = 61,
+ CAST_FAIL_CANT_DO_IN_SHAPESHIFT = 62,
+ CAST_FAIL_HAVE_TO_BE_STANDING = 63,
+ CAST_FAIL_CAN_USE_ONLY_ON_OWN_OBJECT = 64,
+ CAST_FAIL_CANT_ENCHANT_TRADE_ITEM = 65,
+ CAST_FAIL_HAVE_TO_BE_UNSHEATHED = 66,
+ CAST_FAIL_CANT_CAST_AS_GHOST = 67,
+ CAST_FAIL_NO_AMMO = 68,
+ CAST_FAIL_NO_CHARGES_REMAIN = 69,
+ CAST_FAIL_NOT_SELECT = 70,
+ CAST_FAIL_COMBO_POINTS_REQUIRED = 71,
+ CAST_FAIL_NO_DUELING_HERE = 72,
+ CAST_FAIL_NOT_ENOUGH_ENDURANCE = 73,
+ CAST_FAIL_THERE_ARENT_ANY_FISH_HERE = 74,
+ CAST_FAIL_CANT_USE_WHILE_SHAPESHIFTED = 75,
+ CAST_FAIL_CANT_MOUNT_HERE = 76,
+ CAST_FAIL_YOU_DO_NOT_HAVE_PET = 77,
+ CAST_FAIL_NOT_ENOUGH_MANA = 78,
+ CAST_FAIL_NOTHING_TO_DISPEL = 79,
+ CAST_FAIL_NOTHING_TO_STEAL = 80,
+ CAST_FAIL_CANT_USE_WHILE_SWIMMING = 81,
+ CAST_FAIL_CAN_ONLY_USE_AT_DAY = 82,
+ CAST_FAIL_CAN_ONLY_USE_INDOORS = 83,
+ CAST_FAIL_CAN_ONLY_USE_MOUNTED = 84,
+ CAST_FAIL_CAN_ONLY_USE_AT_NIGHT = 85,
+ CAST_FAIL_CAN_ONLY_USE_OUTDOORS = 86,
+ CAST_FAIL_CAN_ONLY_USE_SHAPESHIFT = 87,
+ CAST_FAIL_CAN_ONLY_USE_STEALTHED = 88,
+ CAST_FAIL_CAN_ONLY_USE_WHILE_SWIMMING = 89,
+ CAST_FAIL_OUT_OF_RANGE = 90,
+ CAST_FAIL_CANT_USE_WHILE_PACIFIED = 91,
+ CAST_FAIL_YOU_ARE_POSSESSED = 92,
+ CAST_FAIL_REAGENTS = 93,
+ CAST_FAIL_YOU_NEED_TO_BE_IN_XXX = 94,
+ CAST_FAIL_REQUIRES_XXX = 95,
+ CAST_FAIL_UNABLE_TO_MOVE = 96,
+ CAST_FAIL_SILENCED = 97,
+ CAST_FAIL_ANOTHER_ACTION_IS_IN_PROGRESS = 98,
+ CAST_FAIL_ALREADY_LEARNED_THAT_SPELL = 99,
+ CAST_FAIL_SPELL_NOT_AVAILABLE_TO_YOU = 100,
+ CAST_FAIL_CANT_DO_WHILE_STUNNED = 101,
+ CAST_FAIL_YOUR_TARGET_IS_DEAD = 102,
+ CAST_FAIL_TARGET_IS_IN_COMBAT = 103,
+ CAST_FAIL_CANT_DO_THAT_YET_2 = 104, // SPELL_FAILED_TARGET_AURASTATE
+ CAST_FAIL_TARGET_IS_DUELING = 105,
+ CAST_FAIL_TARGET_IS_HOSTILE = 106,
+ CAST_FAIL_TARGET_IS_TOO_ENRAGED_TO_CHARM = 107,
+ CAST_FAIL_TARGET_IS_FRIENDLY = 108,
+ CAST_FAIL_TARGET_CANT_BE_IN_COMBAT = 109,
+ CAST_FAIL_CANT_TARGET_PLAYERS = 110,
+ CAST_FAIL_TARGET_IS_ALIVE = 111,
+ CAST_FAIL_TARGET_NOT_IN_YOUR_PARTY = 112,
+ CAST_FAIL_CREATURE_MUST_BE_LOOTED_FIRST = 113,
+ CAST_FAIL_TARGET_IS_NOT_PLAYER = 114,
+ CAST_FAIL_NOT_ITEM_TO_STEAL = 115,
+ CAST_FAIL_TARGET_HAS_NO_WEAPONS_EQUIPPED = 116,
+ CAST_FAIL_NOT_SKINNABLE = 117,
+ CAST_FAIL_THIRST_SATIATED = 118,
+ CAST_FAIL_TOO_CLOSE = 119,
+ CAST_FAIL_TOO_MANY_OF_THAT_ITEM_ALREADY = 120,
+ CAST_FAIL_TOTEM_CATEGORY = 121,
+ CAST_FAIL_TOTEMS = 122,
+ CAST_FAIL_NOT_ENOUGH_TRAINING_POINTS = 123,
+ CAST_FAIL_FAILED_ATTEMPT = 124,
+ CAST_FAIL_TARGET_NEED_TO_BE_BEHIND = 125,
+ CAST_FAIL_TARGET_NEED_TO_BE_INFRONT = 126,
+ CAST_FAIL_PET_DOESNT_LIKE_THAT_FOOD = 127,
+ CAST_FAIL_CANT_CAST_WHILE_FATIGUED = 128,
+ CAST_FAIL_TARGET_MUST_BE_IN_THIS_INSTANCE = 129,
+ CAST_FAIL_CANT_CAST_WHILE_TRADING = 130,
+ CAST_FAIL_TARGET_IS_NOT_PARTY_OR_RAID = 131,
+ CAST_FAIL_CANT_DISENCHANT_WHILE_LOOTING = 132,
+ CAST_FAIL_CANT_PROSPECT_WHILE_LOOTING = 133,
+ CAST_FAIL_CANT_PROSPECT_NEED_MORE = 134,
+ CAST_FAIL_TARGET_IS_IN_FFA_PVP_COMBAT = 135,
+ CAST_FAIL_NO_NEARBY_CORPSES_TO_EAT = 136,
+ CAST_FAIL_CAN_ONLY_USE_IN_BATTLEGROUNDS = 137,
+ CAST_FAIL_TARGET_NOT_GHOST = 138,
+ CAST_FAIL_YOUR_PET_CANT_LEARN_MORE_SKILLS = 139,
+ CAST_FAIL_TRANSFORM_UNUSABLE = 140,
+ CAST_FAIL_WRONG_WEATHER = 141,
+ CAST_FAIL_DAMAGE_IMMUNE = 142,
+ CAST_FAIL_PREVENTED_BY_MECHANIC = 143,
+ CAST_FAIL_PLAY_TIME = 144,
+ CAST_FAIL_REPUTATION = 145,
+ CAST_FAIL_MIN_SKILL = 146,
+ CAST_FAIL_NOT_IN_ARENA = 147,
+ CAST_FAIL_NOT_ON_SHAPESHIFT = 148,
+ CAST_FAIL_NOT_ON_STEALTHED = 149,
+ CAST_FAIL_NOT_ON_DAMAGE_IMMUNE = 150,
+ CAST_FAIL_NOT_ON_MOUNTED = 151,
+ CAST_FAIL_TOO_SHALLOW = 152,
+ CAST_FAIL_TARGET_NOT_IN_SANCTUARY = 153,
+ CAST_FAIL_UNKNOWN_REASON = 154,
+ CAST_FAIL_NUMREASONS
};
#define SPELL_SPELL_CHANNEL_UPDATE_INTERVAL 1000
Index: src/game/LootMgr.h
===================================================================
--- src/game/LootMgr.h (working copy)
+++ src/game/LootMgr.h (working copy)
@@ -48,6 +48,13 @@
NEED_BEFORE_GREED = 4
};
+enum LootThreshold
+{
+ UNCOMMON = 2,
+ RARE = 3,
+ EPIC = 4
+};
+
enum PermissionTypes
{
ALL_PERMISSION = 0,
Index: src/game/ItemPrototype.h
===================================================================
--- src/game/ItemPrototype.h (working copy)
+++ src/game/ItemPrototype.h (working copy)
@@ -74,50 +74,83 @@
enum ITEM_STAT_TYPE
{
- ITEM_STAT_POWER = 0,
- ITEM_STAT_HEALTH = 1,
- ITEM_STAT_UNKNOWN = 2,
- ITEM_STAT_AGILITY = 3,
- ITEM_STAT_STRENGTH = 4,
- ITEM_STAT_INTELLECT = 5,
- ITEM_STAT_SPIRIT = 6,
- ITEM_STAT_STAMINA = 7
+ ITEM_STAT_POWER = 0,
+ ITEM_STAT_HEALTH = 1,
+ ITEM_STAT_UNKNOWN1 = 2,
+ ITEM_STAT_AGILITY = 3,
+ ITEM_STAT_STRENGTH = 4,
+ ITEM_STAT_INTELLECT = 5,
+ ITEM_STAT_SPIRIT = 6,
+ ITEM_STAT_STAMINA = 7,
+ ITEM_STAT_UNKNOWN2 = 8,
+ ITEM_STAT_UNKNOWN3 = 9,
+ ITEM_STAT_UNKNOWN4 = 10,
+ ITEM_STAT_UNKNOWN5 = 11,
+ // New Item Stats for Combat Rating System:
+ // CS - critical strike
+ // HA - hit avoidance
+ // CA - critical avoidance
+ ITEM_STAT_DEFENCE_RATING = 12,
+ ITEM_STAT_DODGE_RATING = 13,
+ ITEM_STAT_PARRY_RATING = 14,
+ ITEM_STAT_SHIELD_BLOCK_RATING = 15,
+ ITEM_STAT_MELEE_HIT_RATING = 16,
+ ITEM_STAT_RANGED_HIT_RATING = 17,
+ ITEM_STAT_SPELL_HIT_RATING = 18,
+ ITEM_STAT_MELEE_CS_RATING = 19,
+ ITEM_STAT_RANGED_CS_RATING = 20,
+ ITEM_STAT_SPELL_CS_RATING = 21,
+ ITEM_STAT_MELEE_HA_RATING = 22,
+ ITEM_STAT_RANGED_HA_RATING = 23,
+ ITEM_STAT_SPELL_HA_RATING = 24,
+ ITEM_STAT_MELEE_CA_RATING = 25,
+ ITEM_STAT_RANGED_CA_RATING = 26,
+ ITEM_STAT_SPELL_CA_RATING = 27,
+ ITEM_STAT_MELEE_HASTE_RATING = 28,
+ ITEM_STAT_RANGED_HASTE_RATING = 29,
+ ITEM_STAT_SPELL_HASTE_RATING = 30,
+ ITEM_STAT_HIT_RATING = 31,
+ ITEM_STAT_CS_RATING = 32,
+ ITEM_STAT_HA_RATING = 33,
+ ITEM_STAT_CA_RATING = 34,
+ ITEM_STAT_RESILIENCE_RATING = 35,
+ ITEM_STAT_HASTE_RATING = 36
};
enum ITEM_DAMAGE_TYPE
{
- NORMAL_DAMAGE = 0,
- HOLY_DAMAGE = 1,
- FIRE_DAMAGE = 2,
- NATURE_DAMAGE = 3,
- FROST_DAMAGE = 4,
- SHADOW_DAMAGE = 5,
- ARCANE_DAMAGE = 6
+ NORMAL_DAMAGE = 0,
+ HOLY_DAMAGE = 1,
+ FIRE_DAMAGE = 2,
+ NATURE_DAMAGE = 3,
+ FROST_DAMAGE = 4,
+ SHADOW_DAMAGE = 5,
+ ARCANE_DAMAGE = 6
};
enum ITEM_SPELLTRIGGER_TYPE
{
- USE = 0,
- ON_EQUIP = 1,
- CHANCE_ON_HIT = 2,
- SOULSTONE = 4
+ USE = 0,
+ ON_EQUIP = 1,
+ CHANCE_ON_HIT = 2,
+ SOULSTONE = 4
};
enum ITEM_BONDING_TYPE
{
- NO_BIND = 0,
- BIND_WHEN_PICKED_UP = 1,
- BIND_WHEN_EQUIPED = 2,
- BIND_WHEN_USE = 3,
+ NO_BIND = 0,
+ BIND_WHEN_PICKED_UP = 1,
+ BIND_WHEN_EQUIPED = 2,
+ BIND_WHEN_USE = 3,
//TODO: Better name these
- QUEST_ITEM = 4,
- QUEST_ITEM1 = 5
+ QUEST_ITEM = 4,
+ QUEST_ITEM1 = 5
};
// masks for ITEM_FIELD_FLAGS field
enum ITEM_FLAGS
{
- ITEM_FLAGS_BINDED = 1
+ ITEM_FLAGS_BINDED = 1
};
enum BAG_FAMILY
@@ -126,162 +159,194 @@
BAG_FAMILY_ARROWS = 1,
BAG_FAMILY_BULLETS = 2,
BAG_FAMILY_SOUL_SHARDS = 3,
- //BAG_FAMILY_UNK1 = 4,
- //BAG_FAMILY_UNK1 = 5,
+ //BAG_FAMILY_UNK1 = 4,
+ //BAG_FAMILY_UNK1 = 5,
BAG_FAMILY_HERBS = 6,
BAG_FAMILY_ENCHANTING_SUPP = 7,
BAG_FAMILY_ENGINEERING_SUPP = 8,
BAG_FAMILY_KEYS = 9,
BAG_FAMILY_GEMS = 10,
- //BAG_FAMILY_UNK3 = 11,
+ //BAG_FAMILY_UNK3 = 11,
BAG_FAMILY_MINING_SUPP = 12
};
+/* TODO: Not entirely positive on need for this??
+enum SOCKET_CONTENT ();
+*/
+
+enum SOCKET_COLOR
+{
+ SOCKET_COLOR_META = 1,
+ SOCKET_COLOR_RED = 2,
+ SOCKET_COLOR_YELLOW = 4,
+ SOCKET_COLOR_BLUE = 8
+};
+
enum INVENTORY_TYPES
{
- INVTYPE_NON_EQUIP = 0,
- INVTYPE_HEAD = 1,
- INVTYPE_NECK = 2,
- INVTYPE_SHOULDERS = 3,
- INVTYPE_BODY = 4,
- INVTYPE_CHEST = 5,
- INVTYPE_WAIST = 6,
- INVTYPE_LEGS = 7,
- INVTYPE_FEET = 8,
- INVTYPE_WRISTS = 9,
- INVTYPE_HANDS = 10,
- INVTYPE_FINGER = 11,
- INVTYPE_TRINKET = 12,
- INVTYPE_WEAPON = 13,
- INVTYPE_SHIELD = 14,
- INVTYPE_RANGED = 15,
- INVTYPE_CLOAK = 16,
- INVTYPE_2HWEAPON = 17,
- INVTYPE_BAG = 18,
- INVTYPE_TABARD = 19,
- INVTYPE_ROBE = 20,
- INVTYPE_WEAPONMAINHAND = 21,
- INVTYPE_WEAPONOFFHAND = 22,
- INVTYPE_HOLDABLE = 23,
- INVTYPE_AMMO = 24,
- INVTYPE_THROWN = 25,
- INVTYPE_RANGEDRIGHT = 26,
- INVTYPE_SLOT_ITEM = 27,
- INVTYPE_RELIC = 28,
- NUM_INVENTORY_TYPES = 29
+ INVTYPE_NON_EQUIP = 0,
+ INVTYPE_HEAD = 1,
+ INVTYPE_NECK = 2,
+ INVTYPE_SHOULDERS = 3,
+ INVTYPE_BODY = 4,
+ INVTYPE_CHEST = 5,
+ INVTYPE_WAIST = 6,
+ INVTYPE_LEGS = 7,
+ INVTYPE_FEET = 8,
+ INVTYPE_WRISTS = 9,
+ INVTYPE_HANDS = 10,
+ INVTYPE_FINGER = 11,
+ INVTYPE_TRINKET = 12,
+ INVTYPE_WEAPON = 13,
+ INVTYPE_SHIELD = 14,
+ INVTYPE_RANGED = 15,
+ INVTYPE_CLOAK = 16,
+ INVTYPE_2HWEAPON = 17,
+ INVTYPE_BAG = 18,
+ INVTYPE_TABARD = 19,
+ INVTYPE_ROBE = 20,
+ INVTYPE_WEAPONMAINHAND = 21,
+ INVTYPE_WEAPONOFFHAND = 22,
+ INVTYPE_HOLDABLE = 23,
+ INVTYPE_AMMO = 24,
+ INVTYPE_THROWN = 25,
+ INVTYPE_RANGEDRIGHT = 26,
+ INVTYPE_SLOT_ITEM = 27,
+ INVTYPE_RELIC = 28,
+ NUM_INVENTORY_TYPES = 29
};
enum INVENTORY_CLASS
{
- ITEM_CLASS_CONSUMABLE = 0,
- ITEM_CLASS_CONTAINER = 1,
- ITEM_CLASS_WEAPON = 2,
- ITEM_CLASS_JEWELRY = 3,
- ITEM_CLASS_ARMOR = 4,
- ITEM_CLASS_REAGENT = 5,
- ITEM_CLASS_PROJECTILE = 6,
- ITEM_CLASS_TRADE_GOODS = 7,
- ITEM_CLASS_GENERIC = 8,
- ITEM_CLASS_BOOK = 9,
- ITEM_CLASS_MONEY = 10,
- ITEM_CLASS_QUIVER = 11,
- ITEM_CLASS_QUEST = 12,
- ITEM_CLASS_KEY = 13,
- ITEM_CLASS_PERMANENT = 14,
- ITEM_CLASS_JUNK = 15
+ ITEM_CLASS_CONSUMABLE = 0,
+ ITEM_CLASS_CONTAINER = 1,
+ ITEM_CLASS_WEAPON = 2,
+ ITEM_CLASS_JEWELRY = 3,
+ ITEM_CLASS_ARMOR = 4,
+ ITEM_CLASS_REAGENT = 5,
+ ITEM_CLASS_PROJECTILE = 6,
+ ITEM_CLASS_TRADE_GOODS = 7,
+ ITEM_CLASS_GENERIC = 8,
+ ITEM_CLASS_RECIPE = 9,
+ ITEM_CLASS_MONEY = 10,
+ ITEM_CLASS_QUIVER = 11,
+ ITEM_CLASS_QUEST = 12,
+ ITEM_CLASS_KEY = 13,
+ ITEM_CLASS_PERMANENT = 14,
+ ITEM_CLASS_MISC = 15
};
// Client understand only 0 subclass for ITEM_CLASS_CONSUMABLE
// but this value used in code as implementation workaround
enum ITEM_SUBCLASS_CONSUMABLE
{
- ITEM_SUBCLASS_FOOD = 1,
- ITEM_SUBCLASS_LIQUID = 2,
- ITEM_SUBCLASS_POTION = 3,
- ITEM_SUBCLASS_SCROLL = 4,
- ITEM_SUBCLASS_BANDAGE = 5,
- ITEM_SUBCLASS_HEALTHSTONE = 6,
- ITEM_SUBCLASS_COMBAT_EFFECT = 7
+ ITEM_SUBCLASS_CONSUMABLE = 0,
+ ITEM_SUBCLASS_FOOD = 1, // Cheese/Bread(OBSOLETE)
+ ITEM_SUBCLASS_LIQUID = 2, // Liquid(OBSOLETE)
+ ITEM_SUBCLASS_POTION = 3,
+ ITEM_SUBCLASS_SCROLL = 4,
+ ITEM_SUBCLASS_BANDAGE = 5,
+ ITEM_SUBCLASS_HEALTHSTONE = 6,
+ ITEM_SUBCLASS_COMBAT_EFFECT = 7
};
enum ITEM_SUBCLASS_CONTAINER
{
- ITEM_SUBCLASS_CONTAINER = 0,
- ITEM_SUBCLASS_SOUL_CONTAINER = 1,
- ITEM_SUBCLASS_HERB_CONTAINER = 2,
- ITEM_SUBCLASS_ENCHANTING_CONTAINER = 3,
- ITEM_SUBCLASS_ENGINEERING_CONTAINER = 4
+ ITEM_SUBCLASS_CONTAINER = 0,
+ ITEM_SUBCLASS_SOUL_CONTAINER = 1,
+ ITEM_SUBCLASS_HERB_CONTAINER = 2,
+ ITEM_SUBCLASS_ENCHANTING_CONTAINER = 3,
+ ITEM_SUBCLASS_ENGINEERING_CONTAINER = 4,
+ ITEM_SUBCLASS_GEM_CONTAINER = 5,
+ ITEM_SUBCLASS_MINING_CONTAINER = 6
};
enum INVENTORY_SUBCLASS_WEAPON
{
- ITEM_SUBCLASS_WEAPON_AXE = 0,
- ITEM_SUBCLASS_WEAPON_AXE2 = 1,
- ITEM_SUBCLASS_WEAPON_BOW = 2,
- ITEM_SUBCLASS_WEAPON_GUN = 3,
- ITEM_SUBCLASS_WEAPON_MACE = 4,
- ITEM_SUBCLASS_WEAPON_MACE2 = 5,
- ITEM_SUBCLASS_WEAPON_POLEARM = 6,
- ITEM_SUBCLASS_WEAPON_SWORD = 7,
- ITEM_SUBCLASS_WEAPON_SWORD2 = 8,
- ITEM_SUBCLASS_WEAPON_obsolete = 9,
- ITEM_SUBCLASS_WEAPON_STAFF = 10,
- ITEM_SUBCLASS_WEAPON_EXOTIC = 11,
- ITEM_SUBCLASS_WEAPON_EXOTIC2 = 12,
- ITEM_SUBCLASS_WEAPON_UNARMED = 13,
- ITEM_SUBCLASS_WEAPON_GENERIC = 14,
- ITEM_SUBCLASS_WEAPON_DAGGER = 15,
- ITEM_SUBCLASS_WEAPON_THROWN = 16,
- ITEM_SUBCLASS_WEAPON_SPEAR = 17,
- ITEM_SUBCLASS_WEAPON_CROSSBOW = 18,
- ITEM_SUBCLASS_WEAPON_WAND = 19,
- ITEM_SUBCLASS_WEAPON_FISHING_POLE = 20
+ ITEM_SUBCLASS_WEAPON_AXE = 0,
+ ITEM_SUBCLASS_WEAPON_AXE2 = 1,
+ ITEM_SUBCLASS_WEAPON_BOW = 2,
+ ITEM_SUBCLASS_WEAPON_GUN = 3,
+ ITEM_SUBCLASS_WEAPON_MACE = 4,
+ ITEM_SUBCLASS_WEAPON_MACE2 = 5,
+ ITEM_SUBCLASS_WEAPON_POLEARM = 6,
+ ITEM_SUBCLASS_WEAPON_SWORD = 7,
+ ITEM_SUBCLASS_WEAPON_SWORD2 = 8,
+ ITEM_SUBCLASS_WEAPON_obsolete = 9,
+ ITEM_SUBCLASS_WEAPON_STAFF = 10,
+ ITEM_SUBCLASS_WEAPON_EXOTIC = 11,
+ ITEM_SUBCLASS_WEAPON_EXOTIC2 = 12,
+ ITEM_SUBCLASS_WEAPON_FIRST = 13,
+ ITEM_SUBCLASS_WEAPON_MISC = 14,
+ ITEM_SUBCLASS_WEAPON_DAGGER = 15,
+ ITEM_SUBCLASS_WEAPON_THROWN = 16,
+ ITEM_SUBCLASS_WEAPON_SPEAR = 17,
+ ITEM_SUBCLASS_WEAPON_CROSSBOW = 18,
+ ITEM_SUBCLASS_WEAPON_WAND = 19,
+ ITEM_SUBCLASS_WEAPON_FISHING_POLE = 20
};
enum ITEM_SUBCLASS_ARMOR
{
- ITEM_SUBCLASS_ARMOR_GENERIC = 0,
- ITEM_SUBCLASS_ARMOR_CLOTH = 1,
- ITEM_SUBCLASS_ARMOR_LEATHER = 2,
- ITEM_SUBCLASS_ARMOR_MAIL = 3,
- ITEM_SUBCLASS_ARMOR_PLATE = 4,
- ITEM_SUBCLASS_ARMOR_BUCKLER = 5,
- ITEM_SUBCLASS_ARMOR_SHIELD = 6
+ ITEM_SUBCLASS_ARMOR_MISC = 0,
+ ITEM_SUBCLASS_ARMOR_CLOTH = 1,
+ ITEM_SUBCLASS_ARMOR_LEATHER = 2,
+ ITEM_SUBCLASS_ARMOR_MAIL = 3,
+ ITEM_SUBCLASS_ARMOR_PLATE = 4,
+ ITEM_SUBCLASS_ARMOR_BUCKLER = 5,
+ ITEM_SUBCLASS_ARMOR_SHIELD = 6,
+ ITEM_SUBCLASS_ARMOR_LIBRAM = 7,
+ ITEM_SUBCLASS_ARMOR_IDOL = 8,
+ ITEM_SUBCLASS_ARMOR_TOTEM = 9
};
enum ITEM_SUBCLASS_PROJECTILE
{
- ITEM_SUBCLASS_ARROW = 2,
- ITEM_SUBCLASS_BULLET = 3
+ ITEM_SUBCLASS_WAND = 0, // ABS
+ ITEM_SUBCLASS_BOLT = 1, // ABS
+ ITEM_SUBCLASS_ARROW = 2,
+ ITEM_SUBCLASS_BULLET = 3,
+ ITEM_SUBCLASS_THROWN = 4 // ABS
};
enum ITEM_SUBCLASS_TRADE_GOODS
{
- ITEM_SUBCLASS_TRADE_GOODS = 0,
- ITEM_SUBCLASS_PARTS = 1,
- ITEM_SUBCLASS_EXPLOSIVES = 2,
- ITEM_SUBCLASS_DEVICES = 3
+ ITEM_SUBCLASS_TRADE_GOODS = 0,
+ ITEM_SUBCLASS_PARTS = 1,
+ ITEM_SUBCLASS_EXPLOSIVES = 2,
+ ITEM_SUBCLASS_DEVICES = 3,
+ ITEM_SUBCLASS_GEMS = 4
};
enum ITEM_SUBCLASS_BOOK
{
- ITEM_SUBCLASS_BOOK = 0,
- ITEM_SUBCLASS_LEATHERWORKING_PATTERN = 1,
- ITEM_SUBCLASS_TAILORING_PATTERN = 2,
- ITEM_SUBCLASS_ENGINEERING_SCHEMATIC = 3,
- ITEM_SUBCLASS_COOKING_RECIPE = 5,
- ITEM_SUBCLASS_ALCHEMY_RECIPE = 6,
- ITEM_SUBCLASS_FIRST_AID_MANUAL = 7,
- ITEM_SUBCLASS_ENCHANTING_FORMULA = 8,
- ITEM_SUBCLASS_FISHING_MANUAL = 9
+ ITEM_SUBCLASS_BOOK = 0,
+ ITEM_SUBCLASS_LEATHERWORKING_PATTERN = 1,
+ ITEM_SUBCLASS_TAILORING_PATTERN = 2,
+ ITEM_SUBCLASS_ENGINEERING_SCHEMATIC = 3,
+ ITEM_SUBCLASS_BLACKSMITHING = 4,
+ ITEM_SUBCLASS_COOKING_RECIPE = 5,
+ ITEM_SUBCLASS_ALCHEMY_RECIPE = 6,
+ ITEM_SUBCLASS_FIRST_AID_MANUAL = 7,
+ ITEM_SUBCLASS_ENCHANTING_FORMULA = 8,
+ ITEM_SUBCLASS_FISHING_MANUAL = 9,
+ ITEM_SUBCLASS_JEWELCRAFTING = 10
};
enum ITEM_SUBCLASS_QUIVER
{
- ITEM_SUBCLASS_QUIVER = 2,
- ITEM_SUBCLASS_AMMO_POUCH = 3
+ ITEM_SUBCLASS_QUIVER0 = 0, // ABS
+ ITEM_SUBCLASS_QUIVER1 = 1, // ABS
+ ITEM_SUBCLASS_QUIVER = 2,
+ ITEM_SUBCLASS_AMMO_POUCH = 3
};
+enum ITEM_SUBCLASS_KEY
+{
+ ITEM_SUBCLASS_KEY = 0,
+ ITEM_SUBCLASS_LOCKPICK = 1
+};
+
// Only GCC 4.1.0 and later support #pragma pack(push,1) syntax
#if defined( __GNUC__ ) && (GCC_MAJOR < 4 || GCC_MAJOR == 4 && GCC_MINOR < 1)
#pragma pack(1)
@@ -314,11 +379,18 @@
};
+struct _Socket
+{
+ uint32 Color;
+ uint32 Content;
+};
+
struct ItemPrototype
{
uint32 ItemId;
uint32 Class;
uint32 SubClass;
+ uint32 Unk0;
char* Name1;
char* Name2;
char* Name3;
@@ -368,12 +440,19 @@
uint32 Material;
uint32 Sheath;
uint32 Extra;
+ uint32 Unk4; // was added in 2.0.3...
uint32 Block;
uint32 ItemSet;
uint32 MaxDurability;
uint32 Area;
+ uint32 Map;
uint32 BagFamily;
- uint32 Unknown1;
+ uint32 TotemCategory;
+ _Socket Socket[3];
+ uint32 socketBonus;
+ uint32 GemProperties;
+ uint32 ExtendedCost;
+ uint32 RequiredDisenchantSkill;
char* ScriptName;
uint32 DisenchantID;
};
Index: src/game/Item.h
===================================================================
--- src/game/Item.h (working copy)
+++ src/game/Item.h (working copy)
@@ -76,7 +76,7 @@
EQUIP_ERR_YOU_ARE_STUNNED = 37,
EQUIP_ERR_YOU_ARE_DEAD = 38,
EQUIP_ERR_CANT_DO_RIGHT_NOW = 39,
- EQUIP_ERR_BAG_FULL2 = 40,
+ EQUIP_ERR_INT_BAG_ERROR = 40,
EQUIP_ERR_CAN_EQUIP_ONLY1_QUIVER2 = 41,
EQUIP_ERR_CAN_EQUIP_ONLY1_AMMOPOUCH = 42,
EQUIP_ERR_STACKABLE_CANT_BE_WRAPPED = 43,
@@ -101,7 +101,14 @@
EQUIP_ERR_BAG_FULL6 = 62,
EQUIP_ITEM_RANK_NOT_ENOUGH = 63,
EQUIP_ITEM_REPUTATION_NOT_ENOUGH = 64,
- EQUIP_MORE_THAN1_SPECIAL_BAG = 65
+ EQUIP_MORE_THAN1_SPECIAL_BAG = 65,
+ EQUIP_CANT_LOOT_NOW = 66,
+ EQUIP_CANT_EQUIP_MORE_THAN_ONE_OF_THAT = 67,
+ EQUIP_DONT_HAVE_REQITEMS_FOR_THAT_PURCHASE = 68,
+ EQUIP_DONT_HAVE_ENOUGHT_HONOR_POINTS = 69,
+ EQUIP_DONT_HAVE_ENOUGHT_ARENA_POINTS = 70,
+ EQUIP_MAX_GEMS_IN_INVENTORY = 71,
+ EQUIP_CANT_MAIL_SOULBOUND = 72
};
enum BuyFailure
@@ -112,15 +119,18 @@
BUY_ERR_SELLER_DONT_LIKE_YOU = 4,
BUY_ERR_DISTANCE_TOO_FAR = 5,
BUY_ERR_CANT_CARRY_MORE = 8,
- BUY_ERR_LEVEL_REQUIRE = 11,
+ BUY_ERR_LEVEL_REQUIRE = 11, // 2.0.1 - rank
BUY_ERR_REPUTATION_REQUIRE = 12
};
enum SellFailure
{
SELL_ERR_CANT_FIND_ITEM = 1,
- SELL_ERR_CANT_SELL_ITEM = 2,
- SELL_ERR_CANT_FIND_VENDOR = 3
+ SELL_ERR_CANT_SELL_ITEM = 2, // merchant doesn't like that item
+ SELL_ERR_CANT_FIND_VENDOR = 3, // merchant doesn't like you
+ SELL_ERR_YOU_DONT_OWN_THAT_ITEM = 4, // you don't own that item
+ SELL_ERR_UNK = 5, // nothing appears...
+ SELL_ERR_ONLY_EMPTY_BAG = 6 // can only do with empty bags
};
enum ItemUpdateState
Index: src/game/Guild.h
===================================================================
--- src/game/Guild.h (working copy)
+++ src/game/Guild.h (working copy)
@@ -19,7 +19,7 @@
#ifndef MANGOSSERVER_GUILD_H
#define MANGOSSERVER_GUILD_H
-#define MAXRANKS 10
+#define GUILD_MAXRANKS 10
enum GuildDefaultRanks
{
Index: src/game/SharedDefines.h
===================================================================
--- src/game/SharedDefines.h (working copy)
+++ src/game/SharedDefines.h (working copy)
@@ -33,15 +33,18 @@
RACE_ORC = 2,
RACE_DWARF = 3,
RACE_NIGHTELF = 4,
- // if it needs be to official, it's actually SCOURGE acording to the story/.dbc
RACE_UNDEAD_PLAYER = 5,
RACE_TAUREN = 6,
RACE_GNOME = 7,
RACE_TROLL = 8,
- MAX_RACES = 9,
- // officially, this exists but was never taken into use.. neutral faction which could
- // learn some skills/spells from horde/alliance. maybe it'll be of some use later on.
- RACE_GOBLIN = 9
+ RACE_GOBLIN = 9,
+ RACE_BLOODELF = 10,
+ RACE_DRAENEI = 11,
+ RACE_FEL_ORC = 12,
+ RACE_NAGA = 13,
+ RACE_BROKEN = 14,
+ RACE_SKELETON = 15,
+ MAX_RACES = 16
};
// Class value is index in ChrClasses.dbc
@@ -69,7 +72,7 @@
REP_NEUTRAL = 3,
REP_FRIENDLY = 4,
REP_HONORED = 5,
- REP_REVERTED = 6,
+ REP_REVERED = 6,
REP_EXALTED = 7
};
@@ -82,6 +85,7 @@
MAP_INSTANCE = 1,
MAP_RAID = 2,
MAP_BATTLEGROUND = 3,
+ MAP_ARENA = 4
};
enum MoneyConstants
@@ -175,7 +179,8 @@
enum Language
{
- LANG_GLOBAL = 0, LANG_UNIVERSAL = 0,
+ LANG_GLOBAL = 0,
+ LANG_UNIVERSAL = 0,
LANG_ORCISH = 1,
LANG_DARNASSIAN = 2,
LANG_TAURAHE = 3,
@@ -183,15 +188,16 @@
LANG_COMMON = 7,
LANG_DEMONIC = 8,
LANG_TITAN = 9,
- LANG_THELASSIAN = 10,
+ LANG_THALASSIAN = 10,
LANG_DRACONIC = 11,
LANG_KALIMAG = 12,
LANG_GNOMISH = 13,
LANG_TROLL = 14,
- LANG_GUTTERSPEAK = 33
+ LANG_GUTTERSPEAK = 33,
+ LANG_DRAENEI = 35
};
-#define LANGUAGES_COUNT 15
+#define LANGUAGES_COUNT 17
enum Team
{
@@ -326,7 +332,21 @@
SPELL_EFFECT_APPLY_AURA_NEW = 119,
SPELL_EFFECT_TELEPORT_GRAVEYARD = 120,
SPELL_EFFECT_NORMALIZED_WEAPON_DMG = 121,
- TOTAL_SPELL_EFFECTS = 122
+ SPELL_EFFECT_122 = 122,
+ SPELL_EFFECT_123 = 123,
+ SPELL_EFFECT_124 = 124,
+ SPELL_EFFECT_125 = 125,
+ SPELL_EFFECT_126 = 126,
+ SPELL_EFFECT_127 = 127,
+ SPELL_EFFECT_128 = 128,
+ SPELL_EFFECT_129 = 129,
+ SPELL_EFFECT_130 = 130,
+ SPELL_EFFECT_131 = 131,
+ SPELL_EFFECT_132 = 132,
+ SPELL_EFFECT_133 = 133,
+ SPELL_EFFECT_134 = 134,
+ SPELL_EFFECT_135 = 135,
+ TOTAL_SPELL_EFFECTS = 136
};
enum CharacterStates
@@ -371,7 +391,11 @@
GAMEOBJECT_TYPE_FISHINGHOLE = 25,
GAMEOBJECT_TYPE_FLAGDROP = 26,
// Custom gametypes, can create problems at sending to client,
- GAMEOBJECT_TYPE_CUSTOM_TELEPORTER = 27
+ GAMEOBJECT_TYPE_CUSTOM_TELEPORTER = 27,
+ GAMEOBJECT_TYPE_LOTTERY_KIOSK = 28,
+ GAMEOBJECT_TYPE_CAPTURE_POINT = 29,
+ GAMEOBJECT_TYPE_AURA_GENERATOR = 30,
+ GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY = 31
};
enum TextEmote
@@ -528,8 +552,14 @@
TEXTEMOTE_FLOP = 224,
TEXTEMOTE_LOVE = 225,
TEXTEMOTE_MOO = 226,
+ TEXTEMOTE_OPENFIRE = 327,
+ TEXTEMOTE_FLIRT = 328,
+ TEXTEMOTE_JOKE = 329,
TEXTEMOTE_COMMEND = 243,
- TEXTEMOTE_JOKE = 329
+ TEXTEMOTE_WINK = 363,
+ TEXTEMOTE_PAT = 364,
+ TEXTEMOTE_SERIOUS = 365,
+ TEXTEMOTE_MOUNTSPECIAL = 366
};
enum Emote
@@ -605,11 +635,30 @@
EMOTE_ONESHOT_NO = 274,
EMOTE_ONESHOT_TRAIN = 275,
EMOTE_ONESHOT_LAND = 293,
+ EMOTE_STATE_AT_EASE = 313,
EMOTE_STATE_READY1H = 333,
- EMOTE_STATE_AT_EASE = 313,
EMOTE_STATE_SPELLKNEELSTART = 353,
EMOTE_STATE_SUBMERGED = 373,
- EMOTE_ONESHOT_SUBMERGE = 374
+ EMOTE_ONESHOT_SUBMERGE = 374,
+ EMOTE_STATE_READY2H = 375,
+ EMOTE_STATE_READYBOW = 376,
+ EMOTE_ONESHOT_MOUNTSPECIAL = 377,
+ EMOTE_STATE_TALK = 378,
+ EMOTE_STATE_FISHING = 379,
+ EMOTE_ONESHOT_FISHING = 380,
+ EMOTE_ONESHOT_LOOT = 381,
+ EMOTE_STATE_WHIRLWIND = 382,
+ EMOTE_STATE_DROWNED = 383,
+ EMOTE_STATE_HOLD_BOW = 384,
+ EMOTE_STATE_HOLD_RIFLE = 385,
+ EMOTE_STATE_HOLD_THROWN = 386,
+ EMOTE_ONESHOT_DROWN = 387,
+ EMOTE_ONESHOT_STOMP = 388,
+ EMOTE_ONESHOT_ATTACKOFF = 389,
+ EMOTE_ONESHOT_ATTACKOFFPIERCE = 390,
+ EMOTE_STATE_ROAR = 391,
+ EMOTE_STATE_LAUGH = 392,
+ EMOTE_ONESHOT_CREATURE_SPECIAL = 393
};
enum Anim
@@ -760,30 +809,69 @@
ANIM_SPRINT = 0x8F,
ANIM_IN_FIGHT = 0x90,
- FIRST_GAMEOBJECTANIMATION = 0x91,
- ANIM_GAMEOBJ_SPAWN = 0,
- ANIM_GAMEOBJ_CLOSED = 1,
- ANIM_GAMEOBJ_OPEN = 2,
- ANIM_GAMEOBJ_OPENED = 3,
- ANIM_GAMEOBJ_CLOSE = 4,
- ANIM_GAMEOBJ_DESTROY = 5,
- ANIM_GAMEOBJ_DESTROYED = 6,
- ANIM_GAMEOBJ_REBUILD = 7,
- ANIM_GAMEOBJ_CUSTOM0 = 8,
- ANIM_GAMEOBJ_CUSTOM1 = 9,
- ANIM_GAMEOBJ_CUSTOM2 = 10,
- ANIM_GAMEOBJ_CUSTOM3 = 11,
-
- FIRST_EFFECTANIMATION = 0x93,
- ANIM_EFFECT_STAND = 0,
- ANIM_EFFECT_HOLD = 1,
- ANIM_EFFECT_DECAY = 2,
-
- FIRST_ITEMANIMATION = 0x96,
- ANIM_ITEM_STAND = 0,
- ANIM_ITEM_INFLIGHT = 1,
- ANIM_ITEM_BOWPULL = 2,
- ANIM_ITEM_BOWRELEASE = 3
+ ANIM_GAMEOBJ_SPAWN = 145,
+ ANIM_GAMEOBJ_CLOSE = 146,
+ ANIM_GAMEOBJ_CLOSED = 147,
+ ANIM_GAMEOBJ_OPEN = 148,
+ ANIM_GAMEOBJ_OPENED = 149,
+ ANIM_GAMEOBJ_DESTROY = 150,
+ ANIM_GAMEOBJ_DESTROYED = 151,
+ ANIM_GAMEOBJ_REBUILD = 152,
+ ANIM_GAMEOBJ_CUSTOM0 = 153,
+ ANIM_GAMEOBJ_CUSTOM1 = 154,
+ ANIM_GAMEOBJ_CUSTOM2 = 155,
+ ANIM_GAMEOBJ_CUSTOM3 = 156,
+ ANIM_GAMEOBJ_DESPAWN = 157,
+ ANIM_HOLD = 158,
+ ANIM_DECAY = 159,
+ ANIM_BOWPULL = 160,
+ ANIM_BOWRELEASE = 161,
+ ANIM_SHIPSTART = 162,
+ ANIM_SHIPMOVEING = 163,
+ ANIM_SHIPSTOP = 164,
+ ANIM_GROUPARROW = 165,
+ ANIM_ARROW = 166,
+ ANIM_CORPSEARROW = 167,
+ ANIM_GUIDEARROW = 168,
+ ANIM_SWAY = 169,
+ ANIM_DRUIDCATPOUNCE = 170,
+ ANIM_DRUIDCATRIP = 171,
+ ANIM_DRUIDCATRAKE = 172,
+ ANIM_DRUIDCATRAVAGE = 173,
+ ANIM_DRUIDCATCLAW = 174,
+ ANIM_DRUIDCATCOWER = 175,
+ ANIM_DRUIDBEARSWIPE = 176,
+ ANIM_DRUIDBEARBITE = 177,
+ ANIM_DRUIDBEARMAUL = 178,
+ ANIM_DRUIDBEARBASH = 179,
+ ANIM_DRAGONTAIL = 180,
+ ANIM_DRAGONSTOMP = 181,
+ ANIM_DRAGONSPIT = 182,
+ ANIM_DRAGONSPITHOVER = 183,
+ ANIM_DRAGONSPITFLY = 184,
+ ANIM_EMOTEYES = 185,
+ ANIM_EMOTENO = 186,
+ ANIM_JUMPLANDRUN = 187,
+ ANIM_LOOTHOLD = 188,
+ ANIM_LOOTUP = 189,
+ ANIM_STANDHIGH = 190,
+ ANIM_IMPACT = 191,
+ ANIM_LIFTOFF = 192,
+ ANIM_HOVER = 193,
+ ANIM_SUCCUBUSENTICE = 194,
+ ANIM_EMOTETRAIN = 195,
+ ANIM_EMOTEDEAD = 196,
+ ANIM_EMOTEDANCEONCE = 197,
+ ANIM_DEFLECT = 198,
+ ANIM_EMOTEEATNOSHEATHE = 199,
+ ANIM_LAND = 200,
+ ANIM_SUBMERGE = 201,
+ ANIM_SUBMERGED = 202,
+ ANIM_CANNIBALIZE = 203,
+ ANIM_ARROWBIRTH = 204,
+ ANIM_GROURARROWBIRTH = 205,
+ ANIM_CORPSEARROWBIRTH = 206,
+ ANIM_GUIDEARROWBIRTH = 207
};
enum LockType
@@ -805,7 +893,8 @@
LOCKTYPE_GAHZRIDIAN = 15,
LOCKTYPE_BLASTING = 16,
LOCKTYPE_SLOW_OPEN = 17,
- LOCKTYPE_SLOW_CLOSE = 18
+ LOCKTYPE_SLOW_CLOSE = 18,
+ LOCKTYPE_FISHING = 19
};
enum TrainerType // this is important type for npcs!
@@ -827,7 +916,8 @@
CREATURE_TYPE_HUMANOID = 7,
CREATURE_TYPE_CRITTER = 8,
CREATURE_TYPE_MECHANICAL = 9,
- CREATURE_TYPE_UNKNOWN = 10
+ CREATURE_TYPE_NOTSPECIFIED = 10,
+ CREATURE_TYPE_TOTEM = 11
};
enum CreatureFamily
@@ -853,7 +943,15 @@
CREATURE_FAMILY_BAT = 24,
CREATURE_FAMILY_HYENA = 25,
CREATURE_FAMILY_OWL = 26,
- CREATURE_FAMILY_WIND_SERPENT = 27
+ CREATURE_FAMILY_WIND_SERPENT = 27,
+ CREATURE_FAMILY_REMOTE_CONTROL = 28,
+ CREATURE_FAMILY_FELGUARD = 29,
+ CREATURE_FAMILY_DRAGONHAWK = 30,
+ CREATURE_FAMILY_RAVAGER = 31,
+ CREATURE_FAMILY_WARP_STALKER = 32,
+ CREATURE_FAMILY_SPOREBAT = 33,
+ CREATURE_FAMILY_NETHER_RAY = 34,
+ CREATURE_FAMILY_SERPENT = 35
};
enum CreatureEliteType
@@ -871,7 +969,10 @@
QUEST_TYPE_LIFE = 21,
QUEST_TYPE_PVP = 41,
QUEST_TYPE_RAID = 62,
- QUEST_TYPE_DUNGEON = 81
+ QUEST_TYPE_DUNGEON = 81,
+ QUEST_TYPE_WORLD_EVENT = 82,
+ QUEST_TYPE_LEGENDARY = 83,
+ QUEST_TYPE_ESCORT = 84
};
enum QuestSort
@@ -902,7 +1003,14 @@
QUEST_SORT_TAILORING = 264,
QUEST_SORT_SPECIAL = 284,
QUEST_SORT_COOKING = 304,
- QUEST_SORT_FIRST_AID = 324
+ QUEST_SORT_FIRST_AID = 324,
+ QUEST_SORT_LEGENDARY = 344,
+ QUEST_SORT_DARKMOON_FAIRE = 364,
+ QUEST_SORT_AHN_QIRAJ_WAR = 365,
+ QUEST_SORT_LUNAR_FESTIVAL = 366,
+ QUEST_SORT_REPUTATION = 367,
+ QUEST_SORT_INVASION = 368,
+ QUEST_SORT_MIDSUMMER = 369
};
enum SkillType
@@ -987,21 +1095,17 @@
SKILL_SPEARS = 227,
SKILL_WANDS = 228,
SKILL_POLEARMS = 229,
- SKILL_ATTRIBUTE_ENCHANCEMENTS = 230,
- SKILL_SLAYER_TALENTS = 231,
- SKILL_MAGIC_TALENTS = 233,
- SKILL_DEFENSIVE_TALENTS = 234,
SKILL_PET_SCORPID = 236,
SKILL_ARCANE = 237,
SKILL_OPEN_LOCK = 242,
SKILL_PET_TURTLE = 251,
+ SKILL_ASSASSINATION = 253,
SKILL_FURY = 256,
SKILL_PROTECTION = 257,
SKILL_BEAST_TRAINING = 261,
SKILL_PROTECTION2 = 267,
SKILL_PET_TALENTS = 270,
SKILL_PLATE_MAIL = 293,
- SKILL_ASSASSINATION = 253,
SKILL_LANG_GNOMISH = 313,
SKILL_LANG_TROLL = 315,
SKILL_ENCHANTING = 333,
@@ -1012,17 +1116,11 @@
SKILL_RESTORATION = 374,
SKILL_ELEMENTAL_COMBAT = 375,
SKILL_SKINNING = 393,
+ SKILL_MAIL = 413,
SKILL_LEATHER = 414,
SKILL_CLOTH = 415,
- SKILL_MAIL = 413,
SKILL_SHIELD = 433,
SKILL_FIST_WEAPONS = 473,
- SKILL_TRACKING_BEAST = 513,
- SKILL_TRACKING_HUMANOID = 514,
- SKILL_TRACKING_DEMON = 516,
- SKILL_TRACKING_UNDEAD = 517,
- SKILL_TRACKING_DRAGON = 518,
- SKILL_TRACKING_ELEMENTAL = 519,
SKILL_RIDING_RAPTOR = 533,
SKILL_RIDING_MECHANOSTRIDER = 553,
SKILL_RIDING_UNDEAD_HORSE = 554,
@@ -1041,32 +1139,64 @@
SKILL_RACIAL_TROLL = 733,
SKILL_RACIAL_GNOME = 753,
SKILL_RACIAL_HUMAN = 754,
- SKILL_RIDING = 762
+ SKILL_JEWELCRAFTING = 755,
+ SKILL_RACIAL_BLOODELF = 756,
+ SKILL_PET_EVENT_RC = 758,
+ SKILL_LANG_DRAENEI = 759,
+ SKILL_RACIAL_DRAENEI = 760,
+ SKILL_PET_FELGUARD = 761,
+ SKILL_RIDING = 762,
+ SKILL_PET_DRAGONHAWK = 763,
+ SKILL_PET_NETHER_RAY = 764,
+ SKILL_PET_SPOREBAT = 765,
+ SKILL_PET_WARP_STALKER = 766,
+ SKILL_PET_RAVAGER = 767,
+ SKILL_PET_SERPENT = 768
};
-#define UNIT_DYNFLAG_LOOTABLE 0x0001
+enum TotemCategory
+{
+ TC_SKINNING_SKIFE = 1,
+ TC_EARTH_TOTEM = 2,
+ TC_AIR_TOTEM = 3,
+ TC_FIRE_TOTEM = 4,
+ TC_WATER_TOTEM = 5,
+ TC_COPPER_ROD = 6,
+ TC_SILVER_ROD = 7,
+ TC_GOLDEN_ROD = 8,
+ TC_TRUESILVER_ROD = 9,
+ TC_ARCANITE_ROD = 10,
+ TC_MINING_PICK = 11,
+ TC_PHILOSOPHERS_STONE = 12,
+ TC_BLACKSMITH_HAMMER = 13,
+ TC_ARCLIGHT_SPANNER = 14,
+ TC_GYROMATIC_MA = 15,
+ TC_MASTER_TOTEM = 21,
+ TC_FEL_IRON_ROD = 41,
+ TC_ADAMANTITE_ROD = 62,
+ TC_ETERNIUM_ROD = 63
+};
-#define UNIT_DYNFLAG_TRACK_UNIT 0x0002
+enum UnitDynFlags
+{
+ UNIT_DYNFLAG_LOOTABLE = 0x0001,
+ UNIT_DYNFLAG_TRACK_UNIT = 0x0002,
+ UNIT_DYNFLAG_OTHER_TAGGER = 0x0004,
+ UNIT_DYNFLAG_ROOTED = 0x0008,
+ UNIT_DYNFLAG_SPECIALINFO = 0x0010,
+ UNIT_DYNFLAG_DEAD = 0x0020
+};
-#define UNIT_DYNFLAG_OTHER_TAGGER 0x0004
+enum UnitFlags1
+{
+ UNIT_FLAG_NOT_ATTACKABLE = 0x0002,
+ UNIT_FLAG_ATTACKABLE = 0x0008,
+ UNIT_FLAG_NOT_ATTACKABLE_1 = 0x0080,
+ UNIT_FLAG_NON_PVP_PLAYER = (UNIT_FLAG_ATTACKABLE + UNIT_FLAG_NOT_ATTACKABLE_1),
+ UNIT_FLAG_ANIMATION_FROZEN = 0x0400,
+ UNIT_FLAG_WAR_PLAYER = 0x1000
+};
-#define UNIT_DYNFLAG_ROOTED 0x0008
-
-#define UNIT_DYNFLAG_SPECIALINFO 0x0010
-
-#define UNIT_DYNFLAG_DEAD 0x0020
-
-#define UNIT_FLAG_NOT_ATTACKABLE 0x0002
-
-#define UNIT_FLAG_ATTACKABLE 0x0008
-
-#define UNIT_FLAG_NOT_ATTACKABLE_1 0x0080
-
-#define UNIT_FLAG_NON_PVP_PLAYER (UNIT_FLAG_ATTACKABLE + UNIT_FLAG_NOT_ATTACKABLE_1)
-
-#define UNIT_FLAG_ANIMATION_FROZEN 0x0400
-#define UNIT_FLAG_WAR_PLAYER 0x1000
-
#define SPELL_ID_AGGRO 22764
enum WeatherTypes
Index: src/game/UpdateFields.h
===================================================================
--- src/game/UpdateFields.h (working copy)
+++ src/game/UpdateFields.h (working copy)
@@ -23,357 +23,339 @@
enum EObjectFields
{
- OBJECT_FIELD_GUID = 0x0000,
- OBJECT_FIELD_TYPE = 0x0002,
- OBJECT_FIELD_ENTRY = 0x0003,
- OBJECT_FIELD_SCALE_X = 0x0004,
- OBJECT_FIELD_PADDING = 0x0005,
- OBJECT_END = OBJECT_FIELD_PADDING + 1,
+ OBJECT_FIELD_GUID = 0x00, // Size:2
+ OBJECT_FIELD_TYPE = 0x02, // Size:1
+ OBJECT_FIELD_ENTRY = 0x03, // Size:1
+ OBJECT_FIELD_SCALE_X = 0x04, // Size:1
+ OBJECT_FIELD_PADDING = 0x05, // Size:1
+ OBJECT_END = 0x06,
};
enum EItemFields
{
- ITEM_FIELD_OWNER = OBJECT_END + 0x0000,
- ITEM_FIELD_CONTAINED = OBJECT_END + 0x0002,
- ITEM_FIELD_CREATOR = OBJECT_END + 0x0004,
- ITEM_FIELD_GIFTCREATOR = OBJECT_END + 0x0006,
- ITEM_FIELD_STACK_COUNT = OBJECT_END + 0x0008,
- ITEM_FIELD_DURATION = OBJECT_END + 0x0009,
- ITEM_FIELD_SPELL_CHARGES = OBJECT_END + 0x000A,
- ITEM_FIELD_FLAGS = OBJECT_END + 0x000F,
- ITEM_FIELD_ENCHANTMENT = OBJECT_END + 0x0010,
- ITEM_FIELD_PROPERTY_SEED = OBJECT_END + 0x0025,
- ITEM_FIELD_RANDOM_PROPERTIES_ID = OBJECT_END + 0x0026,
- ITEM_FIELD_ITEM_TEXT_ID = OBJECT_END + 0x0027,
- ITEM_FIELD_DURABILITY = OBJECT_END + 0x0028,
- ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x0029,
- ITEM_END = ITEM_FIELD_MAXDURABILITY + 1,
+ ITEM_FIELD_OWNER = OBJECT_END + 0x00, // Size:2
+ ITEM_FIELD_CONTAINED = OBJECT_END + 0x02, // Size:2
+ ITEM_FIELD_CREATOR = OBJECT_END + 0x04, // Size:2
+ ITEM_FIELD_GIFTCREATOR = OBJECT_END + 0x06, // Size:2
+ ITEM_FIELD_STACK_COUNT = OBJECT_END + 0x08, // Size:1
+ ITEM_FIELD_DURATION = OBJECT_END + 0x09, // Size:1
+ ITEM_FIELD_SPELL_CHARGES = OBJECT_END + 0x0A, // Size:5
+ ITEM_FIELD_SPELL_CHARGES_01 = OBJECT_END + 0x0B,
+ ITEM_FIELD_SPELL_CHARGES_02 = OBJECT_END + 0x0C,
+ ITEM_FIELD_SPELL_CHARGES_03 = OBJECT_END + 0x0D,
+ ITEM_FIELD_SPELL_CHARGES_04 = OBJECT_END + 0x0E,
+ ITEM_FIELD_FLAGS = OBJECT_END + 0x0F, // Size:1
+ ITEM_FIELD_ENCHANTMENT = OBJECT_END + 0x10, // count=33 This is 21 past
+ ITEM_FIELD_SOCKETS_ENCHANTMENT = OBJECT_END + 0x25, // + (3 sockets + 1 bonus) * 3 uint32 = 12
+ ITEM_FIELD_ENCHANTMENT_LAST = OBJECT_END + 0x30,
+ ITEM_FIELD_PROPERTY_SEED = OBJECT_END + 0x31, // Size:1
+ ITEM_FIELD_RANDOM_PROPERTIES_ID = OBJECT_END + 0x32, // Size:1
+ ITEM_FIELD_ITEM_TEXT_ID = OBJECT_END + 0x33, // Size:1
+ ITEM_FIELD_DURABILITY = OBJECT_END + 0x34, // Size:1
+ ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x35, // Size:1
+ ITEM_END = OBJECT_END + 0x36,
};
enum EContainerFields
{
- CONTAINER_FIELD_NUM_SLOTS = ITEM_END + 0x0000,
- CONTAINER_ALIGN_PAD = ITEM_END + 0x0001,
- CONTAINER_FIELD_SLOT_1 = ITEM_END + 0x0002,
- CONTAINER_END = CONTAINER_FIELD_SLOT_1 + 56,
+ CONTAINER_FIELD_NUM_SLOTS = ITEM_END + 0x00, // Size:1
+ CONTAINER_ALIGN_PAD = ITEM_END + 0x01, // Size:1
+ CONTAINER_FIELD_SLOT_1 = ITEM_END + 0x02, // count=72
+ CONTAINER_FIELD_SLOT_LAST = ITEM_END + 0x49,
+ CONTAINER_END = ITEM_END + 0x4A,
};
enum EUnitFields
{
- UNIT_FIELD_CHARM = OBJECT_END + 0x0000,
- UNIT_FIELD_SUMMON = OBJECT_END + 0x0002,
- UNIT_FIELD_CHARMEDBY = OBJECT_END + 0x0004,
- UNIT_FIELD_SUMMONEDBY = OBJECT_END + 0x0006,
- UNIT_FIELD_CREATEDBY = OBJECT_END + 0x0008,
- UNIT_FIELD_TARGET = OBJECT_END + 0x000A,
- UNIT_FIELD_PERSUADED = OBJECT_END + 0x000C,
- UNIT_FIELD_CHANNEL_OBJECT = OBJECT_END + 0x000E,
- UNIT_FIELD_HEALTH = OBJECT_END + 0x0010,
- UNIT_FIELD_POWER1 = OBJECT_END + 0x0011,
- UNIT_FIELD_POWER2 = OBJECT_END + 0x0012,
- UNIT_FIELD_POWER3 = OBJECT_END + 0x0013,
- UNIT_FIELD_POWER4 = OBJECT_END + 0x0014,
- UNIT_FIELD_POWER5 = OBJECT_END + 0x0015,
- UNIT_FIELD_MAXHEALTH = OBJECT_END + 0x0016,
- UNIT_FIELD_MAXPOWER1 = OBJECT_END + 0x0017,
- UNIT_FIELD_MAXPOWER2 = OBJECT_END + 0x0018,
- UNIT_FIELD_MAXPOWER3 = OBJECT_END + 0x0019,
- UNIT_FIELD_MAXPOWER4 = OBJECT_END + 0x001A,
- UNIT_FIELD_MAXPOWER5 = OBJECT_END + 0x001B,
- UNIT_FIELD_LEVEL = OBJECT_END + 0x001C,
- UNIT_FIELD_FACTIONTEMPLATE = OBJECT_END + 0x001D,
- UNIT_FIELD_BYTES_0 = OBJECT_END + 0x001E,
- UNIT_VIRTUAL_ITEM_SLOT_DISPLAY = OBJECT_END + 0x001F,
- UNIT_VIRTUAL_ITEM_INFO = OBJECT_END + 0x0022,
- UNIT_FIELD_FLAGS = OBJECT_END + 0x0028,
- UNIT_FIELD_AURA = OBJECT_END + 0x0029,
- UNIT_FIELD_AURAFLAGS = OBJECT_END + 0x0059,
- UNIT_FIELD_AURALEVELS = OBJECT_END + 0x005F,
- UNIT_FIELD_AURAAPPLICATIONS = OBJECT_END + 0x006B,
- UNIT_FIELD_AURASTATE = OBJECT_END + 0x0077,
- UNIT_FIELD_BASEATTACKTIME = OBJECT_END + 0x0078,
- UNIT_FIELD_RANGEDATTACKTIME = OBJECT_END + 0x007A,
- UNIT_FIELD_BOUNDINGRADIUS = OBJECT_END + 0x007B,
- UNIT_FIELD_COMBATREACH = OBJECT_END + 0x007C,
- UNIT_FIELD_DISPLAYID = OBJECT_END + 0x007D,
- UNIT_FIELD_NATIVEDISPLAYID = OBJECT_END + 0x007E,
- UNIT_FIELD_MOUNTDISPLAYID = OBJECT_END + 0x007F,
- UNIT_FIELD_MINDAMAGE = OBJECT_END + 0x0080,
- UNIT_FIELD_MAXDAMAGE = OBJECT_END + 0x0081,
- UNIT_FIELD_MINOFFHANDDAMAGE = OBJECT_END + 0x0082,
- UNIT_FIELD_MAXOFFHANDDAMAGE = OBJECT_END + 0x0083,
- UNIT_FIELD_BYTES_1 = OBJECT_END + 0x0084,
- UNIT_FIELD_PETNUMBER = OBJECT_END + 0x0085,
- UNIT_FIELD_PET_NAME_TIMESTAMP = OBJECT_END + 0x0086,
- UNIT_FIELD_PETEXPERIENCE = OBJECT_END + 0x0087,
- UNIT_FIELD_PETNEXTLEVELEXP = OBJECT_END + 0x0088,
- UNIT_DYNAMIC_FLAGS = OBJECT_END + 0x0089,
- UNIT_CHANNEL_SPELL = OBJECT_END + 0x008A,
- UNIT_MOD_CAST_SPEED = OBJECT_END + 0x008B,
- UNIT_CREATED_BY_SPELL = OBJECT_END + 0x008C,
- UNIT_NPC_FLAGS = OBJECT_END + 0x008D,
- UNIT_NPC_EMOTESTATE = OBJECT_END + 0x008E,
- UNIT_TRAINING_POINTS = OBJECT_END + 0x008F,
- UNIT_FIELD_STR = OBJECT_END + 0x0090,
- UNIT_FIELD_AGILITY = OBJECT_END + 0x0091,
- UNIT_FIELD_STAMINA = OBJECT_END + 0x0092,
- UNIT_FIELD_IQ = OBJECT_END + 0x0093,
- UNIT_FIELD_SPIRIT = OBJECT_END + 0x0094,
- UNIT_FIELD_RESISTANCES = OBJECT_END + 0x0095,
- UNIT_FIELD_BASE_MANA = OBJECT_END + 0x009C,
- UNIT_FIELD_BASE_HEALTH = OBJECT_END + 0x009D,
- UNIT_FIELD_BYTES_2 = OBJECT_END + 0x009E,
- UNIT_FIELD_ATTACK_POWER = OBJECT_END + 0x009F,
- UNIT_FIELD_ATTACK_POWER_MODS = OBJECT_END + 0x00A0,
- UNIT_FIELD_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x00A1,
- UNIT_FIELD_RANGED_ATTACK_POWER = OBJECT_END + 0x00A2,
- UNIT_FIELD_RANGED_ATTACK_POWER_MODS = OBJECT_END + 0x00A3,
- UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x00A4,
- UNIT_FIELD_MINRANGEDDAMAGE = OBJECT_END + 0x00A5,
- UNIT_FIELD_MAXRANGEDDAMAGE = OBJECT_END + 0x00A6,
- UNIT_FIELD_POWER_COST_MODIFIER = OBJECT_END + 0x00A7,
- UNIT_FIELD_POWER_COST_MULTIPLIER = OBJECT_END + 0x00AE,
- UNIT_FIELD_PADDING = OBJECT_END + 0x00B5,
- UNIT_END = UNIT_FIELD_PADDING + 1,
-};
+ UNIT_FIELD_CHARM = 0x00 + OBJECT_END, // Size:2
+ UNIT_FIELD_SUMMON = 0x02 + OBJECT_END, // Size:2
+ UNIT_FIELD_CHARMEDBY = 0x04 + OBJECT_END, // Size:2
+ UNIT_FIELD_SUMMONEDBY = 0x06 + OBJECT_END, // Size:2
+ UNIT_FIELD_CREATEDBY = 0x08 + OBJECT_END, // Size:2
+ UNIT_FIELD_TARGET = 0x0A + OBJECT_END, // Size:2
+ UNIT_FIELD_PERSUADED = 0x0C + OBJECT_END, // Size:2
+ UNIT_FIELD_CHANNEL_OBJECT = 0x0E + OBJECT_END, // Size:2
+ UNIT_FIELD_HEALTH = 0x10 + OBJECT_END, // Size:1
+ UNIT_FIELD_POWER1 = 0x11 + OBJECT_END, // Size:1
+ UNIT_FIELD_POWER2 = 0x12 + OBJECT_END, // Size:1
+ UNIT_FIELD_POWER3 = 0x13 + OBJECT_END, // Size:1
+ UNIT_FIELD_POWER4 = 0x14 + OBJECT_END, // Size:1
+ UNIT_FIELD_POWER5 = 0x15 + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXHEALTH = 0x16 + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXPOWER1 = 0x17 + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXPOWER2 = 0x18 + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXPOWER3 = 0x19 + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXPOWER4 = 0x1A + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXPOWER5 = 0x1B + OBJECT_END, // Size:1
+ UNIT_FIELD_LEVEL = 0x1C + OBJECT_END, // Size:1
+ UNIT_FIELD_FACTIONTEMPLATE = 0x1D + OBJECT_END, // Size:1
+ UNIT_FIELD_BYTES_0 = 0x1E + OBJECT_END, // Size:1
+ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY = 0x1F + OBJECT_END, // Size:3
+ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_01 = 0x20 + OBJECT_END,
+ UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_02 = 0x21 + OBJECT_END,
+ UNIT_VIRTUAL_ITEM_INFO = 0x22 + OBJECT_END, // Size:6
+ UNIT_VIRTUAL_ITEM_INFO_01 = 0x23 + OBJECT_END,
+ UNIT_VIRTUAL_ITEM_INFO_02 = 0x24 + OBJECT_END,
+ UNIT_VIRTUAL_ITEM_INFO_03 = 0x25 + OBJECT_END,
+ UNIT_VIRTUAL_ITEM_INFO_04 = 0x26 + OBJECT_END,
+ UNIT_VIRTUAL_ITEM_INFO_05 = 0x27 + OBJECT_END,
+ UNIT_FIELD_FLAGS = 0x28 + OBJECT_END, // Size:1
+ UNIT_FIELD_FLAGS_2 = 0x29 + OBJECT_END, // Size:1
+ UNIT_FIELD_AURA = 0x2A + OBJECT_END, // Size:56
+ UNIT_FIELD_AURA_LAST = 0x63 + OBJECT_END,
+ UNIT_FIELD_AURAFLAGS = 0x62 + OBJECT_END, // Size:7
+ UNIT_FIELD_AURAFLAGS_01 = 0x63 + OBJECT_END,
+ UNIT_FIELD_AURAFLAGS_02 = 0x64 + OBJECT_END,
+ UNIT_FIELD_AURAFLAGS_03 = 0x65 + OBJECT_END,
+ UNIT_FIELD_AURAFLAGS_04 = 0x66 + OBJECT_END,
+ UNIT_FIELD_AURAFLAGS_05 = 0x67 + OBJECT_END,
+ UNIT_FIELD_AURAFLAGS_06 = 0x68 + OBJECT_END,
+ UNIT_FIELD_AURALEVELS = 0x69 + OBJECT_END, // Size:14
+ UNIT_FIELD_AURALEVELS_LAST = 0x76 + OBJECT_END,
+ UNIT_FIELD_AURAAPPLICATIONS = 0x77 + OBJECT_END, // Size:14
+ UNIT_FIELD_AURAAPPLICATIONS_LAST = 0x84 + OBJECT_END,
+ UNIT_FIELD_AURASTATE = 0x85 + OBJECT_END, // Size:1
+ UNIT_FIELD_BASEATTACKTIME = 0x86 + OBJECT_END, // Size:2
+ UNIT_FIELD_BASEATTACKTIME_01 = 0x87 + OBJECT_END,
+ UNIT_FIELD_OFFHANDATTACKTIME = 0x87 + OBJECT_END, // Size:2
+ UNIT_FIELD_RANGEDATTACKTIME = 0x88 + OBJECT_END, // Size:1
+ UNIT_FIELD_BOUNDINGRADIUS = 0x89 + OBJECT_END, // Size:1
+ UNIT_FIELD_COMBATREACH = 0x8A + OBJECT_END, // Size:1
+ UNIT_FIELD_DISPLAYID = 0x8B + OBJECT_END, // Size:1
+ UNIT_FIELD_NATIVEDISPLAYID = 0x8C + OBJECT_END, // Size:1
+ UNIT_FIELD_MOUNTDISPLAYID = 0x8D + OBJECT_END, // Size:1
+ UNIT_FIELD_MINDAMAGE = 0x8E + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXDAMAGE = 0x8F + OBJECT_END, // Size:1
+ UNIT_FIELD_MINOFFHANDDAMAGE = 0x90 + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXOFFHANDDAMAGE = 0x91 + OBJECT_END, // Size:1
+ UNIT_FIELD_BYTES_1 = 0x92 + OBJECT_END, // Size:1
+ UNIT_FIELD_PETNUMBER = 0x93 + OBJECT_END, // Size:1
+ UNIT_FIELD_PET_NAME_TIMESTAMP = 0x94 + OBJECT_END, // Size:1
+ UNIT_FIELD_PETEXPERIENCE = 0x95 + OBJECT_END, // Size:1
+ UNIT_FIELD_PETNEXTLEVELEXP = 0x96 + OBJECT_END, // Size:1
+ UNIT_DYNAMIC_FLAGS = 0x97 + OBJECT_END, // Size:1
+ UNIT_CHANNEL_SPELL = 0x98 + OBJECT_END, // Size:1
+ UNIT_MOD_CAST_SPEED = 0x99 + OBJECT_END, // Size:1
+ UNIT_CREATED_BY_SPELL = 0x9A + OBJECT_END, // Size:1
+ UNIT_NPC_FLAGS = 0x9B + OBJECT_END, // Size:1
+ UNIT_NPC_EMOTESTATE = 0x9C + OBJECT_END, // Size:1
+ UNIT_TRAINING_POINTS = 0x9D + OBJECT_END, // Size:1
+ UNIT_FIELD_STAT0 = 0x9E + OBJECT_END, // Size:1
+ UNIT_FIELD_STAT1 = 0x9F + OBJECT_END, // Size:1
+ UNIT_FIELD_STAT2 = 0xA0 + OBJECT_END, // Size:1
+ UNIT_FIELD_STAT3 = 0xA1 + OBJECT_END, // Size:1
+ UNIT_FIELD_STAT4 = 0xA2 + OBJECT_END, // Size:1
+ UNIT_FIELD_POSSTAT0 = 0xA3 + OBJECT_END, // Size:1
+ UNIT_FIELD_POSSTAT1 = 0xA4 + OBJECT_END, // Size:1
+ UNIT_FIELD_POSSTAT2 = 0xA5 + OBJECT_END, // Size:1
+ UNIT_FIELD_POSSTAT3 = 0xA6 + OBJECT_END, // Size:1
+ UNIT_FIELD_POSSTAT4 = 0xA7 + OBJECT_END, // Size:1
+ UNIT_FIELD_NEGSTAT0 = 0xA8 + OBJECT_END, // Size:1
+ UNIT_FIELD_NEGSTAT1 = 0xA9 + OBJECT_END, // Size:1
+ UNIT_FIELD_NEGSTAT2 = 0xAA + OBJECT_END, // Size:1
+ UNIT_FIELD_NEGSTAT3 = 0xAB + OBJECT_END, // Size:1
+ UNIT_FIELD_NEGSTAT4 = 0xAC + OBJECT_END, // Size:1
+ UNIT_FIELD_RESISTANCES = 0xAD + OBJECT_END, // Size:7
+ UNIT_FIELD_RESISTANCES_01 = 0xAE + OBJECT_END,
+ UNIT_FIELD_RESISTANCES_02 = 0xAF + OBJECT_END,
+ UNIT_FIELD_RESISTANCES_03 = 0xB0 + OBJECT_END,
+ UNIT_FIELD_RESISTANCES_04 = 0xB1 + OBJECT_END,
+ UNIT_FIELD_RESISTANCES_05 = 0xB2 + OBJECT_END,
+ UNIT_FIELD_RESISTANCES_06 = 0xB3 + OBJECT_END,
+ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE = 0xB4 + OBJECT_END, // Size:7
+ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE = 0xBB + OBJECT_END, // Size:7
+ UNIT_FIELD_BASE_MANA = 0xC2 + OBJECT_END, // Size:1
+ UNIT_FIELD_BASE_HEALTH = 0xC3 + OBJECT_END, // Size:1
+ UNIT_FIELD_BYTES_2 = 0xC4 + OBJECT_END, // Size:1
+ UNIT_FIELD_ATTACK_POWER = 0xC5 + OBJECT_END, // Size:1
+ UNIT_FIELD_ATTACK_POWER_MODS = 0xC6 + OBJECT_END, // Size:1
+ UNIT_FIELD_ATTACK_POWER_MULTIPLIER = 0xC7 + OBJECT_END, // Size:1
+ UNIT_FIELD_RANGED_ATTACK_POWER = 0xC8 + OBJECT_END, // Size:1
+ UNIT_FIELD_RANGED_ATTACK_POWER_MODS = 0xC9 + OBJECT_END, // Size:1
+ UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = 0xCA + OBJECT_END, // Size:1
+ UNIT_FIELD_MINRANGEDDAMAGE = 0xCB + OBJECT_END, // Size:1
+ UNIT_FIELD_MAXRANGEDDAMAGE = 0xCC + OBJECT_END, // Size:1
+ UNIT_FIELD_POWER_COST_MODIFIER = 0xCD + OBJECT_END, // Size:7
+ UNIT_FIELD_POWER_COST_MODIFIER_01 = 0xCE + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MODIFIER_02 = 0xCF + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MODIFIER_03 = 0xD0 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MODIFIER_04 = 0xD1 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MODIFIER_05 = 0xD2 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MODIFIER_06 = 0xD3 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MULTIPLIER = 0xD4 + OBJECT_END, // Size:7
+ UNIT_FIELD_POWER_COST_MULTIPLIER_01 = 0xD5 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MULTIPLIER_02 = 0xD6 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MULTIPLIER_03 = 0xD7 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MULTIPLIER_04 = 0xD8 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MULTIPLIER_05 = 0xD9 + OBJECT_END,
+ UNIT_FIELD_POWER_COST_MULTIPLIER_06 = 0xDA + OBJECT_END,
+ UNIT_FIELD_PADDING = 0xDB + OBJECT_END,
+ UNIT_END = 0xDC + OBJECT_END,
-enum EPlayerFields
-{
- PLAYER_DUEL_ARBITER = UNIT_END + 0x0000,
- PLAYER_FLAGS = UNIT_END + 0x0002,
- PLAYER_GUILDID = UNIT_END + 0x0003,
- PLAYER_GUILDRANK = UNIT_END + 0x0004,
- PLAYER_BYTES = UNIT_END + 0x0005,
- PLAYER_BYTES_2 = UNIT_END + 0x0006,
- PLAYER_BYTES_3 = UNIT_END + 0x0007,
- PLAYER_DUEL_TEAM = UNIT_END + 0x0008,
- PLAYER_GUILD_TIMESTAMP = UNIT_END + 0x0009,
- PLAYER_QUEST_LOG_1_1 = UNIT_END + 0x000A,
- PLAYER_QUEST_LOG_1_2 = UNIT_END + 0x000B,
- PLAYER_QUEST_LOG_2_1 = UNIT_END + 0x000D,
- PLAYER_QUEST_LOG_2_2 = UNIT_END + 0x000E,
- PLAYER_QUEST_LOG_3_1 = UNIT_END + 0x0010,
- PLAYER_QUEST_LOG_3_2 = UNIT_END + 0x0011,
- PLAYER_QUEST_LOG_4_1 = UNIT_END + 0x0013,
- PLAYER_QUEST_LOG_4_2 = UNIT_END + 0x0014,
- PLAYER_QUEST_LOG_5_1 = UNIT_END + 0x0016,
- PLAYER_QUEST_LOG_5_2 = UNIT_END + 0x0017,
- PLAYER_QUEST_LOG_6_1 = UNIT_END + 0x0019,
- PLAYER_QUEST_LOG_6_2 = UNIT_END + 0x001A,
- PLAYER_QUEST_LOG_7_1 = UNIT_END + 0x001C,
- PLAYER_QUEST_LOG_7_2 = UNIT_END + 0x001D,
- PLAYER_QUEST_LOG_8_1 = UNIT_END + 0x001F,
- PLAYER_QUEST_LOG_8_2 = UNIT_END + 0x0020,
- PLAYER_QUEST_LOG_9_1 = UNIT_END + 0x0022,
- PLAYER_QUEST_LOG_9_2 = UNIT_END + 0x0023,
- PLAYER_QUEST_LOG_10_1 = UNIT_END + 0x0025,
- PLAYER_QUEST_LOG_10_2 = UNIT_END + 0x0026,
- PLAYER_QUEST_LOG_11_1 = UNIT_END + 0x0028,
- PLAYER_QUEST_LOG_11_2 = UNIT_END + 0x0029,
- PLAYER_QUEST_LOG_12_1 = UNIT_END + 0x002B,
- PLAYER_QUEST_LOG_12_2 = UNIT_END + 0x002C,
- PLAYER_QUEST_LOG_13_1 = UNIT_END + 0x002E,
- PLAYER_QUEST_LOG_13_2 = UNIT_END + 0x002F,
- PLAYER_QUEST_LOG_14_1 = UNIT_END + 0x0031,
- PLAYER_QUEST_LOG_14_2 = UNIT_END + 0x0032,
- PLAYER_QUEST_LOG_15_1 = UNIT_END + 0x0034,
- PLAYER_QUEST_LOG_15_2 = UNIT_END + 0x0035,
- PLAYER_QUEST_LOG_16_1 = UNIT_END + 0x0037,
- PLAYER_QUEST_LOG_16_2 = UNIT_END + 0x0038,
- PLAYER_QUEST_LOG_17_1 = UNIT_END + 0x003A,
- PLAYER_QUEST_LOG_17_2 = UNIT_END + 0x003B,
- PLAYER_QUEST_LOG_18_1 = UNIT_END + 0x003D,
- PLAYER_QUEST_LOG_18_2 = UNIT_END + 0x003E,
- PLAYER_QUEST_LOG_19_1 = UNIT_END + 0x0040,
- PLAYER_QUEST_LOG_19_2 = UNIT_END + 0x0041,
- PLAYER_QUEST_LOG_20_1 = UNIT_END + 0x0043,
- PLAYER_QUEST_LOG_20_2 = UNIT_END + 0x0044,
- PLAYER_VISIBLE_ITEM_1_CREATOR = UNIT_END + 0x0046,
- PLAYER_VISIBLE_ITEM_1_0 = UNIT_END + 0x0048,
- PLAYER_VISIBLE_ITEM_1_PROPERTIES = UNIT_END + 0x0050,
- PLAYER_VISIBLE_ITEM_1_PAD = UNIT_END + 0x0051,
- PLAYER_VISIBLE_ITEM_2_CREATOR = UNIT_END + 0x0052,
- PLAYER_VISIBLE_ITEM_2_0 = UNIT_END + 0x0054,
- PLAYER_VISIBLE_ITEM_2_PROPERTIES = UNIT_END + 0x005C,
- PLAYER_VISIBLE_ITEM_2_PAD = UNIT_END + 0x005D,
- PLAYER_VISIBLE_ITEM_3_CREATOR = UNIT_END + 0x005E,
- PLAYER_VISIBLE_ITEM_3_0 = UNIT_END + 0x0060,
- PLAYER_VISIBLE_ITEM_3_PROPERTIES = UNIT_END + 0x0068,
- PLAYER_VISIBLE_ITEM_3_PAD = UNIT_END + 0x0069,
- PLAYER_VISIBLE_ITEM_4_CREATOR = UNIT_END + 0x006A,
- PLAYER_VISIBLE_ITEM_4_0 = UNIT_END + 0x006C,
- PLAYER_VISIBLE_ITEM_4_PROPERTIES = UNIT_END + 0x0074,
- PLAYER_VISIBLE_ITEM_4_PAD = UNIT_END + 0x0075,
- PLAYER_VISIBLE_ITEM_5_CREATOR = UNIT_END + 0x0076,
- PLAYER_VISIBLE_ITEM_5_0 = UNIT_END + 0x0078,
- PLAYER_VISIBLE_ITEM_5_PROPERTIES = UNIT_END + 0x0080,
- PLAYER_VISIBLE_ITEM_5_PAD = UNIT_END + 0x0081,
- PLAYER_VISIBLE_ITEM_6_CREATOR = UNIT_END + 0x0082,
- PLAYER_VISIBLE_ITEM_6_0 = UNIT_END + 0x0084,
- PLAYER_VISIBLE_ITEM_6_PROPERTIES = UNIT_END + 0x008C,
- PLAYER_VISIBLE_ITEM_6_PAD = UNIT_END + 0x008D,
- PLAYER_VISIBLE_ITEM_7_CREATOR = UNIT_END + 0x008E,
- PLAYER_VISIBLE_ITEM_7_0 = UNIT_END + 0x0090,
- PLAYER_VISIBLE_ITEM_7_PROPERTIES = UNIT_END + 0x0098,
- PLAYER_VISIBLE_ITEM_7_PAD = UNIT_END + 0x0099,
- PLAYER_VISIBLE_ITEM_8_CREATOR = UNIT_END + 0x009A,
- PLAYER_VISIBLE_ITEM_8_0 = UNIT_END + 0x009C,
- PLAYER_VISIBLE_ITEM_8_PROPERTIES = UNIT_END + 0x00A4,
- PLAYER_VISIBLE_ITEM_8_PAD = UNIT_END + 0x00A5,
- PLAYER_VISIBLE_ITEM_9_CREATOR = UNIT_END + 0x00A6,
- PLAYER_VISIBLE_ITEM_9_0 = UNIT_END + 0x00A8,
- PLAYER_VISIBLE_ITEM_9_PROPERTIES = UNIT_END + 0x00B0,
- PLAYER_VISIBLE_ITEM_9_PAD = UNIT_END + 0x00B1,
- PLAYER_VISIBLE_ITEM_10_CREATOR = UNIT_END + 0x00B2,
- PLAYER_VISIBLE_ITEM_10_0 = UNIT_END + 0x00B4,
- PLAYER_VISIBLE_ITEM_10_PROPERTIES = UNIT_END + 0x00BC,
- PLAYER_VISIBLE_ITEM_10_PAD = UNIT_END + 0x00BD,
- PLAYER_VISIBLE_ITEM_11_CREATOR = UNIT_END + 0x00BE,
- PLAYER_VISIBLE_ITEM_11_0 = UNIT_END + 0x00C0,
- PLAYER_VISIBLE_ITEM_11_PROPERTIES = UNIT_END + 0x00C8,
- PLAYER_VISIBLE_ITEM_11_PAD = UNIT_END + 0x00C9,
- PLAYER_VISIBLE_ITEM_12_CREATOR = UNIT_END + 0x00CA,
- PLAYER_VISIBLE_ITEM_12_0 = UNIT_END + 0x00CC,
- PLAYER_VISIBLE_ITEM_12_PROPERTIES = UNIT_END + 0x00D4,
- PLAYER_VISIBLE_ITEM_12_PAD = UNIT_END + 0x00D5,
- PLAYER_VISIBLE_ITEM_13_CREATOR = UNIT_END + 0x00D6,
- PLAYER_VISIBLE_ITEM_13_0 = UNIT_END + 0x00D8,
- PLAYER_VISIBLE_ITEM_13_PROPERTIES = UNIT_END + 0x00E0,
- PLAYER_VISIBLE_ITEM_13_PAD = UNIT_END + 0x00E1,
- PLAYER_VISIBLE_ITEM_14_CREATOR = UNIT_END + 0x00E2,
- PLAYER_VISIBLE_ITEM_14_0 = UNIT_END + 0x00E4,
- PLAYER_VISIBLE_ITEM_14_PROPERTIES = UNIT_END + 0x00EC,
- PLAYER_VISIBLE_ITEM_14_PAD = UNIT_END + 0x00ED,
- PLAYER_VISIBLE_ITEM_15_CREATOR = UNIT_END + 0x00EE,
- PLAYER_VISIBLE_ITEM_15_0 = UNIT_END + 0x00F0,
- PLAYER_VISIBLE_ITEM_15_PROPERTIES = UNIT_END + 0x00F8,
- PLAYER_VISIBLE_ITEM_15_PAD = UNIT_END + 0x00F9,
- PLAYER_VISIBLE_ITEM_16_CREATOR = UNIT_END + 0x00FA,
- PLAYER_VISIBLE_ITEM_16_0 = UNIT_END + 0x00FC,
- PLAYER_VISIBLE_ITEM_16_PROPERTIES = UNIT_END + 0x0104,
- PLAYER_VISIBLE_ITEM_16_PAD = UNIT_END + 0x0105,
- PLAYER_VISIBLE_ITEM_17_CREATOR = UNIT_END + 0x0106,
- PLAYER_VISIBLE_ITEM_17_0 = UNIT_END + 0x0108,
- PLAYER_VISIBLE_ITEM_17_PROPERTIES = UNIT_END + 0x0110,
- PLAYER_VISIBLE_ITEM_17_PAD = UNIT_END + 0x0111,
- PLAYER_VISIBLE_ITEM_18_CREATOR = UNIT_END + 0x0112,
- PLAYER_VISIBLE_ITEM_18_0 = UNIT_END + 0x0114,
- PLAYER_VISIBLE_ITEM_18_PROPERTIES = UNIT_END + 0x011C,
- PLAYER_VISIBLE_ITEM_18_PAD = UNIT_END + 0x011D,
- PLAYER_VISIBLE_ITEM_19_CREATOR = UNIT_END + 0x011E,
- PLAYER_VISIBLE_ITEM_19_0 = UNIT_END + 0x0120,
- PLAYER_VISIBLE_ITEM_19_PROPERTIES = UNIT_END + 0x0128,
- PLAYER_VISIBLE_ITEM_19_PAD = UNIT_END + 0x0129,
- PLAYER_FIELD_INV_SLOT_HEAD = UNIT_END + 0x012A,
- PLAYER_FIELD_PACK_SLOT_1 = UNIT_END + 0x0158,
- PLAYER_FIELD_BANK_SLOT_1 = UNIT_END + 0x0178,
- PLAYER_FIELD_BANKBAG_SLOT_1 = UNIT_END + 0x01A8,
- PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = UNIT_END + 0x01B4,
- PLAYER_FIELD_KEYRING_SLOT_1 = UNIT_END + 0x01CC,
- PLAYER_FARSIGHT = UNIT_END + 0x020C,
- PLAYER_FIELD_COMBO_TARGET = UNIT_END + 0x020E,
- PLAYER_XP = UNIT_END + 0x0210,
- PLAYER_NEXT_LEVEL_XP = UNIT_END + 0x0211,
- PLAYER_SKILL_INFO_1_1 = UNIT_END + 0x0212,
- PLAYER_CHARACTER_POINTS1 = UNIT_END + 0x0392,
- PLAYER_CHARACTER_POINTS2 = UNIT_END + 0x0393,
- PLAYER_TRACK_CREATURES = UNIT_END + 0x0394,
- PLAYER_TRACK_RESOURCES = UNIT_END + 0x0395,
- PLAYER_BLOCK_PERCENTAGE = UNIT_END + 0x0396,
- PLAYER_DODGE_PERCENTAGE = UNIT_END + 0x0397,
- PLAYER_PARRY_PERCENTAGE = UNIT_END + 0x0398,
- PLAYER_CRIT_PERCENTAGE = UNIT_END + 0x0399,
- PLAYER_RANGED_CRIT_PERCENTAGE = UNIT_END + 0x039A,
- PLAYER_EXPLORED_ZONES_1 = UNIT_END + 0x039B,
- PLAYER_REST_STATE_EXPERIENCE = UNIT_END + 0x03DB,
- PLAYER_FIELD_COINAGE = UNIT_END + 0x03DC,
- PLAYER_FIELD_POSSTAT0 = UNIT_END + 0x03DD,
- PLAYER_FIELD_POSSTAT1 = UNIT_END + 0x03DE,
- PLAYER_FIELD_POSSTAT2 = UNIT_END + 0x03DF,
- PLAYER_FIELD_POSSTAT3 = UNIT_END + 0x03E0,
- PLAYER_FIELD_POSSTAT4 = UNIT_END + 0x03E1,
- PLAYER_FIELD_NEGSTAT0 = UNIT_END + 0x03E2,
- PLAYER_FIELD_NEGSTAT1 = UNIT_END + 0x03E3,
- PLAYER_FIELD_NEGSTAT2 = UNIT_END + 0x03E4,
- PLAYER_FIELD_NEGSTAT3 = UNIT_END + 0x03E5,
- PLAYER_FIELD_NEGSTAT4 = UNIT_END + 0x03E6,
- PLAYER_FIELD_RESISTANCEBUFFMODSPOSITIVE = UNIT_END + 0x03E7,
- PLAYER_FIELD_RESISTANCEBUFFMODSNEGATIVE = UNIT_END + 0x03EE,
- PLAYER_FIELD_MOD_DAMAGE_DONE_POS = UNIT_END + 0x03F5,
- PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UNIT_END + 0x03FC,
- PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UNIT_END + 0x0403,
- PLAYER_FIELD_BYTES = UNIT_END + 0x040A,
- PLAYER_AMMO_ID = UNIT_END + 0x040B,
- PLAYER_SELF_RES_SPELL = UNIT_END + 0x040C,
- PLAYER_FIELD_PVP_MEDALS = UNIT_END + 0x040D,
- PLAYER_FIELD_BUYBACK_PRICE_1 = UNIT_END + 0x040E,
- PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UNIT_END + 0x041A,
- PLAYER_FIELD_SESSION_KILLS = UNIT_END + 0x0426,
- PLAYER_FIELD_YESTERDAY_KILLS = UNIT_END + 0x0427,
- PLAYER_FIELD_LAST_WEEK_KILLS = UNIT_END + 0x0428,
- PLAYER_FIELD_THIS_WEEK_KILLS = UNIT_END + 0x0429,
- PLAYER_FIELD_THIS_WEEK_CONTRIBUTION = UNIT_END + 0x042A,
- PLAYER_FIELD_LIFETIME_HONORABLE_KILLS = UNIT_END + 0x042B,
- PLAYER_FIELD_LIFETIME_DISHONORABLE_KILLS = UNIT_END + 0x042C,
- PLAYER_FIELD_YESTERDAY_CONTRIBUTION = UNIT_END + 0x042D,
- PLAYER_FIELD_LAST_WEEK_CONTRIBUTION = UNIT_END + 0x042E,
- PLAYER_FIELD_LAST_WEEK_RANK = UNIT_END + 0x042F,
- PLAYER_FIELD_BYTES2 = UNIT_END + 0x0430,
- PLAYER_FIELD_WATCHED_FACTION_INDEX = UNIT_END + 0x0431,
- PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x0432,
- PLAYER_END = PLAYER_FIELD_COMBAT_RATING_1 + 20,
+ PLAYER_DUEL_ARBITER = 0x00 + UNIT_END, // Size:2
+ PLAYER_FLAGS = 0x02 + UNIT_END, // Size:1
+ PLAYER_GUILDID = 0x03 + UNIT_END, // Size:1
+ PLAYER_GUILDRANK = 0x04 + UNIT_END, // Size:1
+ PLAYER_BYTES = 0x05 + UNIT_END, // Size:1
+ PLAYER_BYTES_2 = 0x06 + UNIT_END, // Size:1
+ PLAYER_BYTES_3 = 0x07 + UNIT_END, // Size:1
+ PLAYER_DUEL_TEAM = 0x08 + UNIT_END, // Size:1
+ PLAYER_GUILD_TIMESTAMP = 0x09 + UNIT_END, // Size:1
+ PLAYER_QUEST_LOG_1_1 = 0x0A + UNIT_END, // count = 25
+ PLAYER_QUEST_LOG_1_2 = 0x0B + UNIT_END,
+ PLAYER_QUEST_LOG_1_3 = 0x0C + UNIT_END,
+ PLAYER_QUEST_LOG_LAST_1 = 0x52 + UNIT_END,
+ PLAYER_QUEST_LOG_LAST_2 = 0x53 + UNIT_END,
+ PLAYER_QUEST_LOG_LAST_3 = 0x54 + UNIT_END,
+ PLAYER_VISIBLE_ITEM_1_CREATOR = 0x55 + UNIT_END, // Size:2, count = 19
+ PLAYER_VISIBLE_ITEM_1_0 = 0x57 + UNIT_END, // Size:12
+ PLAYER_VISIBLE_ITEM_1_PROPERTIES = 0x63 + UNIT_END, // Size:1
+ PLAYER_VISIBLE_ITEM_1_PAD = 0x64 + UNIT_END, // Size:1
+ PLAYER_VISIBLE_ITEM_LAST_CREATOR = 0x175 + UNIT_END,
+ PLAYER_VISIBLE_ITEM_LAST_0 = 0x177 + UNIT_END,
+ PLAYER_VISIBLE_ITEM_LAST_PROPERTIES = 0x183 + UNIT_END,
+ PLAYER_VISIBLE_ITEM_LAST_PAD = 0x184 + UNIT_END,
+ PLAYER_CHOSEN_TITLE = 0x185 + UNIT_END, // Size:1
+ PLAYER_FIELD_INV_SLOT_HEAD = 0x186 + UNIT_END, // Size:46
+ PLAYER_FIELD_PACK_SLOT_1 = 0x1B4 + UNIT_END, // Size:32
+ PLAYER_FIELD_PACK_SLOT_LAST = 0x1D3 + UNIT_END,
+ PLAYER_FIELD_BANK_SLOT_1 = 0x1D4 + UNIT_END, // Size:56
+ PLAYER_FIELD_BANK_SLOT_LAST = 0x20B + UNIT_END,
+ PLAYER_FIELD_BANKBAG_SLOT_1 = 0x20C + UNIT_END, // Size:14
+ PLAYER_FIELD_BANKBAG_SLOT_LAST = 0x219 + UNIT_END,
+ PLAYER_FIELD_VENDORBUYBACK_SLOT_1 = 0x21A + UNIT_END, // Size:24
+ PLAYER_FIELD_VENDORBUYBACK_SLOT_LAST = 0x231 + UNIT_END,
+ PLAYER_FIELD_KEYRING_SLOT_1 = 0x232 + UNIT_END, // Size:64
+ PLAYER_FIELD_KEYRING_SLOT_LAST = 0x271 + UNIT_END,
+ PLAYER_FARSIGHT = 0x272 + UNIT_END, // Size:2
+ PLAYER_FIELD_COMBO_TARGET = 0x274 + UNIT_END, // Size:2
+ PLAYER_FIELD_KNOWN_TITLES = 0x276 + UNIT_END, // Size:2
+ PLAYER_XP = 0x278 + UNIT_END, // Size:1
+ PLAYER_NEXT_LEVEL_XP = 0x279 + UNIT_END, // Size:1
+ PLAYER_SKILL_INFO_1_1 = 0x27A + UNIT_END, // Size:384
+ PLAYER_CHARACTER_POINTS1 = 0x3FA + UNIT_END, // Size:1
+ PLAYER_CHARACTER_POINTS2 = 0x3FB + UNIT_END, // Size:1
+ PLAYER_TRACK_CREATURES = 0x3FC + UNIT_END, // Size:1
+ PLAYER_TRACK_RESOURCES = 0x3FD + UNIT_END, // Size:1
+ PLAYER_BLOCK_PERCENTAGE = 0x3FE + UNIT_END, // Size:1
+ PLAYER_DODGE_PERCENTAGE = 0x3FF + UNIT_END, // Size:1
+ PLAYER_PARRY_PERCENTAGE = 0x400 + UNIT_END, // Size:1
+ PLAYER_CRIT_PERCENTAGE = 0x401 + UNIT_END, // Size:1
+ PLAYER_RANGED_CRIT_PERCENTAGE = 0x402 + UNIT_END, // Size:1
+ PLAYER_OFFHAND_CRIT_PERCENTAGE = 0x403 + UNIT_END, // Size:1
+ PLAYER_SPELL_CRIT_PERCENTAGE1 = 0x404 + UNIT_END, // Size:7
+ PLAYER_HOLY_SPELL_CRIT_PERCENTAGE = 0x405 + UNIT_END, // custom
+ PLAYER_FIRE_SPELL_CRIT_PERCENTAGE = 0x406 + UNIT_END, // custom
+ PLAYER_NATURE_SPELL_CRIT_PERCENTAGE = 0x407 + UNIT_END, // custom
+ PLAYER_FROST_SPELL_CRIT_PERCENTAGE = 0x408 + UNIT_END, // custom
+ PLAYER_SHADOW_SPELL_CRIT_PERCENTAGE = 0x409 + UNIT_END, // custom
+ PLAYER_ARCANE_SPELL_CRIT_PERCENTAGE = 0x40A + UNIT_END, // custom
+ PLAYER_EXPLORED_ZONES_1 = 0x40B + UNIT_END, // Size:64
+ PLAYER_REST_STATE_EXPERIENCE = 0x44B + UNIT_END, // Size:1
+ PLAYER_FIELD_COINAGE = 0x44C + UNIT_END, // Size:1
+ PLAYER_FIELD_MOD_DAMAGE_DONE_POS = 0x44D + UNIT_END, // Size:7
+ PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = 0x454 + UNIT_END, // Size:7
+ PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = 0x45B + UNIT_END, // Size:7
+ PLAYER_FIELD_MOD_HEALING_DONE_POS = 0x462 + UNIT_END, // Size:1
+ PLAYER_FIELD_MOD_TARGET_RESISTANCE = 0x463 + UNIT_END, // Size:1
+ PLAYER_FIELD_BYTES = 0x464 + UNIT_END, // Size:1
+ PLAYER_AMMO_ID = 0x465 + UNIT_END, // Size:1
+ PLAYER_SELF_RES_SPELL = 0x466 + UNIT_END, // Size:1
+ PLAYER_FIELD_PVP_MEDALS = 0x467 + UNIT_END, // Size:1
+ PLAYER_FIELD_BUYBACK_PRICE_1 = 0x468 + UNIT_END, // count=12
+ PLAYER_FIELD_BUYBACK_PRICE_LAST = 0x473 + UNIT_END,
+ PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = 0x474 + UNIT_END, // count=12
+ PLAYER_FIELD_BUYBACK_TIMESTAMP_LAST = 0x47A + UNIT_END,
+ PLAYER_FIELD_KILLS = 0x480 + UNIT_END, // Size:1 // ((uint16)kills_today<<16) | (uint16)kills_yesterday)
+ PLAYER_FIELD_HONOR_TODAY = 0x481 + UNIT_END, // Size:1
+ PLAYER_FIELD_HONOR_YESTERDAY = 0x482 + UNIT_END, // Size:1
+ PLAYER_FIELD_KILLS_LIFETIME = 0x483 + UNIT_END, // Size:1
+ PLAYER_FIELD_BYTES2 = 0x484 + UNIT_END, // Size:1
+ PLAYER_FIELD_WATCHED_FACTION_INDEX = 0x485 + UNIT_END, // Size:1
+ PLAYER_FIELD_COMBAT_RATING_1 = 0x486 + UNIT_END, // Size:23
+ PLAYER_FIELD_ALL_WEAPONS_SKILL_RATING = 0x486 + UNIT_END, // custom
+ PLAYER_FIELD_DEFENCE_RATING = 0x487 + UNIT_END, // custom
+ PLAYER_FIELD_DODGE_RATING = 0x488 + UNIT_END, // custom
+ PLAYER_FIELD_PARRY_RATING = 0x489 + UNIT_END, // custom
+ PLAYER_FIELD_BLOCK_RATING = 0x48A + UNIT_END, // custom
+ PLAYER_FIELD_MELEE_HIT_RATING = 0x48B + UNIT_END, // custom
+ PLAYER_FIELD_RANGED_HIT_RATING = 0x48C + UNIT_END, // custom
+ PLAYER_FIELD_SPELL_HIT_RATING = 0x48D + UNIT_END, // custom
+ PLAYER_FIELD_MELEE_CRIT_RATING = 0x48E + UNIT_END, // custom
+ PLAYER_FIELD_RANGED_CRIT_RATING = 0x48F + UNIT_END, // custom
+ PLAYER_FIELD_SPELL_CRIT_RATING = 0x490 + UNIT_END, // custom
+ PLAYER_FIELD_HIT_RATING = 0x491 + UNIT_END, // unsure, was PLAYER_FIELD_UNK1_RATING
+ PLAYER_FIELD_CRIT_RATING = 0x492 + UNIT_END, // unsure, was PLAYER_FIELD_UNK2_RATING
+ PLAYER_FIELD_UNK3_RATING = 0x493 + UNIT_END, // custom
+ PLAYER_FIELD_UNK4_RATING = 0x494 + UNIT_END, // custom
+ PLAYER_FIELD_UNK5_RATING = 0x495 + UNIT_END, // custom
+ PLAYER_FIELD_RESILIENCE_RATING = 0x496 + UNIT_END, // custom
+ PLAYER_FIELD_MELEE_HASTE_RATING = 0x497 + UNIT_END, // custom
+ PLAYER_FIELD_RANGED_HASTE_RATING = 0x498 + UNIT_END, // custom
+ PLAYER_FIELD_UNK6_RATING = 0x499 + UNIT_END, // custom
+ PLAYER_FIELD_MELEE_WEAPON_SKILL_RATING = 0x49A + UNIT_END, // custom
+ PLAYER_FIELD_UNK7_RATING = 0x49B + UNIT_END, // custom
+ PLAYER_FIELD_RANGED_WEAPON_SKILL_RATING = 0x49C + UNIT_END, // custom
+ PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = 0x49D + UNIT_END, // Size:9
+ PLAYER_FIELD_HONOR_CURRENCY = 0x4A6 + UNIT_END, // Size:1
+ PLAYER_FIELD_ARENA_CURRENCY = 0x4A7 + UNIT_END, // Size:1
+ PLAYER_FIELD_MOD_MANA_REGEN = 0x4A8 + UNIT_END, // Size:1
+ PLAYER_FIELD_MOD_MANA_REGEN_INTERRUPT = 0x4A9 + UNIT_END, // Size:1
+ PLAYER_FIELD_MAX_LEVEL = 0x4AA + UNIT_END, // Size:1
+ PLAYER_FIELD_PADDING = 0x4AB + UNIT_END, // Size:1
+ PLAYER_END = 0x4AC + UNIT_END,
};
enum EGameObjectFields
{
- OBJECT_FIELD_CREATED_BY = OBJECT_END + 0x0000,
- GAMEOBJECT_DISPLAYID = OBJECT_END + 0x0002,
- GAMEOBJECT_FLAGS = OBJECT_END + 0x0003,
- GAMEOBJECT_ROTATION = OBJECT_END + 0x0004,
- GAMEOBJECT_STATE = OBJECT_END + 0x0008,
- GAMEOBJECT_POS_X = OBJECT_END + 0x0009,
- GAMEOBJECT_POS_Y = OBJECT_END + 0x000A,
- GAMEOBJECT_POS_Z = OBJECT_END + 0x000B,
- GAMEOBJECT_FACING = OBJECT_END + 0x000C,
- GAMEOBJECT_DYN_FLAGS = OBJECT_END + 0x000D,
- GAMEOBJECT_FACTION = OBJECT_END + 0x000E,
- GAMEOBJECT_TYPE_ID = OBJECT_END + 0x000F,
- GAMEOBJECT_LEVEL = OBJECT_END + 0x0010,
- GAMEOBJECT_ARTKIT = OBJECT_END + 0x0011,
- GAMEOBJECT_ANIMPROGRESS = OBJECT_END + 0x0012,
- GAMEOBJECT_PADDING = OBJECT_END + 0x0013,
- GAMEOBJECT_END = GAMEOBJECT_PADDING + 1,
+ OBJECT_FIELD_CREATED_BY = OBJECT_END + 0x00,
+ GAMEOBJECT_DISPLAYID = OBJECT_END + 0x02,
+ GAMEOBJECT_FLAGS = OBJECT_END + 0x03,
+ GAMEOBJECT_ROTATION = OBJECT_END + 0x04,
+ GAMEOBJECT_STATE = OBJECT_END + 0x08,
+ GAMEOBJECT_POS_X = OBJECT_END + 0x09,
+ GAMEOBJECT_POS_Y = OBJECT_END + 0x0A,
+ GAMEOBJECT_POS_Z = OBJECT_END + 0x0B,
+ GAMEOBJECT_FACING = OBJECT_END + 0x0C,
+ GAMEOBJECT_DYN_FLAGS = OBJECT_END + 0x0D,
+ GAMEOBJECT_FACTION = OBJECT_END + 0x0E,
+ GAMEOBJECT_TYPE_ID = OBJECT_END + 0x0F,
+ GAMEOBJECT_LEVEL = OBJECT_END + 0x10,
+ GAMEOBJECT_ARTKIT = OBJECT_END + 0x11,
+ GAMEOBJECT_ANIMPROGRESS = OBJECT_END + 0x12,
+ GAMEOBJECT_PADDING = OBJECT_END + 0x13,
+ GAMEOBJECT_END = OBJECT_END + 0x14,
};
enum EDynamicObjectFields
{
- DYNAMICOBJECT_CASTER = OBJECT_END + 0x0000,
- DYNAMICOBJECT_BYTES = OBJECT_END + 0x0002,
- DYNAMICOBJECT_SPELLID = OBJECT_END + 0x0003,
- DYNAMICOBJECT_RADIUS = OBJECT_END + 0x0004,
- DYNAMICOBJECT_POS_X = OBJECT_END + 0x0005,
- DYNAMICOBJECT_POS_Y = OBJECT_END + 0x0006,
- DYNAMICOBJECT_POS_Z = OBJECT_END + 0x0007,
- DYNAMICOBJECT_FACING = OBJECT_END + 0x0008,
- DYNAMICOBJECT_PAD = OBJECT_END + 0x0009,
- DYNAMICOBJECT_END = DYNAMICOBJECT_PAD + 1,
+ DYNAMICOBJECT_CASTER = OBJECT_END + 0x00,
+ DYNAMICOBJECT_BYTES = OBJECT_END + 0x02,
+ DYNAMICOBJECT_SPELLID = OBJECT_END + 0x03,
+ DYNAMICOBJECT_RADIUS = OBJECT_END + 0x04,
+ DYNAMICOBJECT_POS_X = OBJECT_END + 0x05,
+ DYNAMICOBJECT_POS_Y = OBJECT_END + 0x06,
+ DYNAMICOBJECT_POS_Z = OBJECT_END + 0x07,
+ DYNAMICOBJECT_FACING = OBJECT_END + 0x08,
+ DYNAMICOBJECT_PAD = OBJECT_END + 0x09,
+ DYNAMICOBJECT_END = OBJECT_END + 0x0A,
};
enum ECorpseFields
{
- CORPSE_FIELD_OWNER = OBJECT_END + 0x0000,
- CORPSE_FIELD_FACING = OBJECT_END + 0x0002,
- CORPSE_FIELD_POS_X = OBJECT_END + 0x0003,
- CORPSE_FIELD_POS_Y = OBJECT_END + 0x0004,
- CORPSE_FIELD_POS_Z = OBJECT_END + 0x0005,
- CORPSE_FIELD_DISPLAY_ID = OBJECT_END + 0x0006,
- CORPSE_FIELD_ITEM = OBJECT_END + 0x0007,
- CORPSE_FIELD_BYTES_1 = OBJECT_END + 0x001A,
- CORPSE_FIELD_BYTES_2 = OBJECT_END + 0x001B,
- CORPSE_FIELD_GUILD = OBJECT_END + 0x001C,
- CORPSE_FIELD_FLAGS = OBJECT_END + 0x001D,
- CORPSE_FIELD_DYNAMIC_FLAGS = OBJECT_END + 0x001E,
- CORPSE_FIELD_PAD = OBJECT_END + 0x001F,
- CORPSE_END = CORPSE_FIELD_PAD + 1,
+ CORPSE_FIELD_OWNER = OBJECT_END + 0x00,
+ CORPSE_FIELD_FACING = OBJECT_END + 0x02,
+ CORPSE_FIELD_POS_X = OBJECT_END + 0x03,
+ CORPSE_FIELD_POS_Y = OBJECT_END + 0x04,
+ CORPSE_FIELD_POS_Z = OBJECT_END + 0x05,
+ CORPSE_FIELD_DISPLAY_ID = OBJECT_END + 0x06,
+ CORPSE_FIELD_ITEM = OBJECT_END + 0x07, // 19
+ CORPSE_FIELD_BYTES_1 = OBJECT_END + 0x1A,
+ CORPSE_FIELD_BYTES_2 = OBJECT_END + 0x1B,
+ CORPSE_FIELD_GUILD = OBJECT_END + 0x1C,
+ CORPSE_FIELD_FLAGS = OBJECT_END + 0x1D,
+ CORPSE_FIELD_DYNAMIC_FLAGS = OBJECT_END + 0x1E,
+ CORPSE_FIELD_PAD = OBJECT_END + 0x1F,
+ CORPSE_END = OBJECT_END + 0x20,
};
#endif
Index: src/game/SpellAuraDefines.h
===================================================================
--- src/game/SpellAuraDefines.h (working copy)
+++ src/game/SpellAuraDefines.h (working copy)
@@ -19,7 +19,7 @@
#define MANGOS_SPELLAURADEFINES_H
#define MAX_AURAS 56
-#define MAX_POSITIVE_AURAS 32 //24
+#define MAX_POSITIVE_AURAS 40
enum AURA_FLAGS
{
@@ -185,23 +185,79 @@
SPELL_AURA_PERSUADED = 146,
SPELL_AURA_ADD_CREATURE_IMMUNITY = 147,
SPELL_AURA_RETAIN_COMBO_POINTS = 148,
- SPELL_AURA_RESIST_PUSHBACK = 149 , // Resist Pushback
- SPELL_AURA_MOD_SHIELD_BLOCK_PCT = 150 , // Mod Shield Block %
- SPELL_AURA_TRACK_STEALTHED = 151 , // Track Stealthed
- SPELL_AURA_MOD_DETECTED_RANGE = 152 , // Mod Detected Range
- SPELL_AURA_SPLIT_DAMAGE_FLAT = 153 , // Split Damage Flat
- SPELL_AURA_MOD_STEALTH_LEVEL = 154 , // Stealth Level Modifier
- SPELL_AURA_MOD_WATER_BREATHING = 155 , // Mod Water Breathing
- SPELL_AURA_MOD_REPUTATION_GAIN = 156 , // Mod Reputation Gain
- SPELL_AURA_PET_DAMAGE_MULTI = 157 , // Mod Pet Damage
- SPELL_AURA_MOD_SHIELD_BLOCK = 158,
- SPELL_AURA_NO_PVP_CREDIT = 159,
+ SPELL_AURA_RESIST_PUSHBACK = 149, // Resist Pushback
+ SPELL_AURA_MOD_SHIELD_BLOCK_PCT = 150,
+ SPELL_AURA_TRACK_STEALTHED = 151, // Track Stealthed
+ SPELL_AURA_MOD_DETECTED_RANGE = 152, // Mod Detected Range
+ SPELL_AURA_SPLIT_DAMAGE_FLAT = 153, // Split Damage Flat
+ SPELL_AURA_MOD_STEALTH_LEVEL = 154, // Stealth Level Modifier
+ SPELL_AURA_MOD_WATER_BREATHING = 155, // Mod Water Breathing
+ SPELL_AURA_MOD_REPUTATION_GAIN = 156, // Mod Reputation Gain
+ SPELL_AURA_PET_DAMAGE_MULTI = 157, // Mod Pet Damage
+ SPELL_AURA_MOD_SHIELD_BLOCK = 158,
+ SPELL_AURA_NO_PVP_CREDIT = 159,
SPELL_AURA_MOD_AOE_AVOIDANCE = 160,
SPELL_AURA_MOD_HEALTH_REGEN_IN_COMBAT = 161,
- SPELL_AURA_POWER_BURN_MANA = 162,
+ SPELL_AURA_POWER_BURN_MANA = 162,
+ SPELL_AURA_MOD_CRIT_DAMAGE_BONUS_MELEE = 163,
+ SPELL_AURA_164 = 164,
+ SPELL_AURA_MELEE_ATTACK_POWER_ATTACKER_BONUS = 165,
+ SPELL_AURA_MOD_ATTACK_POWER_PCT = 166,
+ SPELL_AURA_MOD_RANGED_ATTACK_POWER_PCT = 167,
+ SPELL_AURA_MOD_DAMAGE_DONE_VERSUS = 168,
+ SPELL_AURA_MOD_CRIT_PERCENT_VERSUS = 169,
+ SPELL_AURA_DETECT_AMORE = 170,
+ SPELL_AURA_MOD_PARTY_SPEED = 171, // unused
+ SPELL_AURA_MOD_PARTY_SPEED_MOUNTED = 172,
+ SPELL_AURA_ALLOW_CHAMPION_SPELLS = 173,
+ SPELL_AURA_MOD_SPELL_DAMAGE_OF_SPIRIT = 174,
+ SPELL_AURA_MOD_SPELL_HEALING_OF_SPIRIT = 175,
+ SPELL_AURA_SPIRIT_OF_REDEMPTION = 176,
+ SPELL_AURA_AOE_CHARM = 177,
+ SPELL_AURA_MOD_DEBUFF_RESISTANCE = 178,
+ SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE = 179,
+ SPELL_AURA_MOD_SPELL_DAMAGE_VS_UNDEAD = 180,
+ SPELL_AURA_181 = 181,
+ SPELL_AURA_MOD_ARMOR_OF_INTELLECT = 182,
+ SPELL_AURA_MOD_CRITICAL_THREAT = 183,
+ SPELL_AURA_MOD_ATTACKER_MELEE_HIT_CHANCE = 184,
+ SPELL_AURA_MOD_ATTACKER_RANGED_HIT_CHANCE= 185,
+ SPELL_AURA_MOD_ATTACKER_SPELL_HIT_CHANCE = 186,
+ SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_CHANCE = 187,
+ SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_CHANCE = 188,
+ SPELL_AURA_MOD_RATING = 189,
+ SPELL_AURA_MOD_FACTION_REPUTATION_GAIN = 190,
+ SPELL_AURA_191 = 191,
+ SPELL_AURA_HASTE_MELEE = 192,
+ SPELL_AURA_MELEE_SLOW = 193,
+ SPELL_AURA_MOD_SPELL_DAMAGE_OF_INTELLECT = 194,
+ SPELL_AURA_MOD_SPELL_HEALING_OF_INTELLECT = 195,
+ SPELL_AURA_196 = 196, // unused
+ SPELL_AURA_197 = 197,
+ SPELL_AURA_MOD_ALL_WEAPON_SKILLS = 198,
+ SPELL_AURA_MOD_SPELL_HIT_CHANCE_ = 199,
+ SPELL_AURA_200 = 200,
+ SPELL_AURA_201 = 201,
+ SPELL_AURA_CANNOT_BE_DODGED = 202,
+ SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_DAMAGE = 203,
+ SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_DAMAGE = 204,
+ SPELL_AURA_205 = 205, // unused
+ SPELL_AURA_MOD_SPEED_MOUNTED = 206,
+ SPELL_AURA_MOD_SPEED_MOUNTED_FLIGHT = 207,
+ SPELL_AURA_208 = 208,
+ SPELL_AURA_209 = 209, // unused
+ SPELL_AURA_210 = 210, // unused
+ SPELL_AURA_211 = 211, // unused
+ SPELL_AURA_MOD_RANGED_ATTACK_POWER__OF_INTELLECT = 212,
+ SPELL_AURA_MOD_RANGE_FROM_DAMAGE_DEALT = 213,
+ SPELL_AURA_214 = 214,
+ SPELL_AURA_215 = 215,
+ SPELL_AURA_HASTE_SPELLS = 216,
+ SPELL_AURA_217 = 217,
+ SPELL_AURA_218 = 218,
+ SPELL_AURA_MOD_MANA_REGEN = 219,
+ SPELL_AURA_220 = 220,
- // aura 163-191 not implemented yet but some from its used in 1.12.1 spell.dbc
-
- TOTAL_AURAS=192
+ TOTAL_AURAS=221
};
#endif
Index: src/bindings/universal/Scripts/sc_defines.cpp
===================================================================
--- src/bindings/universal/Scripts/sc_defines.cpp (working copy)
+++ src/bindings/universal/Scripts/sc_defines.cpp (working copy)
@@ -27,6 +27,7 @@
uint32 spell_journeyman = 0;
uint32 spell_expert = 0;
uint32 spell_artisan = 0;
+ uint32 spell_master = 0;
switch(trskill)
{
@@ -35,81 +36,104 @@
spell_journeyman = 3101;
spell_expert = 3464;
spell_artisan = 11611;
+ spell_master = 28596; // teached by 28597
break;
case TRADESKILL_BLACKSMITHING:
spell_apprentice = 2018;
spell_journeyman = 3100;
spell_expert = 8768;
spell_artisan = 11454;
+ spell_master = 29844; // teached by 29845
break;
case TRADESKILL_COOKING:
spell_apprentice = 2550;
spell_journeyman = 3102;
spell_expert = 3413;
spell_artisan = 18260;
+ spell_master = 33359; // teached by 33361
break;
case TRADESKILL_ENCHANTING:
spell_apprentice = 7411;
spell_journeyman = 7412;
spell_expert = 7413;
spell_artisan = 13920;
+ spell_master = 28029; // teached by 28030
break;
case TRADESKILL_ENGINEERING:
spell_apprentice = 4036;
spell_journeyman = 4037;
spell_expert = 4038;
spell_artisan = 12656;
+ spell_master = 30350; // teached by 30351
break;
case TRADESKILL_FIRSTAID:
spell_apprentice = 3273;
spell_journeyman = 3274;
spell_expert = 7924;
spell_artisan = 10846;
+ spell_master = 27028; // teached by 27029
break;
case TRADESKILL_HERBALISM:
spell_apprentice = 2372;
spell_journeyman = 2373;
spell_expert = 3571;
spell_artisan = 11994;
+ spell_master = 0;
break;
case TRADESKILL_LEATHERWORKING:
spell_apprentice = 2108;
spell_journeyman = 3104;
spell_expert = 20649;
spell_artisan = 10662;
+ spell_master = 32549; // teached by 32550
break;
case TRADESKILL_POISONS:
spell_apprentice = 0;
spell_journeyman = 0;
spell_expert = 0;
spell_artisan = 0;
+ spell_master = 0;
break;
case TRADESKILL_TAILORING:
spell_apprentice = 3908;
spell_journeyman = 3909;
spell_expert = 3910;
spell_artisan = 12180;
+ spell_master = 26790; // teached by 26791
break;
case TRADESKILL_MINING:
spell_apprentice = 2581;
spell_journeyman = 2582;
spell_expert = 3568;
spell_artisan = 10249;
+ spell_master = 29354; // teached by 29355
break;
case TRADESKILL_FISHING:
spell_apprentice = 7733;
spell_journeyman = 7734;
spell_expert = 7736;
spell_artisan = 18249;
+ spell_master = 33098; // teached by 33100
break;
case TRADESKILL_SKINNING:
spell_apprentice = 8615;
spell_journeyman = 8619;
spell_expert = 8620;
spell_artisan = 10769;
+ spell_master = 32679; // teached by 32678
break;
+ case TRADESKILL_JAWELCRAFTING:
+ spell_apprentice = 25229; // teached by 25245
+ spell_journeyman = 25230; // teached by 25246
+ spell_expert = 28894; // teached by 28896
+ spell_artisan = 28895; // teached by 28899
+ spell_master = 28897; // teached by 28901
+ break;
}
+ if (player->HasSpell(spell_master))
+ return TRADESKILL_LEVEL_MASTER;
+
if (player->HasSpell(spell_artisan))
return TRADESKILL_LEVEL_ARTISAN;
Index: src/bindings/universal/Scripts/sc_defines.h
===================================================================
--- src/bindings/universal/Scripts/sc_defines.h (working copy)
+++ src/bindings/universal/Scripts/sc_defines.h (working copy)
@@ -36,12 +36,14 @@
#define TRADESKILL_MINING 11
#define TRADESKILL_FISHING 12
#define TRADESKILL_SKINNING 13
+#define TRADESKILL_JAWELCRAFTING 14
#define TRADESKILL_LEVEL_NONE 0
#define TRADESKILL_LEVEL_APPRENTICE 1
#define TRADESKILL_LEVEL_JOURNEYMAN 2
#define TRADESKILL_LEVEL_EXPERT 3
#define TRADESKILL_LEVEL_ARTISAN 4
+#define TRADESKILL_LEVEL_MASTER 5
// Gossip defines