Yeah, the problem these mod folks have is they've created a cool 3D model, but it won't work in-game in the proper way. The tank simulation of OFP is extremely basic as is, but for direct-fire combat you can sorta get away with it. With indirect fire, it's much messier. I mean, a real Paladin outfit will have tons of support units -- Tacfire, FDC, Meteorology, Survey, the FISTs -- to get the fire on target.
Then the ordnance fired is more varied. You think the current tank models are bad with their "Shell" and "Heat" rounds, a 155 can fire HE, ICM, DPICM, FASCAM, ILLUM, SMOKE, CLGP rounds and other stuff (like those armor-seeking things) shells. These can be fuzed to different environmental and target requirements (they don't all explode when they hit the ground). so building a 3d model is a small part of the puzzle, you need to build a system.
3. Now, for picking up shells:
what you do is a run a script that monitors the ammo state of a given unit (@ unit ammo [type] < oldammo). When that unit loses a round of the ammo you're tracking, scan a grid around that unit with 25 m spacing at 50m above ground, looking for a nearestobject with a speed above 400 kph (you can go faster if you like).
"format [""Shell%1 = Nearestobject _X"", ""Speed NearestObject _x > 400"" count [_x]] Foreach [_x]" Foreach [_scanarray]
where scan array is the array of x y z locations around the gun.
After this, variable Shell1 will indicate the projectile. You can then track this over a half second or so -- get the two coords, then adjust for ASL (using an appropriate routine), and calculate from that all you need.
Easy, huh?
2. SetDir works on Camcreate
For example, here's the relevant part of my config.lines for a low-angle trajectory:
class HE155LA : ArtilleryShell
{
simulation = shotmissile;
hit = 100; indirecthit = 300;
cost = 300;
maxspeed = 250;
thrusttime = 1.5;
thrust = 200;
};
Artilleryshell is just a modification of default shell, nothing fancy there.
Anyway, find the spot 2416 meters from the target and 490 m above the height of burst (using ASL calcs), camcreate the shell there 10 seconds before you want it to splash, and setdir on it in the firing direction.
(hmm 490m in ten seconds
)
This is for 20.5 degrees ingress. For my purposes, one low- and one high-angle shells are sufficient. I only care about the sound effects and what the shell hits on the last 100 meters. Through some testing, you could create a whole bunch of shells for however many different angles of ingress you want.
in other words, no I can't make them start out traveling at a set elevation/declination; I can only make them end at one, and that is by varying the horizontal velocity as a result of the thrust/thrusttime settings. The vertical component of their vector at splash will always be 98 m/s unless you monkey with the "sideairvelocity" setting, which I don't recommend.
I plan on writing a simple LOS calculator that will also calculate the intervening obstacles for HA/LA determinations.
Again, my bias is artillery simulation from the FO/FIST/ANGLICO point of view. The trajectory's nice, but what really matters is that there's an explosion at the other end. As you point out, it's no fun in an FPS to sit five miles behind the lines, loading shells and blasting at unseen quadrants.