public static void SendMode(IPacketReceiver receiver, IEntity pet, PetAttackMode attackMode, PetAction action, PetFlags flags) { using (RealmPacketOut packet = new RealmPacketOut(RealmServerOpCode.SMSG_PET_MODE, 12)) { packet.Write(pet.EntityId); packet.Write((byte)attackMode); packet.Write((byte)action); packet.Write((ushort)flags); receiver.Send(packet, false); } }
internal static T CreateDefaultPetRecord <T>(NPCEntry entry, uint ownerId) where T : IPetRecord, new() { T obj = new T(); PetAttackMode petAttackMode = entry.Type == CreatureType.NonCombatPet ? PetAttackMode.Passive : PetAttackMode.Defensive; obj.OwnerId = ownerId; obj.AttackMode = petAttackMode; obj.Flags = PetFlags.None; obj.EntryId = entry.NPCId; return(obj); }
public void SetPetAttackMode(PetAttackMode mode) { if (m_PetRecord != null) { m_PetRecord.AttackMode = mode; } if (mode == PetAttackMode.Passive) { m_brain.IsAggressive = false; m_brain.DefaultState = BrainState.Follow; } else { m_brain.IsAggressive = mode == PetAttackMode.Aggressive; m_brain.DefaultState = BrainState.Guard; } m_brain.EnterDefaultState(); }
public static void SendMode(IPacketReceiver receiver, IEntity pet, PetAttackMode attackMode, PetAction action, PetFlags flags) { using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_PET_MODE, 12)) { packet.Write(pet.EntityId); packet.Write((byte)attackMode); packet.Write((byte)action); packet.Write((ushort)flags); receiver.Send(packet); } }