GetClick() is a mob proc that greatly simplifies the process of getting input through clicks. It may be called at any time and the proc will wait (similar to input()) until the player clicks a new object. As a practical example of usage:
src << "Select a target"
client.mouse_pointer_icon = 'select.dmi'
var/mob/target = GetClick()
client.mouse_pointer_icon = null