From f7de2ce1d76d366cb0416154982871e79450bc87 Mon Sep 17 00:00:00 2001 From: tomrus88 Date: Sun, 17 Jan 2010 22:09:10 +0300 Subject: [PATCH] Possible queue bug fix. Player flags enum update. --- src/game/DBCEnums.h | 1 + src/game/DBCStructure.h | 6 ++--- src/game/Opcodes.h | 16 ++++++------ src/game/Player.h | 52 +++++++++++++++++++-------------------- src/game/World.cpp | 7 +++--- src/game/WorldSession.cpp | 7 +++--- 6 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/game/DBCEnums.h b/src/game/DBCEnums.h index 73a913b74..d324555ea 100644 --- a/src/game/DBCEnums.h +++ b/src/game/DBCEnums.h @@ -241,6 +241,7 @@ enum AreaFlags AREA_FLAG_UNK9 = 0x02000000, // unknown AREA_FLAG_UNK10 = 0x04000000, // unknown AREA_FLAG_OUTDOOR_PVP2 = 0x08000000 // Wintergrasp and it's subzones + // 0x20000000 not flyable? }; enum Difficulty diff --git a/src/game/DBCStructure.h b/src/game/DBCStructure.h index 12d384ae3..a3ae27ed9 100644 --- a/src/game/DBCStructure.h +++ b/src/game/DBCStructure.h @@ -613,7 +613,7 @@ struct ChatChannelsEntry struct ChrClassesEntry { uint32 ClassID; // 0 - // 1, unused + //uint32 flags; // 1, unused uint32 powerType; // 2 // 3-4, unused //char* name[16]; // 5-20 unused @@ -622,9 +622,9 @@ struct ChrClassesEntry // 37 string flag, unused //char* nameNeutralGender[16]; // 38-53 unused, if different from base (male) case // 54 string flag, unused - // 55, unused + // 55, unused capitalized name uint32 spellfamily; // 56 - // 57, unused + //uint32 flags2; // 57, unused 0x08 HasRelicSlot uint32 CinematicSequence; // 58 id from CinematicSequences.dbc uint32 expansion; // 59 (0 - original race, 1 - tbc addon, ...) }; diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index f2fcac996..3b9c64fe1 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -1242,7 +1242,7 @@ enum Opcodes SMSG_ITEM_REFUND_RESULT = 0x4B5, // refund item result CMSG_CORPSE_MAP_POSITION_QUERY = 0x4B6, // CMSG, uint32 CMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE = 0x4B7, // SMSG, 3*float+float - CMSG_LFG_SET_ROLES_2 = 0x4B8, // CMSG, empty, lua: SetLFGRoles + UMSG_UNKNOWN_1208 = 0x4B8, // not found UMSG_UNKNOWN_1209 = 0x4B9, // not found CMSG_CALENDAR_CONTEXT_EVENT_SIGNUP = 0x4BA, // CMSG, uint64, lua: CalendarContextEventSignUp SMSG_CALENDAR_ACTION_PENDING = 0x4BB, // SMSG, calendar related EVENT_CALENDAR_ACTION_PENDING @@ -1264,13 +1264,13 @@ enum Opcodes UMSG_UNKNOWN_1227 = 0x4CB, // not found 3.2 UMSG_UNKNOWN_1228 = 0x4CC, // not found 3.2 SMSG_UNKNOWN_1229 = 0x4CD, // SMSG, handles any opcode - SMSG_UNKNOWN_1230 = 0x4CE, // SMSG, movement related - CMSG_UNKNOWN_1231_ACK = 0x4CF, // movement related - SMSG_UNKNOWN_1232 = 0x4D0, // SMSG, movement related - CMSG_UNKNOWN_1233_ACK = 0x4D1, // movement related - SMSG_UNKNOWN_1234 = 0x4D2, // SMSG, movement related - SMSG_UNKNOWN_1235 = 0x4D3, // SMSG, movement related - SMSG_UNKNOWN_1236 = 0x4D4, // SMSG, movement related + SMSG_FORCE_UNK1_SPEED_CHANGE = 0x4CE, // SMSG, movement related + CMSG_FORCE_UNK1_SPEED_CHANGE_ACK = 0x4CF, // movement related + SMSG_FORCE_UNK2_SPEED_CHANGE = 0x4D0, // SMSG, movement related + CMSG_FORCE_UNK2_SPEED_CHANGE_ACK = 0x4D1, // movement related + MSG_MOVE_UNKNOWN_1234 = 0x4D2, // SMSG, movement related + SMSG_SPLINE_MOVE_UNKNOWN_1235 = 0x4D3, // SMSG, movement related + SMSG_SPLINE_MOVE_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 diff --git a/src/game/Player.h b/src/game/Player.h index 7054183bd..849df7a49 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -423,32 +423,32 @@ enum DrunkenState enum PlayerFlags { - PLAYER_FLAGS_GROUP_LEADER = 0x00000001, - PLAYER_FLAGS_AFK = 0x00000002, - PLAYER_FLAGS_DND = 0x00000004, - PLAYER_FLAGS_GM = 0x00000008, - PLAYER_FLAGS_GHOST = 0x00000010, - PLAYER_FLAGS_RESTING = 0x00000020, - PLAYER_FLAGS_UNK7 = 0x00000040, - PLAYER_FLAGS_UNK8 = 0x00000080, // pre-3.0.3 PLAYER_FLAGS_FFA_PVP flag for FFA PVP state - PLAYER_FLAGS_CONTESTED_PVP = 0x00000100, // Player has been involved in a PvP combat and will be attacked by contested guards - PLAYER_FLAGS_IN_PVP = 0x00000200, - PLAYER_FLAGS_HIDE_HELM = 0x00000400, - PLAYER_FLAGS_HIDE_CLOAK = 0x00000800, - PLAYER_FLAGS_UNK13 = 0x00001000, // played long time - PLAYER_FLAGS_UNK14 = 0x00002000, // played too long time - PLAYER_FLAGS_UNK15 = 0x00004000, - PLAYER_FLAGS_UNK16 = 0x00008000, // strange visual effect (2.0.1), looks like PLAYER_FLAGS_GHOST flag - PLAYER_FLAGS_UNK17 = 0x00010000, // pre-3.0.3 PLAYER_FLAGS_SANCTUARY flag for player entered sanctuary - PLAYER_FLAGS_UNK18 = 0x00020000, // taxi benchmark mode (on/off) (2.0.1) - PLAYER_FLAGS_PVP_TIMER = 0x00040000, // 3.0.2, pvp timer active (after you disable pvp manually) - PLAYER_FLAGS_UNK20 = 0x00080000, - PLAYER_FLAGS_UNK21 = 0x00100000, - PLAYER_FLAGS_UNK22 = 0x00200000, - PLAYER_FLAGS_UNK23 = 0x00400000, - PLAYER_FLAGS_UNK24 = 0x00800000, // disabled all abilitys on tab except autoattack - PLAYER_FLAGS_UNK25 = 0x01000000, // disabled all melee ability on tab include autoattack - PLAYER_FLAGS_NO_XP_GAIN = 0x02000000, + PLAYER_FLAGS_GROUP_LEADER = 0x00000001, + PLAYER_FLAGS_AFK = 0x00000002, + PLAYER_FLAGS_DND = 0x00000004, + PLAYER_FLAGS_GM = 0x00000008, + PLAYER_FLAGS_GHOST = 0x00000010, + PLAYER_FLAGS_RESTING = 0x00000020, + PLAYER_FLAGS_UNK7 = 0x00000040, + PLAYER_FLAGS_UNK8 = 0x00000080, // pre-3.0.3 PLAYER_FLAGS_FFA_PVP flag for FFA PVP state + PLAYER_FLAGS_CONTESTED_PVP = 0x00000100, // Player has been involved in a PvP combat and will be attacked by contested guards + PLAYER_FLAGS_IN_PVP = 0x00000200, + PLAYER_FLAGS_HIDE_HELM = 0x00000400, + PLAYER_FLAGS_HIDE_CLOAK = 0x00000800, + PLAYER_FLAGS_PARTIAL_PLAY_TIME = 0x00001000, // played long time + PLAYER_FLAGS_NO_PLAY_TIME = 0x00002000, // played too long time + PLAYER_FLAGS_IS_OUT_OF_BOUNDS = 0x00004000, // Lua_IsOutOfBounds + PLAYER_FLAGS_UNK16 = 0x00008000, // strange visual effect (2.0.1), looks like PLAYER_FLAGS_GHOST flag + PLAYER_FLAGS_UNK17 = 0x00010000, // pre-3.0.3 PLAYER_FLAGS_SANCTUARY flag for player entered sanctuary + PLAYER_FLAGS_TAXI_BENCHMARK = 0x00020000, // taxi benchmark mode (on/off) (2.0.1) + PLAYER_FLAGS_PVP_TIMER = 0x00040000, // 3.0.2, pvp timer active (after you disable pvp manually) + PLAYER_FLAGS_COMMENTATOR = 0x00080000, + PLAYER_FLAGS_UNK21 = 0x00100000, + PLAYER_FLAGS_UNK22 = 0x00200000, + PLAYER_FLAGS_COMMENTATOR2 = 0x00400000, // something like COMMENTATOR_CAN_USE_INSTANCE_COMMAND + PLAYER_FLAGS_UNK24 = 0x00800000, // EVENT_SPELL_UPDATE_USABLE and EVENT_UPDATE_SHAPESHIFT_USABLE, disabled all abilitys on tab except autoattack + PLAYER_FLAGS_UNK25 = 0x01000000, // EVENT_SPELL_UPDATE_USABLE and EVENT_UPDATE_SHAPESHIFT_USABLE, disabled all melee ability on tab include autoattack + PLAYER_FLAGS_XP_USER_DISABLED = 0x02000000, }; // used for PLAYER__FIELD_KNOWN_TITLES field (uint64), (1<Expansion()); // 0 - normal, 1 - TBC, must be set in database manually for each account - packet << uint32(GetQueuePos (sess)); + packet << uint32(GetQueuePos (sess)); // position in queue + packet << uint8(0); // unk 3.3.0 sess->SendPacket (&packet); - - //sess->SendAuthWaitQue (GetQueuePos (sess)); } bool World::RemoveQueuedPlayer(WorldSession* sess) diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp index 2495e81b7..5d20be7d1 100644 --- a/src/game/WorldSession.cpp +++ b/src/game/WorldSession.cpp @@ -567,9 +567,10 @@ void WorldSession::SendAuthWaitQue(uint32 position) } else { - WorldPacket packet( SMSG_AUTH_RESPONSE, 5 ); - packet << uint8( AUTH_WAIT_QUEUE ); - packet << uint32 (position); + WorldPacket packet( SMSG_AUTH_RESPONSE, 1+4+1 ); + packet << uint8(AUTH_WAIT_QUEUE); + packet << uint32(position); + packet << uint8(0); // unk 3.3.0 SendPacket(&packet); } }