This commit is contained in:
mark 2010-12-09 02:48:29 +00:00
parent 712037724a
commit ac5a0827f2
7 changed files with 21 additions and 19 deletions

View file

@ -2,6 +2,7 @@ using System;
using System.Collections;
using System.Collections.Generic;
using Server;
using Server.Items;
using Server.Mobiles;
namespace Server.Movement
@ -319,13 +320,13 @@ namespace Server.Movement
if ( (item.ItemData.Flags & reqFlags) == 0 )
continue;
if ( sector == sectorStart && item.AtWorldPoint( xStart, yStart ) && item.ItemID <= TileData.MaxItemValue )
if ( sector == sectorStart && item.AtWorldPoint( xStart, yStart ) && !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
itemsStart.Add( item );
else if ( sector == sectorForward && item.AtWorldPoint( xForward, yForward ) && item.ItemID <= TileData.MaxItemValue )
else if ( sector == sectorForward && item.AtWorldPoint( xForward, yForward ) && !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
itemsForward.Add( item );
else if ( sector == sectorLeft && item.AtWorldPoint( xLeft, yLeft ) && item.ItemID <= TileData.MaxItemValue )
else if ( sector == sectorLeft && item.AtWorldPoint( xLeft, yLeft ) && !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
itemsLeft.Add( item );
else if ( sector == sectorRight && item.AtWorldPoint( xRight, yRight ) && item.ItemID <= TileData.MaxItemValue )
else if ( sector == sectorRight && item.AtWorldPoint( xRight, yRight ) && !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
itemsRight.Add( item );
}
}
@ -350,9 +351,9 @@ namespace Server.Movement
if ( (item.ItemData.Flags & reqFlags) == 0 )
continue;
if ( item.AtWorldPoint( xStart, yStart ) && item.ItemID <= TileData.MaxItemValue )
if ( item.AtWorldPoint( xStart, yStart ) && !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
itemsStart.Add( item );
else if ( item.AtWorldPoint( xForward, yForward ) && item.ItemID <= TileData.MaxItemValue )
else if ( item.AtWorldPoint( xForward, yForward ) && !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
itemsForward.Add( item );
}
}
@ -368,7 +369,7 @@ namespace Server.Movement
if ( (item.ItemData.Flags & reqFlags) == 0 )
continue;
if ( item.AtWorldPoint( xForward, yForward ) && item.ItemID <= TileData.MaxItemValue )
if ( item.AtWorldPoint( xForward, yForward ) && !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
itemsForward.Add( item );
}
@ -382,7 +383,7 @@ namespace Server.Movement
if ( (item.ItemData.Flags & reqFlags) == 0 )
continue;
if ( item.AtWorldPoint( xStart, yStart ) && item.ItemID <= TileData.MaxItemValue )
if ( item.AtWorldPoint( xStart, yStart ) && !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
itemsStart.Add( item );
}
}

View file

@ -288,7 +288,7 @@ namespace Server.Items
{
Item item = items[i];
if ( item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint( x, y ) && !(item is BaseDoor) )
if ( !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint( x, y ) && !(item is BaseDoor) )
{
ItemData id = item.ItemData;
bool surface = id.Surface;

View file

@ -1221,7 +1221,7 @@ namespace Server.Multis
foreach ( Item item in eable )
{
if ( item.ItemID > TileData.MaxItemValue || item.Z < p.Z || !item.Visible )
if ( item is BaseMulti || item.ItemID > TileData.MaxItemValue || item.Z < p.Z || !item.Visible )
continue;
int x = item.X - p.X + newComponents.Min.X;

View file

@ -2242,7 +2242,7 @@ namespace Server.Multis
int byteIndex = (totalStairsUsed % MaxItemsPerStairBuffer) * 5;
stairBuffer[byteIndex++] = (byte)((mte.m_ItemID >> 8) & 0x3F);
stairBuffer[byteIndex++] = (byte)(mte.m_ItemID >> 8);
stairBuffer[byteIndex++] = (byte)mte.m_ItemID;
stairBuffer[byteIndex++] = (byte)mte.m_OffsetX;
@ -2280,7 +2280,7 @@ namespace Server.Multis
int byteIndex = (totalStairsUsed % MaxItemsPerStairBuffer) * 5;
stairBuffer[byteIndex++] = (byte)((mte.m_ItemID >> 8) & 0x3F);
stairBuffer[byteIndex++] = (byte)(mte.m_ItemID >> 8);
stairBuffer[byteIndex++] = (byte)mte.m_ItemID;
stairBuffer[byteIndex++] = (byte)mte.m_OffsetX;
@ -2292,7 +2292,7 @@ namespace Server.Multis
else
{
m_PlaneUsed[plane] = true;
m_PlaneBuffers[plane][index] = (byte)((mte.m_ItemID >> 8) & 0x3F);
m_PlaneBuffers[plane][index] = (byte)(mte.m_ItemID >> 8);
m_PlaneBuffers[plane][index + 1] = (byte)mte.m_ItemID;
}
}

View file

@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Xml;
using Server;
using Server.Items;
namespace Server.Regions
{
@ -309,7 +310,7 @@ namespace Server.Regions
{
Item item = sector.Items[j];
if ( item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint( x, y ) )
if ( !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint( x, y ) )
{
m_SpawnBuffer2.Add( item );

View file

@ -3927,7 +3927,7 @@ namespace Server
foreach ( Item item in eable )
{
if ( item.ItemID > TileData.MaxItemValue )
if ( item is BaseMulti || item.ItemID > TileData.MaxItemValue )
continue;
items.Add( item );

View file

@ -395,7 +395,7 @@ namespace Server
{
Item item = items[i];
if ( item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint( x, y ) )
if ( !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint( x, y ) )
{
ItemData id = item.ItemData;
surface = id.Surface;
@ -470,7 +470,7 @@ namespace Server
foreach ( Item item in eable )
{
if ( item.ItemID <= TileData.MaxItemValue )
if ( !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue )
{
items.Add( item );
@ -624,7 +624,7 @@ namespace Server
{
Item item = sector.Items[i];
if ( item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint( p.X, p.Y ) && !item.Movable )
if ( !(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint( p.X, p.Y ) && !item.Movable )
{
ItemData id = item.ItemData;
@ -1972,7 +1972,7 @@ namespace Server
if( !i.Visible )
continue;
if( i.ItemID > TileData.MaxItemValue )
if( i is BaseMulti || i.ItemID > TileData.MaxItemValue )
continue;
ItemData id = i.ItemData;