Server.Network.PacketHandlers.ContextMenuResponse C# (CSharp) Méthode

ContextMenuResponse() public static méthode

public static ContextMenuResponse ( Server.Network.NetState state, PacketReader pvSrc ) : void
state Server.Network.NetState
pvSrc PacketReader
Résultat void
        public static void ContextMenuResponse( NetState state, PacketReader pvSrc )
        {
            Mobile from = state.Mobile;

            if ( from != null )
            {
                ContextMenu menu = from.ContextMenu;

                from.ContextMenu = null;

                if ( menu != null && from != null && from == menu.From )
                {
                    IEntity entity = World.FindEntity( pvSrc.ReadInt32() );

                    if ( entity != null && entity == menu.Target && from.CanSee( entity ) )
                    {
                        Point3D p;

                        if ( entity is Mobile )
                            p = entity.Location;
                        else if ( entity is Item )
                            p = ((Item)entity).GetWorldLocation();
                        else
                            return;

                        int index = pvSrc.ReadUInt16();

                        if ( index >= 0 && index < menu.Entries.Length )
                        {
                            ContextMenuEntry e = menu.Entries[index];

                            int range = e.Range;

                            if ( range == -1 )
                                range = 18;

                            if ( e.Enabled && from.InRange( p, range ) )
                                e.OnClick();
                        }
                    }
                }
            }
        }
PacketHandlers