Updated to client 3.2.0.10026, not tested.

This commit is contained in:
tomrus88 2009-06-24 10:23:02 +04:00
parent 517697768a
commit 7df6372458
11 changed files with 148 additions and 85 deletions

View file

@ -1080,21 +1080,12 @@ struct MapEntry
// 55 intro text flags // 55 intro text flags
uint32 multimap_id; // 56 uint32 multimap_id; // 56
// 57 // 57
//chat* unknownText1[16]; // 58-73 unknown empty text fields, possible normal Intro text. int32 entrance_map; // 58 map_id of entrance map
// 74 text flags float entrance_x; // 59 entrance x coordinate (if exist single entry)
//chat* heroicIntroText[16]; // 75-90 heroic mode requirement text float entrance_y; // 60 entrance y coordinate (if exist single entry)
// 91 text flags // 61 -1, 0 and 720
//chat* unknownText2[16]; // 92-107 unknown empty text fields uint32 addon; // 62 (0-original maps,1-tbc addon)
// 108 text flags // 63 some kind of time?
int32 entrance_map; // 109 map_id of entrance map
float entrance_x; // 110 entrance x coordinate (if exist single entry)
float entrance_y; // 111 entrance y coordinate (if exist single entry)
uint32 resetTimeRaid; // 112
uint32 resetTimeHeroic; // 113
// 114 all 0
// 115 -1, 0 and 720
uint32 addon; // 116 (0-original maps,1-tbc addon)
// 117 some kind of time?
// Helpers // Helpers
uint32 Expansion() const { return addon; } uint32 Expansion() const { return addon; }
@ -1106,8 +1097,8 @@ struct MapEntry
bool IsBattleGround() const { return map_type == MAP_BATTLEGROUND; } bool IsBattleGround() const { return map_type == MAP_BATTLEGROUND; }
bool IsBattleArena() const { return map_type == MAP_ARENA; } bool IsBattleArena() const { return map_type == MAP_ARENA; }
bool IsBattleGroundOrArena() const { return map_type == MAP_BATTLEGROUND || map_type == MAP_ARENA; } bool IsBattleGroundOrArena() const { return map_type == MAP_BATTLEGROUND || map_type == MAP_ARENA; }
bool SupportsHeroicMode() const { return resetTimeHeroic != 0; } bool SupportsHeroicMode() const { return true; }
bool HasResetTime() const { return resetTimeHeroic || resetTimeRaid; } bool HasResetTime() const { return true; }
bool IsMountAllowed() const bool IsMountAllowed() const
{ {
@ -1159,7 +1150,7 @@ struct ScalingStatValuesEntry
{ {
uint32 Id; uint32 Id;
uint32 Level; uint32 Level;
uint32 ssdMultiplier[5]; // Multiplier for ScalingStatDistribution uint32 ssdMultiplier[4]; // Multiplier for ScalingStatDistribution
uint32 armorMod[4]; // Armor for level uint32 armorMod[4]; // Armor for level
uint32 dpsMod[6]; // DPS mod for level uint32 dpsMod[6]; // DPS mod for level
uint32 spellBonus; // not sure.. TODO: need more info about uint32 spellBonus; // not sure.. TODO: need more info about
@ -1172,8 +1163,8 @@ struct ScalingStatValuesEntry
if(mask & 0x00000001) return ssdMultiplier[0]; if(mask & 0x00000001) return ssdMultiplier[0];
if(mask & 0x00000002) return ssdMultiplier[1]; if(mask & 0x00000002) return ssdMultiplier[1];
if(mask & 0x00000004) return ssdMultiplier[2]; if(mask & 0x00000004) return ssdMultiplier[2];
if(mask & 0x00000008) return ssdMultiplier[3]; //if(mask & 0x00000008) return ssdMultiplier[3];
if(mask & 0x00000010) return ssdMultiplier[4]; if(mask & 0x00000010) return ssdMultiplier[3];
} }
return 0; return 0;
} }
@ -1298,8 +1289,11 @@ struct SpellEntry
uint32 AttributesEx4; // 8 m_attributesExD uint32 AttributesEx4; // 8 m_attributesExD
uint32 AttributesEx5; // 9 m_attributesExE uint32 AttributesEx5; // 9 m_attributesExE
//uint32 AttributesEx6; // 10 m_attributesExF not used //uint32 AttributesEx6; // 10 m_attributesExF not used
// new 3.2
uint32 Stances; // 11 m_shapeshiftMask uint32 Stances; // 11 m_shapeshiftMask
// new 3.2
uint32 StancesNot; // 12 m_shapeshiftExclude uint32 StancesNot; // 12 m_shapeshiftExclude
// new 3.2
uint32 Targets; // 13 m_targets uint32 Targets; // 13 m_targets
uint32 TargetCreatureType; // 14 m_targetCreatureType uint32 TargetCreatureType; // 14 m_targetCreatureType
uint32 RequiresSpellFocus; // 15 m_requiresSpellFocus uint32 RequiresSpellFocus; // 15 m_requiresSpellFocus

