Example #1
0
        public static void ContinueAtackRequest(IRealmClient client, RealmPacketIn packet)
        {
            Unit target = client.ActiveCharacter.Target;

            if (target == null || !client.ActiveCharacter.CanHarm((WorldObject)target))
            {
                Asda2CombatHandler.StartAtackResponse(client.ActiveCharacter, target, (byte)0);
            }
            client.ActiveCharacter.IsFighting = true;
        }
Example #2
0
        public static void AtackCharacterRequest(IRealmClient client, RealmPacketIn packet)
        {
            Character characterBySessionId = World.GetCharacterBySessionId(packet.ReadUInt16());

            if (characterBySessionId == null || characterBySessionId == client.ActiveCharacter ||
                !client.ActiveCharacter.CanHarm((WorldObject)characterBySessionId))
            {
                Asda2CombatHandler.StartAtackResponse(client.ActiveCharacter, (Unit)characterBySessionId, (byte)0);
            }
            else
            {
                client.ActiveCharacter.IsFighting = true;
                Asda2SpellHandler.SendSetAtackStateGuiResponse(client.ActiveCharacter);
            }
        }
Example #3
0
        public static void StartAtackRequest(IRealmClient client, RealmPacketIn packet)
        {
            Character activeCharacter = client.ActiveCharacter;
            ushort    id             = packet.ReadUInt16();
            NPC       npcByUniqMapId = client.ActiveCharacter.Map.GetNpcByUniqMapId(id);
            byte      status         = 3;

            if (npcByUniqMapId == null)
            {
                status = (byte)2;
            }
            if (npcByUniqMapId != null && activeCharacter.CanHarm((WorldObject)npcByUniqMapId) &&
                activeCharacter.CanSee((WorldObject)npcByUniqMapId))
            {
                status = (byte)1;
            }
            activeCharacter.Target = (Unit)npcByUniqMapId;
            activeCharacter.IsWaitingForAtackAnimation = true;
            Asda2CombatHandler.StartAtackResponse(activeCharacter, activeCharacter.Target, status);
        }