61 lines
No EOL
1.3 KiB
C#
61 lines
No EOL
1.3 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Targeting;
|
|
using Server.Mobiles;
|
|
|
|
namespace Server.Items
|
|
{
|
|
public class ItemIdentification
|
|
{
|
|
public static void Initialize()
|
|
{
|
|
SkillInfo.Table[(int)SkillName.ItemID].Callback = new SkillUseCallback( OnUse );
|
|
}
|
|
|
|
public static TimeSpan OnUse( Mobile from )
|
|
{
|
|
from.SendLocalizedMessage( 500343 ); // What do you wish to appraise and identify?
|
|
from.Target = new InternalTarget();
|
|
|
|
return TimeSpan.FromSeconds( 1.0 );
|
|
}
|
|
|
|
[PlayerVendorTarget]
|
|
private class InternalTarget : Target
|
|
{
|
|
public InternalTarget() : base ( 8, false, TargetFlags.None )
|
|
{
|
|
AllowNonlocal = true;
|
|
}
|
|
|
|
protected override void OnTarget( Mobile from, object o )
|
|
{
|
|
if ( o is Item )
|
|
{
|
|
if ( from.CheckTargetSkill( SkillName.ItemID, o, 0, 100 ) )
|
|
{
|
|
if ( o is BaseWeapon )
|
|
((BaseWeapon)o).Identified = true;
|
|
else if ( o is BaseArmor )
|
|
((BaseArmor)o).Identified = true;
|
|
|
|
if ( !Core.AOS )
|
|
((Item)o).OnSingleClick( from );
|
|
}
|
|
else
|
|
{
|
|
from.SendLocalizedMessage( 500353 ); // You are not certain...
|
|
}
|
|
}
|
|
else if ( o is Mobile )
|
|
{
|
|
((Mobile)o).OnSingleClick( from );
|
|
}
|
|
else
|
|
{
|
|
from.SendLocalizedMessage( 500353 ); // You are not certain...
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |