Detect "player selects item"

Arkan

Nobody rides for free
Reaction score
92
I want to find out if a player left-clicks on an item on the ground, is it possible?

EDIT: I've decided to use a dummy-unit instead, still it could be good to know if it is possible?
 

SerraAvenger

Cuz I can
Reaction score
234
No, there is no such event : (

Btw, what do you use to convert your units to items & vice versa? I'ld either recommend you a good hashing algorithm ( none found for JASS yet afaik ), or a quicksorted array with binary search for the conversion.

( A Quicksort algorithm: http://www.thehelper.net/forums/showthread.php?t=87422
binary search: I'll just code it for you, applied on ToSort:
JASS:
library BSearch needs QuickSort
 function BSearch takes integer tosearch, integer lowerbound, integer upperbound returns integer
     local integer low  = lowerbound
     local integer high = upperbound
     local integer mid
     loop
           exitwhen low > mid
           set mid = (low + high ) / 2
           if tosearch < ToSort[mid] then
               set high = mid - 1
           elseif tosearch > ToSort[mid] then
               set low  = mid + 1
           else
               return mid
           endif
     endloop
     return -1
 endfunction
endlibrary


Note that you'll need my QSort algorithm in your map if you want to use this, and that it'll only owrk on a previously sorted array.

It's much faster than iterative search, and it allows for 700 values to be sorted which is fairly enough. EDIT: At one call of QSort, though. You can still partition the array in ten parts of 700 each and sort each of those.

Please don't forget to check for typos though, I dont got any Jass software here and wrote it off of my mind.

Just call BSearch( the integer you search for, the lower border of the searched interval , the upper border of the searched interval ) and it will return the index in which the integer was found. If it was not an element of the interval, - 1 will be returned, so be sure to check for that exception.
The intervalling might be usefull if you are using one array for multiple things, and have "partitioned" it. Then you might not want to search the whole array just a tiny part of it.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top