Crazys wrote:most i've had was about 200ish on live...
Shield hits target
weapon hits all others with standswing
which is why Omnis swords from dragons or crafted are awsome for the LT/endo heal
or DF diamond hammers for the AE dd proc off the weapon
Its amazing... Lets do this... You have 101 mobs on you. You swing and hit target with shield. so thats 100 mainhand swings... you hit 80 with your wep that has a 5% proc rate thats 4 ae procs
So your 70-125 dammge per mob from swing +
4x 75-100 proc damamge
you just did 400-500 damage per mob per swing!
switch (ad.AttackResult)
{
case eAttackResult.Blocked:
case eAttackResult.Fumbled:
case eAttackResult.HitStyle:
case eAttackResult.HitUnstyled:
case eAttackResult.Missed:
case eAttackResult.Parried:
//Condition percent can reach 70%
//durability percent can reach zero
// if item durability reachs 0, item is useless and become broken item
if (weapon != null && weapon is GameInventoryItem)
{
(weapon as GameInventoryItem).OnStrikeTarget(this, target);
}
//Camouflage
if (target is GamePlayer && HasAbility(Abilities.Camouflage))
{
CamouflageEffect camouflage = (CamouflageEffect)EffectList.GetOfType(typeof(CamouflageEffect));
if (camouflage != null)
{
DisableSkill(SkillBase.GetAbility(Abilities.Camouflage), CamouflageSpecHandler.DISABLE_DURATION);
camouflage.Cancel(false);
}
}
//Savagery targets
if (ad.AttackResult == eAttackResult.HitStyle)
{
byte targetToHit = 0;
int random;
IList targets = new ArrayList(1);
IList list = new ArrayList(1);
InventoryItem attackWeapon = AttackWeapon;
InventoryItem leftWeapon = (Inventory == null) ? null : Inventory.GetItem(eInventorySlot.LeftHandWeapon);
switch (style.ID)
{
case 374: targetToHit = 1; break; //Tribal Assault: Hits 2 targets
case 377: targetToHit = 1; break; //Clan's Might: Hits 2 targets
case 379: targetToHit = 2; break; //Totemic Wrath: Hits 3 targets
case 384: targetToHit = 3; break; //Totemic Sacrifice: Hits 4 targets
case 600: targetToHit = 100; break; //Shield Swipe: No Cap on Targets
default: targetToHit = 0; break; //For others;
}
if (targetToHit > 0)
{
if (style.ID != 600)
{
foreach (GamePlayer pl in GetPlayersInRadius(false, (ushort)AttackRange))
{
if (pl == null) continue;
if (GameServer.ServerRules.IsAllowedToAttack(this, pl, true))
{
list.Add(pl);
}
}
foreach (GameNPC npc in GetNPCsInRadius(false, (ushort)AttackRange))
{
if (GameServer.ServerRules.IsAllowedToAttack(this, npc, true))
{
list.Add(npc);
}
}
list.Remove(target);
if (list.Count > 1)
while (targets.Count < targetToHit)
{
random = Util.Random(list.Count - 1);
if (!targets.Contains(list[random]))
targets.Add(list[random] as GameObject);
}
foreach (GameObject obj in targets)
{
if (obj is GamePlayer && ((GamePlayer)obj).IsSitting)
{
effectiveness *= 2;
}
new WeaponOnTargetAction(this, obj as GameObject, attackWeapon, leftWeapon, CalculateLeftHandSwingCount(), effectiveness, AttackSpeed(attackWeapon), null).Start(1); // really start the attack
}
}
else
{
foreach (GameNPC npc in GetNPCsInRadius(false, (ushort)AttackRange))
{
if (GameServer.ServerRules.IsAllowedToAttack(this, npc, true))
{
list.Add(npc);
}
}
list.Remove(target);
if (list.Count > 1)
while (targets.Count < targetToHit)
{
random = Util.Random(list.Count - 1);
if (!targets.Contains(list[random]))
targets.Add(list[random] as GameObject);
}
foreach (GameNPC obj in targets)
{
if (obj != ad.Target)
this.MakeAttack(obj, attackWeapon, null, 1, ServerProperties.Properties.SPELL_INTERRUPT_DURATION, false, false);
}
}
}
}
break;
}
return ad;
}
if (list.Count > 1)
while (targets.Count < targetToHit)
{
random = Util.Random(list.Count - 1);
if (!targets.Contains(list[random]))
targets.Add(list[random] as GameObject);
}
Return to “%s” DOL Code Contributions
Users browsing this forum: No registered users and 1 guest