本文整理汇总了C#中Server.Item.GetBounce方法的典型用法代码示例。如果您正苦于以下问题:C# Item.GetBounce方法的具体用法?C# Item.GetBounce怎么用?C# Item.GetBounce使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Server.Item
的用法示例。
在下文中一共展示了Item.GetBounce方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckNonlocalDrop
public override bool CheckNonlocalDrop(Mobile from, Item item, Item target)
{
if (!base.CheckNonlocalDrop(from, item, target))
return false;
if (from.AccessLevel >= AccessLevel.GameMaster)
return true;
Container pack = this.Backpack;
if (from == this && this.HasTrade && (target == pack || target.IsChildOf(pack)))
{
BounceInfo bounce = item.GetBounce();
if (bounce != null && bounce.m_Parent is Item)
{
Item parent = (Item)bounce.m_Parent;
if (parent == pack || parent.IsChildOf(pack))
return true;
}
SendLocalizedMessage(1004041); // You can't do that while you have a trade pending.
return false;
}
return true;
}
示例2: OnDroppedItemToWorld
public override bool OnDroppedItemToWorld(Item item, Point3D location)
{
if (!base.OnDroppedItemToWorld(item, location))
return false;
BounceInfo bi = item.GetBounce();
if (bi != null)
{
Type type = item.GetType();
if (type.IsDefined(typeof(FurnitureAttribute), true) || type.IsDefined(typeof(DynamicFlipingAttribute), true))
{
object[] objs = type.GetCustomAttributes(typeof(FlipableAttribute), true);
if (objs != null && objs.Length > 0)
{
FlipableAttribute fp = objs[0] as FlipableAttribute;
if (fp != null)
{
int[] itemIDs = fp.ItemIDs;
Point3D oldWorldLoc = bi.m_WorldLoc;
Point3D newWorldLoc = location;
if (oldWorldLoc.X != newWorldLoc.X || oldWorldLoc.Y != newWorldLoc.Y)
{
Direction dir = GetDirection4(oldWorldLoc, newWorldLoc);
if (itemIDs.Length == 2)
{
switch (dir)
{
case Direction.North:
case Direction.South: item.ItemID = itemIDs[0]; break;
case Direction.East:
case Direction.West: item.ItemID = itemIDs[1]; break;
}
}
else if (itemIDs.Length == 4)
{
switch (dir)
{
case Direction.South: item.ItemID = itemIDs[0]; break;
case Direction.East: item.ItemID = itemIDs[1]; break;
case Direction.North: item.ItemID = itemIDs[2]; break;
case Direction.West: item.ItemID = itemIDs[3]; break;
}
}
}
}
}
}
}
return true;
}
示例3: OnSubItemRemoved
public override void OnSubItemRemoved( Item item )
{
base.OnSubItemRemoved( item );
if ( item.GetBounce() == null )
RemoveVendorItem( item );
}
示例4: CheckEquip
public override bool CheckEquip(Item item)
{
if (!base.CheckEquip(item))
return false;
#region Factions
FactionItem factionItem = FactionItem.Find(item);
if (factionItem != null)
{
Faction faction = Faction.Find(this);
if (faction == null)
{
SendLocalizedMessage(1010371); // You cannot equip a faction item!
return false;
}
else if (faction != factionItem.Faction)
{
SendLocalizedMessage(1010372); // You cannot equip an opposing faction's item!
return false;
}
else
{
int maxWearables = FactionItem.GetMaxWearables(this);
for (int i = 0; i < Items.Count; ++i)
{
Item equiped = Items[i];
if (item != equiped && FactionItem.Find(equiped) != null)
{
if (--maxWearables == 0)
{
SendLocalizedMessage(1010373); // You do not have enough rank to equip more faction items!
return false;
}
}
}
}
}
#endregion
if (this.AccessLevel < AccessLevel.GameMaster && item.Layer != Layer.Mount && this.HasTrade)
{
BounceInfo bounce = item.GetBounce();
if (bounce != null)
{
if (bounce.m_Parent is Item)
{
Item parent = (Item)bounce.m_Parent;
if (parent == this.Backpack || parent.IsChildOf(this.Backpack))
return true;
}
else if (bounce.m_Parent == this)
{
return true;
}
}
SendLocalizedMessage(1004042); // You can only equip what you are already carrying while you have a trade pending.
return false;
}
return true;
}
示例5: OnItemRemoved
public override void OnItemRemoved( Item item )
{
base.OnItemRemoved( item );
if ( item.GetBounce() == null && this.TotalItems == 0 )
Delete();
}
示例6: OnDroppedItemToWorld
public override bool OnDroppedItemToWorld( Item item, Point3D location )
{
if ( !base.OnDroppedItemToWorld( item, location ) )
return false;
//plasma, 03/12/07
//Check here to see if we are trying to drop on an adjacent location
//to a TillerMan, and if so prevent the drop.
else if (!BaseBoat.DropFitResult(location, Map, Z))
return false;
BounceInfo bi = item.GetBounce();
if ( bi != null )
{
Type type = item.GetType();
if (type.IsDefined(typeof(FurnitureAttribute), true) || type.IsDefined(typeof(DynamicFlipingAttribute), true))
{
object[] objs = type.GetCustomAttributes(typeof(FlipableAttribute), true);
if (objs != null && objs.Length > 0)
{
FlipableAttribute fp = objs[0] as FlipableAttribute;
if (fp != null)
{
int[] itemIDs = fp.ItemIDs;
Point3D oldWorldLoc = bi.m_WorldLoc;
Point3D newWorldLoc = location;
if (oldWorldLoc.X != newWorldLoc.X || oldWorldLoc.Y != newWorldLoc.Y)
{
Direction dir = GetDirection4(oldWorldLoc, newWorldLoc);
if (itemIDs.Length == 2)
{
switch (dir)
{
case Direction.North:
case Direction.South: item.ItemID = itemIDs[0]; break;
case Direction.East:
case Direction.West: item.ItemID = itemIDs[1]; break;
}
}
else if (itemIDs.Length == 4)
{
switch (dir)
{
case Direction.South: item.ItemID = itemIDs[0]; break;
case Direction.East: item.ItemID = itemIDs[1]; break;
case Direction.North: item.ItemID = itemIDs[2]; break;
case Direction.West: item.ItemID = itemIDs[3]; break;
}
}
}
}
}
}
}
return true;
}
示例7: CheckNonlocalDrop
public override bool CheckNonlocalDrop( Mobile from, Item item, Item target )
{
if( this != null && from != null && item != null && from is PlayerMobile )
{
PlayerMobile pm = from as PlayerMobile;
if( pm != this && pm.AccessLevel < AccessLevel.GameMaster && !pm.Hidden && pm.Feats.GetFeatLevel(FeatList.PlantEvidence) > 0 && pm.Alive && this.Alive && pm.InLOS( this ) && pm.InRange( this.Location, 1 ) && pm.CanSee( this ) )
{
if( Utility.RandomMinMax( 1, 100 ) < ( pm.Feats.GetFeatLevel(FeatList.PlantEvidence) * 33 ) )
return true;
else
{
string notice = String.Format( "You notice {0} trying to drop something in {1}'s backpack.", pm.Name, this.Name );
IPooledEnumerable eable = this.Map.GetClientsInRange( this.Location, 8 );
foreach ( NetState ns in eable )
{
if ( ns != pm.NetState )
ns.Mobile.SendMessage( notice );
}
eable.Free();
}
}
}
if ( !base.CheckNonlocalDrop( from, item, target ) )
return false;
if ( from.AccessLevel >= AccessLevel.GameMaster )
return true;
Container pack = this.Backpack;
if ( from == this && this.HasTrade && ( target == pack || target.IsChildOf( pack ) ) )
{
BounceInfo bounce = item.GetBounce();
if ( bounce != null && bounce.m_Parent is Item )
{
Item parent = (Item) bounce.m_Parent;
if ( parent == pack || parent.IsChildOf( pack ) )
return true;
}
SendLocalizedMessage( 1004041 ); // You can't do that while you have a trade pending.
return false;
}
return true;
}
示例8: CheckEquip
public override bool CheckEquip( Item item )
{
if( item == null || item.Deleted )
return false;
if( Forging || Reforging )
{
SendMessage( "You cannot equip anything while forging or reforging your character." );
return false;
}
if( Claws != null && item is BaseWeapon )
{
SendMessage( "You need to remove your claws before equipping a weapon." );
return false;
}
if ( !base.CheckEquip( item ) )
return false;
if ( item.Layer == Layer.FirstValid || item.Layer == Layer.TwoHanded )
{
Corpse corpse = this.Backpack.FindItemByType( typeof( Corpse ) ) as Corpse;
if ( corpse != null && corpse.Owner != this )
{
this.SendMessage( 60, "You cannot equip this, because you are carrying someone." );
return false;
}
}
if (HealthAttachment.HasHealthAttachment(this))
{
if (HealthAttachment.GetHA(this).HasInjury(Injury.BrokenRightArm))
{
if (item.Layer == Layer.FirstValid || item.Layer == Layer.OneHanded || (item.Layer == Layer.TwoHanded && item is BaseWeapon))
return false;
}
if (HealthAttachment.GetHA(this).HasInjury(Injury.BrokenLeftArm))
{
if (item.Layer == Layer.TwoHanded)
return false;
}
}
#region Factions
FactionItem factionItem = FactionItem.Find( item );
if ( factionItem != null )
{
Faction faction = Faction.Find( this );
if ( faction == null )
{
SendLocalizedMessage( 1010371 ); // You cannot equip a faction item!
return false;
}
else if ( faction != factionItem.Faction )
{
SendLocalizedMessage( 1010372 ); // You cannot equip an opposing faction's item!
return false;
}
else
{
int maxWearables = FactionItem.GetMaxWearables( this );
for ( int i = 0; i < Items.Count; ++i )
{
Item equiped = Items[i];
if ( item != equiped && FactionItem.Find( equiped ) != null )
{
if ( --maxWearables == 0 )
{
SendLocalizedMessage( 1010373 ); // You do not have enough rank to equip more faction items!
return false;
}
}
}
}
}
#endregion
if ( this.AccessLevel < AccessLevel.GameMaster && item.Layer != Layer.Mount && this.HasTrade )
{
BounceInfo bounce = item.GetBounce();
if ( bounce != null )
{
if ( bounce.m_Parent is Item )
{
Item parent = (Item) bounce.m_Parent;
if ( parent == this.Backpack || parent.IsChildOf( this.Backpack ) )
return true;
}
else if ( bounce.m_Parent == this )
{
return true;
//.........这里部分代码省略.........
示例9: OnDroppedItemToWorld
public override bool OnDroppedItemToWorld(Item item, Point3D location)
{
if (!base.OnDroppedItemToWorld(item, location))
{
return false;
}
if (Core.AOS)
{
IPooledEnumerable mobiles = Map.GetMobilesInRange(location, 0);
foreach (Mobile m in mobiles)
{
if (m.Z >= location.Z && m.Z < location.Z + 16)
{
mobiles.Free();
return false;
}
}
mobiles.Free();
}
BounceInfo bi = item.GetBounce();
if (bi != null)
{
Type type = item.GetType();
if (type.IsDefined(typeof(FurnitureAttribute), true) || type.IsDefined(typeof(DynamicFlipingAttribute), true))
{
var objs = type.GetCustomAttributes(typeof(FlipableAttribute), true);
if (objs != null && objs.Length > 0)
{
FlipableAttribute fp = objs[0] as FlipableAttribute;
if (fp != null)
{
var itemIDs = fp.ItemIDs;
Point3D oldWorldLoc = bi.m_WorldLoc;
Point3D newWorldLoc = location;
if (oldWorldLoc.X != newWorldLoc.X || oldWorldLoc.Y != newWorldLoc.Y)
{
Direction dir = GetDirection4(oldWorldLoc, newWorldLoc);
if (itemIDs.Length == 2)
{
switch (dir)
{
case Direction.North:
case Direction.South:
item.ItemID = itemIDs[0];
break;
case Direction.East:
case Direction.West:
item.ItemID = itemIDs[1];
break;
}
}
else if (itemIDs.Length == 4)
{
switch (dir)
{
case Direction.South:
item.ItemID = itemIDs[0];
break;
case Direction.East:
item.ItemID = itemIDs[1];
break;
case Direction.North:
item.ItemID = itemIDs[2];
break;
case Direction.West:
item.ItemID = itemIDs[3];
break;
}
}
}
}
}
}
}
return true;
}