How about changing the "*" character to somethingelse before running this test
try this
//@*Calc
WhilePrintingRecords;
StringVar OBCOL296test := replace({OBCOL296.C2SYN},"*","$"

;
StringVar MSCML199test := replace({MSCML199.CTYPE},"*","$"

;
if OBCOL296test like ['M$', 'Q$', 'T$', 'W$', 'Z$']
and MSCML199test like "M$"
then {OBCOL296.LISTP} * .50
else if not (MSCML199test like "M$"
then {OBCOL296.LISTP} *.64
else if {MSCML199test = "$"
then {OBCOL296.ACTSP}
else if not(OBCOL296test like ['M$', 'Q$', 'T$', 'W$', 'Z$'])
then {OBCOL296.ACTSP},
unless there are already "$" this should work...if there is "$" choose some other char
Jim Broadbent
The quality of the answer is directly proportional to the quality of the problem statement!