This thread should have been in the Script section since it relates more to the script side than models.
I took a look at the script. The first thing to do is change the "timerstart" and "timergreater" to "etimerstart" and "etimergreater".
To make it so it will show each time the player is close to the item, you use the "plrdistwithin=x" command. So in your script, you would eliminate the "plrwithinzone=1" and use the command I mentioned.
Also, please remember to
define your huds in the "state=0" lines. Your script will not work if you define hud(s) in the middle of it.
Here is the script corrected to the proper syntax:
;Artificial Intelligence Script
;Header
desc = Reveive screen message
;Triggers
:state=0:hudreset,hudx=50,hudy=80,hudimagefine=gamecore\huds\bkii.dds,hudname=firstmessage,hudhide=1,hudmake=display
:state=0:state=1
:state=1,plrdistwithin=50:state=2
:state=2:hudshow=firstmessage,sound=audiobank\tutorialmessage\messagebleep.ogg,etimerstart,state=3
:state=3,etimergreater=10000:hudfadeout=firstmessage,etimerstart,state=4
:state=4,etimergreater=1000:sound=audiobank\tutorialmessage\message.ogg,state=5
:state=5,plrdistfurther=60:state=1
;End of Script
Attach this to an entity and make sure the entity is dynamic. You can change the distance within and further values to suit your needs, as well as adjust the "etimergreater=x" values.

Twitter: @NFoxMedia