Made by spare2 Big thanks to him!
1005:
case SpellLevel of
0: ReqMp := 10;
1: ReqMp := 30;
2: ReqMp := 60;
3: ReqMp := 100;
4: ReqMp := 130;
end;
if Client.Character.CurrentMP < ReqMP then
Exit;
Client.Character.CurrentMP := Client.Character.CurrentMP - ReqMP;
Client.SendPacket(StatTypePacket(Client.Character, Client.Character.CurrentMP, ST_MP));
ReqMP := Client.Character.MagicAttack;
case SpellLevel of
0: ReqMP := ReqMP + 20;
1: ReqMP := ReqMP + 70;
2: ReqMP := ReqMP + 150;
3: ReqMP := ReqMP + 280;
4: ReqMP := ReqMP + 400;
end;
ReqMP := Max(StackMagicDamage(ReqMP, Defender), 1);
Defender.Character.CurrentHP := Defender.Character.CurrentHP + ReqMP;
Defender.SendPacket(StatTypePacket(Client.Character, Client.Character.CurrentHP, ST_HP));
StatCheck(Defender, Attacker);
Targets := THashtable.Create;
Targets.Add(Defender.Character.CharacterID, ReqMP);
Packet := MAttackPacket(Attacker.Character.CharacterID,
Attacker.Character.Location.X,
Attacker.Character.Location.Y,
SpellID, Lvl, Targets);
Attacker.SendPacket(Packet);
SendRangePacket(Attacker.Character, MaxViewDistance, MaxViewDistance, Packet);
Targets.Free;
end;