I made a little change to the code removing the use of the %var, because it was being compared at the Top of the code but not SET until the bottom of the code, and i see no point in the restriction, you want to only give one nick bodyshots?

Code:
on *:TEXT:.gbodyshot *:#:{
  REMOVE [color:red]  if ($nick == %nick.bshot) { [/color]
    if (($2 == $nick) || ($2 == $me)) { notice $nick You cant do that to yourself or da bot }
    elseif ($2 !ison $chan) { notice $nick There not on the channel }
    else {
      describe $chan ... $nick $+ , Takes $$2, places them on the bar, pours a sachet of sugar onto their neck, Places a wedge of lemon into their mouth.
      describe $chan ... $nick licks the sugar of $2's neck, slams the shot of $read($shortfn($mircdir) $+ system\bodyshot.txt)
      describe $chan ... Holds $2's neck and then slowly bites into the lemon. just before kissing $$2!
      REMOVE [color:red]      set %nick.bshot $2[/color]
    }
  }
}

on *:TEXT:.gbodyshot *:#:{
  if (($2 == $nick) || ($2 == $me)) { notice $nick You cant do that to yourself or da bot }
  elseif ($2 !ison $chan) { notice $nick There not on the channel }
  else {
    describe $chan ... $nick $+ , Takes $$2, places them on the bar, pours a sachet of sugar onto their neck, Places a wedge of lemon into their mouth.
    describe $chan ... $nick licks the sugar of $2's neck, slams the shot of $read($shortfn($mircdir) $+ system\bodyshot.txt)
    describe $chan ... Holds $2's neck and then slowly bites into the lemon. just before kissing $$2!
  }
}


in channel then post .gbodyshot (any nick in channel that is not you or the bot)