First, add in database.cs
Code:
SkillAttributes[1020] = new ushort[1][]; SkillAttributes[1020][0] = new ushort[6] { 7, 0, 0, 0, 0, 0 }; SkillsDone.Add(1020, 0);
below
Code:
public bool SMOn = false;
Code:
public bool ShieldOn = false;
below
Code:
if (SMOn) it += 262144;
Code:
if (ShieldOn) it += 256;
find this section
Code:
XpList = false; SMOn = false; CycloneOn = false; XpCircle = 0; MyClient.SendPacket(General.MyPackets.Vital(UID, 26, GetStat())); MyClient.SendPacket(General.MyPackets.Status1(UID, EModel)); MyClient.SendPacket(General.MyPackets.Death(this));
Code:
CycloneOn = false;
Code:
ShieldOn = false;
find
Code:
public void XPEnd()
Code:
SMOn = false;
Code:
ShieldOn = false;
search
Code:
if (SkillId == 1025) { SMOn = true; XpList = false; XpCircle = 0; Sheildactivated = DateTime.Now; ExtraXP = 20000; MyClient.SendPacket(General.MyPackets.Vital(UID, 26, GetStat())); }
Code:
if (SkillId == 1020) { ShieldOn = true; XpList = false; XpCircle = 0; Shieldactivated = DateTime.Now; Defense *= 3; MyClient.SendPacket(General.MyPackets.Vital(UID, 26, GetStat())); MyClient.SendPacket(General.MyPackets.SendMsg(MyClient.MessageId, "SYSTEM", Name, "Shield XP: Your defense will be increased for 120 seconds.", 2005)); }
find
Code:
public DateTime AccuracyActivated = DateTime.Now;
Code:
public DateTime Shieldactivated = DateTime.Now;
find
Code:
if (AccuracyOn) if (DateTime.Now > AccuracyActivated.AddSeconds(200)) AccuracyOn = false;
Code:
if (ShieldOn) { if (DateTime.Now > Shieldactivated.AddSeconds(120)) { ShieldOn = false; Defense /= 3; MyClient.SendPacket(General.MyPackets.Vital(UID, 26, GetStat())); } World.UpdateSpawn(this); }
find
Code:
public DateTime Stigged = DateTime.Now;
Code:
public DateTime ShieldTime = DateTime.Now;
find
Code:
public byte StigLevel = 0;
Code:
public byte ShieldLevel = 0;
search
Code:
else if (PTarget != null && (PKMode == 2 || PKMode == 0) && !Other.NoPK(LocMap) && PTarget.Alive)
Code:
if (SMOn) Damage *= 2;
Code:
if (ShieldOn) Defense *= 2;
search for
Code:
if (AccuracyBuff) it += 128;
Code:
if (ShieldBuff) it += 256;
search
Code:
public bool AccuracyBuff = false;
Code:
public bool ShieldBuff = false;
search
Code:
public void Die()
Code:
CycloneOn = false;
Code:
ShieldOn = false;
search
Code:
if (AccuracyBuff) if (DateTime.Now > AccuracyTime.AddSeconds(60 + AccuracyLevel * 10)) { AccuracyBuff = false; MyClient.SendPacket(General.MyPackets.Vital(UID, 26, GetStat())); World.UpdateSpawn(this); }
Code:
if (ShieldBuff) if (DateTime.Now > ShieldTime.AddSeconds(60 + ShieldLevel * 10)) { ShieldBuff = false; MyClient.SendPacket(General.MyPackets.Vital(UID, 26, GetStat())); World.UpdateSpawn(this); }
now aside from that, if you want to make the multiplication for xpshield a number consisting of a decimal (example *2.3)
find
Code:
Damage -= PTarget.Defense;
Code:
Damage = (int)(Damage - PTarget.Defense);
Code:
Damage -= Attacked.Defence;
Code:
Damage -= (int)(Damage - Attacked.Defense);
I believe that's all there is to it, if you have issues, let me know. Don't give me thanks until you know for sure it's working for you.
Big Thanks to tao4229 for some assistance with this code.
-------------------------------------------------------------------
Edit: Realized some of the coding for MagicShield (taoist skill) was added on here, wasn't paying attention when I was searching it all and posting, but w/e, going to leave it there for more help.