It's probably
on *:text:!away:#:set %account [ $+ [ $nick ] ] off
without the == smile

But I would use another set of %vars for that, just to prevent unintended account or rob status changes...

on *:text:!away:#Battle: set %rob.AWAY. [ $+ [ $nick ] ] on
on *:text:!rob*:#Battle: {
if (%rob. [ $+ [ $nick ] ] == on) {
msg $nick You Have Already Robbed Someone Within 5 mins!
halt
}
if (%rob.AWAY. [ $+ [ $2 ] ] == on) {
msg $nick $2 is away!
halt
}
if (%rob. [ $+ [ $nick ] ] != on) && ($2 ison #) && (%account [ $+ [ $2 ] ] == on) {
msg $chan $nick Attempts To Rob $2
if (!$rand(0,4)) {
set %tthier-money $round($calc(%money [ $+ [ $2 ] ] / 2),0)
msg $chan $nick SuccessFully Robs $2
msg $chan $nick Has Robbed $2 by %tthier-money Money From $2
inc %money [ $+ [ $nick ] ] %tthier-money
dec %money [ $+ [ $2 ] ] %tthier-money
set -u300 %rob. [ $+ [ $nick ] ] on
}
else {
msg $chan $nick Has Failed To Rob $2 !
set -u300 %rob [ $+ [ $nick ] ] on
}
}
}

What's still missing I guess: a way to get back after someone types !away smile
on *:text:!back:#Battle: set %rob.AWAY. [ $+ [ $nick ] ]

And some assorted tips and tricks:
- I'm personally fan of using 1 for "on" and 0 for "off": //if (%var) is the same as //if (%var == on) if you use 0 (or $null, %var doesn't exist) for false and 1 for true. It's shorter too smile
- Replaced your $rand(1,5) with !$rand(0,4) -> !0 = 1(true), !1 (or !4) = 0(false)
- I used %rob.AWAY. -> the . makes the separation between the constant part (%rob) and the changing part ($nick) more clear. Not that it matters much since you're probably not reading your Variables section daily wink