Also, in regards to your key events: I would suggest checking for both upper and lower case wasd.
; in keydown
if ($keyval == 97) || ($keyval == 65) hadd zomb move_l 1
if ($keyval == 100) || ($keyval == 68) hadd zomb move_r 1
if ($keyval == 115) || ($keyval == 83) hadd zomb move_d 1
if ($keyval == 119) || ($keyval == 87) hadd zomb move_u 1
; in keyup
if ($keyval == 97) || ($keyval == 65) hdel zomb move_l
if ($keyval == 100) || ($keyval == 68) hdel zomb move_r
if ($keyval == 115) || ($keyval == 83) hdel zomb move_d
if ($keyval == 119) || ($keyval == 87) hdel zomb move_u