With the following simple script, you can simulate a damaged oil pump, by lowering its elevation and tilting it to one side.
I believe you can only do this with oil pumps you place via the editor. The static pumps built into the map show no object IDs when you turn on Object IDs in editor, so I don't know how to get at them.
; *****************************************************
; ** ARMA script to damage and burn an editor placed oil pump.
; ** by Johnnyboy
; *****************************************************
; [pump] exec "burn_oil_pump.sqs"
;
; Simple script to simulate destruction of oil pump. It places a burning
; fuel truck under the pump, and sinks the pump in the ground, and leans it
; over at an angle.
;
_pump = _this select 0;
; Create a fuel truck, place it under oil pump, and burn it. You can replace this with
; whatever your favorite fire/smoke script may be.
_fuel = "Truck5tRefuel" createVehicle [0,0,0];
~.2
_fuel setpos (_pump modelToWorld [0,-2,-6]);
_fuel setdammage 1;
~1.4
; *****************************************************
; Sink the pump 5 meters down, and tilt it an angle
_pump setpos (_pump modelToWorld [0,0,-5]);
_pump setVectorUp [.7, .5, .8];
exit;
One weakness of this script is that the tilting of the pump is immediate. It would be better animated with a loop to increment the tilt angle slowly, so player could watch it fall over. I attempted that by starting with a vector value of [0,0,0] and incrementing 20 times using an increment value of 1/20th of my desired end values [.7,.5,.8]. But this did not work. The first increment tipped the pump all the way to end angle. I don't completely understand the math behind the setVectorUp command. I now think it is a ratio of values, so that [.7/20, .5/20, .8/20] gives the equivalent result of [.7, .5, .8].
I'm giving up on that for now...other projects to pursue.