- IPTable update when deleting accounts, so the creation IP address gets a new account spot.

- Added AdminGump option for removing account access IP addresses.
- Firebombs now cancel the target properly when exploding.
- Fixed item placement bug when creating firebombs.
- Added criminal check option to Teleporter.
- Fixed item placement bug when opening MIBs.
- Made SOS flipable.
- Opening an SOS will no longer close other SOS gumps.
- Corrected Leafblade to be a Fencing weapon.
- Meer mages no longer cast plagues on pets, only on players.
- Corrected skills typo in CorruptedSoul.
- Movement induced by angering a monster during taming will now respect movement timers.
- Teleporting into keep walls is no longer possible.
- Removed the ability to have line of sight under a house plot through house walls.
- Added the Frozen mobile flag, providing clients with information on when they are frozen. (The client then disallows movement.)
- Fix for character statue redeeding issues.
This commit is contained in:
eos 2012-04-22 04:10:06 +00:00
parent a3f8cb5fc6
commit c52504151b
18 changed files with 309 additions and 122 deletions

View file

@ -4533,6 +4533,21 @@ namespace Server
this.Delete();
}
public virtual void ReplaceWith( Item newItem )
{
if ( m_Parent is Container )
{
((Container)m_Parent).AddItem( newItem );
newItem.Location = m_Location;
}
else
{
newItem.MoveToWorld( GetWorldLocation(), m_Map );
}
Delete();
}
[CommandProperty( AccessLevel.GameMaster )]
public bool QuestItem
{

View file

@ -1895,12 +1895,13 @@ namespace Server
for( int i = 0; i < pathCount; ++i )
{
Point3D point = path[i];
int pointTop = point.m_Z + 1;
LandTile landTile = Tiles.GetLandTile( point.X, point.Y );
int landZ = 0, landAvg = 0, landTop = 0;
GetAverageZ( point.m_X, point.m_Y, ref landZ, ref landAvg, ref landTop );
if( landZ <= point.m_Z && landTop >= point.m_Z && (point.m_X != end.m_X || point.m_Y != end.m_Y || landZ > end.m_Z || landTop < end.m_Z) && !landTile.Ignored )
if( landZ <= pointTop && landTop >= point.m_Z && (point.m_X != end.m_X || point.m_Y != end.m_Y || landZ > end.m_Z || landTop < end.m_Z) && !landTile.Ignored )
return false;
/* --Do land tiles need to be checked? There is never land between two people, always statics.--
@ -1945,7 +1946,7 @@ namespace Server
flags = id.Flags;
height = id.CalcHeight;
if( t.Z <= point.Z && t.Z + height >= point.Z && (flags & (TileFlag.Window | TileFlag.NoShoot)) != 0 )
if( t.Z <= pointTop && t.Z + height >= point.Z && (flags & (TileFlag.Window | TileFlag.NoShoot)) != 0 )
{
if( point.m_X == end.m_X && point.m_Y == end.m_Y && t.Z <= end.m_Z && t.Z + height >= end.m_Z )
continue;
@ -1990,11 +1991,12 @@ namespace Server
for( int j = 0; j < count; ++j )
{
Point3D point = path[j];
int pointTop = point.m_Z + 1;
Point3D loc = i.Location;
//if ( t.Z <= point.Z && t.Z+height >= point.Z && ( height != 0 || ( t.Z == dest.Z && zd != 0 ) ) )
if( loc.m_X == point.m_X && loc.m_Y == point.m_Y &&
loc.m_Z <= point.m_Z && loc.m_Z + height >= point.m_Z )
loc.m_Z <= pointTop && loc.m_Z + height >= point.m_Z )
{
if( loc.m_X == end.m_X && loc.m_Y == end.m_Y && loc.m_Z <= end.m_Z && loc.m_Z + height >= end.m_Z )
continue;

View file

@ -1673,6 +1673,7 @@ namespace Server
if( m_Paralyzed != value )
{
m_Paralyzed = value;
Delta( MobileDelta.Flags );
this.SendLocalizedMessage( m_Paralyzed ? 502381 : 502382 );
@ -1725,6 +1726,7 @@ namespace Server
if( m_Frozen != value )
{
m_Frozen = value;
Delta( MobileDelta.Flags );
if( m_FrozenTimer != null )
{
@ -1750,7 +1752,7 @@ namespace Server
{
if( !m_Frozen )
{
m_Frozen = true;
Frozen = true;
m_FrozenTimer = new FrozenTimer( this, duration );
m_FrozenTimer.Start();
@ -7803,6 +7805,9 @@ namespace Server
{
int flags = 0x0;
if( m_Paralyzed || m_Frozen )
flags |= 0x01;
if( m_Female )
flags |= 0x02;
@ -7826,6 +7831,9 @@ namespace Server
{
int flags = 0x0;
if( m_Paralyzed || m_Frozen )
flags |= 0x01;
if( m_Female )
flags |= 0x02;