diff options
author | Shauren <shauren.trinity@gmail.com> | 2011-01-23 16:59:33 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2011-01-23 16:59:33 +0100 |
commit | ac689f456dc2d08cff6bcc4cbba94c135570a56a (patch) | |
tree | 0d46fd76f8be81d3175f2c71069c37463f643da5 /src | |
parent | 9dfa00bb600fd7d4a657366c08e98f219a9e9290 (diff) |
Core/Scripts: Implemented method for sending encounter boss frames from scripts
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Instances/InstanceScript.cpp | 30 | ||||
-rwxr-xr-x | src/server/game/Instances/InstanceScript.h | 2 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Opcodes.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Opcodes.h | 2 |
4 files changed, 34 insertions, 2 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 29cf2043662..e6a13d0ab85 100755 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -396,3 +396,33 @@ bool InstanceScript::CheckAchievementCriteriaMeet(uint32 criteria_id, Player con instance->GetId(),criteria_id); return false; } + +void InstanceScript::SendEncounterUnit(uint32 type, Unit* unit, uint8 param1 /*= 0*/, uint8 param2 /*= 0*/) +{ + WorldPacket data(SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT, 1); + data << uint32(type); + + switch (type) + { + case 0: + case 1: + case 2: + data.append(unit->GetPackGUID()); + data << uint8(param1); + break; + case 3: + case 4: + case 6: + data << uint8(param1); + data << uint8(param2); + break; + case 5: + data << uint8(param1); + break; + case 7: + default: + break; + } + + instance->SendToPlayers(&data); +} diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index 675adc9304b..0034b031574 100755 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -190,6 +190,8 @@ class InstanceScript : public ZoneScript // Checks boss requirements (one boss required to kill other) virtual bool CheckRequiredBosses(uint32 /*bossId*/, Player const* /*player*/ = NULL) const { return true; } + void SendEncounterUnit(uint32 type, Unit* unit, uint8 param1 = 0, uint8 param2 = 0); + protected: void SetBossNumber(uint32 number) { bosses.resize(number); } void LoadDoorData(const DoorData *data); diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index e64301b2579..49ac60112c2 100755 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -344,7 +344,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] = /*0x13B*/ { "CMSG_CANCEL_CHANNELLING", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelChanneling }, /*0x13C*/ { "SMSG_AI_REACTION", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide }, /*0x13D*/ { "CMSG_SET_SELECTION", STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetSelectionOpcode }, - /*0x13E*/ { "CMSG_EQUIPMENT_SET_DELETE", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetDelete }, + /*0x13E*/ { "CMSG_EQUIPMENT_SET_DELETE", STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetDelete }, /*0x13F*/ { "CMSG_INSTANCE_LOCK_WARNING_RESPONSE", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL }, /*0x140*/ { "CMSG_UNUSED2", STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL }, /*0x141*/ { "CMSG_ATTACKSWING", STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleAttackSwingOpcode }, diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 66f186076c2..0596fb64d9c 100755 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -566,7 +566,7 @@ enum Opcodes CMSG_GMTICKET_GETTICKET = 0x211, SMSG_GMTICKET_GETTICKET = 0x212, CMSG_UNLEARN_TALENTS = 0x213, - SMSG_GAMEOBJECT_SPAWN_ANIM_OBSOLETE = 0x214, + SMSG_UPDATE_INSTANCE_ENCOUNTER_UNIT = 0x214, SMSG_GAMEOBJECT_DESPAWN_ANIM = 0x215, MSG_CORPSE_QUERY = 0x216, CMSG_GMTICKET_DELETETICKET = 0x217, |