-
[3.3.3a] ArcEmu Repack
Here's for all you people who want to satisfy your players.
P1raten's Repack
Version 2.0.0
Screenshots
http://j.imagehost.org/0826/3_3.png
http://j.imagehost.org/0739/1_7.png
http://j.imagehost.org/0467/2_9.png
To-Do:
Fix Quests
Download Link
Download now.
Changeset
Changeset can be found in attachments.
-
Goodjob :3 keeep eet uwp pairate !
-
-
nice ;0 +rep , i've seen it before ;o
-
-
Updated to version 1.0.1.
-
Might also be nice if you included stuff such as what you updated in new versions. & Good job.
-
Changelog:
Code:
Index: arcemu-logonserver/AccountCache.cpp
===================================================================
--- arcemu-logonserver/AccountCache.cpp (revision 3234)
+++ arcemu-logonserver/AccountCache.cpp (working copy)
@@ -108,13 +108,13 @@
acct->AccountId = field[0].GetUInt32();
acct->AccountFlags = field[5].GetUInt8();
acct->Banned = field[6].GetUInt32();
- if ( (uint32)UNIXTIME > acct->Banned && acct->Banned != 0 && acct->Banned != 1) //1 = perm ban?
+ if ( (uint32)UNIXTIME > acct->Banned && acct->Banned != 0 && acct->Banned != 1 && acct->Banned != 2) //1 = perm ban?
{
//Accounts should be unbanned once the date is past their set expiry date.
- acct->Banned = 0;
+ acct->Banned = 2;
//me go boom :(
//printf("Account %s's ban has expired.\n",acct->UsernamePtr->c_str());
- sLogonSQL->Execute("UPDATE accounts SET banned = 0 WHERE acct=%u",acct->AccountId);
+ sLogonSQL->Execute("UPDATE accounts SET banned = 2 WHERE acct=%u",acct->AccountId);
}
acct->SetGMFlags(GMFlags.c_str());
acct->Locale[0] = 'e';
@@ -201,12 +201,12 @@
acct->AccountId = field[0].GetUInt32();
acct->AccountFlags = field[5].GetUInt8();
acct->Banned = field[6].GetUInt32();
- if ((uint32)UNIXTIME > acct->Banned && acct->Banned != 0 && acct->Banned != 1) //1 = perm ban?
+ if ((uint32)UNIXTIME > acct->Banned && acct->Banned != 0 && acct->Banned != 1 && acct->Banned != 2) //1 = perm ban?
{
//Accounts should be unbanned once the date is past their set expiry date.
- acct->Banned = 0;
+ acct->Banned = 2;
sLog.outDebug("Account %s's ban has expired.",acct->UsernamePtr->c_str());
- sLogonSQL->Execute("UPDATE accounts SET banned = 0 WHERE acct=%u",acct->AccountId);
+ sLogonSQL->Execute("UPDATE accounts SET banned = 2 WHERE acct=%u",acct->AccountId);
}
acct->SetGMFlags(GMFlags.c_str());
if(strcmp(field[7].GetString(), "enUS"))
Index: arcemu-logonserver/AuthSocket.cpp
===================================================================
--- arcemu-logonserver/AuthSocket.cpp (revision 3234)
+++ arcemu-logonserver/AuthSocket.cpp (working copy)
@@ -194,6 +194,11 @@
sLog.outDebug("[AuthChallenge] Account banned state = %u", m_account->Banned);
// Check that the account isn't banned.
+ if(m_account->Banned == 2)
+ {
+ SendChallengeError(CE_PREORDER_TIME_LIMIT);
+ return;
+ }
if(m_account->Banned == 1)
{
SendChallengeError(CE_ACCOUNT_CLOSED);
@@ -576,6 +581,11 @@
sLog.outDebug("[AuthChallenge] Account banned state = %u", m_account->Banned);
// Check that the account isn't banned.
+ if(m_account->Banned == 2)
+ {
+ SendChallengeError(CE_PREORDER_TIME_LIMIT);
+ return;
+ }
if(m_account->Banned == 1)
{
SendChallengeError(CE_ACCOUNT_CLOSED);
Index: arcemu-shared/Auth/WowCrypt.cpp
===================================================================
--- arcemu-shared/Auth/WowCrypt.cpp (revision 3234)
+++ arcemu-shared/Auth/WowCrypt.cpp (working copy)
@@ -32,8 +32,8 @@
void WowCrypt::Init(uint8 *K)
{
- static const uint8 s[16] = { 0xF4, 0x66, 0x31, 0x59, 0xFC, 0x83, 0x6E, 0x31, 0x31, 0x02, 0x51, 0xD5, 0x44, 0x31, 0x67, 0x98 };
- static const uint8 r[16] = { 0x22, 0xBE, 0xE5, 0xCF, 0xBB, 0x07, 0x64, 0xD9, 0x00, 0x45, 0x1B, 0xD0, 0x24, 0xB8, 0xD5, 0x45 };
+ static const uint8 s[16] = { 0xC2, 0xB3, 0x72, 0x3C, 0xC6, 0xAE, 0xD9, 0xB5, 0x34, 0x3C, 0x53, 0xEE, 0x2F, 0x43, 0x67, 0xCE };
+ static const uint8 r[16] = { 0xCC, 0x98, 0xAE, 0x04, 0xE8, 0x97, 0xEA, 0xCA, 0x12, 0xDD, 0xC0, 0x93, 0x42, 0x91, 0x53, 0x57 };
uint8 encryptHash[SHA_DIGEST_LENGTH];
uint8 decryptHash[SHA_DIGEST_LENGTH];
uint8 pass[1024];
@@ -62,4 +62,4 @@
WowCrypt::~WowCrypt()
{
-}
+}
\ No newline at end of file
Index: arcemu-shared/AuthCodes.h
===================================================================
--- arcemu-shared/AuthCodes.h (revision 3234)
+++ arcemu-shared/AuthCodes.h (working copy)
@@ -23,118 +23,118 @@
// client 3.3.0, 2009/12/20
enum LoginErrorCode
{
- E_RESPONSE_SUCCESS = 0x00,
- E_RESPONSE_FAILURE = 0x01,
- E_RESPONSE_CANCELLED = 0x02,
- E_RESPONSE_DISCONNECTED = 0x03,
- E_RESPONSE_FAILED_TO_CONNECT = 0x04,
- E_RESPONSE_CONNECTED = 0x05,
- E_RESPONSE_VERSION_MISMATCH = 0x06,
+ E_RESPONSE_SUCCESS = 0x00,
+ E_RESPONSE_FAILURE = 0x01,
+ E_RESPONSE_CANCELLED = 0x02,
+ E_RESPONSE_DISCONNECTED = 0x03,
+ E_RESPONSE_FAILED_TO_CONNECT = 0x04,
+ E_RESPONSE_VERSION_MISMATCH = 0x05,
- E_CSTATUS_CONNECTING = 0x07,
- E_CSTATUS_NEGOTIATING_SECURITY = 0x08,
- E_CSTATUS_NEGOTIATION_COMPLETE = 0x09,
- E_CSTATUS_NEGOTIATION_FAILED = 0x0A,
- E_CSTATUS_AUTHENTICATING = 0x0B,
+ E_CSTATUS_CONNECTING = 0x06,
+ E_CSTATUS_NEGOTIATING_SECURITY = 0x07,
+ E_CSTATUS_NEGOTIATION_COMPLETE = 0x08,
+ E_CSTATUS_NEGOTIATION_FAILED = 0x09,
+ E_CSTATUS_AUTHENTICATING = 0x0A,
+
+ E_AUTH_OK = 0x0B,
+ E_AUTH_FAILED = 0x0C,
+ E_AUTH_REJECT = 0x0D,
+ E_AUTH_BAD_SERVER_PROOF = 0x0E,
+ E_AUTH_UNAVAILABLE = 0x0F,
+ E_AUTH_SYSTEM_ERROR = 0x10,
+ E_AUTH_BILLING_ERROR = 0x11,
+ E_AUTH_BILLING_EXPIRED = 0x12,
+ E_AUTH_VERSION_MISMATCH = 0x13,
+ E_AUTH_UNKNOWN_ACCOUNT = 0x14,
+ E_AUTH_INCORRECT_PASSWORD = 0x15,
+ E_AUTH_SESSION_EXPIRED = 0x16,
+ E_AUTH_SERVER_SHUTTING_DOWN = 0x17,
+ E_AUTH_ALREADY_LOGGING_IN = 0x18,
+ E_AUTH_LOGIN_SERVER_NOT_FOUND = 0x19,
+ E_AUTH_WAIT_QUEUE = 0x1A,
+ E_AUTH_BANNED = 0x1B,
+ E_AUTH_ALREADY_ONLINE = 0x1C,
+ E_AUTH_NO_TIME = 0x1D,
+ E_AUTH_DB_BUSY = 0x1E,
+ E_AUTH_SUSPENDED = 0x1F,
+ E_AUTH_PARENTAL_CONTROL = 0x20,
+ E_AUTH_LOCKED_ENFORCED = 0x21,
- E_AUTH_OK = 0x0C,
- E_AUTH_FAILED = 0x0D,
- E_AUTH_REJECT = 0x0E,
- E_AUTH_BAD_SERVER_PROOF = 0x0F,
- E_AUTH_UNAVAILABLE = 0x10,
- E_AUTH_SYSTEM_ERROR = 0x11,
- E_AUTH_BILLING_ERROR = 0x12,
- E_AUTH_BILLING_EXPIRED = 0x13,
- E_AUTH_VERSION_MISMATCH = 0x14,
- E_AUTH_UNKNOWN_ACCOUNT = 0x15,
- E_AUTH_INCORRECT_PASSWORD = 0x16,
- E_AUTH_SESSION_EXPIRED = 0x17,
- E_AUTH_SERVER_SHUTTING_DOWN = 0x18,
- E_AUTH_ALREADY_LOGGING_IN = 0x19,
- E_AUTH_LOGIN_SERVER_NOT_FOUND = 0x1A,
- E_AUTH_WAIT_QUEUE = 0x1B,
- E_AUTH_BANNED = 0x1C,
- E_AUTH_ALREADY_ONLINE = 0x1D,
- E_AUTH_NO_TIME = 0x1E,
- E_AUTH_DB_BUSY = 0x1F,
- E_AUTH_SUSPENDED = 0x20,
- E_AUTH_PARENTAL_CONTROL = 0x21,
- E_AUTH_LOCKED_ENFORCED = 0x22,
+ E_REALM_LIST_IN_PROGRESS = 0x22,
+ E_REALM_LIST_SUCCESS = 0x23,
+ E_REALM_LIST_FAILED = 0x24,
+ E_REALM_LIST_INVALID = 0x25,
+ E_REALM_LIST_REALM_NOT_FOUND = 0x26,
- E_REALM_LIST_IN_PROGRESS = 0x23,
- E_REALM_LIST_SUCCESS = 0x24,
- E_REALM_LIST_FAILED = 0x25,
- E_REALM_LIST_INVALID = 0x26,
- E_REALM_LIST_REALM_NOT_FOUND = 0x27,
+ E_ACCOUNT_CREATE_IN_PROGRESS = 0x27,
+ E_ACCOUNT_CREATE_SUCCESS = 0x28,
+ E_ACCOUNT_CREATE_FAILED = 0x29,
- E_ACCOUNT_CREATE_IN_PROGRESS = 0x28,
- E_ACCOUNT_CREATE_SUCCESS = 0x29,
- E_ACCOUNT_CREATE_FAILED = 0x2A,
+ E_CHAR_LIST_RETRIEVING = 0x2A,
+ E_CHAR_LIST_RETRIEVED = 0x2B,
+ E_CHAR_LIST_FAILED = 0x2C,
- E_CHAR_LIST_RETRIEVING = 0x2B,
- E_CHAR_LIST_RETRIEVED = 0x2C,
- E_CHAR_LIST_FAILED = 0x2D,
+ E_CHAR_CREATE_IN_PROGRESS = 0x2D,
+ E_CHAR_CREATE_SUCCESS = 0x2E,
+ E_CHAR_CREATE_ERROR = 0x2F,
+ E_CHAR_CREATE_FAILED = 0x30,
+ E_CHAR_CREATE_NAME_IN_USE = 0x31,
+ E_CHAR_CREATE_DISABLED = 0x32,
+ E_CHAR_CREATE_PVP_TEAMS_VIOLATION = 0x33,
+ E_CHAR_CREATE_SERVER_LIMIT = 0x34,
+ E_CHAR_CREATE_ACCOUNT_LIMIT = 0x35,
+ E_CHAR_CREATE_SERVER_QUEUE = 0x36,
+ E_CHAR_CREATE_ONLY_EXISTING = 0x37,
+ E_CHAR_CREATE_EXPANSION = 0x38,
+ E_CHAR_CREATE_EXPANSION_CLASS = 0x39,
+ E_CHAR_CREATE_LEVEL_REQUIREMENT = 0x3A,
+ E_CHAR_CREATE_UNIQUE_CLASS_LIMIT = 0x3B,
+ E_CHAR_CREATE_CHARACTER_IN_GUILD = 0x3C,
+ E_CHAR_CREATE_RESTRICTED_RACECLASS = 0x3D,
+ E_CHAR_CREATE_CHARACTER_CHOOSE_RACE = 0x3E,
+ E_CHAR_CREATE_CHARACTER_ARENA_LEADER = 0x3F,
+ E_CHAR_CREATE_CHARACTER_DELETE_MAIL = 0x40,
+ E_CHAR_CREATE_CHARACTER_SWAP_FACTION = 0x41,
+ E_CHAR_CREATE_CHARACTER_RACE_ONLY = 0x42,
+ E_CHAR_CREATE_CHARACTER_GOLD_LIMIT = 0x43,
+ E_CHAR_CREATE_FORCE_LOGIN = 0x44,
- E_CHAR_CREATE_IN_PROGRESS = 0x2E,
- E_CHAR_CREATE_SUCCESS = 0x2F,
- E_CHAR_CREATE_ERROR = 0x30,
- E_CHAR_CREATE_FAILED = 0x31,
- E_CHAR_CREATE_NAME_IN_USE = 0x32,
- E_CHAR_CREATE_DISABLED = 0x33,
- E_CHAR_CREATE_PVP_TEAMS_VIOLATION = 0x34,
- E_CHAR_CREATE_SERVER_LIMIT = 0x35,
- E_CHAR_CREATE_ACCOUNT_LIMIT = 0x36,
- E_CHAR_CREATE_SERVER_QUEUE = 0x37,
- E_CHAR_CREATE_ONLY_EXISTING = 0x38,
- E_CHAR_CREATE_EXPANSION = 0x39,
- E_CHAR_CREATE_EXPANSION_CLASS = 0x3A,
- E_CHAR_CREATE_LEVEL_REQUIREMENT = 0x3B,
- E_CHAR_CREATE_UNIQUE_CLASS_LIMIT = 0x3C,
- E_CHAR_CREATE_CHARACTER_IN_GUILD = 0x3D,
- E_CHAR_CREATE_RESTRICTED_RACECLASS = 0x3E,
- E_CHAR_CREATE_CHARACTER_CHOOSE_RACE = 0x3F,
- E_CHAR_CREATE_CHARACTER_ARENA_LEADER = 0x40,
- E_CHAR_CREATE_CHARACTER_DELETE_MAIL = 0x41,
- E_CHAR_CREATE_CHARACTER_SWAP_FACTION = 0x42,
- E_CHAR_CREATE_CHARACTER_RACE_ONLY = 0x43,
- E_CHAR_CREATE_CHARACTER_GOLD_LIMIT = 0x44,
- E_CHAR_CREATE_FORCE_LOGIN = 0x45,
+ E_CHAR_DELETE_IN_PROGRESS = 0x45,
+ E_CHAR_DELETE_SUCCESS = 0x46,
+ E_CHAR_DELETE_FAILED = 0x47,
+ E_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x48,
+ E_CHAR_DELETE_FAILED_GUILD_LEADER = 0x49,
+ E_CHAR_DELETE_FAILED_ARENA_CAPTAIN = 0x4A,
- E_CHAR_DELETE_IN_PROGRESS = 0x46,
- E_CHAR_DELETE_SUCCESS = 0x47,
- E_CHAR_DELETE_FAILED = 0x48,
- E_CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x49,
- E_CHAR_DELETE_FAILED_GUILD_LEADER = 0x4A,
- E_CHAR_DELETE_FAILED_ARENA_CAPTAIN = 0x4B,
-
- E_CHAR_LOGIN_IN_PROGRESS = 0x4C,
- E_CHAR_LOGIN_SUCCESS = 0x4D,
- E_CHAR_LOGIN_NO_WORLD = 0x4E,
- E_CHAR_LOGIN_DUPLICATE_CHARACTER = 0x4F,
- E_CHAR_LOGIN_NO_INSTANCES = 0x50,
- E_CHAR_LOGIN_FAILED = 0x51,
- E_CHAR_LOGIN_DISABLED = 0x52,
- E_CHAR_LOGIN_NO_CHARACTER = 0x53,
- E_CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x54,
- E_CHAR_LOGIN_LOCKED_BY_BILLING = 0x55,
-
- E_CHAR_NAME_SUCCESS = 0x56,
- E_CHAR_NAME_FAILURE = 0x57,
- E_CHAR_NAME_NO_NAME = 0x58,
- E_CHAR_NAME_TOO_SHORT = 0x59,
- E_CHAR_NAME_TOO_LONG = 0x5A,
- E_CHAR_NAME_INVALID_CHARACTER = 0x5B,
- E_CHAR_NAME_MIXED_LANGUAGES = 0x5C,
- E_CHAR_NAME_PROFANE = 0x5D,
- E_CHAR_NAME_RESERVED = 0x5E,
- E_CHAR_NAME_INVALID_APOSTROPHE = 0x5F,
- E_CHAR_NAME_MULTIPLE_APOSTROPHES = 0x60,
- E_CHAR_NAME_THREE_CONSECUTIVE = 0x61,
- E_CHAR_NAME_INVALID_SPACE = 0x62,
- E_CHAR_NAME_CONSECUTIVE_SPACES = 0x63,
- E_CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 0x64,
- E_CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 0x65,
- E_CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 0x66,
+ E_CHAR_LOGIN_IN_PROGRESS = 0x4B,
+ E_CHAR_LOGIN_SUCCESS = 0x4C,
+ E_CHAR_LOGIN_NO_WORLD = 0x4D,
+ E_CHAR_LOGIN_DUPLICATE_CHARACTER = 0x4E,
+ E_CHAR_LOGIN_NO_INSTANCES = 0x4F,
+ E_CHAR_LOGIN_FAILED = 0x50,
+ E_CHAR_LOGIN_DISABLED = 0x51,
+ E_CHAR_LOGIN_NO_CHARACTER = 0x52,
+ E_CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x53,
+ E_CHAR_LOGIN_LOCKED_BY_BILLING = 0x54,
+ E_CHAR_LOGIN_LOCKED_BY_MOBILE_AH = 0x55,
+
+ E_CHAR_NAME_SUCCESS = 0x56,
+ E_CHAR_NAME_FAILURE = 0x57,
+ E_CHAR_NAME_NO_NAME = 0x58,
+ E_CHAR_NAME_TOO_SHORT = 0x59,
+ E_CHAR_NAME_TOO_LONG = 0x5A,
+ E_CHAR_NAME_INVALID_CHARACTER = 0x5B,
+ E_CHAR_NAME_MIXED_LANGUAGES = 0x5C,
+ E_CHAR_NAME_PROFANE = 0x5D,
+ E_CHAR_NAME_RESERVED = 0x5E,
+ E_CHAR_NAME_INVALID_APOSTROPHE = 0x5F,
+ E_CHAR_NAME_MULTIPLE_APOSTROPHES = 0x60,
+ E_CHAR_NAME_THREE_CONSECUTIVE = 0x61,
+ E_CHAR_NAME_INVALID_SPACE = 0x62,
+ E_CHAR_NAME_CONSECUTIVE_SPACES = 0x63,
+ E_CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 0x64,
+ E_CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END= 0x65,
+ E_CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 0x66,
};
//These defines are for use with OutPacket
@@ -251,4 +251,4 @@
#define CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END "\x65"
#define CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME "\x66"
-#endif
+#endif
\ No newline at end of file
Index: arcemu-shared/Database/DBCStores.cpp
===================================================================
--- arcemu-shared/Database/DBCStores.cpp (revision 3234)
+++ arcemu-shared/Database/DBCStores.cpp (working copy)
@@ -37,6 +37,7 @@
SERVER_DECL DBCStorage<CharRaceEntry> dbcCharRace;
SERVER_DECL DBCStorage<CharTitlesEntry> dbcCharTitlesEntry;
SERVER_DECL DBCStorage<ChatChannelDBC> dbcChatChannels;
+SERVER_DECL DBCStorage<ChatProfanityDBC> dbcChatProfanity;
SERVER_DECL DBCStorage<CombatRatingDBC> dbcCombatRating;
SERVER_DECL DBCStorage<CreatureSpellDataEntry> dbcCreatureSpellData;
SERVER_DECL DBCStorage<CreatureFamilyEntry> dbcCreatureFamily;
@@ -97,9 +98,7 @@
const char* GlyphSlotEntryFormat = "uuu";
const char* skilllineentrYFormat = "uuulxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
-// const char* BattlemasterListEntryFormat = "uiiiiiiiiuuuuuiiiiiiiiiiiiiiiiiiuux";
-// const char* BattlemasterListEntryFormat = "uiiiiiiiiuuiiiiiiiiiiiiiiiiiuux";
-const char* BattlemasterListEntryFormat = "uiiiiiiiiuuiiiiiiiiiiiiiiiiiuux";
+const char* BattlemasterListEntryFormat = "niiiiiiiiixssssssssssssssssxxxxx";
const char* CharTitlesEntryfmt =
"u" // ID
@@ -221,8 +220,6 @@
"u" // RequiredItemFlags
"uuu" // Effect[3]
"uuu" // EffectDieSides[3]
- "uuu" // EffectBaseDice[3]
- "uuu" // EffectDicePerLevel[3]
"uuu" // EffectRealPointsPerLevel[3]
"uuu" // EffectBasePoints[3]
"uuu" // EffectMechanic[3]
@@ -321,6 +318,7 @@
const char* itemrandomsuffixformat = "uxxxxxxxxxxxxxxxxxxuuuxxuuuxx";//19, 20, 21, 24, 25, 26
const char* chatchannelformat = "iixssssssssssssssslxxxxxxxxxxxxxxxxxx";
+const char* chatprofanityformat = "isi";
const char* durabilityqualityFormat = "uf";
const char* durabilitycostsFormat = "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu";
const char* bankslotpriceformat = "uu";
@@ -389,6 +387,7 @@
LOAD_DBC("DBC/ItemRandomSuffix.dbc", itemrandomsuffixformat, true, dbcItemRandomSuffix, false);
LOAD_DBC("DBC/gtCombatRatings.dbc", gtfloatformat, false, dbcCombatRating, false);
LOAD_DBC("DBC/ChatChannels.dbc", chatchannelformat, true, dbcChatChannels, true);
+ LOAD_DBC("DBC/ChatProfanity.dbc", chatprofanityformat, true, dbcChatProfanity, false);
LOAD_DBC("DBC/DurabilityQuality.dbc", durabilityqualityFormat, true, dbcDurabilityQuality, false);
LOAD_DBC("DBC/DurabilityCosts.dbc", durabilitycostsFormat, true, dbcDurabilityCosts, false);
LOAD_DBC("DBC/BankBagSlotPrices.dbc", bankslotpriceformat, true, dbcBankSlotPrices, false);
@@ -407,4 +406,4 @@
LOAD_DBC("DBC/ScalingStatValues.dbc",scalingstatvaluesformat,true,dbcScalingStatValues, false);
LOAD_DBC("DBC/ItemLimitCategory.dbc", itemlimitcategoryformat, true, dbcItemLimitCategory, true);
return true;
-}
+}
\ No newline at end of file
Index: arcemu-shared/Database/DBCStores.h
===================================================================
--- arcemu-shared/Database/DBCStores.h (revision 3234)
+++ arcemu-shared/Database/DBCStores.h (working copy)
@@ -742,8 +742,6 @@
uint32 RequiredItemFlags; //71
uint32 Effect[3]; //72 - 74
uint32 EffectDieSides[3]; //75 - 77
- uint32 EffectBaseDice[3]; //78 - 80
- float EffectDicePerLevel[3]; //81 - 83
float EffectRealPointsPerLevel[3]; //84 - 86
int32 EffectBasePoints[3]; //87 - 89
int32 EffectMechanic[3]; //90 - 92 Related to SpellMechanic.dbc
@@ -1261,6 +1259,13 @@
char * name_pattern[16];
};
+struct ChatProfanityDBC
+{
+ uint32 id;
+ char * text;
+ uint32 type;
+};
+
struct DurabilityQualityEntry
{
uint32 id;
@@ -1744,4 +1749,4 @@
bool LoadDBCs();
-#endif
+#endif
\ No newline at end of file
Index: arcemu-world/AchievementMgr.h
===================================================================
--- arcemu-world/AchievementMgr.h (revision 3234)
+++ arcemu-world/AchievementMgr.h (working copy)
@@ -194,7 +194,7 @@
ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113,
ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114,
// 0..114 => 115 criteria types total
- ACHIEVEMENT_CRITERIA_TYPE_TOTAL = 120,
+ ACHIEVEMENT_CRITERIA_TYPE_TOTAL = 124,
};
/**
Index: arcemu-world/NPCHandler.cpp
===================================================================
--- arcemu-world/NPCHandler.cpp (revision 3234)
+++ arcemu-world/NPCHandler.cpp (working copy)
@@ -407,8 +407,9 @@
}
WorldPacket data(MSG_AUCTION_HELLO, 12);
- data << auctioneer->GetGUID();
+ data << uint64(auctioneer->GetGUID());
data << uint32(AH->GetID());
+ data << uint8(1); //seems to enable auction house if 1???
SendPacket( &data );
}
Index: arcemu-world/Player.cpp
===================================================================
--- arcemu-world/Player.cpp (revision 3234)
+++ arcemu-world/Player.cpp (working copy)
@@ -2196,7 +2196,9 @@
mSpells.insert(spell_id);
if(IsInWorld())
{
- m_session->OutPacket(SMSG_LEARNED_SPELL, 4, &spell_id);
+ WorldPacket data(SMSG_LEARNED_SPELL, 6);
+ data << (spell_id);
+ data << uint16(0);
}
// Check if we're a deleted spell
Index: arcemu-world/Spell.cpp
===================================================================
--- arcemu-world/Spell.cpp (revision 3234)
+++ arcemu-world/Spell.cpp (working copy)
@@ -4793,7 +4793,7 @@
int32 value = 0;
float basePointsPerLevel = GetProto()->EffectRealPointsPerLevel[i];
- float randomPointsPerLevel = GetProto()->EffectDicePerLevel[i];
+// float randomPointsPerLevel = GetProto()->EffectDicePerLevel[i];
int32 basePoints = GetProto()->EffectBasePoints[i] + 1;
int32 randomPoints = GetProto()->EffectDieSides[i];
@@ -4840,7 +4840,7 @@
diff +=GetProto()->maxLevel;
else
diff +=u_caster->getLevel();
- randomPoints += float2int32(diff * randomPointsPerLevel);
+// randomPoints += float2int32(diff * randomPointsPerLevel);
basePoints += float2int32(diff * basePointsPerLevel );
}
@@ -6047,4 +6047,4 @@
}
return 0;
-}
+}
\ No newline at end of file
Index: arcemu-world/Spell.h
===================================================================
--- arcemu-world/Spell.h (revision 3234)
+++ arcemu-world/Spell.h (working copy)
@@ -955,7 +955,9 @@
SPELL_EFFECT_UNKNOWN38, // 160
SPELL_EFFECT_LEARN_SPEC, // 161
SPELL_EFFECT_ACTIVATE_SPEC, // 162
- TOTAL_SPELL_EFFECTS, // 163
+ SPELL_EFFECT_UNKNOWN163, // 163
+ SPELL_EFFECT_UNKNOWN164, // 164
+ TOTAL_SPELL_EFFECTS, // 165
};
// target type flags
Index: arcemu-world/SpellFixes.cpp
===================================================================
--- arcemu-world/SpellFixes.cpp (revision 3234)
+++ arcemu-world/SpellFixes.cpp (working copy)
@@ -133,8 +133,8 @@
float ftemp;
temp = sp->Effect[col1_swap]; sp->Effect[col1_swap] = sp->Effect[col2_swap] ; sp->Effect[col2_swap] = temp;
temp = sp->EffectDieSides[col1_swap]; sp->EffectDieSides[col1_swap] = sp->EffectDieSides[col2_swap] ; sp->EffectDieSides[col2_swap] = temp;
- temp = sp->EffectBaseDice[col1_swap]; sp->EffectBaseDice[col1_swap] = sp->EffectBaseDice[col2_swap] ; sp->EffectBaseDice[col2_swap] = temp;
- ftemp = sp->EffectDicePerLevel[col1_swap]; sp->EffectDicePerLevel[col1_swap] = sp->EffectDicePerLevel[col2_swap] ; sp->EffectDicePerLevel[col2_swap] = ftemp;
+// temp = sp->EffectBaseDice[col1_swap]; sp->EffectBaseDice[col1_swap] = sp->EffectBaseDice[col2_swap] ; sp->EffectBaseDice[col2_swap] = temp;
+// ftemp = sp->EffectDicePerLevel[col1_swap]; sp->EffectDicePerLevel[col1_swap] = sp->EffectDicePerLevel[col2_swap] ; sp->EffectDicePerLevel[col2_swap] = ftemp;
ftemp = sp->EffectRealPointsPerLevel[col1_swap]; sp->EffectRealPointsPerLevel[col1_swap] = sp->EffectRealPointsPerLevel[col2_swap] ; sp->EffectRealPointsPerLevel[col2_swap] = ftemp;
temp = sp->EffectBasePoints[col1_swap]; sp->EffectBasePoints[col1_swap] = sp->EffectBasePoints[col2_swap] ; sp->EffectBasePoints[col2_swap] = temp;
temp = sp->EffectMechanic[col1_swap]; sp->EffectMechanic[col1_swap] = sp->EffectMechanic[col2_swap] ; sp->EffectMechanic[col2_swap] = temp;
@@ -3744,8 +3744,8 @@
healsp->Effect[0] = SPELL_EFFECT_HEAL;
healsp->Effect[1] = healsp->Effect[2] = SPELL_EFFECT_NULL;
healsp->EffectBasePoints[0] = sp->EffectBasePoints[0];
- healsp->EffectBaseDice[0] = sp->EffectBaseDice[0];
- healsp->EffectDicePerLevel[0] = sp->EffectDicePerLevel[0];
+// healsp->EffectBaseDice[0] = sp->EffectBaseDice[0];
+// healsp->EffectDicePerLevel[0] = sp->EffectDicePerLevel[0];
healsp->EffectDieSides[0] = sp->EffectDieSides[0];
healsp->EffectImplicitTargetA[0] = EFF_TARGET_PARTY_MEMBER;
}
@@ -5320,7 +5320,7 @@
sp->Effect[2] = SPELL_EFFECT_APPLY_AURA;
sp->EffectAmplitude[2] = 3000;
sp->EffectImplicitTargetA[2] = EFF_TARGET_SELF;
- sp->EffectBaseDice[2] = 1;
+// sp->EffectBaseDice[2] = 1;
sp->EffectDieSides[2] = 1;
sp->EffectTriggerSpell[2] = 32612;
sp->EffectBasePoints[2] = -1;
Index: arcemu-world/UpdateFields.h
===================================================================
--- arcemu-world/UpdateFields.h (revision 3234)
+++ arcemu-world/UpdateFields.h (working copy)
@@ -38,49 +38,49 @@
enum EItemFields
{
- ITEM_FIELD_OWNER = OBJECT_END + 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC
- ITEM_FIELD_CONTAINED = OBJECT_END + 0x0002, // Size: 2, Type: LONG, Flags: PUBLIC
- ITEM_FIELD_CREATOR = OBJECT_END + 0x0004, // Size: 2, Type: LONG, Flags: PUBLIC
- ITEM_FIELD_GIFTCREATOR = OBJECT_END + 0x0006, // Size: 2, Type: LONG, Flags: PUBLIC
- ITEM_FIELD_STACK_COUNT = OBJECT_END + 0x0008, // Size: 1, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_DURATION = OBJECT_END + 0x0009, // Size: 1, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_SPELL_CHARGES = OBJECT_END + 0x000A, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_SPELL_CHARGES_1 = OBJECT_END + 0x000B, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_SPELL_CHARGES_2 = OBJECT_END + 0x000C, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_SPELL_CHARGES_3 = OBJECT_END + 0x000D, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_SPELL_CHARGES_4 = OBJECT_END + 0x000E, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_FLAGS = OBJECT_END + 0x000F, // Size: 1, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_1_1 = OBJECT_END + 0x0010, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_1_3 = OBJECT_END + 0x0012, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_2_1 = OBJECT_END + 0x0013, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_2_3 = OBJECT_END + 0x0015, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_3_1 = OBJECT_END + 0x0016, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_3_3 = OBJECT_END + 0x0018, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_4_1 = OBJECT_END + 0x0019, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_4_3 = OBJECT_END + 0x001B, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_5_1 = OBJECT_END + 0x001C, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_5_3 = OBJECT_END + 0x001E, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_6_1 = OBJECT_END + 0x001F, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_6_3 = OBJECT_END + 0x0021, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_7_1 = OBJECT_END + 0x0022, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_7_3 = OBJECT_END + 0x0024, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_8_1 = OBJECT_END + 0x0025, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_8_3 = OBJECT_END + 0x0027, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_9_1 = OBJECT_END + 0x0028, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_9_3 = OBJECT_END + 0x002A, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_10_1 = OBJECT_END + 0x002B, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_10_3 = OBJECT_END + 0x002D, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_11_1 = OBJECT_END + 0x002E, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_11_3 = OBJECT_END + 0x0030, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_12_1 = OBJECT_END + 0x0031, // Size: 2, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ENCHANTMENT_12_3 = OBJECT_END + 0x0033, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
- ITEM_FIELD_PROPERTY_SEED = OBJECT_END + 0x0034, // Size: 1, Type: INT, Flags: PUBLIC
- ITEM_FIELD_RANDOM_PROPERTIES_ID = OBJECT_END + 0x0035, // Size: 1, Type: INT, Flags: PUBLIC
- ITEM_FIELD_ITEM_TEXT_ID = OBJECT_END + 0x0036, // Size: 1, Type: INT, Flags: OWNER_ONLY
- ITEM_FIELD_DURABILITY = OBJECT_END + 0x0037, // Size: 1, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x0038, // Size: 1, Type: INT, Flags: OWNER_ONLY, UNK2
- ITEM_FIELD_CREATE_PLAYED_TIME = OBJECT_END + 0x0039, // Size: 1, Type: INT, Flags: PUBLIC
- ITEM_END = OBJECT_END + 0x003A,
+ ITEM_FIELD_OWNER = OBJECT_END + 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC
+ ITEM_FIELD_CONTAINED = OBJECT_END + 0x0002, // Size: 2, Type: LONG, Flags: PUBLIC
+ ITEM_FIELD_CREATOR = OBJECT_END + 0x0004, // Size: 2, Type: LONG, Flags: PUBLIC
+ ITEM_FIELD_GIFTCREATOR = OBJECT_END + 0x0006, // Size: 2, Type: LONG, Flags: PUBLIC
+ ITEM_FIELD_STACK_COUNT = OBJECT_END + 0x0008, // Size: 1, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_DURATION = OBJECT_END + 0x0009, // Size: 1, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_SPELL_CHARGES = OBJECT_END + 0x000A, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_SPELL_CHARGES_1 = OBJECT_END + 0x000B, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_SPELL_CHARGES_2 = OBJECT_END + 0x000C, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_SPELL_CHARGES_3 = OBJECT_END + 0x000D, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_SPELL_CHARGES_4 = OBJECT_END + 0x000E, // Size: 5, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_FLAGS = OBJECT_END + 0x000F, // Size: 1, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_1_1 = OBJECT_END + 0x0010, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_1_3 = OBJECT_END + 0x0012, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_2_1 = OBJECT_END + 0x0013, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_2_3 = OBJECT_END + 0x0015, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_3_1 = OBJECT_END + 0x0016, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_3_3 = OBJECT_END + 0x0018, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_4_1 = OBJECT_END + 0x0019, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_4_3 = OBJECT_END + 0x001B, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_5_1 = OBJECT_END + 0x001C, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_5_3 = OBJECT_END + 0x001E, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_6_1 = OBJECT_END + 0x001F, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_6_3 = OBJECT_END + 0x0021, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_7_1 = OBJECT_END + 0x0022, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_7_3 = OBJECT_END + 0x0024, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_8_1 = OBJECT_END + 0x0025, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_8_3 = OBJECT_END + 0x0027, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_9_1 = OBJECT_END + 0x0028, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_9_3 = OBJECT_END + 0x002A, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_10_1 = OBJECT_END + 0x002B, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_10_3 = OBJECT_END + 0x002D, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_11_1 = OBJECT_END + 0x002E, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_11_3 = OBJECT_END + 0x0030, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_12_1 = OBJECT_END + 0x0031, // Size: 2, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_ENCHANTMENT_12_3 = OBJECT_END + 0x0033, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
+ ITEM_FIELD_PROPERTY_SEED = OBJECT_END + 0x0034, // Size: 1, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_RANDOM_PROPERTIES_ID = OBJECT_END + 0x0035, // Size: 1, Type: INT, Flags: PUBLIC
+ ITEM_FIELD_DURABILITY = OBJECT_END + 0x0036, // Size: 1, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x0037, // Size: 1, Type: INT, Flags: OWNER_ONLY, UNK2
+ ITEM_FIELD_CREATE_PLAYED_TIME = OBJECT_END + 0x0038, // Size: 1, Type: INT, Flags: NONE
+ ITEM_FIELD_ITEM_TEXT_ID = OBJECT_END + 0x0039, // Size: 1, Type: INT, Flags: OWNER_ONLY // THIS is wrong, but we shall store the dataz
+ ITEM_END = OBJECT_END + 0x003A,
};
enum EContainerFields
@@ -164,140 +164,140 @@
enum EUnitFields
{
- UNIT_FIELD_CHARM = OBJECT_END + 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC
- UNIT_FIELD_SUMMON = OBJECT_END + 0x0002, // Size: 2, Type: LONG, Flags: PUBLIC
- UNIT_FIELD_CRITTER = OBJECT_END + 0x0004, // Size: 2, Type: LONG, Flags: PRIVATE
- UNIT_FIELD_CHARMEDBY = OBJECT_END + 0x0006, // Size: 2, Type: LONG, Flags: PUBLIC
- UNIT_FIELD_SUMMONEDBY = OBJECT_END + 0x0008, // Size: 2, Type: LONG, Flags: PUBLIC
- UNIT_FIELD_CREATEDBY = OBJECT_END + 0x000A, // Size: 2, Type: LONG, Flags: PUBLIC
- UNIT_FIELD_TARGET = OBJECT_END + 0x000C, // Size: 2, Type: LONG, Flags: PUBLIC
- UNIT_FIELD_CHANNEL_OBJECT = OBJECT_END + 0x000E, // Size: 2, Type: LONG, Flags: PUBLIC
- UNIT_FIELD_BYTES_0 = OBJECT_END + 0x0010, // Size: 1, Type: BYTES, Flags: PUBLIC
- UNIT_FIELD_HEALTH = OBJECT_END + 0x0011, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_POWER1 = OBJECT_END + 0x0012, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_POWER2 = OBJECT_END + 0x0013, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_POWER3 = OBJECT_END + 0x0014, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_POWER4 = OBJECT_END + 0x0015, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_POWER5 = OBJECT_END + 0x0016, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_POWER6 = OBJECT_END + 0x0017, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_POWER7 = OBJECT_END + 0x0018, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MAXHEALTH = OBJECT_END + 0x0019, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MAXPOWER1 = OBJECT_END + 0x001A, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MAXPOWER2 = OBJECT_END + 0x001B, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MAXPOWER3 = OBJECT_END + 0x001C, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MAXPOWER4 = OBJECT_END + 0x001D, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MAXPOWER5 = OBJECT_END + 0x001E, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MAXPOWER6 = OBJECT_END + 0x001F, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MAXPOWER7 = OBJECT_END + 0x0020, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER = OBJECT_END + 0x0021, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_1 = OBJECT_END + 0x0022, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_2 = OBJECT_END + 0x0023, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_3 = OBJECT_END + 0x0024, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_4 = OBJECT_END + 0x0025, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_5 = OBJECT_END + 0x0026, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_6 = OBJECT_END + 0x0027, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER = OBJECT_END + 0x0028, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_1 = OBJECT_END + 0x0029, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_2 = OBJECT_END + 0x002A, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_3 = OBJECT_END + 0x002B, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_4 = OBJECT_END + 0x002C, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_5 = OBJECT_END + 0x002D, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_6 = OBJECT_END + 0x002E, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_LEVEL = OBJECT_END + 0x002F, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_FACTIONTEMPLATE = OBJECT_END + 0x0030, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_VIRTUAL_ITEM_SLOT_ID = OBJECT_END + 0x0031, // Size: 3, Type: INT, Flags: PUBLIC
- UNIT_VIRTUAL_ITEM_SLOT_ID_1 = OBJECT_END + 0x0032, // Size: 3, Type: INT, Flags: PUBLIC
- UNIT_VIRTUAL_ITEM_SLOT_ID_2 = OBJECT_END + 0x0033, // Size: 3, Type: INT, Flags: PUBLIC
- UNIT_FIELD_FLAGS = OBJECT_END + 0x0034, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_FLAGS_2 = OBJECT_END + 0x0035, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_AURASTATE = OBJECT_END + 0x0036, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_BASEATTACKTIME = OBJECT_END + 0x0037, // Size: 2, Type: INT, Flags: PUBLIC
- UNIT_FIELD_RANGEDATTACKTIME = OBJECT_END + 0x0039, // Size: 1, Type: INT, Flags: PRIVATE
- UNIT_FIELD_BOUNDINGRADIUS = OBJECT_END + 0x003A, // Size: 1, Type: FLOAT, Flags: PUBLIC
- UNIT_FIELD_COMBATREACH = OBJECT_END + 0x003B, // Size: 1, Type: FLOAT, Flags: PUBLIC
- UNIT_FIELD_DISPLAYID = OBJECT_END + 0x003C, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_NATIVEDISPLAYID = OBJECT_END + 0x003D, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MOUNTDISPLAYID = OBJECT_END + 0x003E, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_MINDAMAGE = OBJECT_END + 0x003F, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_MAXDAMAGE = OBJECT_END + 0x0040, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_MINOFFHANDDAMAGE = OBJECT_END + 0x0041, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_MAXOFFHANDDAMAGE = OBJECT_END + 0x0042, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_BYTES_1 = OBJECT_END + 0x0043, // Size: 1, Type: BYTES, Flags: PUBLIC
- UNIT_FIELD_PETNUMBER = OBJECT_END + 0x0044, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_PET_NAME_TIMESTAMP = OBJECT_END + 0x0045, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_PETEXPERIENCE = OBJECT_END + 0x0046, // Size: 1, Type: INT, Flags: OWNER_ONLY
- UNIT_FIELD_PETNEXTLEVELEXP = OBJECT_END + 0x0047, // Size: 1, Type: INT, Flags: OWNER_ONLY
- UNIT_DYNAMIC_FLAGS = OBJECT_END + 0x0048, // Size: 1, Type: INT, Flags: DYNAMIC
- UNIT_CHANNEL_SPELL = OBJECT_END + 0x0049, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_MOD_CAST_SPEED = OBJECT_END + 0x004A, // Size: 1, Type: FLOAT, Flags: PUBLIC
- UNIT_CREATED_BY_SPELL = OBJECT_END + 0x004B, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_NPC_FLAGS = OBJECT_END + 0x004C, // Size: 1, Type: INT, Flags: DYNAMIC
- UNIT_NPC_EMOTESTATE = OBJECT_END + 0x004D, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_STAT0 = OBJECT_END + 0x004E, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_STAT1 = OBJECT_END + 0x004F, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_STAT2 = OBJECT_END + 0x0050, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_STAT3 = OBJECT_END + 0x0051, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_STAT4 = OBJECT_END + 0x0052, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POSSTAT0 = OBJECT_END + 0x0053, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POSSTAT1 = OBJECT_END + 0x0054, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POSSTAT2 = OBJECT_END + 0x0055, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POSSTAT3 = OBJECT_END + 0x0056, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POSSTAT4 = OBJECT_END + 0x0057, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_NEGSTAT0 = OBJECT_END + 0x0058, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_NEGSTAT1 = OBJECT_END + 0x0059, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_NEGSTAT2 = OBJECT_END + 0x005A, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_NEGSTAT3 = OBJECT_END + 0x005B, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_NEGSTAT4 = OBJECT_END + 0x005C, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCES = OBJECT_END + 0x005D, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_RESISTANCES_1 = OBJECT_END + 0x005E, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_RESISTANCES_2 = OBJECT_END + 0x005F, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_RESISTANCES_3 = OBJECT_END + 0x0060, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_RESISTANCES_4 = OBJECT_END + 0x0061, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_RESISTANCES_5 = OBJECT_END + 0x0062, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_RESISTANCES_6 = OBJECT_END + 0x0063, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
- UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE = OBJECT_END + 0x0064, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_1 = OBJECT_END + 0x0065, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_2 = OBJECT_END + 0x0066, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_3 = OBJECT_END + 0x0067, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_4 = OBJECT_END + 0x0068, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_5 = OBJECT_END + 0x0069, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_6 = OBJECT_END + 0x006A, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE = OBJECT_END + 0x006B, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_1 = OBJECT_END + 0x006C, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_2 = OBJECT_END + 0x006D, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_3 = OBJECT_END + 0x006E, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_4 = OBJECT_END + 0x006F, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_5 = OBJECT_END + 0x0070, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_6 = OBJECT_END + 0x0071, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_BASE_MANA = OBJECT_END + 0x0072, // Size: 1, Type: INT, Flags: PUBLIC
- UNIT_FIELD_BASE_HEALTH = OBJECT_END + 0x0073, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_BYTES_2 = OBJECT_END + 0x0074, // Size: 1, Type: BYTES, Flags: PUBLIC
- UNIT_FIELD_ATTACK_POWER = OBJECT_END + 0x0075, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_ATTACK_POWER_MODS = OBJECT_END + 0x0076, // Size: 1, Type: TWO_SHORT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x0077, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RANGED_ATTACK_POWER = OBJECT_END + 0x0078, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RANGED_ATTACK_POWER_MODS = OBJECT_END + 0x0079, // Size: 1, Type: TWO_SHORT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x007A, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_MINRANGEDDAMAGE = OBJECT_END + 0x007B, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_MAXRANGEDDAMAGE = OBJECT_END + 0x007C, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MODIFIER = OBJECT_END + 0x007D, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MODIFIER_1 = OBJECT_END + 0x007E, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MODIFIER_2 = OBJECT_END + 0x007F, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MODIFIER_3 = OBJECT_END + 0x0080, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MODIFIER_4 = OBJECT_END + 0x0081, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MODIFIER_5 = OBJECT_END + 0x0082, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MODIFIER_6 = OBJECT_END + 0x0083, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MULTIPLIER = OBJECT_END + 0x0084, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MULTIPLIER_1 = OBJECT_END + 0x0085, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MULTIPLIER_2 = OBJECT_END + 0x0086, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MULTIPLIER_3 = OBJECT_END + 0x0087, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MULTIPLIER_4 = OBJECT_END + 0x0088, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MULTIPLIER_5 = OBJECT_END + 0x0089, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_POWER_COST_MULTIPLIER_6 = OBJECT_END + 0x008A, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_MAXHEALTHMODIFIER = OBJECT_END + 0x008B, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
- UNIT_FIELD_HOVERHEIGHT = OBJECT_END + 0x008C, // Size: 1, Type: FLOAT, Flags: PUBLIC
- UNIT_FIELD_PADDING = OBJECT_END + 0x008D, // Size: 1, Type: INT, Flags: NONE
- UNIT_END = OBJECT_END + 0x008E,
+ UNIT_FIELD_CHARM = OBJECT_END + 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC
+ UNIT_FIELD_SUMMON = OBJECT_END + 0x0002, // Size: 2, Type: LONG, Flags: PUBLIC
+ UNIT_FIELD_CRITTER = OBJECT_END + 0x0004, // Size: 2, Type: LONG, Flags: PRIVATE
+ UNIT_FIELD_CHARMEDBY = OBJECT_END + 0x0006, // Size: 2, Type: LONG, Flags: PUBLIC
+ UNIT_FIELD_SUMMONEDBY = OBJECT_END + 0x0008, // Size: 2, Type: LONG, Flags: PUBLIC
+ UNIT_FIELD_CREATEDBY = OBJECT_END + 0x000A, // Size: 2, Type: LONG, Flags: PUBLIC
+ UNIT_FIELD_TARGET = OBJECT_END + 0x000C, // Size: 2, Type: LONG, Flags: PUBLIC
+ UNIT_FIELD_CHANNEL_OBJECT = OBJECT_END + 0x000E, // Size: 2, Type: LONG, Flags: PUBLIC
+ UNIT_CHANNEL_SPELL = OBJECT_END + 0x0010, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_BYTES_0 = OBJECT_END + 0x0011, // Size: 1, Type: BYTES, Flags: PUBLIC
+ UNIT_FIELD_HEALTH = OBJECT_END + 0x0012, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_POWER1 = OBJECT_END + 0x0013, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_POWER2 = OBJECT_END + 0x0014, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_POWER3 = OBJECT_END + 0x0015, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_POWER4 = OBJECT_END + 0x0016, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_POWER5 = OBJECT_END + 0x0017, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_POWER6 = OBJECT_END + 0x0018, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_POWER7 = OBJECT_END + 0x0019, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MAXHEALTH = OBJECT_END + 0x001A, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MAXPOWER1 = OBJECT_END + 0x001B, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MAXPOWER2 = OBJECT_END + 0x001C, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MAXPOWER3 = OBJECT_END + 0x001D, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MAXPOWER4 = OBJECT_END + 0x001E, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MAXPOWER5 = OBJECT_END + 0x001F, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MAXPOWER6 = OBJECT_END + 0x0020, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MAXPOWER7 = OBJECT_END + 0x0021, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER = OBJECT_END + 0x0022, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_1 = OBJECT_END + 0x0023, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_2 = OBJECT_END + 0x0024, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_3 = OBJECT_END + 0x0025, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_4 = OBJECT_END + 0x0026, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_5 = OBJECT_END + 0x0027, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER_6 = OBJECT_END + 0x0028, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER = OBJECT_END + 0x0029, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_1 = OBJECT_END + 0x002A, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_2 = OBJECT_END + 0x002B, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_3 = OBJECT_END + 0x002C, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_4 = OBJECT_END + 0x002D, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_5 = OBJECT_END + 0x002E, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER_6 = OBJECT_END + 0x002F, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_LEVEL = OBJECT_END + 0x0030, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_FACTIONTEMPLATE = OBJECT_END + 0x0031, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_VIRTUAL_ITEM_SLOT_ID = OBJECT_END + 0x0032, // Size: 3, Type: INT, Flags: PUBLIC
+ UNIT_VIRTUAL_ITEM_SLOT_ID_1 = OBJECT_END + 0x0033, // Size: 3, Type: INT, Flags: PUBLIC
+ UNIT_VIRTUAL_ITEM_SLOT_ID_2 = OBJECT_END + 0x0034, // Size: 3, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_FLAGS = OBJECT_END + 0x0035, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_FLAGS_2 = OBJECT_END + 0x0036, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_AURASTATE = OBJECT_END + 0x0037, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_BASEATTACKTIME = OBJECT_END + 0x0038, // Size: 2, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_RANGEDATTACKTIME = OBJECT_END + 0x003A, // Size: 1, Type: INT, Flags: PRIVATE
+ UNIT_FIELD_BOUNDINGRADIUS = OBJECT_END + 0x003B, // Size: 1, Type: FLOAT, Flags: PUBLIC
+ UNIT_FIELD_COMBATREACH = OBJECT_END + 0x003C, // Size: 1, Type: FLOAT, Flags: PUBLIC
+ UNIT_FIELD_DISPLAYID = OBJECT_END + 0x003D, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_NATIVEDISPLAYID = OBJECT_END + 0x003E, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MOUNTDISPLAYID = OBJECT_END + 0x003F, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_MINDAMAGE = OBJECT_END + 0x0040, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_MAXDAMAGE = OBJECT_END + 0x0041, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_MINOFFHANDDAMAGE = OBJECT_END + 0x0042, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_MAXOFFHANDDAMAGE = OBJECT_END + 0x0043, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_BYTES_1 = OBJECT_END + 0x0044, // Size: 1, Type: BYTES, Flags: PUBLIC
+ UNIT_FIELD_PETNUMBER = OBJECT_END + 0x0045, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_PET_NAME_TIMESTAMP = OBJECT_END + 0x0046, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_PETEXPERIENCE = OBJECT_END + 0x0047, // Size: 1, Type: INT, Flags: OWNER_ONLY
+ UNIT_FIELD_PETNEXTLEVELEXP = OBJECT_END + 0x0048, // Size: 1, Type: INT, Flags: OWNER_ONLY
+ UNIT_DYNAMIC_FLAGS = OBJECT_END + 0x0049, // Size: 1, Type: INT, Flags: DYNAMIC
+ UNIT_MOD_CAST_SPEED = OBJECT_END + 0x004A, // Size: 1, Type: FLOAT, Flags: PUBLIC
+ UNIT_CREATED_BY_SPELL = OBJECT_END + 0x004B, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_NPC_FLAGS = OBJECT_END + 0x004C, // Size: 1, Type: INT, Flags: DYNAMIC
+ UNIT_NPC_EMOTESTATE = OBJECT_END + 0x004D, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_STAT0 = OBJECT_END + 0x004E, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_STAT1 = OBJECT_END + 0x004F, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_STAT2 = OBJECT_END + 0x0050, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_STAT3 = OBJECT_END + 0x0051, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_STAT4 = OBJECT_END + 0x0052, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POSSTAT0 = OBJECT_END + 0x0053, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POSSTAT1 = OBJECT_END + 0x0054, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POSSTAT2 = OBJECT_END + 0x0055, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POSSTAT3 = OBJECT_END + 0x0056, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POSSTAT4 = OBJECT_END + 0x0057, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_NEGSTAT0 = OBJECT_END + 0x0058, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_NEGSTAT1 = OBJECT_END + 0x0059, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_NEGSTAT2 = OBJECT_END + 0x005A, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_NEGSTAT3 = OBJECT_END + 0x005B, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_NEGSTAT4 = OBJECT_END + 0x005C, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCES = OBJECT_END + 0x005D, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_RESISTANCES_1 = OBJECT_END + 0x005E, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_RESISTANCES_2 = OBJECT_END + 0x005F, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_RESISTANCES_3 = OBJECT_END + 0x0060, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_RESISTANCES_4 = OBJECT_END + 0x0061, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_RESISTANCES_5 = OBJECT_END + 0x0062, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_RESISTANCES_6 = OBJECT_END + 0x0063, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY, UNK3
+ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE = OBJECT_END + 0x0064, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_1 = OBJECT_END + 0x0065, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_2 = OBJECT_END + 0x0066, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_3 = OBJECT_END + 0x0067, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_4 = OBJECT_END + 0x0068, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_5 = OBJECT_END + 0x0069, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE_6 = OBJECT_END + 0x006A, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE = OBJECT_END + 0x006B, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_1 = OBJECT_END + 0x006C, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_2 = OBJECT_END + 0x006D, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_3 = OBJECT_END + 0x006E, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_4 = OBJECT_END + 0x006F, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_5 = OBJECT_END + 0x0070, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE_6 = OBJECT_END + 0x0071, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_BASE_MANA = OBJECT_END + 0x0072, // Size: 1, Type: INT, Flags: PUBLIC
+ UNIT_FIELD_BASE_HEALTH = OBJECT_END + 0x0073, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_BYTES_2 = OBJECT_END + 0x0074, // Size: 1, Type: BYTES, Flags: PUBLIC
+ UNIT_FIELD_ATTACK_POWER = OBJECT_END + 0x0075, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_ATTACK_POWER_MODS = OBJECT_END + 0x0076, // Size: 1, Type: TWO_SHORT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x0077, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RANGED_ATTACK_POWER = OBJECT_END + 0x0078, // Size: 1, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RANGED_ATTACK_POWER_MODS = OBJECT_END + 0x0079, // Size: 1, Type: TWO_SHORT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x007A, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_MINRANGEDDAMAGE = OBJECT_END + 0x007B, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_MAXRANGEDDAMAGE = OBJECT_END + 0x007C, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MODIFIER = OBJECT_END + 0x007D, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MODIFIER_1 = OBJECT_END + 0x007E, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MODIFIER_2 = OBJECT_END + 0x007F, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MODIFIER_3 = OBJECT_END + 0x0080, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MODIFIER_4 = OBJECT_END + 0x0081, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MODIFIER_5 = OBJECT_END + 0x0082, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MODIFIER_6 = OBJECT_END + 0x0083, // Size: 7, Type: INT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MULTIPLIER = OBJECT_END + 0x0084, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MULTIPLIER_1 = OBJECT_END + 0x0085, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MULTIPLIER_2 = OBJECT_END + 0x0086, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MULTIPLIER_3 = OBJECT_END + 0x0087, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MULTIPLIER_4 = OBJECT_END + 0x0088, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MULTIPLIER_5 = OBJECT_END + 0x0089, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_POWER_COST_MULTIPLIER_6 = OBJECT_END + 0x008A, // Size: 7, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_MAXHEALTHMODIFIER = OBJECT_END + 0x008B, // Size: 1, Type: FLOAT, Flags: PRIVATE, OWNER_ONLY
+ UNIT_FIELD_HOVERHEIGHT = OBJECT_END + 0x008C, // Size: 1, Type: FLOAT, Flags: PUBLIC
+ UNIT_FIELD_PADDING = OBJECT_END + 0x008D, // Size: 1, Type: INT, Flags: NONE
+ UNIT_END = OBJECT_END + 0x008E,
PLAYER_DUEL_ARBITER = UNIT_END + 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC
PLAYER_FLAGS = UNIT_END + 0x0002, // Size: 1, Type: INT, Flags: PUBLIC
@@ -1522,4 +1522,3 @@
#define GAMEOBJECT_PARENTROTATION_03 OBJECT_END + 0x0007 // Size: 4, Type: FLOAT, Flags: PUBLIC
#endif
-
-
As far as I see, that's the ArcEmu patch, that makes the enum bugged. But with what you accomplished so far, it should still work.
A good job done by you mate.
+R.
-
My repack contains a patch which fixes enum. Therefore it works.