Beispiel #1
0
        public static void UseSkillRequest(IRealmClient client, RealmPacketIn packet)
        {
            client.ActiveCharacter.IsFighting = false;
            client.ActiveCharacter.IsMoving   = false;
            short skillId = packet.ReadInt16();

            ++packet.Position;
            int    num1          = (int)packet.ReadInt16();
            int    num2          = (int)packet.ReadInt16();
            byte   targetType    = packet.ReadByte();
            ushort targetId      = packet.ReadUInt16();
            Spell  spellByRealId = client.ActiveCharacter.Spells.GetSpellByRealId(skillId);

            if (spellByRealId == null)
            {
                return;
            }
            if (spellByRealId.SoulGuardProffLevel != (byte)0)
            {
                client.ActiveCharacter.YouAreFuckingCheater("Trying to use SoulguardSkill as normal skill.", 1);
            }
            else
            {
                Asda2SpellHandler.ProcessUseSkill(client, targetType, skillId, targetId);
            }
        }
Beispiel #2
0
        public static void UseSoulGuardSkillRequest(IRealmClient client, RealmPacketIn packet)
        {
            client.ActiveCharacter.IsFighting = false;
            client.ActiveCharacter.IsMoving   = false;
            short skillId = packet.ReadInt16();

            ++packet.Position;
            int    num1          = (int)packet.ReadInt16();
            int    num2          = (int)packet.ReadInt16();
            byte   targetType    = packet.ReadByte();
            ushort targetId      = packet.ReadUInt16();
            Spell  spellByRealId = client.ActiveCharacter.Spells.GetSpellByRealId(skillId);

            if (spellByRealId == null)
            {
                return;
            }
            if (spellByRealId.SoulGuardProffLevel < (byte)1 || spellByRealId.SoulGuardProffLevel > (byte)3)
            {
                client.ActiveCharacter.YouAreFuckingCheater("Trying to use skill as SoulguardSkill.", 1);
            }
            else
            {
                switch (spellByRealId.SoulGuardProffLevel)
                {
                case 1:
                    if (client.ActiveCharacter.GreenCharges < (byte)5)
                    {
                        client.ActiveCharacter.SendInfoMsg("Not enougt charges.");
                        Asda2SpellHandler.SendSetSkiillPowersStatsResponse(client.ActiveCharacter, false,
                                                                           (short)0);
                        return;
                    }

                    client.ActiveCharacter.GreenCharges -= (byte)5;
                    break;

                case 2:
                    if (client.ActiveCharacter.BlueCharges < (byte)5)
                    {
                        client.ActiveCharacter.SendInfoMsg("Not enougt charges.");
                        Asda2SpellHandler.SendSetSkiillPowersStatsResponse(client.ActiveCharacter, false,
                                                                           (short)0);
                        return;
                    }

                    client.ActiveCharacter.BlueCharges -= (byte)5;
                    break;

                case 3:
                    if (client.ActiveCharacter.RedCharges < (byte)5)
                    {
                        client.ActiveCharacter.SendInfoMsg("Not enougt charges.");
                        Asda2SpellHandler.SendSetSkiillPowersStatsResponse(client.ActiveCharacter, false,
                                                                           (short)0);
                        return;
                    }

                    client.ActiveCharacter.RedCharges -= (byte)5;
                    break;
                }

                Asda2SpellHandler.ProcessUseSkill(client, targetType, skillId, targetId);
                Asda2SpellHandler.SendSetSkiillPowersStatsResponse(client.ActiveCharacter, false, (short)0);
            }
        }