Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #region FrostArrows
- case 14280:
- {
- if (Handle.CanUseSpell(spell, attacker.Owner))
- {
- Handle.PrepareSpell(spell, attacker.Owner);
- MsgMagicEffect suse = new MsgMagicEffect(true);
- suse.Attacker = attacker.UID;
- suse.SpellID = spell.ID;
- suse.SpellLevel = spell.Level;
- suse.X = X;
- suse.Y = Y;
- foreach (IMapObject _obj in attacker.Owner.Screen.Objects)
- {
- if (_obj.MapObjType == MapObjectType.Player)
- {
- attacked = _obj as Player;
- if (Kernel.GetDistance(X, Y, attacked.X, attacked.Y) <= spell.Range)
- {
- if (Handle.CanAttack(attacker, attacked, spell, attack.InteractType == MsgInteract.Melee))
- {
- int potDifference = attacker.BattlePower - attacked.BattlePower;
- int rate = (byte)spell.Percent + potDifference;
- if (Kernel.Rate(rate))
- {
- attacked.AddSpellFlag(MsgUpdate.Flags.FrostArrows, spell.Duration, true);
- attacked.Stamina -= 10;
- }
- }
- }
- }
- }
- attacker.Owner.SendScreen(suse, true);
- }
- break;
- }
- #endregion
- #region Infinity
- case 14380:
- {
- if (Handle.CanUseSpell(spell, attacker.Owner))
- {
- Handle.PrepareSpell(spell, attacker.Owner);
- MsgMagicEffect suse = new MsgMagicEffect(true);
- suse.Attacker = attacker.UID;
- suse.SpellID = spell.ID;
- suse.SpellLevel = spell.Level;
- suse.X = X;
- suse.Y = Y;
- attacker.InfinityDamage = (int)spell.Damage1;
- if (attacker.ContainsFlag((ulong)MsgUpdate.Flags.Ride))
- attacker.RemoveFlag((ulong)MsgUpdate.Flags.Ride);
- attacker.AddSpellFlag(MsgUpdate.Flags.Infinity, spell.Duration, true);
- attacker.AddSpellFlag(MsgUpdate.Flags.Fly, spell.Duration, true);
- MsgUpdate upgrade = new MsgUpdate(true);
- upgrade.UID = attacker.UID;
- upgrade.Append(103, 215, (uint)spell.Duration, 0, 0);
- attacker.Owner.Send(upgrade.ToArray());
- suse.AddTarget(attacker.UID, 0, null);
- attacker.Owner.SendScreen(suse, true);
- }
- break;
- }
- #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement