本文整理汇总了C#中Server.Mobiles.CharacterStatue.Sculpt方法的典型用法代码示例。如果您正苦于以下问题:C# CharacterStatue.Sculpt方法的具体用法?C# CharacterStatue.Sculpt怎么用?C# CharacterStatue.Sculpt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Server.Mobiles.CharacterStatue
的用法示例。
在下文中一共展示了CharacterStatue.Sculpt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
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();
/*
* 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.
}