#region SwordMaster
if (attacker.Name == "SwordMaster")
{
uint rands = (uint)Conquer_Online_Server.ServerBase.Kernel.Rand om.Next(1, 8);
switch (rands)
{
case 1:
attacker.MonsterInfo.SpellID = 10500;
break;
case 2:
attacker.MonsterInfo.SpellID = 10501;
break;
case 3:
attacker.MonsterInfo.SpellID = 10503;
break;
case 4:
attacker.MonsterInfo.SpellID = 10504;
break;
case 5:
attacker.MonsterInfo.SpellID = 10505;
break;
case 6:
attacker.MonsterInfo.SpellID = 10506;
break;
case 7:
if (DateTime.Now > attacker.MonsterInfo.LastBloodRestore.AddMinutes(5 ))
{
attacker.MonsterInfo.SpellID = 7016;
}
break;
}
SpellUse suse = new SpellUse(true);
attack = new Attack(true);
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = 0;//Calculate.Magic(attacker, attacked, attacker.MonsterInfo.SpellID, 0);
damage = (uint)ServerBase.Kernel.Random.Next(4000, 7000);
damage -= attacked.MagicDefence;
suse.Effect1 = attack.Effect1;
if (damage <= 1)
{
damage = 789;
}
if (attacked.Hitpoints <= damage)
{
attacked.Die(attacker.UID);
}
else
{
attacked.Hitpoints -= damage;
}
if (attacker.Companion)
attacker.Owner.IncreaseExperience(Math.Min(damage, attacked.Hitpoints), true);
suse.Attacker = attacker.UID;
suse.SpellID = attacker.MonsterInfo.SpellID;
suse.X = attacked.X;
suse.Y = attacked.Y;
suse.Targets.Add(attacked.UID, damage);
attacked.Owner.SendScreen(suse, true);
}
#endregion
#region ThrillingSpook
if (attacker.Name == "ThrillingSpook")
{
uint rands = (uint)Conquer_Online_Server.ServerBase.Kernel.Rand om.Next(1, 5);
switch (rands)
{
case 1:
attacker.MonsterInfo.SpellID = 10360;
break;
case 2:
attacker.MonsterInfo.SpellID = 10361;
break;
case 3:
attacker.MonsterInfo.SpellID = 10362;
break;
case 4:
attacker.MonsterInfo.SpellID = 10363;
break;
case 5:
attacker.MonsterInfo.SpellID = 10364;
break;
}
SpellUse suse = new SpellUse(true);
attack = new Attack(true);
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = 0;//Calculate.Magic(attacker, attacked, attacker.MonsterInfo.SpellID, 0);
damage = (uint)ServerBase.Kernel.Random.Next(4000, 7000);
damage -= attacked.MagicDefence;
suse.Effect1 = attack.Effect1;
if (damage <= 1)
{
damage = 789;
}
if (attacked.Hitpoints <= damage)
{
attacked.Die(attacker.UID);
}
else
{
attacked.Hitpoints -= damage;
}
if (attacker.Companion)
attacker.Owner.IncreaseExperience(Math.Min(damage, attacked.Hitpoints), true);
suse.Attacker = attacker.UID;
suse.SpellID = attacker.MonsterInfo.SpellID;
suse.X = attacked.X;
suse.Y = attacked.Y;
suse.Targets.Add(attacked.UID, damage);
attacked.Owner.SendScreen(suse, true);
}
#endregion
#region SnowBanhe
if (attacker.Name == "SnowBanshee")
{
uint rands = (uint)Conquer_Online_Server.ServerBase.Kernel.Rand om.Next(1, 5);
switch (rands)
{
case 1:
attacker.MonsterInfo.SpellID = 30010;
break;
case 2:
attacker.MonsterInfo.SpellID = 30011;
break;
case 3:
attacker.MonsterInfo.SpellID = 30012;
break;
case 4:
attacker.MonsterInfo.SpellID = 10001;
break;
case 5:
if (DateTime.Now > attacker.MonsterInfo.LastBloodRestore.AddMinutes(5 ))
{
attacker.MonsterInfo.SpellID = 7016;
}
break;
}
if (attacker.MonsterInfo.SpellID == 7016)
{
if ((attacker.Hitpoints + 5000000) < attacker.MaxHitpoints)
{
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = attacker.MonsterInfo.SpellID;
suse.X = attacked.X;
uint damage = 5000000;
attacker.Hitpoints += damage;
suse.Y = attacked.Y;
attacker.MonsterInfo.LastBloodRestore = DateTime.Now;
suse.Targets.Add(attacker.UID, damage);
attacked.Owner.SendScreen(suse, true);
}
else
{
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = attacker.MonsterInfo.SpellID;
suse.X = attacked.X;
uint damage = attacker.MaxHitpoints - attacker.Hitpoints;
attacker.Hitpoints += damage;
suse.Y = attacked.Y;
attacker.MonsterInfo.LastBloodRestore = DateTime.Now;
suse.Targets.Add(attacker.UID, damage);
attacked.Owner.SendScreen(suse, true);
}
}
else
{
SpellUse suse = new SpellUse(true);
attack = new Attack(true);
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = Calculate.BossDam(attacker, attacked, ref attack);
suse.Effect1 = attack.Effect1;
if (damage <= 1)
{
damage = 789;
}
if (attacked.Hitpoints <= damage)
{
attacked.Die(attacker.UID);
}
else
{
attacked.Hitpoints -= damage;
}
if (attacker.Companion)
attacker.Owner.IncreaseExperience(Math.Min(damage, attacked.Hitpoints), true);
suse.Attacker = attacker.UID;
suse.SpellID = attacker.MonsterInfo.SpellID;
suse.X = attacked.X;
suse.Y = attacked.Y;
suse.Targets.Add(attacked.UID, damage);
attacked.Owner.SendScreen(suse, true);
}
}
#endregion
#region TreatoDragon
if (attacker.Name == "TeratoDragon")
{
uint rands = (uint)Conquer_Online_Server.ServerBase.Kernel.Rand om.Next(1, 7);
switch (rands)
{
case 1:
attacker.MonsterInfo.SpellID = 7013;
break;
case 2:
attacker.MonsterInfo.SpellID = 7012;
break;
case 3:
attacker.MonsterInfo.SpellID = 7013;
break;
case 4:
if (DateTime.Now > attacker.MonsterInfo.LastBloodRestore.AddMinutes(5 ))
{
attacker.MonsterInfo.SpellID = 7016;
}
break;
case 5:
attacker.MonsterInfo.SpellID = 7017;
break;
case 6:
attacker.MonsterInfo.SpellID = 7015;
break;
case 7:
attacker.MonsterInfo.SpellID = 7015;
break;
}
// Console.WriteLine("" + attacker.MonsterInfo.SpellID + "");
if (attacker.MonsterInfo.SpellID == 7016)
{
if ((attacker.Hitpoints + 5000000) < attacker.MaxHitpoints)
{
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = attacker.MonsterInfo.SpellID;
suse.X = attacked.X;
uint damage = 5000000;
attacker.Hitpoints += damage;
suse.Y = attacked.Y;
attacker.MonsterInfo.LastBloodRestore = DateTime.Now;
suse.Targets.Add(attacker.UID, damage);
attacked.Owner.SendScreen(suse, true);
}
else
{
SpellUse suse = new SpellUse(true);
suse.Attacker = attacker.UID;
suse.SpellID = attacker.MonsterInfo.SpellID;
suse.X = attacked.X;
uint damage = attacker.MaxHitpoints - attacker.Hitpoints;
attacker.Hitpoints += damage;
suse.Y = attacked.Y;
attacker.MonsterInfo.LastBloodRestore = DateTime.Now;
suse.Targets.Add(attacker.UID, damage);
attacked.Owner.SendScreen(suse, true);
}
}
else
{
SpellUse suse = new SpellUse(true);
attack = new Attack(true);
attack.Effect1 = Attack.AttackEffects1.None;
uint damage = Calculate.BossDam(attacker, attacked, ref attack);
suse.Effect1 = attack.Effect1;
if (damage <= 1)
{
damage = 789;
}
if (attacked.Hitpoints <= damage)
{
attacked.Die(attacker.UID);
}
else
{
attacked.Hitpoints -= damage;
}
if (attacker.Companion)
attacker.Owner.IncreaseExperience(Math.Min(damage, attacked.Hitpoints), true);
suse.Attacker = attacker.UID;
suse.SpellID = attacker.MonsterInfo.SpellID;
suse.X = attacked.X;
suse.Y = attacked.Y;
suse.Targets.Add(attacked.UID, damage);
attacked.Owner.SendScreen(suse, true);
}
}
#endregion
}
|