mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 10:26:28 +01:00
Core/Scripts: Implemented method for sending encounter boss frames from scripts
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 },
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user