XConquer

BurnFrost TQ Only Handler

Dec 1st, 2018
116
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  #region BurntFrost[Windwalker Stomper]
  2.                                 case 12940:
  3.                                     {
  4.                                         if (CanUseSpell(spell, attacker.Owner))
  5.                                         {
  6.                                             PrepareSpell(spell, attacker.Owner);
  7.                                             SpellUse suse = new SpellUse(true);
  8.                                             suse.Attacker = attacker.UID;
  9.                                             suse.SpellID = spell.ID;
  10.                                             suse.SpellLevel = spell.Level;
  11.                                             suse.X = X;
  12.                                             suse.Y = Y;
  13.                                             Fan sector = new Fan(attacker.X, attacker.Y, X, Y, spell.Range, spell.Sector);
  14.                                             if (Kernel.GetDistance(attacker.X, attacker.Y, X, Y) <= spell.Distance + 1)
  15.                                             {
  16.                                                 foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
  17.                                                 {
  18.                                                     if (_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Player)
  19.                                                     {
  20.                                                         if (_obj == null)
  21.                                                             continue;
  22.                                                         attacked = _obj as Entity;
  23.                                                         if (attacked == null) continue;
  24.                                                         if (sector.IsInFan(attacked.X, attacked.Y))
  25.                                                         {
  26.                                                             if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
  27.                                                             {
  28.                                                                 attack.Effect1 = Attack.AttackEffects1.None;
  29.                                                                 uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, spell, ref attack);
  30.                                                                 damage = (uint)MathHelper.AdjustDataEx((int)damage / 2, (int)spell.Power);
  31.                                                                 if (attacked.EntityFlag == EntityFlag.Monster)
  32.                                                                 {
  33.                                                                     damage = (uint)MathHelper.AdjustDataEx((int)damage / 9, (int)spell.Power);
  34.                                                                 }
  35.                                                                 suse.Effect1 = attack.Effect1;
  36.                                                                 ReceiveAttack(attacker, attacked, attack, ref damage, spell);
  37.                                                                 suse.AddTarget(attacked, damage, attack);
  38.                                                                 if (attacker.ContainsFlag4((ulong)Network.GamePackets.Update.Flags4.Omnipotence))
  39.                                                                 {
  40.                                                                     if (MyMath.Success(5 * (attacked.BattlePower - attacker.BattlePower)))//Difference BP.
  41.                                                                     {
  42.  
  43.                                                                         attacked.AddFlag4((ulong)Update.Flags4.BurnFrostStatus);
  44.                                                                         attacker.BurnFrost += 3;//Seconds per attack!
  45.                                                                         attacker.BurntFrostStamp = Time32.Now;
  46.                                                                         if (attacked.ContainsFlag4((ulong)Update.Flags4.BurnFrostStatus))
  47.                                                                         {
  48.                                                                             Random R = new Random();
  49.                                                                             uint Burnfrost = 1000;
  50.                                                                             int Nr = R.Next(1, 5);
  51.                                                                             if (Nr == 1)
  52.                                                                             {
  53.                                                                                 attacked.Hitpoints -= Burnfrost * spell.Level;
  54.                                                                                 attacked.Owner.Send("your enemy inflict + "+ Burnfrost * spell.Level + " extra damage");
  55.                                                                             }
  56.                                                                             if (Nr == 2)
  57.                                                                             {
  58.                                                                                 attacked.Hitpoints -= Burnfrost * spell.Level;
  59.                                                                                 attacked.Owner.Send("your enemy inflict + " + Burnfrost * spell.Level + " extra damage");
  60.                                                                             }
  61.                                                                             if (Nr == 3)
  62.                                                                             {
  63.                                                                                 attacked.Hitpoints -= Burnfrost * spell.Level;
  64.                                                                                 attacked.Owner.Send("your enemy inflict + " + Burnfrost * spell.Level + " extra damage");
  65.                                                                             }
  66.                                                                             if (Nr == 4)
  67.                                                                             {
  68.                                                                                 attacked.Hitpoints -= Burnfrost * spell.Level;
  69.                                                                                 attacked.Owner.Send("your enemy inflict + " + Burnfrost * spell.Level + " extra damage");
  70.                                                                             }
  71.                                                                             if (Nr == 5)
  72.                                                                             {
  73.                                                                                 attacked.Hitpoints -= Burnfrost * spell.Level;
  74.                                                                                 attacked.Owner.Send("your enemy inflict + " + Burnfrost * spell.Level + " extra damage");
  75.                                                                             }
  76.                                                                             damage = Burnfrost * spell.Level;
  77.                                                                         }
  78.                                                                     }
  79.                                                                 }
  80.                                                             }
  81.                                                         }
  82.                                                     }
  83.                                                     else if (_obj.MapObjType == MapObjectType.SobNpc)
  84.                                                     {
  85.                                                         if (_obj == null)
  86.                                                             continue;
  87.                                                         attackedsob = _obj as SobNpcSpawn;
  88.                                                         if (attackedsob == null) continue;
  89.                                                         if (sector.IsInFan(attackedsob.X, attackedsob.Y))
  90.                                                         {
  91.                                                             if (CanAttack(attacker, attackedsob, spell))
  92.                                                             {
  93.                                                                 attack.Effect1 = Attack.AttackEffects1.None;
  94.                                                                 uint damage = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
  95.                                                                 attack.Damage = damage;
  96.                                                                 damage = (uint)MathHelper.AdjustDataEx((int)damage, (int)spell.Power);
  97.                                                                 suse.Effect1 = attack.Effect1;
  98.                                                                 ReceiveAttack(attacker, attackedsob, attack, damage, spell);
  99.                                                                 suse.AddTarget(attackedsob, damage, attack);
  100.                                                             }
  101.                                                         }
  102.                                                     }
  103.                                                 }
  104.                                             }
  105.                                             attacker.Owner.SendScreen(suse, true);
  106.                                             attacker.AttackPacket = null;
  107.                                         }
  108.                                         break;
  109.                                     }
  110.                                 #endregion
RAW Paste Data