- Hit Life Leech now works in PvP
(http://www.uodemise.com/discussion/showthread.php?t=121298) - Summoned Daemon now has the proper bodyvalue (AoS+) and effect (http://www.uodemise.com/discussion/showthread.php?t=127404) - Two new house signs are added (http://www.uodemise.com/discussion/showthread.php?t=125409) - Changes to Satyrs and Dryads: --> Dryads: ----> they do area peace ----> can partially undress males ----> have chance to drop peculiar or fragrant (not yet implemented) seeds --> Satyrs: ----> their karma is neutral ----> can peace combatants ----> can provoke nearby creatures to the combatant ----> can undress females ----> can discord combatants --> Both: can drop spellweaving scrolls (http://www.uodemise.com/discussion/showthread.php?t=125444) - Added Auto Arrow Recovery feature (SE+) (http://www.uodemise.com/discussion/showthread.php?t=114807)
This commit is contained in:
parent
37043076e0
commit
cd7c2becf7
14 changed files with 511 additions and 98 deletions
|
|
@ -1011,6 +1011,13 @@ namespace Server.Items
|
|||
|
||||
canSwing = ( sp == null || !sp.IsCasting || !sp.BlocksMovement );
|
||||
}
|
||||
|
||||
if ( canSwing )
|
||||
{
|
||||
PlayerMobile p = attacker as PlayerMobile;
|
||||
|
||||
canSwing = ( p == null || p.PeacedUntil <= DateTime.Now );
|
||||
}
|
||||
}
|
||||
|
||||
if ( canSwing && attacker.HarmfulCheck( defender ) )
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ namespace Server.Items
|
|||
|
||||
public override SkillName AccuracySkill{ get{ return SkillName.Archery; } }
|
||||
|
||||
private Timer m_RecoveryTimer; // so we don't start too many timers
|
||||
private bool m_Balanced;
|
||||
private int m_Velocity;
|
||||
|
||||
|
|
@ -120,7 +121,33 @@ namespace Server.Items
|
|||
public override void OnMiss( Mobile attacker, Mobile defender )
|
||||
{
|
||||
if ( attacker.Player && 0.4 >= Utility.RandomDouble() )
|
||||
{
|
||||
if ( Core.SE )
|
||||
{
|
||||
PlayerMobile p = attacker as PlayerMobile;
|
||||
|
||||
if ( p != null )
|
||||
{
|
||||
Type ammo = AmmoType;
|
||||
|
||||
if ( p.RecoverableAmmo.ContainsKey( ammo ) )
|
||||
p.RecoverableAmmo[ ammo ]++;
|
||||
else
|
||||
p.RecoverableAmmo.Add( ammo, 1 );
|
||||
|
||||
if ( !p.Warmode )
|
||||
{
|
||||
if ( m_RecoveryTimer == null )
|
||||
m_RecoveryTimer = Timer.DelayCall( TimeSpan.FromSeconds( 10 ), new TimerCallback( p.RecoverAmmo ) );
|
||||
|
||||
if ( !m_RecoveryTimer.Running )
|
||||
m_RecoveryTimer.Start();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
Ammo.MoveToWorld( new Point3D( defender.X + Utility.RandomMinMax( -1, 1 ), defender.Y + Utility.RandomMinMax( -1, 1 ), defender.Z ), defender.Map );
|
||||
}
|
||||
|
||||
base.OnMiss( attacker, defender );
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue