Not really. The DG script language supports the "halt" command, so you can make it less compact, but generally, that's about as much sa you can do.
Code:
set cost -1000
if !%actor.is_pc%
halt
end
set length %word.strlen%
if %length% < 1
tell %actor.name% Okay, but what would you like to buy? A life, perhaps?
halt
end
if !(lives == %arg% || life == %arg%)
tell %actor.name% You can't buy %arg% from me, only a life.
halt
end
if %actor.lives% >=30
tell %actor.name% You already have plenty of lives. Go out there and make bad decisions!
elseif %actor.gold% < 1000
tell %actor.name% Sorry, but you just don't have the credits...
else
tell %actor.name% That will be 1,000 credits. Thank you!
nop %actor.gold(%cost%)%
nop %actor.lives(1)%
end