Fix weapon sticking not producing a message (among other things)

Fixes #3380.

The if(mon) checks all take priority, so if both a zombie and a player are passed in then the player is just used for printing messages, like the "Your X gets stuck" message.

Other messages that went missing that should be fixed:

* Contact with X shocks you!
* Your X shatters! (using a glass weapon)
* You shock X!
* You drain X's body heat!
* You force X to the ground!

Maybe others too.