Glad it worked out, one of those quick answers.
(if (not AH:Butts)(load "Multi Radio buttons.lsp"))
(setq ans (ah:butts 2 "h" '("Lock or unlock " "Lock" "Unlock"))) ; ans holds the button picked value

You dont need to redefine the save close etc you can set up a reactor that will trap those commands then run your lock code. Add to say Appload start up suite.
Just the relevant bit of code
;Reactor callback function
(defun BeginCloseFunc (reactor lst / blocks blk efname )
(if (not _BeginCloseReactor) (setq _BeginCloseReactor (VLR-Dwg-Reactor nil '((:VLR-beginClose . BeginCloseFunc)))))
(if (not _BeginSaveReactor ) (setq _BeginSaveReactor (VLR-Dwg-Reactor nil '((:VLR-beginSave . BeginCloseFunc)))))
..........do stuff with blocks
..........
(cond
((= (vlr-current-reaction-name) ':VLR-beginSave) (Princ "\nThis function has been triggered by a Document Save event."))
((= (vlr-current-reaction-name) ':VLR-beginClose)(princ "\nThis function has been triggered by a Document Close event."))
)
The vlr code thanks to others here.