- 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

@ -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;