I don't mean to sound like I'm knocking back your idea, but won't you have the same problem if you're using invisilbe cubes facing the enemies? They would have to find the angle towards the enemy anyway. Plus, if you have 2 enemies at the same angle, will it kill only one? If so, the one in front or behind? Or will it kill both?
If you don't end up using the DLL (or if you're not yet, I'm still being moderated), then you could use something along the lines of trigenometry to move the bullet by 1 in the direction the character is facing. To make it instantly move to somewhere, you just need to have a loop inside the main loop that prevents the screen from refreshing. Have a look at the code below:
if fire = 1
if object angle y(character) > 0 and object angle y(character) < 90
bulletx = 1 * cos(90 - object angle x(bullet))
bulletz = 1 * sin(90 - object angle x(bullet))
do
position object bullet,object position x(bullet) - bulletx,object position y(bullet),object position z(bullet) + bulletz
rem Put your collisions here
loop
endif
endif
Note that this code only covers the 4th quadrant (or first as DBP sees it, well, it did for me anyway) and you would need to code for each quadrant and each straight line.
The only problem you'll have with this code is that it can be long (you have to organise each quadrant individually unless you create a global sub to handle it all) though it is acurate. Using this method, the only factor is the depth of each object that you're shooting at. This code moves the bullet by 1 each time the loop runs, and thus if your object is thinner than 1, the bullet may pass right through without causing a scratch.
I don't expect anyone to use this code, but its here if you need something new to try.