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