Another great idea! So great I'm already working on it! ;D
Anyway, let me make sure I've got this right: you mean that instead of the vehicle crumpling up, it should just bust apart into a bunch of wreckage if, say, it crashes into a building at 200 km/h?
I've made a script that does just that, but the effects just aren't very pretty yet. Basically, the script checks for changes in velocity, and if the change is big enough, the aircraft is destroyed. If you know much physics, it's kinda a bastardized version of the idea of impulses, only without the mass. Anyway, I'll post the script I have so far, but keep in mind it is yet to be completed:
~0.5
_aircraft = _this select 0
;try 2000
_tol = _this select 1
_vSub = { [((_this select 1) select 0) - ((_this select 0) select 0), ((_this select 1) select 1) - ((_this select 0) select 1), ((_this select 1) select 2) - ((_this select 0) select 2)] }
_vMagSqr = {(_this select 0)^2 + (_this select 1)^2 + (_this select 2)^2}
#Loop
_v1 = velocity _aircraft
~0.001
_v2 = velocity _aircraft
_dv = ([_v2, _v1] call _vSub) call _vMagSqr
? (_dv > _tol) && !alive _aircraft : goto "crash"
~0.001
goto "Loop"
#crash
titletext [format ["%1", _dv], "PLAIN"]
_pos = getpos _aircraft
deletevehicle _aircraft
_bomb = "shell125" camcreate _pos
_bomb = "shell125" camcreate _pos
_i = 0
#effect
_loc = [(_pos select 0)-2+random 4, (_pos select 1)-2+random 4, (_pos select 2)-2+random 4]
_vel = [((_v2 select 0)/3)-10+random 20, ((_v2 select 1)/3)-10+random 20, ((_v2 select 2)/3)-10+random 20]
drop ["cl_fire","","Billboard",3,3,_loc,_vel,0,0.11,0.11,0,[0.5,2,1.5,0],[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],[0,1,0,1],0,0.1,"","",""]
; _shrap = "FxExploArmor2" camcreate [5 + (_pos select 0) - random 10, 5 + (_pos select 1) - random 10, 5 + (_pos select 2) - random 10]
; _shrap setvelocity _vel
; _size = 0.1 + random 0.7
; ? 0.5 > random 1 : [_shrap,_size] exec format["%1explosions\debriflamelets.sqs",ECP_path]
;
; _vel = [((_v1 select 0)/3)-10+random 20, ((_v1 select 1)/3)-10+random 20, ((_v1 select 2)/3)-10+random 20]
; drop ["cl_fire","","Billboard",3,3,_loc,_vel,0,0.11,0.11,0,[0.5,2,1.5,0],[[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],[0,1,0,1],0,0.1,"","",""]
;
; _shrap = "FxExploArmor2" camcreate [5 + (_pos select 0) - random 10, 5 + (_pos select 1) - random 10, 5 + (_pos select 2) - random 10]
; _shrap setvelocity _vel
; _size = 0.1 + random 0.7
; ? 0.5 > random 1 : [_shrap,_size] exec format["%1explosions\debriflamelets.sqs",ECP_path]
_i = _i + 1
? _i < 50 : goto "effect"
I've commented out the part of the effects that require the ECP, but the script should work still. It is called like this: [aircraft, tolerance] exec "crash.sqs"
Aircraft - plane or helo to use the script
Tolerance - basically a number telling the script how much the velocity has to change before the aircraft is destroyed. About 2000 seems to work well. Higher = bigger change in speed/direction required to destroy aircraft.
Also, when the plane crashes, a hint will appear on the screen that tells you what the number was for the velocity change the aircraft just had. You can use this number to help you decide what to set your tolerance at.
The full explaination: The script monitors the square of the magnitude of the change in velocity of the aircraft over a 0.001 second period. If this number is greater than the tolerance, the aircraft will be destroyed.
Anyway, I'll stop talking now.