Your code wont work %$2 is not the nick passed as a var like %nickpassed it is a var called "%$2", to load the var use $+(%,$2) this connects the parts with $2 being its contents.
to access it u need to add $( ,2) around it, this is to tell mirc to evaluate it twice, first time to connect the parts, second time to get the contnets $($+(%,$2),2)

Code:
on @*:text:*!give*:#: { 
  if ($1 == %c $+ !give) { 
    .inc $+(%,$2) $3 | msg $chan $2 was given $3 points, total is now $($+(%,$2),2)
  }
}
on @*:text:*!take*:#: { 
  if ($1 == %c $+ !take) { 
    .dec $+(%,$2) $3 | msg $chan $3 points was taken away from $2, total is now $($+(%,$2),2)
  }
}
on *:text:*!amount*:#: { 
  if ($1 == %c $+ !amount) { 
    msg $chan $nick you have $iif( $($+(%,$nick),2) , $v1,0) points
  }
}