a few days ago I was testing different lootroutines for botting. None of them worked perfect and I'm not *satisfied* with the result. I checked the cursortype and/or the mouseover-objectpointer. The problem is that the games need some time to *realize* that the mousecursorposition changed, so the cursortype and the mouseover-objectpointer change *to slow*. To avoid this problem I could just wait a few milliseconds and it would work. But this slows down the looting extremly and I dont like that. Another problem with this method is: it depends on the speed of a computer. If the value of the 'wait-delay' on a slow computer is to small the looting wouldn't work. So I thought I need something better here.
Then I had the idea to convert the 3D (resource-/deadmob-)coordinates into a 2D point on the screen. If that would work I could always place the cursor at the perfect x-y-screenposition for looting (instead of 'scanning' the screen and wait until the cursor changes or other ****). Since I have never done anything like this before I *googled* and found out how to do this:
2D Point = 3D Point * WorldViewProjectionMatrix
WorldViewProjectionMatrix = World Matrix * View Matrix * Projection Matrix
To understand this I found this awesome(!) link:
So to do this I need the object-3D Point, the World Matrix, View Matrix and Projection Matrix. The only thing I have is the 3D Point of the object (the origin, note: a vertex should be better but it sould work fine with the origin-point because in RoM they seem to be in the middle of the object).
But how can I find out where the game stores the matrices?
All I know its a block/array of 4x4 floats.
(sidenote: this stuff is not only for looting, its possible to create 2D Radars like the one in the botsmall-bot)