off of what @tombu posted was able to update the code to work with true color. it will error if its 256 color coded.
(defun c:vv (/ oldlayer sub ss ss1 layname laylst gelay ltlay colay newl)
(setvar 'cmdecho 0)
(setq oldlayer (getvar 'clayer))
(setq sub (getstring "\n Give prefix to layername: "))
(setq ss (ssget "_:L"))
(if (= ss nil)
(princ "\nNo elements selected")
(foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
(if (not (vl-position (setq layname (cdr (assoc 8 (entget e)))) laylst))
(setq laylst (cons layname laylst))
)
)
)
(if (not (= laylst nil))
(foreach lay laylst
(setq gelay (entget(tblobjname "LAYER" lay))
ltlay (cdr (assoc 6 gelay))
newl (strcat sub "-" lay)
)
(if (setq colay (cdr (assoc 420 gelay)))
(setq colay (LM:True->RGB colay)
colay (strcat (nth 0 colay) "," (nth 1 colay) "," (nth 2 colay))
)
(setq colay (cdr (assoc 62 gelay)))
)
(if (not (tblsearch "Layer" newl))
(vl-cmdf "-Layer" "M" newl "C" colay "" "L" ltlay "" "")
)
(sssetfirst nil ss)
(setq SS1 (ssget (list (cons 8 lay))))
(prompt (strcat"\nElements coverted to " newl " layer"))
(vl-cmdf "chprop" SS1 "" "la" newl "")
)
)
(setvar 'clayer oldlayer)
(setvar "cmdecho" 1)
(princ)
)
;; True -> RGB - Lee Mac
;; Args: c - True Colour
(defun LM:True->RGB ( c )
(list
(itoa (lsh (lsh (fix c) 08) -24))
(itoa (lsh (lsh (fix c) 16) -24))
(itoa (lsh (lsh (fix c) 24) -24))
)
)