Dont use a trigger, its a waste of cpu power
Best to have a slow looping script, say every 5 seconds, which runs on the player, this would check to see how many objects are within X range of the player of a specific type and then , if he hasn't already got an action attached to him, add one
alternatively, if he has an action but is more than X distance away from any objects, it removes the action.
Something like
1) See how many objects are close enough to the player to be able to cut
2) then if he hasn't already got an action, give him one (tx_Noactions control this)
3) If there are no fence objects close enough to him, then remove any action he may have and tell the script he hasnt got asny actions (tx_Noactions control this)
If you try and remove an action from a unit that doesnt have the action, it will not generate an error
NB>>> to get the classname of the fence type you want, simply do the following
name one of the fence sections "fence1"and run a simple debug line to find out
hint format ["Object classname = \n\n %1", _obj]the system below will simply use the object class of the fence you named "fence1"
INIT.sqs[] exec "loop.sqs"
LOOP.sqs~2
_obj = [typeof fence1]
tx_Noactions = true
#START
~ 4 + (random 1)
if(((nearestobject [Player,_obj]) distance <3) &&( tx_Noactions)) then{tx_Cut = Player addaction ["Cut Fence section","Cut.sqs"];tx_Noactions = false}else{tx_Noactions = true;Player removeaction tx_Cut}
goto "START"
CUT.sqs_obj = nearestobject [Player, (typeof Fence1)
hint "Cutting fence"
~3
deletevehicle _obj
;; or do a createvehicle at getpos _obj for the broken fence section
;; or try a _obj setdammage 1... that may cause the fence to fall flat to the floor
exit
I havent roadtested the script, however if you have a problem, it will be in the following statement
((nearestobject [Player,_obj]) distance <3)