Ejemplo n.º 1
0
 public static void SendAuraUpdate(Unit owner, Aura aura)
 {
     if (owner is NPC)
     {
         Asda2CombatHandler.SendNpcBuffedResponse((NPC)owner, aura);
     }
     else
     {
         if (!(owner is Character))
         {
             return;
         }
         Character character = (Character)owner;
         if (!character.CanMove)
         {
             Asda2MovmentHandler.SendEndMoveByFastInstantRegularMoveResponse(character);
         }
         Asda2SpellHandler.SendCharacterBuffedResponse(character, aura);
         if (character.IsInGroup)
         {
             Asda2GroupHandler.SendPartyMemberBuffInfoResponse(character);
         }
         if (character.SoulmateCharacter == null)
         {
             return;
         }
         Asda2SoulmateHandler.SendSoulmateBuffUpdateInfoResponse(character);
     }
 }
Ejemplo n.º 2
0
        /// <summary>Removes all of this Aura's occupied fields</summary>
        protected void RemoveFromClient()
        {
            if (!IsVisible)
            {
                return;
            }
            Character owner1 = Owner as Character;
            NPC       owner2 = Owner as NPC;

            if (owner2 != null)
            {
                Asda2CombatHandler.SendMonstrStateChangedResponse(owner2, Asda2NpcState.Ok);
            }
            if (owner1 == null)
            {
                return;
            }
            Asda2SpellHandler.SendBuffEndedResponse(owner1, Spell.RealId);
            if (owner1.IsInGroup)
            {
                Asda2GroupHandler.SendPartyMemberBuffInfoResponse(owner1);
            }
            if (owner1.SoulmateCharacter == null)
            {
                return;
            }
            Asda2SoulmateHandler.SendSoulmateBuffUpdateInfoResponse(owner1);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Removes all of this Aura's occupied fields
        /// </summary>
        protected void RemoveFromClient()
        {
            if (!IsVisible)
            {
                return;
            }
            var character = Owner as Character;
            var owner     = Owner as NPC;

            if (owner != null)
            {
                Asda2CombatHandler.SendMonstrStateChangedResponse(owner, Asda2NpcState.Ok);
            }
            if (character != null)
            {
                Asda2SpellHandler.SendBuffEndedResponse(character, Spell.RealId);
                if (character.IsInGroup)
                {
                    Asda2GroupHandler.SendPartyMemberBuffInfoResponse(character);
                }
                if (character.SoulmateCharacter != null)
                {
                    Asda2SoulmateHandler.SendSoulmateBuffUpdateInfoResponse(character);
                }
            }

            //AuraHandler.SendRemoveAura(m_auras.Owner, this);
        }
Ejemplo n.º 4
0
        public static void SendAuraUpdate(Unit owner, Aura aura)
        {
            if (owner is NPC)
            {
                Asda2CombatHandler.SendNpcBuffedResponse((NPC)owner, aura);
            }
            else if (owner is Character)
            {
                var chr = (Character)owner;
                if (!chr.CanMove)
                {
                    Asda2MovmentHandler.SendEndMoveByFastInstantRegularMoveResponse(chr);
                }
                Asda2SpellHandler.SendCharacterBuffedResponse(chr, aura);
                if (chr.IsInGroup)
                {
                    Asda2GroupHandler.SendPartyMemberBuffInfoResponse(chr);
                }
                if (chr.SoulmateCharacter != null)
                {
                    Asda2SoulmateHandler.SendSoulmateBuffUpdateInfoResponse(chr);
                }
            }

            /*if (!owner.IsAreaActive) return;
             *  using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_AURA_UPDATE))
             *  {
             *          owner.EntityId.WritePacked(packet);
             *
             *          WriteAura(aura, packet);
             *
             *          owner.SendPacketToArea(packet);
             *  }*/
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Send the Updated list of the group state to each group member
 /// </summary>
 public virtual void SendUpdate()
 {
     if (m_leader == null)
     {
         return;
     }
     Asda2GroupHandler.SendPartyInfoResponse(this);
     foreach (GroupMember groupMember in this)
     {
         Asda2GroupHandler.SendPartyMemberInitialInfoResponse(groupMember.Character);
         Asda2GroupHandler.SendPartyMemberPositionInfoResponse(groupMember.Character);
     }
 }
Ejemplo n.º 6
0
 /// <summary>Disbands this Group</summary>
 public virtual void Disband()
 {
     using (syncLock.EnterReadLock())
     {
         foreach (SubGroup subGroup in m_subGroups)
         {
             foreach (GroupMember member in subGroup.Members)
             {
                 if (member.Character != null)
                 {
                     Asda2GroupHandler.SendPartyHasBrokenResponse(member.Character.Client);
                 }
                 OnMemberRemoved(member);
             }
         }
     }
 }