예제 #1
0
        internal static bool CanUseItem(int parItemId, PrivateEnums.ItemCacheLookupType parType)
        {
            if (!ObjectManager.Instance.IsIngame)
            {
                return(false);
            }
            if (CanUseItemFunction == null)
            {
                CanUseItemFunction = Memory.Reader.RegisterDelegate <CanUseItemDelegate>(funcs.CanUseItem);
            }
            var ret = MainThread.Instance.Invoke(() =>
            {
                var ptr1 = ObjectManager.Instance.Player.Pointer;
                if (ptr1 == IntPtr.Zero)
                {
                    return(0);
                }
                var ptr2 = ObjectManager.Instance.LookupItemCachePtr(parItemId, parType);
                if (ptr2 == IntPtr.Zero)
                {
                    return(0);
                }
                var randomInt = 1;
                var result    = CanUseItemFunction(ptr1, ptr2, ref randomInt);
                return(result);
            });

            return(ret == 1);
        }
예제 #2
0
 public bool CanUseItem(IntPtr pointer, out GameError error)
 {
     if (_canUseItem == null)
     {
         _canUseItem = Manager.Memory.RegisterDelegate <CanUseItemDelegate>((IntPtr)Pointers.Item.CanUseItem);
     }
     return(_canUseItem(this.Pointer, pointer, out error));
 }
예제 #3
0
 public bool CanUseItem(IntPtr pointer, out GameError error)
 {
     if (_canUseItem == null)
         _canUseItem = Manager.Memory.RegisterDelegate<CanUseItemDelegate>((IntPtr)Pointers.Item.CanUseItem);
     return _canUseItem(this.Pointer, pointer, out error);
 }