Core/Scripts: Implemented method for sending encounter boss frames from scripts

This commit is contained in:
Shauren
2011-01-23 16:59:33 +01:00
parent 9dfa00bb60
commit ac689f456d
4 changed files with 34 additions and 2 deletions

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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 },

View File

@@ -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,