Core.TickCount for some AI actions

Correction in NewAsyncSockets
This commit is contained in:
Mark Sturgill 2013-10-06 17:21:40 -07:00
parent 92aeef0297
commit be920e0c31
5 changed files with 19 additions and 17 deletions

View file

@ -49,7 +49,7 @@ namespace Server.Items
{
BaseWeapon.InDoubleStrike = true;
attacker.RevealingAction();
attacker.NextCombatTime = Core.TickCount + weapon.OnSwing(attacker, defender).TotalMilliseconds;
attacker.NextCombatTime = Core.TickCount + (int)weapon.OnSwing(attacker, defender).TotalMilliseconds;
BaseWeapon.InDoubleStrike = false;
}
}

View file

@ -1999,9 +1999,9 @@ namespace Server.Mobiles
return delay;
}
private DateTime m_NextMove;
private int m_NextMove;
public DateTime NextMove
public int NextMove
{
get { return m_NextMove; }
set { m_NextMove = value; }
@ -2009,7 +2009,7 @@ namespace Server.Mobiles
public virtual bool CheckMove()
{
return (DateTime.UtcNow >= m_NextMove);
return (Core.TickCount - m_NextMove >= 0);
}
public virtual bool DoMove(Direction d)
@ -2036,12 +2036,12 @@ namespace Server.Mobiles
// This makes them always move one step, never any direction changes
m_Mobile.Direction = d;
TimeSpan delay = TimeSpan.FromSeconds(TransformMoveDelay(m_Mobile.CurrentSpeed));
int delay = (int)(TransformMoveDelay(m_Mobile.CurrentSpeed) * 1000);
m_NextMove += delay;
if (m_NextMove < DateTime.UtcNow)
m_NextMove = DateTime.UtcNow;
if (Core.TickCount - m_NextMove > 0)
m_NextMove = Core.TickCount;
m_Mobile.Pushing = false;
@ -2470,13 +2470,13 @@ namespace Server.Mobiles
return false;
}
if (m_Mobile.NextReacquireTime > DateTime.UtcNow)
if (Core.TickCount - m_Mobile.NextReacquireTime < 0)
{
m_Mobile.FocusMob = null;
return false;
}
m_Mobile.NextReacquireTime = DateTime.UtcNow + m_Mobile.ReacquireDelay;
m_Mobile.NextReacquireTime = Core.TickCount + (int)m_Mobile.ReacquireDelay.TotalMilliseconds;
m_Mobile.DebugSay("Acquiring...");

View file

@ -679,7 +679,7 @@ namespace Server.Mobiles
public virtual void BreathStallMovement()
{
if ( m_AI != null )
m_AI.NextMove = DateTime.UtcNow + TimeSpan.FromSeconds( BreathStallTime );
m_AI.NextMove = Core.TickCount + (int)(BreathStallTime * 1000);
}
public virtual void BreathPlayAngerSound()
@ -1712,7 +1712,7 @@ namespace Server.Mobiles
m_Owners = new List<Mobile>();
m_NextReacquireTime = DateTime.UtcNow + ReacquireDelay;
m_NextReacquireTime = Core.TickCount + (int)ReacquireDelay.TotalMilliseconds;
ChangeAIType(AI);
@ -2871,7 +2871,7 @@ namespace Server.Mobiles
if ( m_bSummoned == value )
return;
m_NextReacquireTime = DateTime.UtcNow;
m_NextReacquireTime = Core.TickCount;
m_bSummoned = value;
Delta( MobileDelta.Noto );
@ -3607,7 +3607,7 @@ namespace Server.Mobiles
public virtual void ForceReacquire()
{
m_NextReacquireTime = DateTime.MinValue;
m_NextReacquireTime = Core.TickCount;
}
public override void OnMovement( Mobile m, Point3D oldLocation )
@ -4962,9 +4962,9 @@ namespace Server.Mobiles
* This functionality appears to be implemented on OSI as well
*/
private DateTime m_NextReacquireTime;
private int m_NextReacquireTime;
public DateTime NextReacquireTime{ get{ return m_NextReacquireTime; } set{ m_NextReacquireTime = value; } }
public int NextReacquireTime{ get{ return m_NextReacquireTime; } set{ m_NextReacquireTime = value; } }
public virtual TimeSpan ReacquireDelay{ get{ return TimeSpan.FromSeconds( 10.0 ); } }
public virtual bool ReacquireOnMovement{ get{ return false; } }

View file

@ -129,7 +129,7 @@ namespace Server.Mobiles
Animate( 111, 5, 1, true, false, 0 ); // Do a little dance...
if ( AIObject != null )
AIObject.NextMove = DateTime.UtcNow + TimeSpan.FromSeconds( 1.0 );
AIObject.NextMove = Core.TickCount + 1000;
if ( list.Count >= 3 )
{
@ -140,7 +140,7 @@ namespace Server.Mobiles
dancer.Animate( 111, 5, 1, true, false, 0 ); // Get down tonight...
if ( dancer.AIObject != null )
dancer.AIObject.NextMove = DateTime.UtcNow + TimeSpan.FromSeconds( 1.0 );
dancer.AIObject.NextMove = Core.TickCount + 1000;
}
Timer.DelayCall( TimeSpan.FromSeconds( 1.0 ), new TimerCallback( EndSavageDance ) );

View file

@ -709,6 +709,8 @@ namespace Server.Network {
if ( e.SocketError != SocketError.Success || byteCount <= 0 ) {
Dispose( false );
return;
} else if ( m_Disposing ) {
return;
}
m_NextCheckActivity = Core.TickCount + 90000;