View file

@ -65,25 +65,25 @@ const char Itemfmt[]="niiiiiii";
const char ItemBagFamilyfmt[]="nxxxxxxxxxxxxxxxxx"; const char ItemBagFamilyfmt[]="nxxxxxxxxxxxxxxxxx";
//const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx"; //const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx";
//const char ItemCondExtCostsEntryfmt[]="xiii"; //const char ItemCondExtCostsEntryfmt[]="xiii";
const char ItemExtendedCostEntryfmt[]="niiiiiiiiiiiiix"; const char ItemExtendedCostEntryfmt[]="niixiiiiiiiiiiix";
const char ItemLimitCategoryEntryfmt[]="nxxxxxxxxxxxxxxxxxix"; const char ItemLimitCategoryEntryfmt[]="nxxxxxxxxxxxxxxxxxix";
const char ItemRandomPropertiesfmt[]="nxiiiiixxxxxxxxxxxxxxxxx"; const char ItemRandomPropertiesfmt[]="nxiiiiixxxxxxxxxxxxxxxxx";
const char ItemRandomSuffixfmt[]="nxxxxxxxxxxxxxxxxxxiiiiiiiiii"; const char ItemRandomSuffixfmt[]="nxxxxxxxxxxxxxxxxxxiiiiiiiiii";
const char ItemSetEntryfmt[]="dssssssssssssssssxxxxxxxxxxxxxxxxxxiiiiiiiiiiiiiiiiii"; const char ItemSetEntryfmt[]="dssssssssssssssssxxxxxxxxxxxxxxxxxxiiiiiiiiiiiiiiiiii";
const char LockEntryfmt[]="niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx"; const char LockEntryfmt[]="niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx";
const char MailTemplateEntryfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char MailTemplateEntryfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char MapEntryfmt[]="nxixssssssssssssssssxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiffiixxix"; const char MapEntryfmt[]="nxixssssssssssssssssxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixiffxix";
const char MovieEntryfmt[]="nxx"; const char MovieEntryfmt[]="nxx";
const char QuestSortEntryfmt[]="nxxxxxxxxxxxxxxxxx"; const char QuestSortEntryfmt[]="nxxxxxxxxxxxxxxxxx";
const char RandomPropertiesPointsfmt[]="niiiiiiiiiiiiiii"; const char RandomPropertiesPointsfmt[]="niiiiiiiiiiiiiii";
const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiii"; const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiii";
const char ScalingStatValuesfmt[]="iniiiiiiiiiiiiiiiii"; const char ScalingStatValuesfmt[]="iniiiiiiiiiiiiiiiixxxxxx";
const char SkillLinefmt[]="nixssssssssssssssssxxxxxxxxxxxxxxxxxxixxxxxxxxxxxxxxxxxi"; const char SkillLinefmt[]="nixssssssssssssssssxxxxxxxxxxxxxxxxxxixxxxxxxxxxxxxxxxxi";
const char SkillLineAbilityfmt[]="niiiixxiiiiixx"; const char SkillLineAbilityfmt[]="niiiixxiiiiixx";
const char SoundEntriesfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const char SoundEntriesfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const char SpellCastTimefmt[]="nixx"; const char SpellCastTimefmt[]="nixx";
const char SpellDurationfmt[]="niii"; const char SpellDurationfmt[]="niii";
const char SpellEntryfmt[]="niiiiiiiiixiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifxiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffffffiiiiiiiiiiiiiiiiiiiiifffiiiiiiiiiiiiiiifffiiiiiiiiiiiiixssssssssssssssssxssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiiiiiiiiiiixfffxxxiiiiixx"; const char SpellEntryfmt[]="niiiiiiiiixxixixiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifxiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffffffiiiiiiiiiiiiiiiiiiiiifffiiiiiiiiiiiiiiifffiiiiiiiiiiiiixssssssssssssssssxssssssssssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxiiiiiiiiiiixfffxxxiiiiixxxxxx";
const char SpellFocusObjectfmt[]="nxxxxxxxxxxxxxxxxx"; const char SpellFocusObjectfmt[]="nxxxxxxxxxxxxxxxxx";
const char SpellItemEnchantmentfmt[]="nxiiiiiixxxiiissssssssssssssssxiiiixxx"; const char SpellItemEnchantmentfmt[]="nxiiiiiixxxiiissssssssssssssssxiiiixxx";
const char SpellItemEnchantmentConditionfmt[]="nbbbbbxxxxxbbbbbbbbbbiiiiiXXXXX"; const char SpellItemEnchantmentConditionfmt[]="nbbbbbxxxxxbbbbbbbbbbiiiiiXXXXX";

View file

@ -31,7 +31,7 @@ DynamicObject::DynamicObject() : WorldObject()
m_objectType |= TYPEMASK_DYNAMICOBJECT; m_objectType |= TYPEMASK_DYNAMICOBJECT;
m_objectTypeId = TYPEID_DYNAMICOBJECT; m_objectTypeId = TYPEID_DYNAMICOBJECT;
m_updateFlag = (UPDATEFLAG_HIGHGUID | UPDATEFLAG_HAS_POSITION); m_updateFlag = (UPDATEFLAG_HIGHGUID | UPDATEFLAG_HAS_POSITION | UPDATEFLAG_POSITION);
m_valuesCount = DYNAMICOBJECT_END; m_valuesCount = DYNAMICOBJECT_END;
} }
@ -73,9 +73,6 @@ bool DynamicObject::Create( uint32 guidlow, Unit *caster, uint32 spellId, uint32
SetUInt32Value( DYNAMICOBJECT_BYTES, 0x00000001 ); SetUInt32Value( DYNAMICOBJECT_BYTES, 0x00000001 );
SetUInt32Value( DYNAMICOBJECT_SPELLID, spellId ); SetUInt32Value( DYNAMICOBJECT_SPELLID, spellId );
SetFloatValue( DYNAMICOBJECT_RADIUS, radius); SetFloatValue( DYNAMICOBJECT_RADIUS, radius);
SetFloatValue( DYNAMICOBJECT_POS_X, x );
SetFloatValue( DYNAMICOBJECT_POS_Y, y );
SetFloatValue( DYNAMICOBJECT_POS_Z, z );
SetUInt32Value( DYNAMICOBJECT_CASTTIME, getMSTime() ); // new 2.4.0 SetUInt32Value( DYNAMICOBJECT_CASTTIME, getMSTime() ); // new 2.4.0
m_aliveDuration = duration; m_aliveDuration = duration;

View file

@ -63,10 +63,13 @@ enum ItemModType
ITEM_MOD_SPELL_DAMAGE_DONE = 42, ITEM_MOD_SPELL_DAMAGE_DONE = 42,
ITEM_MOD_MANA_REGENERATION = 43, ITEM_MOD_MANA_REGENERATION = 43,
ITEM_MOD_ARMOR_PENETRATION_RATING = 44, ITEM_MOD_ARMOR_PENETRATION_RATING = 44,
ITEM_MOD_SPELL_POWER = 45 ITEM_MOD_SPELL_POWER = 45,
ITEM_MOD_HEALTH_REGEN = 46,
ITEM_MOD_SPELL_PENETRATION = 47,
ITEM_MOD_BLOCK_VALUE = 48
}; };
#define MAX_ITEM_MOD 46 #define MAX_ITEM_MOD 49
enum ItemSpelltriggerType enum ItemSpelltriggerType
{ {

View file

@ -4396,7 +4396,7 @@ void ObjectMgr::LoadInstanceTemplate()
if(temp->reset_delay == 0) if(temp->reset_delay == 0)
{ {
// use defaults from the DBC // use defaults from the DBC
if(entry->resetTimeHeroic) // for both raid and non raids, read above /*if(entry->resetTimeHeroic) // for both raid and non raids, read above
{ {
temp->reset_delay = entry->resetTimeHeroic / DAY; temp->reset_delay = entry->resetTimeHeroic / DAY;
} }
@ -4404,7 +4404,7 @@ void ObjectMgr::LoadInstanceTemplate()
// for normal raid only // for normal raid only
{ {
temp->reset_delay = entry->resetTimeRaid / DAY; temp->reset_delay = entry->resetTimeRaid / DAY;
} }*/
} }
// the reset_delay must be at least one day // the reset_delay must be at least one day

View file

@ -1253,6 +1253,39 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x4C8*/ { "SMSG_UNKNOWN_1224", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x4C8*/ { "SMSG_UNKNOWN_1224", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x4C9*/ { "UMSG_UNKNOWN_1225", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x4C9*/ { "UMSG_UNKNOWN_1225", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4CA*/ { "UMSG_UNKNOWN_1226", STATUS_NEVER, &WorldSession::Handle_NULL }, /*0x4CA*/ { "UMSG_UNKNOWN_1226", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4CB*/ { "CMSG_EQUIPMENT_SET_USE", STATUS_LOGGEDIN, &WorldSession::HandleEquipmentSetUse }, /*0x4CB*/ { "UMSG_UNKNOWN_1227", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4CC*/ { "SMSG_EQUIPMENT_SET_USE_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x4CC*/ { "UMSG_UNKNOWN_1228", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4CD*/ { "UMSG_UNKNOWN_1229", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4CE*/ { "UMSG_UNKNOWN_1230", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4CF*/ { "UMSG_UNKNOWN_1231", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4D0*/ { "UMSG_UNKNOWN_1232", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4D1*/ { "UMSG_UNKNOWN_1233", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4D2*/ { "UMSG_UNKNOWN_1234", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4D3*/ { "UMSG_UNKNOWN_1235", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4D4*/ { "UMSG_UNKNOWN_1236", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4D5*/ { "CMSG_EQUIPMENT_SET_USE", STATUS_LOGGEDIN, &WorldSession::HandleEquipmentSetUse },
/*0x4D6*/ { "SMSG_EQUIPMENT_SET_USE_RESULT", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x4D7*/ { "UMSG_UNKNOWN_1239", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4D8*/ { "UMSG_UNKNOWN_1240", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4D9*/ { "UMSG_UNKNOWN_1241", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4DA*/ { "UMSG_UNKNOWN_1242", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4DB*/ { "UMSG_UNKNOWN_1243", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4DC*/ { "UMSG_UNKNOWN_1244", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4DD*/ { "UMSG_UNKNOWN_1245", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4DE*/ { "UMSG_UNKNOWN_1246", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4DF*/ { "UMSG_UNKNOWN_1247", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E0*/ { "UMSG_UNKNOWN_1248", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E1*/ { "UMSG_UNKNOWN_1249", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E2*/ { "UMSG_UNKNOWN_1250", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E3*/ { "UMSG_UNKNOWN_1251", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E4*/ { "UMSG_UNKNOWN_1252", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E5*/ { "UMSG_UNKNOWN_1253", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E6*/ { "UMSG_UNKNOWN_1254", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E7*/ { "UMSG_UNKNOWN_1255", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E8*/ { "UMSG_UNKNOWN_1256", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4E9*/ { "UMSG_UNKNOWN_1257", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4EA*/ { "UMSG_UNKNOWN_1258", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4EB*/ { "UMSG_UNKNOWN_1259", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4EC*/ { "UMSG_UNKNOWN_1260", STATUS_NEVER, &WorldSession::Handle_NULL },
/*0x4ED*/ { "UMSG_UNKNOWN_1261", STATUS_NEVER, &WorldSession::Handle_NULL },
}; };

View file

@ -517,8 +517,8 @@ enum Opcodes
CMSG_SETSHEATHED = 0x1E0, CMSG_SETSHEATHED = 0x1E0,
SMSG_COOLDOWN_CHEAT = 0x1E1, SMSG_COOLDOWN_CHEAT = 0x1E1,
SMSG_SPELL_DELAYED = 0x1E2, SMSG_SPELL_DELAYED = 0x1E2,
CMSG_PLAYER_MACRO_OBSOLETE = 0x1E3, CMSG_QUEST_POI_QUERY = 0x1E3,
SMSG_PLAYER_MACRO_OBSOLETE = 0x1E4, SMSG_QUEST_POI_QUERY_RESPONSE = 0x1E4,
CMSG_GHOST = 0x1E5, CMSG_GHOST = 0x1E5,
CMSG_GM_INVIS = 0x1E6, CMSG_GM_INVIS = 0x1E6,
SMSG_INVALID_PROMOTION_CODE = 0x1E7, SMSG_INVALID_PROMOTION_CODE = 0x1E7,
@ -1253,17 +1253,50 @@ enum Opcodes
SMSG_TALENTS_INFO = 0x4C0, // SMSG, talents related SMSG_TALENTS_INFO = 0x4C0, // SMSG, talents related
CMSG_LEARN_PREVIEW_TALENTS = 0x4C1, // CMSG, lua: LearnPreviewTalents (for player?) CMSG_LEARN_PREVIEW_TALENTS = 0x4C1, // CMSG, lua: LearnPreviewTalents (for player?)
CMSG_LEARN_PREVIEW_TALENTS_PET = 0x4C2, // CMSG, lua: LearnPreviewTalents (for pet?) CMSG_LEARN_PREVIEW_TALENTS_PET = 0x4C2, // CMSG, lua: LearnPreviewTalents (for pet?)
UMSG_UNKNOWN_1219 = 0x4C3, // not found UMSG_UNKNOWN_1219 = 0x4C3, // not found 3.2
UMSG_UNKNOWN_1220 = 0x4C4, // not found UMSG_UNKNOWN_1220 = 0x4C4, // not found 3.2
UMSG_UNKNOWN_1221 = 0x4C5, // not found UMSG_UNKNOWN_1221 = 0x4C5, // not found 3.2
UMSG_UNKNOWN_1222 = 0x4C6, // not found UMSG_UNKNOWN_1222 = 0x4C6, // not found 3.2
SMSG_UNKNOWN_1223 = 0x4C7, // uint64, arena pet? SMSG_UNKNOWN_1223 = 0x4C7, // uint64, arena pet? 3.2
SMSG_UNKNOWN_1224 = 0x4C8, // uint32 "Can't change arena team..." SMSG_UNKNOWN_1224 = 0x4C8, // uint32 "Can't change arena team..." 3.2
UMSG_UNKNOWN_1225 = 0x4C9, // not found UMSG_UNKNOWN_1225 = 0x4C9, // not found 3.2
UMSG_UNKNOWN_1226 = 0x4CA, // not found UMSG_UNKNOWN_1226 = 0x4CA, // not found 3.2
CMSG_EQUIPMENT_SET_USE = 0x4CB, // CMSG, lua: UseEquipmentSet UMSG_UNKNOWN_1227 = 0x4CB, // not found 3.2
SMSG_EQUIPMENT_SET_USE_RESULT = 0x4CC, // SMSG, UseEquipmentSetResult? UMSG_UNKNOWN_1228 = 0x4CC, // not found 3.2
NUM_MSG_TYPES = 0x4CD SMSG_UNKNOWN_1229 = 0x4CD, // SMSG, any opcode?
SMSG_UNKNOWN_1230 = 0x4CE, // SMSG, movement related
UMSG_UNKNOWN_1231 = 0x4CF, // not found 3.2
SMSG_UNKNOWN_1232 = 0x4D0, // SMSG, movement related
UMSG_UNKNOWN_1233 = 0x4D1, // not found 3.2
SMSG_UNKNOWN_1234 = 0x4D2, // SMSG, movement related
SMSG_UNKNOWN_1235 = 0x4D3, // SMSG, movement related
SMSG_UNKNOWN_1236 = 0x4D4, // SMSG, movement related
CMSG_EQUIPMENT_SET_USE = 0x4D5, // CMSG, lua: UseEquipmentSet
SMSG_EQUIPMENT_SET_USE_RESULT = 0x4D6, // SMSG, UseEquipmentSetResult?
UMSG_UNKNOWN_1239 = 0x4D7, // not found 3.2
SMSG_UNKNOWN_1240 = 0x4D8, // SMSG, uint64, string
CMSG_UNKNOWN_1241 = 0x4D9, // lua: CreateCharacter
SMSG_UNKNOWN_1242 = 0x4DA, // response to 1241
UMSG_UNKNOWN_1243 = 0x4DB, // not found 3.2
UMSG_UNKNOWN_1244 = 0x4DC, // not found 3.2
UMSG_UNKNOWN_1245 = 0x4DD, // not found 3.2
SMSG_UNKNOWN_1246 = 0x4DE, // uint32
CMSG_UNKNOWN_1247 = 0x4DF, // lua: BattlefieldMgrEntryInviteResponse
SMSG_UNKNOWN_1248 = 0x4E0, // uint32, uint8, uint8
SMSG_UNKNOWN_1249 = 0x4E1, // uint32
CMSG_UNKNOWN_1250 = 0x4E2, // lua: BattlefieldMgrQueueInviteResponse
CMSG_UNKNOWN_1251 = 0x4E3, // lua: BattlefieldMgrQueueRequest
SMSG_UNKNOWN_1252 = 0x4E4, // uint32, uint8
SMSG_UNKNOWN_1253 = 0x4E5, // uint32
SMSG_UNKNOWN_1254 = 0x4E6, // uint32, uint32, uint8
CMSG_UNKNOWN_1255 = 0x4E7, // lua: BattlefieldMgrExitRequest
SMSG_UNKNOWN_1256 = 0x4E8, // uint32, uint32
UMSG_UNKNOWN_1257 = 0x4E9, // not found 3.2
MSG_UNKNOWN_1258 = 0x4EA, // lua: SetRaidDificulty
UMSG_UNKNOWN_1259 = 0x4EB, // not found 3.2
SMSG_TOGGLE_XP_GAIN = 0x4EC, // enable/disable XP gain console message
UMSG_UNKNOWN_1261 = 0x4ED, // not found 3.2
NUM_MSG_TYPES = 0x4EE
}; };
/// Player state /// Player state

View file

@ -1467,6 +1467,7 @@ bool Player::BuildEnumData( QueryResult * result, WorldPacket * p_data )
// character customize (flags?) // character customize (flags?)
*p_data << uint32(atLoginFlags & AT_LOGIN_CUSTOMIZE ? 1 : 0); *p_data << uint32(atLoginFlags & AT_LOGIN_CUSTOMIZE ? 1 : 0);
*p_data << uint8(1); // unknown *p_data << uint8(1); // unknown
*p_data << uint8(0); // 3.2
// Pets info // Pets info
{ {

View file

@ -869,7 +869,11 @@ enum SpellCastResult
SPELL_FAILED_ITEM_AT_MAX_CHARGES = 178, SPELL_FAILED_ITEM_AT_MAX_CHARGES = 178,
SPELL_FAILED_NOT_IN_BARBERSHOP = 179, SPELL_FAILED_NOT_IN_BARBERSHOP = 179,
SPELL_FAILED_FISHING_TOO_LOW = 180, SPELL_FAILED_FISHING_TOO_LOW = 180,
SPELL_FAILED_UNKNOWN = 181, SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW = 181,
SPELL_FAILED_SUMMON_PENDING = 182,
SPELL_FAILED_MAX_SOCKETS = 183,
SPELL_FAILED_PET_CAN_RENAME = 184,
SPELL_FAILED_UNKNOWN = 185,
SPELL_CAST_OK = 255 //custom value, don't must be send to client SPELL_CAST_OK = 255 //custom value, don't must be send to client
}; };

View file

@ -19,7 +19,7 @@
#ifndef _UPDATEFIELDS_AUTO_H #ifndef _UPDATEFIELDS_AUTO_H
#define _UPDATEFIELDS_AUTO_H #define _UPDATEFIELDS_AUTO_H
// Auto generated for version 3, 1, 3, 9947 // Auto generated for version 0, 2, 0, 10026
enum EObjectFields enum EObjectFields
{ {
@ -70,7 +70,7 @@ enum EItemFields
ITEM_FIELD_ITEM_TEXT_ID = OBJECT_END + 0x0036, // Size: 1, Type: INT, Flags: OWNER ITEM_FIELD_ITEM_TEXT_ID = OBJECT_END + 0x0036, // Size: 1, Type: INT, Flags: OWNER
ITEM_FIELD_DURABILITY = OBJECT_END + 0x0037, // Size: 1, Type: INT, Flags: OWNER, ITEM_OWNER ITEM_FIELD_DURABILITY = OBJECT_END + 0x0037, // Size: 1, Type: INT, Flags: OWNER, ITEM_OWNER
ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x0038, // Size: 1, Type: INT, Flags: OWNER, ITEM_OWNER ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x0038, // Size: 1, Type: INT, Flags: OWNER, ITEM_OWNER
ITEM_FIELD_PAD = OBJECT_END + 0x0039, // Size: 1, Type: INT, Flags: NONE ITEM_FIELD_CREATE_PLAYED_TIME = OBJECT_END + 0x0039, // Size: 1, Type: INT, Flags: PUBLIC
ITEM_END = OBJECT_END + 0x003A, ITEM_END = OBJECT_END + 0x003A,
}; };
@ -323,7 +323,7 @@ enum EUnitFields
PLAYER_VISIBLE_ITEM_19_ENTRYID = UNIT_END + 0x0092, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_19_ENTRYID = UNIT_END + 0x0092, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_VISIBLE_ITEM_19_ENCHANTMENT = UNIT_END + 0x0093, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC PLAYER_VISIBLE_ITEM_19_ENCHANTMENT = UNIT_END + 0x0093, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC
PLAYER_CHOSEN_TITLE = UNIT_END + 0x0094, // Size: 1, Type: INT, Flags: PUBLIC PLAYER_CHOSEN_TITLE = UNIT_END + 0x0094, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_FIELD_PAD_0 = UNIT_END + 0x0095, // Size: 1, Type: INT, Flags: NONE PLAYER_FAKE_INEBRIATION = UNIT_END + 0x0095, // Size: 1, Type: INT, Flags: PUBLIC
PLAYER_FIELD_INV_SLOT_HEAD = UNIT_END + 0x0096, // Size: 46, Type: LONG, Flags: PRIVATE PLAYER_FIELD_INV_SLOT_HEAD = UNIT_END + 0x0096, // Size: 46, Type: LONG, Flags: PRIVATE
PLAYER_FIELD_PACK_SLOT_1 = UNIT_END + 0x00C4, // Size: 32, Type: LONG, Flags: PRIVATE PLAYER_FIELD_PACK_SLOT_1 = UNIT_END + 0x00C4, // Size: 32, Type: LONG, Flags: PRIVATE
PLAYER_FIELD_BANK_SLOT_1 = UNIT_END + 0x00E4, // Size: 56, Type: LONG, Flags: PRIVATE PLAYER_FIELD_BANK_SLOT_1 = UNIT_END + 0x00E4, // Size: 56, Type: LONG, Flags: PRIVATE
@ -361,32 +361,34 @@ enum EUnitFields
PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UNIT_END + 0x03EC, // Size: 7, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UNIT_END + 0x03EC, // Size: 7, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UNIT_END + 0x03F3, // Size: 7, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UNIT_END + 0x03F3, // Size: 7, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_HEALING_DONE_POS = UNIT_END + 0x03FA, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_HEALING_DONE_POS = UNIT_END + 0x03FA, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MOD_TARGET_RESISTANCE = UNIT_END + 0x03FB, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_HEALING_PCT = UNIT_END + 0x03FB, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE = UNIT_END + 0x03FC, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_HEALING_DONE_PCT = UNIT_END + 0x03FC, // Size: 1, Type: FLOAT, Flags: PRIVATE
PLAYER_FIELD_BYTES = UNIT_END + 0x03FD, // Size: 1, Type: BYTES, Flags: PRIVATE PLAYER_FIELD_MOD_TARGET_RESISTANCE = UNIT_END + 0x03FD, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_AMMO_ID = UNIT_END + 0x03FE, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE = UNIT_END + 0x03FE, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_SELF_RES_SPELL = UNIT_END + 0x03FF, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_BYTES = UNIT_END + 0x03FF, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_FIELD_PVP_MEDALS = UNIT_END + 0x0400, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_AMMO_ID = UNIT_END + 0x0400, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_BUYBACK_PRICE_1 = UNIT_END + 0x0401, // Size: 12, Type: INT, Flags: PRIVATE PLAYER_SELF_RES_SPELL = UNIT_END + 0x0401, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UNIT_END + 0x040D, // Size: 12, Type: INT, Flags: PRIVATE PLAYER_FIELD_PVP_MEDALS = UNIT_END + 0x0402, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_KILLS = UNIT_END + 0x0419, // Size: 1, Type: TWO_SHORT, Flags: PRIVATE PLAYER_FIELD_BUYBACK_PRICE_1 = UNIT_END + 0x0403, // Size: 12, Type: INT, Flags: PRIVATE
PLAYER_FIELD_TODAY_CONTRIBUTION = UNIT_END + 0x041A, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UNIT_END + 0x040F, // Size: 12, Type: INT, Flags: PRIVATE
PLAYER_FIELD_YESTERDAY_CONTRIBUTION = UNIT_END + 0x041B, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_KILLS = UNIT_END + 0x041B, // Size: 1, Type: TWO_SHORT, Flags: PRIVATE
PLAYER_FIELD_LIFETIME_HONORBALE_KILLS = UNIT_END + 0x041C, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_TODAY_CONTRIBUTION = UNIT_END + 0x041C, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_BYTES2 = UNIT_END + 0x041D, // Size: 1, Type: BYTES, Flags: PRIVATE PLAYER_FIELD_YESTERDAY_CONTRIBUTION = UNIT_END + 0x041D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_WATCHED_FACTION_INDEX = UNIT_END + 0x041E, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_LIFETIME_HONORBALE_KILLS = UNIT_END + 0x041E, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x041F, // Size: 25, Type: INT, Flags: PRIVATE PLAYER_FIELD_BYTES2 = UNIT_END + 0x041F, // Size: 1, Type: BYTES, Flags: PRIVATE
PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UNIT_END + 0x0438, // Size: 18, Type: INT, Flags: PRIVATE PLAYER_FIELD_WATCHED_FACTION_INDEX = UNIT_END + 0x0420, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_HONOR_CURRENCY = UNIT_END + 0x044A, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x0421, // Size: 25, Type: INT, Flags: PRIVATE
PLAYER_FIELD_ARENA_CURRENCY = UNIT_END + 0x044B, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UNIT_END + 0x043A, // Size: 18, Type: INT, Flags: PRIVATE
PLAYER_FIELD_MAX_LEVEL = UNIT_END + 0x044C, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_HONOR_CURRENCY = UNIT_END + 0x044C, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_FIELD_DAILY_QUESTS_1 = UNIT_END + 0x044D, // Size: 25, Type: INT, Flags: PRIVATE PLAYER_FIELD_ARENA_CURRENCY = UNIT_END + 0x044D, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_RUNE_REGEN_1 = UNIT_END + 0x0466, // Size: 4, Type: FLOAT, Flags: PRIVATE PLAYER_FIELD_MAX_LEVEL = UNIT_END + 0x044E, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_NO_REAGENT_COST_1 = UNIT_END + 0x046A, // Size: 3, Type: INT, Flags: PRIVATE PLAYER_FIELD_DAILY_QUESTS_1 = UNIT_END + 0x044F, // Size: 25, Type: INT, Flags: PRIVATE
PLAYER_FIELD_GLYPH_SLOTS_1 = UNIT_END + 0x046D, // Size: 6, Type: INT, Flags: PRIVATE PLAYER_RUNE_REGEN_1 = UNIT_END + 0x0468, // Size: 4, Type: FLOAT, Flags: PRIVATE
PLAYER_FIELD_GLYPHS_1 = UNIT_END + 0x0473, // Size: 6, Type: INT, Flags: PRIVATE PLAYER_NO_REAGENT_COST_1 = UNIT_END + 0x046C, // Size: 3, Type: INT, Flags: PRIVATE
PLAYER_GLYPHS_ENABLED = UNIT_END + 0x0479, // Size: 1, Type: INT, Flags: PRIVATE PLAYER_FIELD_GLYPH_SLOTS_1 = UNIT_END + 0x046F, // Size: 6, Type: INT, Flags: PRIVATE
PLAYER_END = UNIT_END + 0x047A, PLAYER_FIELD_GLYPHS_1 = UNIT_END + 0x0475, // Size: 6, Type: INT, Flags: PRIVATE
PLAYER_GLYPHS_ENABLED = UNIT_END + 0x047B, // Size: 1, Type: INT, Flags: PRIVATE
PLAYER_END = UNIT_END + 0x047C,
}; };
enum EGameObjectFields enum EGameObjectFields
@ -408,12 +410,8 @@ enum EDynamicObjectFields
DYNAMICOBJECT_BYTES = OBJECT_END + 0x0002, // Size: 1, Type: BYTES, Flags: PUBLIC DYNAMICOBJECT_BYTES = OBJECT_END + 0x0002, // Size: 1, Type: BYTES, Flags: PUBLIC
DYNAMICOBJECT_SPELLID = OBJECT_END + 0x0003, // Size: 1, Type: INT, Flags: PUBLIC DYNAMICOBJECT_SPELLID = OBJECT_END + 0x0003, // Size: 1, Type: INT, Flags: PUBLIC
DYNAMICOBJECT_RADIUS = OBJECT_END + 0x0004, // Size: 1, Type: FLOAT, Flags: PUBLIC DYNAMICOBJECT_RADIUS = OBJECT_END + 0x0004, // Size: 1, Type: FLOAT, Flags: PUBLIC
DYNAMICOBJECT_POS_X = OBJECT_END + 0x0005, // Size: 1, Type: FLOAT, Flags: PUBLIC DYNAMICOBJECT_CASTTIME = OBJECT_END + 0x0005, // Size: 1, Type: INT, Flags: PUBLIC
DYNAMICOBJECT_POS_Y = OBJECT_END + 0x0006, // Size: 1, Type: FLOAT, Flags: PUBLIC DYNAMICOBJECT_END = OBJECT_END + 0x0006,
DYNAMICOBJECT_POS_Z = OBJECT_END + 0x0007, // Size: 1, Type: FLOAT, Flags: PUBLIC
DYNAMICOBJECT_FACING = OBJECT_END + 0x0008, // Size: 1, Type: FLOAT, Flags: PUBLIC
DYNAMICOBJECT_CASTTIME = OBJECT_END + 0x0009, // Size: 1, Type: INT, Flags: PUBLIC
DYNAMICOBJECT_END = OBJECT_END + 0x000A,
}; };
enum ECorpseFields enum ECorpseFields

View file

@ -66,8 +66,8 @@ enum LoginResult
// we need to stick to 1 version or half of the stuff will work for someone // we need to stick to 1 version or half of the stuff will work for someone
// others will not and opposite // others will not and opposite
// will only support WoW, WoW:TBC and WoW:WotLK 3.1.3 client build 9947... // will only support WoW, WoW:TBC and WoW:WotLK 3.2.0 client build 10026...
#define EXPECTED_MANGOS_CLIENT_BUILD {9947, 0} #define EXPECTED_MANGOS_CLIENT_BUILD {10026, 0}
#endif #endif