I don't like toinventory, because it destroys the NPC and the image won't be saved when disconnecting.
You could try this, although I haven't tested it. (I don't have access to a script-server).
NPC Code:
// this part will be executed server-side:
if (created) {
setshape 1,32,32; // whatever...I just think you need it serverside
// for playertouchsme
}
if (playertouchsme) {
set gotwhatever;
toweapons whatever;
}
//#CLIENTSIDE
if (playertouchsme) {
hidelocal;
play extra.wav;
}