- 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:
parent
a3f8cb5fc6
commit
c52504151b
18 changed files with 309 additions and 122 deletions
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue