switch %actor.level%
case 1
case 2
case 3
case 4
switch %random.2%
case 1
dg_action 'bash' %actor%
break
case 2
dg_action 'kick' %actor%
break
done
break
case 5
case 6
case 7
case 8
case 9
case 10
switch %random.3%
case 1
dg_action 'bash' %actor%
break
case 2
dg_action 'kick' %actor%
break
case 3
dg_action 'disarm' %actor%
break
done
break
case 11
case 12
case 13
case 14
case 15
case 16
case 17
case 18
case 19
case 20
switch %random.5%
case 1
dg_action 'bash' %actor%
break
case 2
dg_action 'kick' %actor%
break
case 3
dg_action 'disarm' %actor%
break
case 4
dg_action 'whirlwind' %actor%
break
case 5
dg_action 'slay' %actor%
break
done
break
case 21
case 22
case 23
case 24
case 25
switch %random.3%
case 1
dg_action 'slay' %actor%
break
case 2
dg_action 'deathblow' %actor%
break
case 3
dg_action 'whirlwind' %actor%
break
done
break
default
dg_action 'kick' %actor%
break
done
All switch's must be terminated with a 'done', none of your switch %random.#% switches had them to begin with, you were also missing a few breaks, the above should work.
To be honest though in this case I'd simply do this:
if %actor.level% < 5
switch %random.2%
case 1
dg_action 'bash' %actor%
break
case 2
dg_action 'kick' %actor%
break
done
elseif %actor.level% < 11
switch %random.3%
case 1
dg_action 'bash' %actor%
break
case 2
dg_action 'kick' %actor%
break
case 3
dg_action 'disarm' %actor%
break
done
elseif %actor.level% < 21
switch %random.5%
case 1
dg_action 'bash' %actor%
break
case 2
dg_action 'kick' %actor%
break
case 3
dg_action 'disarm' %actor%
break
case 4
dg_action 'whirlwind' %actor%
break
case 5
dg_action 'slay' %actor%
break
done
elseif %actor.level% < 26
switch %random.3%
case 1
dg_action 'slay' %actor%
break
case 2
dg_action 'deathblow' %actor%
break
case 3
dg_action 'whirlwind' %actor%
break
done
else
dg_action 'kick' %actor%
end
You have so many bottom-less cases that the switch case simply loses its benefit of making the script shorter and neater and actually makes it longer and more complicated.