From e0a8e30cc3baa460f82c789266f4a513dc9d81e7 Mon Sep 17 00:00:00 2001 From: Yaki Khadafi Date: Wed, 15 Aug 2012 12:06:00 +0300 Subject: [PATCH] [0093] Enabled and updated lots of opcodes, mostly spell-related. All structures checked . Signed-off-by: Yaki Khadafi --- src/game/NPCHandler.cpp | 4 +- src/game/Opcodes.cpp | 116 +++++++++++++++++++------------------- src/game/Opcodes.h | 112 ++++++++++++++++++------------------ src/game/Player.cpp | 8 ++- src/game/Player.h | 2 +- src/game/Spell.cpp | 30 ++++++++-- src/game/SpellEffects.cpp | 2 +- src/game/SpellHandler.cpp | 2 +- src/game/Unit.cpp | 21 +++++-- src/game/debugcmds.cpp | 4 +- src/shared/revision_nr.h | 2 +- 11 files changed, 168 insertions(+), 135 deletions(-) diff --git a/src/game/NPCHandler.cpp b/src/game/NPCHandler.cpp index 690b42fdc..43bd4e466 100644 --- a/src/game/NPCHandler.cpp +++ b/src/game/NPCHandler.cpp @@ -237,9 +237,9 @@ void WorldSession::SendTrainerList(ObjectGuid guid, const std::string& strTitle) void WorldSession::HandleTrainerBuySpellOpcode(WorldPacket& recv_data) { ObjectGuid guid; - uint32 spellId = 0; + uint32 spellId = 0, trainerId = 0; - recv_data >> guid >> spellId; + recv_data >> guid >> trainerId >> spellId; DEBUG_LOG("WORLD: Received CMSG_TRAINER_BUY_SPELL Trainer: %s, learn spell id is: %u", guid.GetString().c_str(), spellId); Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_TRAINER); diff --git a/src/game/Opcodes.cpp b/src/game/Opcodes.cpp index 937c481d8..2a0a334a4 100644 --- a/src/game/Opcodes.cpp +++ b/src/game/Opcodes.cpp @@ -367,8 +367,8 @@ void InitializeOpcodes() //OPCODE(SMSG_SET_FACTION_STANDING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SET_FACTION_ATWAR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetFactionAtWarOpcode ); //OPCODE(CMSG_SET_FACTION_CHEAT, STATUS_NEVER, PROCESS_THREADUNSAFE, &WorldSession::Handle_Deprecated ); - //OPCODE(SMSG_SET_PROFICIENCY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_SET_ACTION_BUTTON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionButtonOpcode ); + OPCODE(SMSG_SET_PROFICIENCY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_SET_ACTION_BUTTON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActionButtonOpcode ); OPCODE(SMSG_ACTION_BUTTONS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_INITIAL_SPELLS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_LEARNED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -379,37 +379,37 @@ void InitializeOpcodes() OPCODE(SMSG_CAST_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_SPELL_START, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_SPELL_GO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELL_FAILURE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELL_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_COOLDOWN_EVENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELL_FAILURE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELL_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_COOLDOWN_EVENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_CANCEL_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelAuraOpcode ); //OPCODE(SMSG_EQUIPMENT_SET_ID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_PET_CAST_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(MSG_CHANNEL_START, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(MSG_CHANNEL_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_CANCEL_CHANNELLING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelChanneling ); - //OPCODE(SMSG_AI_REACTION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_PET_CAST_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_CHANNEL_START, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + OPCODE(SMSG_CHANNEL_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + OPCODE(CMSG_CANCEL_CHANNELLING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelChanneling ); + OPCODE(SMSG_AI_REACTION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_SET_SELECTION, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetSelectionOpcode ); //OPCODE(CMSG_DELETEEQUIPMENT_SET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetDeleteOpcode ); //OPCODE(CMSG_INSTANCE_LOCK_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_DEBUG_PASSIVE_AURA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_ATTACKSWING, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAttackSwingOpcode ); - //OPCODE(CMSG_ATTACKSTOP, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAttackStopOpcode ); - //OPCODE(SMSG_ATTACKSTART, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ATTACKSTOP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ATTACKSWING_NOTINRANGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ATTACKSWING_BADFACING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_ATTACKSWING, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAttackSwingOpcode ); + OPCODE(CMSG_ATTACKSTOP, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAttackStopOpcode ); + OPCODE(SMSG_ATTACKSTART, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ATTACKSTOP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ATTACKSWING_NOTINRANGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ATTACKSWING_BADFACING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_PENDING_RAID_LOCK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ATTACKSWING_DEADTARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ATTACKSWING_CANT_ATTACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ATTACKERSTATEUPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ATTACKSWING_DEADTARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ATTACKSWING_CANT_ATTACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ATTACKERSTATEUPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_BATTLEFIELD_PORT_DENIED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_PERFORM_ACTION_SET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_RESUME_CAST_BAR, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_CANCEL_COMBAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELLBREAKLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELLHEALLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELLENERGIZELOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_CANCEL_COMBAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLBREAKLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLHEALLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLENERGIZELOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_BREAK_TARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SAVE_PLAYER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_SETDEATHBINDPOINT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -449,7 +449,7 @@ void InitializeOpcodes() //OPCODE(CMSG_PET_ABANDON, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetAbandon ); //OPCODE(CMSG_PET_RENAME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetRename ); //OPCODE(SMSG_PET_NAME_INVALID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_PET_SPELLS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_PET_SPELLS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_PET_MODE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_GOSSIP_HELLO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGossipHelloOpcode ); //OPCODE(CMSG_GOSSIP_SELECT_OPTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGossipSelectOptionOpcode ); @@ -506,8 +506,8 @@ void InitializeOpcodes() //OPCODE(SMSG_NEW_TAXI_PATH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_TRAINER_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTrainerListOpcode ); //OPCODE(SMSG_TRAINER_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_TRAINER_BUY_SPELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTrainerBuySpellOpcode ); - //OPCODE(SMSG_TRAINER_BUY_SUCCEEDED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_TRAINER_BUY_SPELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTrainerBuySpellOpcode ); + OPCODE(SMSG_TRAINER_BUY_SUCCEEDED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_TRAINER_BUY_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_BINDER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBinderActivateOpcode ); //OPCODE(SMSG_PLAYERBINDERROR, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -554,7 +554,7 @@ void InitializeOpcodes() //OPCODE(SMSG_GAMEOBJECT_PAGETEXT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SETSHEATHED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetSheathedOpcode ); //OPCODE(SMSG_COOLDOWN_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELL_DELAYED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELL_DELAYED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_QUEST_POI_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestPOIQueryOpcode ); //OPCODE(SMSG_QUEST_POI_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_GHOST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -582,7 +582,7 @@ void InitializeOpcodes() //OPCODE(SMSG_LFG_PLAYER_REWARD, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_LFG_TELEPORT_DENIED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_UNLEARN_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_UNLEARN_SKILL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUnlearnSkillOpcode ); + OPCODE(CMSG_UNLEARN_SKILL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUnlearnSkillOpcode ); OPCODE(SMSG_REMOVED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_DECHARGE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(CMSG_GMTICKET_CREATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketCreateOpcode ); @@ -655,12 +655,12 @@ void InitializeOpcodes() //OPCODE(CMSG_MAIL_RETURN_TO_SENDER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailReturnToSender ); //OPCODE(CMSG_MAIL_DELETE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailDelete ); //OPCODE(CMSG_MAIL_CREATE_TEXT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailCreateTextItem ); - //OPCODE(SMSG_SPELLLOGMISS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELLLOGEXECUTE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLLOGMISS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLLOGEXECUTE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_DEBUGAURAPROC, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_PERIODICAURALOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELLDAMAGESHIELD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELLNONMELEEDAMAGELOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_PERIODICAURALOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLDAMAGESHIELD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLNONMELEEDAMAGELOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_LEARN_TALENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLearnTalentOpcode ); //OPCODE(SMSG_RESURRECT_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_TOGGLE_PVP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTogglePvP ); @@ -678,18 +678,18 @@ void InitializeOpcodes() //OPCODE(SMSG_AUCTION_OWNER_NOTIFICATION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_PROCRESIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_COMBAT_EVENT_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_DISPEL_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELLORDAMAGE_IMMUNE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_DISPEL_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLOGDAMAGE_IMMUNE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_AUCTION_LIST_BIDDER_ITEMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListBidderItems ); //OPCODE(SMSG_AUCTION_BIDDER_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SET_FLAT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SET_PCT_SPELL_MODIFIER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SET_AMMO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetAmmoOpcode ); //OPCODE(SMSG_CORPSE_RECLAIM_DELAY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SET_ACTIVE_MOVER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveMoverOpcode ); - //OPCODE(CMSG_PET_CANCEL_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetCancelAuraOpcode ); + OPCODE(CMSG_PET_CANCEL_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetCancelAuraOpcode ); //OPCODE(CMSG_PLAYER_AI_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_CANCEL_AUTO_REPEAT_SPELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelAutoRepeatSpellOpcode); + OPCODE(CMSG_CANCEL_AUTO_REPEAT_SPELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelAutoRepeatSpellOpcode); //OPCODE(MSG_GM_ACCOUNT_ONLINE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(MSG_LIST_STABLED_PETS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleListStabledPetsOpcode ); //OPCODE(CMSG_STABLE_PET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleStablePet ); @@ -703,7 +703,7 @@ void InitializeOpcodes() //OPCODE(SMSG_PLAY_OBJECT_SOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_REQUEST_PET_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPetInfoOpcode ); //OPCODE(CMSG_FAR_SIGHT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleFarSightOpcode ); - //OPCODE(SMSG_SPELLDISPELLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLDISPELLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_DAMAGE_CALC_LOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_ENABLE_DAMAGE_LOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_GROUP_CHANGE_SUB_GROUP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGroupChangeSubGroupOpcode ); @@ -736,7 +736,7 @@ void InitializeOpcodes() //OPCODE(SMSG_CHAT_NOT_IN_PARTY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_GMTICKETSYSTEM_TOGGLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_CANCEL_GROWTH_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelGrowthAuraOpcode ); - //OPCODE(SMSG_CANCEL_AUTO_REPEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_CANCEL_AUTO_REPEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_STANDSTATE_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_LOOT_ALL_PASSED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_LOOT_ROLL_WON, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -746,7 +746,7 @@ void InitializeOpcodes() //OPCODE(CMSG_LOOT_MASTER_GIVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLootMasterGiveOpcode ); //OPCODE(SMSG_LOOT_MASTER_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_SET_FORCED_REACTIONS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELL_FAILED_OTHER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELL_FAILED_OTHER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_GAMEOBJECT_RESET_STATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_REPAIR_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRepairItemOpcode ); //OPCODE(SMSG_CHAT_PLAYER_NOT_FOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -823,7 +823,7 @@ void InitializeOpcodes() //OPCODE(CMSG_PET_UNLEARN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetUnlearnOpcode ); //OPCODE(SMSG_PET_UNLEARN_CONFIRM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_PARTY_MEMBER_STATS_FULL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_PET_SPELL_AUTOCAST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetSpellAutocastOpcode ); + OPCODE(CMSG_PET_SPELL_AUTOCAST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetSpellAutocastOpcode ); OPCODE(SMSG_WEATHER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_PLAY_TIME_WARNING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_MINIGAME_SETUP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -883,11 +883,11 @@ void InitializeOpcodes() //OPCODE(CMSG_IGNORE_KNOCKBACK_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_CHAT_PLAYER_AMBIGUOUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(MSG_DELAY_GHOST_TELEPORT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_SPELLINSTAKILLLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLINSTAKILLLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_SPELL_UPDATE_CHAIN_TARGETS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_CHAT_FILTERED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_EXPECTED_SPAM_RECORDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_SPELLSTEALLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_SPELLSTEALLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_LOTTERY_QUERY_OBSOLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_LOTTERY_QUERY_RESULT_OBSOLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_BUY_LOTTERY_TICKET_OBSOLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -951,9 +951,9 @@ void InitializeOpcodes() //OPCODE(CMSG_LFG_TELEPORT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_LFG_GET_PARTY_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_LFG_PARTY_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_TITLE_EARNED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_SET_TITLE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTitleOpcode ); - //OPCODE(CMSG_CANCEL_MOUNT_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelMountAuraOpcode ); + OPCODE(SMSG_TITLE_EARNED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_SET_TITLE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTitleOpcode ); + OPCODE(CMSG_CANCEL_MOUNT_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelMountAuraOpcode ); //OPCODE(SMSG_ARENA_ERROR, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(MSG_INSPECT_ARENA_TEAMS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectArenaTeamsOpcode ); //OPCODE(SMSG_DEATH_RELEASE_LOC, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -1027,7 +1027,7 @@ void InitializeOpcodes() //OPCODE(CMSG_COMMENTATOR_ENTER_INSTANCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_COMMENTATOR_EXIT_INSTANCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_COMMENTATOR_INSTANCE_COMMAND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_CLEAR_TARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_CLEAR_TARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_BOT_DETECTED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_CROSSED_INEBRIATION_THRESHOLD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_CHEAT_PLAYER_LOGIN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -1084,7 +1084,7 @@ void InitializeOpcodes() //OPCODE(SMSG_GOGOGO_OBSOLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_ECHO_PARTY_SQUELCH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SET_TITLE_SUFFIX, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_SPELLCLICK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSpellClick ); + OPCODE(CMSG_SPELLCLICK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSpellClick ); //OPCODE(SMSG_LOOT_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_GM_CHARACTER_RESTORE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_GM_CHARACTER_SAVE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -1111,14 +1111,14 @@ void InitializeOpcodes() //OPCODE(CMSG_DECLINE_CHANNEL_INVITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_GROUPACTION_THROTTLED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_OVERRIDE_LIGHT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_TOTEM_CREATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_TOTEM_DESTROYED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTotemDestroyed ); + OPCODE(SMSG_TOTEM_CREATED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_TOTEM_DESTROYED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTotemDestroyed ); //OPCODE(CMSG_EXPIRE_RAID_INSTANCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_NO_SPELL_VARIANCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestgiverStatusMultipleQuery); //OPCODE(SMSG_QUESTGIVER_STATUS_MULTIPLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNamesOpcode); - //OPCODE(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNamesOpcode); + OPCODE(SMSG_SET_PLAYER_DECLINED_NAMES_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_QUERY_SERVER_BUCK_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_CLEAR_SERVER_BUCK_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_SERVER_BUCK_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -1220,7 +1220,7 @@ void InitializeOpcodes() OPCODE(SMSG_ALL_ACHIEVEMENT_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_FORCE_SAY_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_HEALTH_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_POWER_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_POWER_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_GAMEOBJ_REPORT_USE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGameobjectReportUse ); //OPCODE(SMSG_HIGHEST_THREAT_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_THREAT_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -1245,8 +1245,8 @@ void InitializeOpcodes() OPCODE(SMSG_AURA_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_FLOOD_GRACE_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(SMSG_SERVER_FIRST_ACHIEVEMENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_PET_LEARNED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_PET_REMOVED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_PET_LEARNED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_PET_REMOVED_SPELL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_HEARTH_AND_RESURRECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleHearthandResurrect ); //OPCODE(SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -1262,7 +1262,7 @@ void InitializeOpcodes() //OPCODE(SMSG_SET_VEHICLE_REC_ID, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_RIDE_VEHICLE_INTERACT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_CONTROLLER_EJECT_PASSENGER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_PET_GUIDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_PET_GUIDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_CLIENTCACHE_VERSION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_CHANGE_GDF_ARENA_RATING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_SET_ARENA_TEAM_RATING_BY_INDEX, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index 31ca1f95c..efc5af1ce 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -352,8 +352,8 @@ enum Opcodes SMSG_SET_FACTION_STANDING = 0x1125, CMSG_SET_FACTION_ATWAR = 0x1126, CMSG_SET_FACTION_CHEAT = 0x1127, - SMSG_SET_PROFICIENCY = 0x1128, - CMSG_SET_ACTION_BUTTON = 0x1129, + SMSG_SET_PROFICIENCY = 0x6207, // 4.3.4 15595 + CMSG_SET_ACTION_BUTTON = 0x6F06, // 4.3.4 15595 SMSG_ACTION_BUTTONS = 0x38B5, // 4.3.4 15595 SMSG_INITIAL_SPELLS = 0x0104, // 4.3.4 15595 SMSG_LEARNED_SPELL = 0x58A2, // 4.3.4 15595 @@ -364,37 +364,37 @@ enum Opcodes SMSG_CAST_FAILED = 0x4D16, // 4.3.4 15595 SMSG_SPELL_START = 0x6415, // 4.3.4 15595 SMSG_SPELL_GO = 0x6E16, // 4.3.4 15595 - SMSG_SPELL_FAILURE = 0x1134, - SMSG_SPELL_COOLDOWN = 0x1135, - SMSG_COOLDOWN_EVENT = 0x1136, + SMSG_SPELL_FAILURE = 0x0C34, // 4.3.4 15595 + SMSG_SPELL_COOLDOWN = 0x4B16, // 4.3.4 15595 + SMSG_COOLDOWN_EVENT = 0x4F26, // 4.3.4 15595 CMSG_CANCEL_AURA = 0x0E26, // 4.3.4 15595 SMSG_EQUIPMENT_SET_ID = 0x1138, - SMSG_PET_CAST_FAILED = 0x1139, - MSG_CHANNEL_START = 0x113A, - MSG_CHANNEL_UPDATE = 0x113B, - CMSG_CANCEL_CHANNELLING = 0x113C, - SMSG_AI_REACTION = 0x113D, + SMSG_PET_CAST_FAILED = 0x2B15, // 4.3.4 15595 + SMSG_CHANNEL_START = 0x0A15, // 4.3.4 15595 + SMSG_CHANNEL_UPDATE = 0x2417, // 4.3.4 15595 + CMSG_CANCEL_CHANNELLING = 0x6C25, // 4.3.4 15595 + SMSG_AI_REACTION = 0x0637, // 4.3.4 15595 CMSG_SET_SELECTION = 0x0506, // 4.3.4 15595 CMSG_DELETEEQUIPMENT_SET = 0x113F, CMSG_INSTANCE_LOCK_RESPONSE = 0x1140, CMSG_DEBUG_PASSIVE_AURA = 0x1141, - CMSG_ATTACKSWING = 0x1142, - CMSG_ATTACKSTOP = 0x1143, - SMSG_ATTACKSTART = 0x1144, - SMSG_ATTACKSTOP = 0x1145, - SMSG_ATTACKSWING_NOTINRANGE = 0x1146, - SMSG_ATTACKSWING_BADFACING = 0x1147, + CMSG_ATTACKSWING = 0x0926, // 4.3.4 15595 + CMSG_ATTACKSTOP = 0x4106, // 4.3.4 15595 + SMSG_ATTACKSTART = 0x2D15, // 4.3.4 15595 + SMSG_ATTACKSTOP = 0x0934, // 4.3.4 15595 + SMSG_ATTACKSWING_NOTINRANGE = 0x6C07, // 4.3.4 15595 + SMSG_ATTACKSWING_BADFACING = 0x0B36, // 4.3.4 15595 SMSG_PENDING_RAID_LOCK = 0x1148, - SMSG_ATTACKSWING_DEADTARGET = 0x1149, - SMSG_ATTACKSWING_CANT_ATTACK = 0x114A, - SMSG_ATTACKERSTATEUPDATE = 0x114B, + SMSG_ATTACKSWING_DEADTARGET = 0x2B26, // 4.3.4 15595 + SMSG_ATTACKSWING_CANT_ATTACK = 0x0016, // 4.3.4 15595 + SMSG_ATTACKERSTATEUPDATE = 0x0B25, // 4.3.4 15595 SMSG_BATTLEFIELD_PORT_DENIED = 0x114C, CMSG_PERFORM_ACTION_SET = 0x114D, SMSG_RESUME_CAST_BAR = 0x114E, - SMSG_CANCEL_COMBAT = 0x114F, - SMSG_SPELLBREAKLOG = 0x1150, - SMSG_SPELLHEALLOG = 0x1151, - SMSG_SPELLENERGIZELOG = 0x1152, + SMSG_CANCEL_COMBAT = 0x4F04, // 4.3.4 15595 + SMSG_SPELLBREAKLOG = 0x6B17, // 4.3.4 15595 + SMSG_SPELLHEALLOG = 0x2816, // 4.3.4 15595 + SMSG_SPELLENERGIZELOG = 0x0414, // 4.3.4 15595 SMSG_BREAK_TARGET = 0x1153, CMSG_SAVE_PLAYER = 0x1154, CMSG_SETDEATHBINDPOINT = 0x1155, @@ -434,7 +434,7 @@ enum Opcodes CMSG_PET_ABANDON = 0x1177, CMSG_PET_RENAME = 0x1178, SMSG_PET_NAME_INVALID = 0x1179, - SMSG_PET_SPELLS = 0x117A, + SMSG_PET_SPELLS = 0x4114, // 4.3.4 15595 SMSG_PET_MODE = 0x117B, CMSG_GOSSIP_HELLO = 0x117C, CMSG_GOSSIP_SELECT_OPTION = 0x117D, @@ -539,7 +539,7 @@ enum Opcodes SMSG_GAMEOBJECT_PAGETEXT = 0x11E0, CMSG_SETSHEATHED = 0x11E1, SMSG_COOLDOWN_CHEAT = 0x11E2, - SMSG_SPELL_DELAYED = 0x11E3, + SMSG_SPELL_DELAYED = 0x0715, // 4.3.4 15595 CMSG_QUEST_POI_QUERY = 0x11E4, SMSG_QUEST_POI_QUERY_RESPONSE = 0x11E5, CMSG_GHOST = 0x11E6, @@ -567,7 +567,7 @@ enum Opcodes SMSG_LFG_PLAYER_REWARD = 0x1200, SMSG_LFG_TELEPORT_DENIED = 0x1201, CMSG_UNLEARN_SPELL = 0x1202, - CMSG_UNLEARN_SKILL = 0x1203, + CMSG_UNLEARN_SKILL = 0x6106, // 4.3.4 15595 SMSG_REMOVED_SPELL = 0x4804, // 4.3.4 15595 CMSG_DECHARGE = 0x1205, CMSG_GMTICKET_CREATE = 0x0137, // 4.3.4 15595 @@ -640,12 +640,12 @@ enum Opcodes CMSG_MAIL_RETURN_TO_SENDER = 0x1249, CMSG_MAIL_DELETE = 0x124A, CMSG_MAIL_CREATE_TEXT_ITEM = 0x124B, - SMSG_SPELLLOGMISS = 0x124C, - SMSG_SPELLLOGEXECUTE = 0x124D, + SMSG_SPELLLOGMISS = 0x0625, // 4.3.4 15595 + SMSG_SPELLLOGEXECUTE = 0x0626, // 4.3.4 15595 SMSG_DEBUGAURAPROC = 0x124E, - SMSG_PERIODICAURALOG = 0x124F, - SMSG_SPELLDAMAGESHIELD = 0x1250, - SMSG_SPELLNONMELEEDAMAGELOG = 0x1251, + SMSG_PERIODICAURALOG = 0x0416, // 4.3.4 15595 + SMSG_SPELLDAMAGESHIELD = 0x2927, // 4.3.4 15595 + SMSG_SPELLNONMELEEDAMAGELOG = 0x4315, // 4.3.4 15595 CMSG_LEARN_TALENT = 0x1252, SMSG_RESURRECT_FAILED = 0x1253, CMSG_TOGGLE_PVP = 0x1254, @@ -663,18 +663,18 @@ enum Opcodes SMSG_AUCTION_OWNER_NOTIFICATION = 0x1260, SMSG_PROCRESIST = 0x1261, SMSG_COMBAT_EVENT_FAILED = 0x1262, - SMSG_DISPEL_FAILED = 0x1263, - SMSG_SPELLORDAMAGE_IMMUNE = 0x1264, + SMSG_DISPEL_FAILED = 0x0307, // 4.3.4 15595 + SMSG_SPELLOGDAMAGE_IMMUNE = 0x4507, // 4.3.4 15595 CMSG_AUCTION_LIST_BIDDER_ITEMS = 0x1265, SMSG_AUCTION_BIDDER_LIST_RESULT = 0x1266, - SMSG_SET_FLAT_SPELL_MODIFIER = 0x1267, - SMSG_SET_PCT_SPELL_MODIFIER = 0x1268, + SMSG_SET_FLAT_SPELL_MODIFIER = 0x2834, // 4.3.4 15595 + SMSG_SET_PCT_SPELL_MODIFIER = 0x0224, // 4.3.4 15595 CMSG_SET_AMMO = 0x1269, SMSG_CORPSE_RECLAIM_DELAY = 0x126A, CMSG_SET_ACTIVE_MOVER = 0x126B, - CMSG_PET_CANCEL_AURA = 0x126C, + CMSG_PET_CANCEL_AURA = 0x4B25, // 4.3.4 15595 CMSG_PLAYER_AI_CHEAT = 0x126D, - CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x126E, + CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x6C35, // 4.3.4 15595 MSG_GM_ACCOUNT_ONLINE = 0x126F, MSG_LIST_STABLED_PETS = 0x1270, CMSG_STABLE_PET = 0x1271, @@ -688,7 +688,7 @@ enum Opcodes SMSG_PLAY_OBJECT_SOUND = 0x1279, CMSG_REQUEST_PET_INFO = 0x127A, CMSG_FAR_SIGHT = 0x127B, - SMSG_SPELLDISPELLOG = 0x127C, + SMSG_SPELLDISPELLOG = 0x4516, // 4.3.4 15595 SMSG_DAMAGE_CALC_LOG = 0x127D, CMSG_ENABLE_DAMAGE_LOG = 0x127E, CMSG_GROUP_CHANGE_SUB_GROUP = 0x127F, @@ -721,7 +721,7 @@ enum Opcodes SMSG_CHAT_NOT_IN_PARTY = 0x129A, CMSG_GMTICKETSYSTEM_TOGGLE = 0x129B, CMSG_CANCEL_GROWTH_AURA = 0x129C, - SMSG_CANCEL_AUTO_REPEAT = 0x129D, + SMSG_CANCEL_AUTO_REPEAT = 0x6436, // 4.3.4 15595 SMSG_STANDSTATE_UPDATE = 0x6F04, // 4.3.4 15595 SMSG_LOOT_ALL_PASSED = 0x129F, SMSG_LOOT_ROLL_WON = 0x12A0, @@ -731,7 +731,7 @@ enum Opcodes CMSG_LOOT_MASTER_GIVE = 0x12A4, SMSG_LOOT_MASTER_LIST = 0x12A5, SMSG_SET_FORCED_REACTIONS = 0x12A6, - SMSG_SPELL_FAILED_OTHER = 0x12A7, + SMSG_SPELL_FAILED_OTHER = 0x4535, // 4.3.4 15595 SMSG_GAMEOBJECT_RESET_STATE = 0x12A8, CMSG_REPAIR_ITEM = 0x12A9, SMSG_CHAT_PLAYER_NOT_FOUND = 0x12AA, @@ -808,7 +808,7 @@ enum Opcodes CMSG_PET_UNLEARN = 0x12F1, SMSG_PET_UNLEARN_CONFIRM = 0x12F2, SMSG_PARTY_MEMBER_STATS_FULL = 0x12F3, - CMSG_PET_SPELL_AUTOCAST = 0x12F4, + CMSG_PET_SPELL_AUTOCAST = 0x2514, // 4.3.4 15595 SMSG_WEATHER = 0x2904, // 4.3.4 15595 SMSG_PLAY_TIME_WARNING = 0x12F6, SMSG_MINIGAME_SETUP = 0x12F7, @@ -868,11 +868,11 @@ enum Opcodes CMSG_IGNORE_KNOCKBACK_CHEAT = 0x132D, SMSG_CHAT_PLAYER_AMBIGUOUS = 0x132E, MSG_DELAY_GHOST_TELEPORT = 0x132F, - SMSG_SPELLINSTAKILLLOG = 0x1330, + SMSG_SPELLINSTAKILLLOG = 0x6216, // 4.3.4 15595 SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0x1331, CMSG_CHAT_FILTERED = 0x1332, SMSG_EXPECTED_SPAM_RECORDS = 0x1333, - SMSG_SPELLSTEALLOG = 0x1334, + SMSG_SPELLSTEALLOG = 0x4E26, // 4.3.4 15595 CMSG_LOTTERY_QUERY_OBSOLETE = 0x1335, SMSG_LOTTERY_QUERY_RESULT_OBSOLETE = 0x1336, CMSG_BUY_LOTTERY_TICKET_OBSOLETE = 0x1337, @@ -936,9 +936,9 @@ enum Opcodes CMSG_LFG_TELEPORT = 0x1371, CMSG_LFG_GET_PARTY_INFO = 0x1372, SMSG_LFG_PARTY_INFO = 0x1373, - SMSG_TITLE_EARNED = 0x1374, - CMSG_SET_TITLE = 0x1375, - CMSG_CANCEL_MOUNT_AURA = 0x1376, + SMSG_TITLE_EARNED = 0x2426, // 4.3.4 15595 + CMSG_SET_TITLE = 0x2117, // 4.3.4 15595 + CMSG_CANCEL_MOUNT_AURA = 0x0635, // 4.3.4 15595 SMSG_ARENA_ERROR = 0x1377, MSG_INSPECT_ARENA_TEAMS = 0x1378, SMSG_DEATH_RELEASE_LOC = 0x1379, @@ -1012,7 +1012,7 @@ enum Opcodes CMSG_COMMENTATOR_ENTER_INSTANCE = 0x13BD, CMSG_COMMENTATOR_EXIT_INSTANCE = 0x13BE, CMSG_COMMENTATOR_INSTANCE_COMMAND = 0x13BF, - SMSG_CLEAR_TARGET = 0x13C0, + SMSG_CLEAR_TARGET = 0x4B26, // 4.3.4 15595 CMSG_BOT_DETECTED = 0x13C1, SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x13C2, CMSG_CHEAT_PLAYER_LOGIN = 0x13C3, @@ -1069,7 +1069,7 @@ enum Opcodes SMSG_GOGOGO_OBSOLETE = 0x13F6, SMSG_ECHO_PARTY_SQUELCH = 0x13F7, CMSG_SET_TITLE_SUFFIX = 0x13F8, - CMSG_SPELLCLICK = 0x13F9, + CMSG_SPELLCLICK = 0x0805, // 4.3.4 15595 SMSG_LOOT_LIST = 0x13FA, CMSG_GM_CHARACTER_RESTORE = 0x13FB, CMSG_GM_CHARACTER_SAVE = 0x13FC, @@ -1096,14 +1096,14 @@ enum Opcodes CMSG_DECLINE_CHANNEL_INVITE = 0x1411, SMSG_GROUPACTION_THROTTLED = 0x1412, SMSG_OVERRIDE_LIGHT = 0x1413, - SMSG_TOTEM_CREATED = 0x1414, - CMSG_TOTEM_DESTROYED = 0x1415, + SMSG_TOTEM_CREATED = 0x2414, // 4.3.4 15595 + CMSG_TOTEM_DESTROYED = 0x4207, // 4.3.4 15595 CMSG_EXPIRE_RAID_INSTANCE = 0x1416, CMSG_NO_SPELL_VARIANCE = 0x1417, CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY = 0x1418, SMSG_QUESTGIVER_STATUS_MULTIPLE = 0x1419, - CMSG_SET_PLAYER_DECLINED_NAMES = 0x141A, - SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x141B, + CMSG_SET_PLAYER_DECLINED_NAMES = 0x6316, // 4.3.4 15595 + SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x2B25, // 4.3.4 15595 CMSG_QUERY_SERVER_BUCK_DATA = 0x141C, CMSG_CLEAR_SERVER_BUCK_DATA = 0x141D, SMSG_SERVER_BUCK_DATA = 0x141E, @@ -1205,7 +1205,7 @@ enum Opcodes SMSG_ALL_ACHIEVEMENT_DATA = 0x58B1, // 4.3.4 15595 CMSG_FORCE_SAY_CHEAT = 0x147F, SMSG_HEALTH_UPDATE = 0x1480, - SMSG_POWER_UPDATE = 0x1481, + SMSG_POWER_UPDATE = 0x4A07, // 4.3.4 15595 CMSG_GAMEOBJ_REPORT_USE = 0x4827, // 4.3.4 15595 SMSG_HIGHEST_THREAT_UPDATE = 0x1483, SMSG_THREAT_UPDATE = 0x1484, @@ -1230,8 +1230,8 @@ enum Opcodes SMSG_AURA_UPDATE = 0x4707, // 4.3.4 15595 CMSG_FLOOD_GRACE_CHEAT = 0x1498, SMSG_SERVER_FIRST_ACHIEVEMENT = 0x6424, // 4.3.4 15595 - SMSG_PET_LEARNED_SPELL = 0x149A, - SMSG_PET_REMOVED_SPELL = 0x149B, + SMSG_PET_LEARNED_SPELL = 0x0507, // 4.3.4 15595 + SMSG_PET_REMOVED_SPELL = 0x6A04, // 4.3.4 15595 CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE = 0x149C, CMSG_HEARTH_AND_RESURRECT = 0x149D, SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x149E, @@ -1247,7 +1247,7 @@ enum Opcodes SMSG_SET_VEHICLE_REC_ID = 0x14A8, CMSG_RIDE_VEHICLE_INTERACT = 0x14A9, CMSG_CONTROLLER_EJECT_PASSENGER = 0x14AA, - SMSG_PET_GUIDS = 0x14AB, + SMSG_PET_GUIDS = 0x2D26, // 4.3.4 15595 SMSG_CLIENTCACHE_VERSION = 0x2734, // 4.3.4 15595 CMSG_CHANGE_GDF_ARENA_RATING = 0x14AD, CMSG_SET_ARENA_TEAM_RATING_BY_INDEX = 0x14AE, diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 3706b067e..59b92b150 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -18866,9 +18866,11 @@ void Player::AddSpellMod(Aura* aura, bool apply) val += (*itr)->GetModifier()->m_amount; } val += apply ? mod->m_amount : -(mod->m_amount); - WorldPacket data(Opcode, (1 + 1 + 4)); - data << uint8(eff); + WorldPacket data(Opcode, 4 + 4 + 1 + 1 + 4); + data << uint32(1); + data << uint32(1); data << uint8(mod->m_miscvalue); + data << uint8(eff); data << int32(val); SendDirectMessage(&data); } @@ -19310,7 +19312,7 @@ void Player::ContinueTaxiFlight() void Player::ProhibitSpellSchool(SpellSchoolMask idSchoolMask, uint32 unTimeMs) { - // last check 2.0.10 + // last check 4.3.4 WorldPacket data(SMSG_SPELL_COOLDOWN, 8 + 1 + m_spells.size() * 8); data << GetObjectGuid(); data << uint8(0x0); // flags (0x1, 0x2) diff --git a/src/game/Player.h b/src/game/Player.h index e82db23d8..ccadfba6b 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -495,7 +495,7 @@ enum PlayerFlags #define PLAYER_TITLE_HAND_OF_ADAL UI64LIT(0x0000008000000000) // 39 #define PLAYER_TITLE_VENGEFUL_GLADIATOR UI64LIT(0x0000010000000000) // 40 -#define KNOWN_TITLES_SIZE 3 +#define KNOWN_TITLES_SIZE 4 #define MAX_TITLE_INDEX (KNOWN_TITLES_SIZE*64) // 3 uint64 fields // used in (PLAYER_FIELD_BYTES, 0) byte values diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index f6ab2e26c..e6abac51f 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4431,6 +4431,7 @@ void Spell::SendLogExecute() switch(spellEffect->Effect) { case SPELL_EFFECT_POWER_DRAIN: + case SPELL_EFFECT_POWER_BURN: if (Unit* unit = m_targets.getUnitTarget()) data << unit->GetPackGUID(); else @@ -4468,6 +4469,7 @@ void Spell::SendLogExecute() data << uint8(0); break; case SPELL_EFFECT_CREATE_ITEM: + case SPELL_EFFECT_CREATE_RANDOM_ITEM: case SPELL_EFFECT_CREATE_ITEM_2: data << uint32(spellEffect->EffectItemType); break; @@ -4478,9 +4480,10 @@ void Spell::SendLogExecute() case SPELL_EFFECT_CREATE_HOUSE: case SPELL_EFFECT_DUEL: case SPELL_EFFECT_SUMMON_OBJECT_SLOT1: - case SPELL_EFFECT_SUMMON_OBJECT_SLOT2: - case SPELL_EFFECT_SUMMON_OBJECT_SLOT3: - case SPELL_EFFECT_SUMMON_OBJECT_SLOT4: + //case SPELL_EFFECT_SUMMON_OBJECT_SLOT2: + //case SPELL_EFFECT_SUMMON_OBJECT_SLOT3: + //case SPELL_EFFECT_SUMMON_OBJECT_SLOT4: + case SPELL_EFFECT_171: if (Unit* unit = m_targets.getUnitTarget()) data << unit->GetPackGUID(); else if (m_targets.getItemTargetGuid()) @@ -4501,6 +4504,7 @@ void Spell::SendLogExecute() break; case SPELL_EFFECT_RESURRECT: case SPELL_EFFECT_RESURRECT_NEW: + case SPELL_EFFECT_MASS_RESSURECTION: if (Unit* unit = m_targets.getUnitTarget()) data << unit->GetPackGUID(); else @@ -4581,7 +4585,7 @@ void Spell::SendChannelUpdate(uint32 time) m_caster->SetUInt32Value(UNIT_CHANNEL_SPELL, 0); } - WorldPacket data(MSG_CHANNEL_UPDATE, 8 + 4); + WorldPacket data(SMSG_CHANNEL_UPDATE, 8 + 4); data << m_caster->GetPackGUID(); data << uint32(time); m_caster->SendMessageToSet(&data, true); @@ -4619,10 +4623,26 @@ void Spell::SendChannelStart(uint32 duration) } } - WorldPacket data(MSG_CHANNEL_START, (8 + 4 + 4)); + WorldPacket data(SMSG_CHANNEL_START, (8 + 4 + 4)); data << m_caster->GetPackGUID(); data << uint32(m_spellInfo->Id); data << uint32(duration); + data << uint8(0); // unk1 + //if (unk1) + //{ + // data << uint32(0); + // data << uint32(0); + //} + data << uint8(0); // unk2 + //if (unk1) + //{ + // data << ObjectGuid().WriteAsPacked(); + // data << uint32(0); + // data << uint8(0); // unk3 + // if (unk3 == 2) + // data << ObjectGuid().WriteAsPacked(); + //} + m_caster->SendMessageToSet(&data, true); m_timer = duration; diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 914f8218e..31cdc3cda 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -8089,7 +8089,7 @@ void Spell::EffectScriptEffect(SpellEffectEntry const* effect) return; // This is extremely strange! - // The spell should send MSG_CHANNEL_START, SMSG_SPELL_START + // The spell should send SMSG_CHANNEL_START, SMSG_SPELL_START // However it has cast time 2s, but should send SMSG_SPELL_GO instantly. m_caster->CastSpell(unitTarget, 69051, true); return; diff --git a/src/game/SpellHandler.cpp b/src/game/SpellHandler.cpp index f59400fdd..95adf95da 100644 --- a/src/game/SpellHandler.cpp +++ b/src/game/SpellHandler.cpp @@ -558,7 +558,7 @@ void WorldSession::HandleTotemDestroyed(WorldPacket& recvPacket) { uint8 slotId; - recvPacket >> slotId; + recvPacket >> slotId >> Unused(); // ignore for remote control state if (!_player->IsSelfMover()) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 8544d680a..090e7943a 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -2055,11 +2055,14 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss) alreadyDone.insert(*i); uint32 damage = (*i)->GetModifier()->m_amount; SpellEntry const* i_spellProto = (*i)->GetSpellProto(); - // Calculate absorb resist ??? no data in opcode for this possibly unable to absorb or resist? - // uint32 absorb; - // uint32 resist; - // CalcAbsorbResist(pVictim, SpellSchools(spellProto->School), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist); - // damage-=absorb + resist; + + uint32 absorb, resist; + CalculateDamageAbsorbAndResist(pVictim, GetSpellSchoolMask(i_spellProto), SPELL_DIRECT_DAMAGE, damage, &absorb, &resist); + + if (damage >= absorb + resist) + damage -= absorb + resist; + else + damage = 0; pVictim->DealDamageMods(this, damage, NULL); @@ -2073,6 +2076,7 @@ void Unit::DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss) data << uint32(damage); // Damage data << uint32(overkill); // Overkill data << uint32(i_spellProto->SchoolMask); + data << uint32(resist); // Resist pVictim->SendMessageToSet(&data, true); pVictim->DealDamage(this, damage, 0, SPELL_DIRECT_DAMAGE, GetSpellSchoolMask(i_spellProto), i_spellProto, true); @@ -5555,11 +5559,16 @@ void Unit::SendSpellMiss(Unit* target, uint32 spellID, SpellMissInfo missInfo) WorldPacket data(SMSG_SPELLLOGMISS, (4 + 8 + 1 + 4 + 8 + 1)); data << uint32(spellID); data << GetObjectGuid(); - data << uint8(0); // can be 0 or 1 + data << uint8(0); // can be 0 or 1, flag data << uint32(1); // target count // for(i = 0; i < target count; ++i) data << target->GetObjectGuid(); // target GUID data << uint8(missInfo); + //if (flag) + //{ + // data << float(0.0f); + // data << float(0.0f); + //} // end loop SendMessageToSet(&data, true); } diff --git a/src/game/debugcmds.cpp b/src/game/debugcmds.cpp index d47a42c7a..46c457384 100644 --- a/src/game/debugcmds.cpp +++ b/src/game/debugcmds.cpp @@ -1146,8 +1146,10 @@ bool ChatHandler::HandleDebugSpellModsCommand(char* args) opcode == SMSG_SET_FLAT_SPELL_MODIFIER ? "flat" : "pct", spellmodop, value, effidx); WorldPacket data(opcode, (1 + 1 + 2 + 2)); - data << uint8(effidx); + data << uint32(1); + data << uint32(1); data << uint8(spellmodop); + data << uint8(effidx); data << int32(value); chr->GetSession()->SendPacket(&data); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index c35f130a5..be06e2650 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "0092" + #define REVISION_NR "0093" #endif // __REVISION_NR_H__