Please add "WeaponReloaded", "WeaponSelected" and "HandleCameraView" event handlers. As it stands there is no fast and efficient way of detecting those events, but run a script loop constantly checking on condition for player weapon or cameraView. With weapon reload this is even more awkward.
"HandleCameraView" should be overridable, so that it is possible to deny 3rd person view for example in certain situations and not all together as the only option currently possible.
"WeaponReloaded" returns
_this select 0 - object - unit it is assigned to
_this select 1 - string - weapon that is reloaded
_this select 2 - string - muzzle that is reloaded
_this select 3 - array - magazine that is inserted ["class", ammocount, id]
_this select 4 - array - magazine that is removed ["class", ammocount, id]
"WeaponSelected"
_this select 0 - object - unit it is assigned to
_this select 1 - string - weapon that is selected
_this select 2 - string - muzzle that is selected
"HandleCameraView"
_this select 0 - object - unit it is assigned to
_this select 1 - string - new cameraView (internal, external, gunner, group)
_this select 2 - string - old cameraView
returning true overrides the change and no cameraview change happen.
Alternatively make this event handler fire before cameraview change rendered so that it is possible to set camera view to desired view seamlessly in the same frame with switchCamera
for example
if (_this select 1 == "External") then {_this select 0 switchCamera "Internal"}