本文整理汇总了C#中Server.Mobiles.CharacterStatue.InvalidatePose方法的典型用法代码示例。如果您正苦于以下问题:C# CharacterStatue.InvalidatePose方法的具体用法?C# CharacterStatue.InvalidatePose怎么用?C# CharacterStatue.InvalidatePose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Server.Mobiles.CharacterStatue
的用法示例。
在下文中一共展示了CharacterStatue.InvalidatePose方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnTarget
protected override void OnTarget( Mobile from, object targeted )
{
IPoint3D p = targeted as IPoint3D;
Map map = from.Map;
if ( p == null || map == null || m_Maker == null || m_Maker.Deleted )
return;
if ( m_Maker.IsChildOf( from.Backpack ) )
{
SpellHelper.GetSurfaceTop( ref p );
BaseHouse house = null;
Point3D loc = new Point3D( p );
AddonFitResult result = CouldFit( loc, map, from, ref house );
if ( result == AddonFitResult.Valid )
{
CharacterStatue statue = new CharacterStatue( from, m_Type );
CharacterStatuePlinth plinth = new CharacterStatuePlinth( statue );
house.Addons.Add( plinth );
statue.Plinth = plinth;
plinth.MoveToWorld( loc, map );
statue.InvalidatePose();
from.SendGump( new CharacterStatueGump( m_Maker, statue ) );
}
else if ( result == AddonFitResult.Blocked )
from.SendLocalizedMessage( 500269 ); // You cannot build that there.
else if ( result == AddonFitResult.NotInHouse )
from.SendLocalizedMessage( 1076192 ); // Statues can only be placed in houses where you are the owner or co-owner.
else if ( result == AddonFitResult.DoorsNotClosed )
from.SendMessage( "You must close all house doors before placing this." );
else if ( result == AddonFitResult.DoorTooClose )
from.SendLocalizedMessage( 500271 ); // You cannot build near the door.
}
else
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
示例2: OnTarget
protected override void OnTarget( Mobile from, object targeted )
{
IPoint3D p = targeted as IPoint3D;
Map map = from.Map;
if ( p == null || map == null || m_Maker == null || m_Maker.Deleted )
return;
if ( m_Maker.IsChildOf( from.Backpack ) )
{
SpellHelper.GetSurfaceTop( ref p );
BaseHouse house = null;
Point3D loc = new Point3D( p );
if ( targeted is Item && !((Item) targeted).IsLockedDown && !((Item) targeted).IsSecure && !(targeted is AddonComponent) )
{
from.SendLocalizedMessage( 1076191 ); // Statues can only be placed in houses.
return;
}
else if ( from.IsBodyMod )
{
from.SendLocalizedMessage( 1073648 ); // You may only proceed while in your original state...
return;
}
AddonFitResult result = CouldFit( loc, map, from, ref house );
if ( result == AddonFitResult.Valid )
{
CharacterStatue statue = new CharacterStatue( from, m_Type );
CharacterStatuePlinth plinth = new CharacterStatuePlinth( statue );
house.Addons.Add( plinth );
if ( m_Maker is IRewardItem )
statue.IsRewardItem = ( (IRewardItem) m_Maker).IsRewardItem;
statue.Plinth = plinth;
plinth.MoveToWorld( loc, map );
statue.InvalidatePose();
from.CloseGump( typeof( CharacterStatueGump ) );
from.SendGump( new CharacterStatueGump( m_Maker, statue, from ) );
}
else if ( result == AddonFitResult.Blocked )
from.SendLocalizedMessage( 500269 ); // You cannot build that there.
else if ( result == AddonFitResult.NotInHouse )
from.SendLocalizedMessage( 1076192 ); // Statues can only be placed in houses where you are the owner or co-owner.
else if ( result == AddonFitResult.DoorTooClose )
from.SendLocalizedMessage( 500271 ); // You cannot build near the door.
}
else
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
}
示例3: OnTarget
protected override void OnTarget(Mobile from, object targeted)
{
var p = targeted as IPoint3D;
Map map = from.Map;
if (p == null || map == null || m_Maker == null || m_Maker.Deleted)
{
return;
}
if (m_Maker.IsChildOf(from.Backpack))
{
SpellHelper.GetSurfaceTop(ref p);
BaseHouse house = null;
var loc = new Point3D(p);
if (m_Maker is CharacterStatueDeed && !((CharacterStatueDeed) m_Maker).NoHouse ||
m_Maker is CharacterStatueMaker && !((CharacterStatueMaker) m_Maker).NoHouse)
{
if (targeted is Item && !((Item) targeted).IsLockedDown && !((Item) targeted).IsSecure &&
!(targeted is AddonComponent))
{
from.SendLocalizedMessage(1076191); // Statues can only be placed in houses.
return;
}
}
if (@from.IsBodyMod)
{
@from.SendLocalizedMessage(1073648); // You may only proceed while in your original state...
return;
}
AddonFitResult result = CouldFit(loc, map, from, ref house);
if (result == AddonFitResult.Valid || m_Maker is CharacterStatueDeed && ((CharacterStatueDeed) m_Maker).NoHouse ||
m_Maker is CharacterStatueMaker && ((CharacterStatueMaker) m_Maker).NoHouse)
{
var statue = new CharacterStatue(from, m_Type);
var plinth = new CharacterStatuePlinth(statue);
if (m_Maker is CharacterStatueDeed && !((CharacterStatueDeed) m_Maker).NoHouse ||
m_Maker is CharacterStatueMaker && !((CharacterStatueMaker) m_Maker).NoHouse)
{
house.Addons.Add(plinth);
}
if (m_Maker is IRewardItem)
{
statue.IsRewardItem = ((IRewardItem) m_Maker).IsRewardItem;
}
statue.Plinth = plinth;
plinth.MoveToWorld(loc, map);
statue.InvalidatePose();
/*
* TODO: Previously the maker wasn't deleted until after statue
* customization, leading to redeeding issues. Exact OSI behavior
* needs looking into.
*/
m_Maker.Delete();
statue.Sculpt(from);
from.CloseGump(typeof(CharacterStatueGump));
from.SendGump(new CharacterStatueGump(m_Maker, statue, from));
}
else if (result == AddonFitResult.Blocked)
{
from.SendLocalizedMessage(500269); // You cannot build that there.
}
else if (result == AddonFitResult.NotInHouse)
{
from.SendLocalizedMessage(1076192);
// Statues can only be placed in houses where you are the owner or co-owner.
}
else if (result == AddonFitResult.DoorTooClose)
{
from.SendLocalizedMessage(500271); // You cannot build near the door.
}
}
else
{
from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
}
}